From 2a8ebc6c2703febc56a96befe65984b00e9d2098 Mon Sep 17 00:00:00 2001 From: Kirill Gavrilov Date: Fri, 2 Jun 2017 09:06:18 +0300 Subject: [PATCH] Fixed broken Interleaved 3D output when GL Sampler objects are used --- src/gl/stereo3d/gl_interleaved3d.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gl/stereo3d/gl_interleaved3d.cpp b/src/gl/stereo3d/gl_interleaved3d.cpp index 029d233e48..40aed85a97 100644 --- a/src/gl/stereo3d/gl_interleaved3d.cpp +++ b/src/gl/stereo3d/gl_interleaved3d.cpp @@ -37,6 +37,7 @@ #include "gl/renderer/gl_renderer.h" #include "gl/renderer/gl_renderbuffers.h" #include "gl/renderer/gl_renderer.h" +#include "gl/renderer/gl_postprocessstate.h" #include "gl/system/gl_framebuffer.h" #include "gl/shaders/gl_present3dRowshader.h" @@ -122,6 +123,8 @@ static void prepareInterleavedPresent(FPresentStereoShaderBase& shader) void CheckerInterleaved3D::Present() const { + FGLPostProcessState savedState; + savedState.SaveTextureBindings(2); prepareInterleavedPresent(*GLRenderer->mPresent3dCheckerShader); // Compute absolute offset from top of screen to top of current display window @@ -165,6 +168,8 @@ void s3d::CheckerInterleaved3D::AdjustViewports() const void ColumnInterleaved3D::Present() const { + FGLPostProcessState savedState; + savedState.SaveTextureBindings(2); prepareInterleavedPresent(*GLRenderer->mPresent3dColumnShader); // Compute absolute offset from top of screen to top of current display window @@ -185,6 +190,8 @@ void ColumnInterleaved3D::Present() const void RowInterleaved3D::Present() const { + FGLPostProcessState savedState; + savedState.SaveTextureBindings(2); prepareInterleavedPresent(*GLRenderer->mPresent3dRowShader); // Compute absolute offset from top of screen to top of current display window