Merge branch 'master' into modern

# Conflicts:
#	src/gl/renderer/gl_renderer.cpp
#	src/gl/renderer/gl_renderer.h
#	src/gl/renderer/gl_renderstate.h
#	src/gl/system/gl_framebuffer.cpp
#	src/gl/system/gl_framebuffer.h
This commit is contained in:
Christoph Oelckers 2018-07-14 13:18:34 +02:00
commit 33ee0f3c27
15 changed files with 205 additions and 138 deletions

View file

@ -260,6 +260,26 @@ sector_t *FGLRenderer::RenderView(player_t* player)
return retsec;
}
//===========================================================================
//
//
//
//===========================================================================
void FGLRenderer::BindToFrameBuffer(FMaterial *mat)
{
auto BaseLayer = static_cast<FHardwareTexture*>(mat->GetLayer(0));
if (BaseLayer == nullptr)
{
// must create the hardware texture first
BaseLayer->BindOrCreate(mat->sourcetex, 0, 0, 0, 0);
FHardwareTexture::Unbind(0);
gl_RenderState.ClearLastMaterial();
}
BaseLayer->BindToFrameBuffer(mat->GetWidth(), mat->GetHeight());
}
//===========================================================================
//
// Camera texture rendering
@ -274,7 +294,7 @@ void FGLRenderer::RenderTextureView(FCanvasTexture *tex, AActor *Viewpoint, doub
int height = gltex->TextureHeight();
StartOffscreen();
gltex->BindToFrameBuffer();
BindToFrameBuffer(gltex);
IntRect bounds;
bounds.left = bounds.top = 0;