diff --git a/src/gl/renderer/gl_renderer.cpp b/src/gl/renderer/gl_renderer.cpp index e3b9b0a8b..9e8212c0b 100644 --- a/src/gl/renderer/gl_renderer.cpp +++ b/src/gl/renderer/gl_renderer.cpp @@ -122,6 +122,7 @@ void FGLRenderer::Initialize() else mLights = NULL; gl_RenderState.SetVertexBuffer(mVBO); mFBID = 0; + mOldFBID = 0; SetupLevel(); mShaderManager = new FShaderManager; @@ -237,6 +238,7 @@ void FGLRenderer::FlushTextures() bool FGLRenderer::StartOffscreen() { if (mFBID == 0) glGenFramebuffers(1, &mFBID); + glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &mOldFBID); glBindFramebuffer(GL_FRAMEBUFFER, mFBID); return true; } @@ -249,7 +251,7 @@ bool FGLRenderer::StartOffscreen() void FGLRenderer::EndOffscreen() { - glBindFramebuffer(GL_FRAMEBUFFER, 0); + glBindFramebuffer(GL_FRAMEBUFFER, mOldFBID); } //=========================================================================== diff --git a/src/gl/renderer/gl_renderer.h b/src/gl/renderer/gl_renderer.h index 52ce5b2fa..a78b8c5dc 100644 --- a/src/gl/renderer/gl_renderer.h +++ b/src/gl/renderer/gl_renderer.h @@ -71,6 +71,7 @@ public: int gl_spriteindex; unsigned int mFBID; unsigned int mVAOID; + int mOldFBID; FTexture *gllight; FTexture *glpart2;