From d5633701b4587ca38e838f53de18a91bb8845fba Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 9 Sep 2014 10:17:44 +0200 Subject: [PATCH] - swapped order of textures in burn shader to avoid some problems with the texture samplers. - fixed: texture sampler state for the burn texture was never set. --- src/gl/system/gl_wipe.cpp | 5 +++-- wadsrc/static/shaders/glsl/burn.fp | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gl/system/gl_wipe.cpp b/src/gl/system/gl_wipe.cpp index 53af826bd..564dd1e03 100644 --- a/src/gl/system/gl_wipe.cpp +++ b/src/gl/system/gl_wipe.cpp @@ -150,6 +150,7 @@ bool OpenGLFrameBuffer::WipeStartScreen(int type) wipestartscreen = new FHardwareTexture(Width, Height, true); wipestartscreen->CreateTexture(NULL, Width, Height, 0, false, 0, false); GLRenderer->mSamplerManager->Bind(0, CLAMP_NOFILTER); + GLRenderer->mSamplerManager->Bind(1, CLAMP_NONE); glFinish(); wipestartscreen->Bind(0, false, false, false); glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, Width, Height); @@ -515,9 +516,9 @@ bool OpenGLFrameBuffer::Wiper_Burn::Run(int ticks, OpenGLFrameBuffer *fb) gl_RenderState.Apply(); // Burn the new screen on top of it. - fb->wipeendscreen->Bind(1, 0, false, false); + fb->wipeendscreen->Bind(0, 0, false, false); - BurnTexture->CreateTexture(rgb_buffer, WIDTH, HEIGHT, 0, false, 0, false); + BurnTexture->CreateTexture(rgb_buffer, WIDTH, HEIGHT, 1, true, 0, false); GLRenderer->mVBO->RenderArray(GL_TRIANGLE_STRIP, offset, count); gl_RenderState.SetEffect(EFF_NONE); diff --git a/wadsrc/static/shaders/glsl/burn.fp b/wadsrc/static/shaders/glsl/burn.fp index 0cc3f7950..4ab4cac95 100644 --- a/wadsrc/static/shaders/glsl/burn.fp +++ b/wadsrc/static/shaders/glsl/burn.fp @@ -8,8 +8,8 @@ void main() { vec4 frag = vColor; - vec4 t1 = texture2D(texture2, vTexCoord.xy); - vec4 t2 = texture2D(tex, vec2(vTexCoord.x, 1.0-vTexCoord.y)); + vec4 t1 = texture2D(tex, vTexCoord.xy); + vec4 t2 = texture2D(texture2, vec2(vTexCoord.x, 1.0-vTexCoord.y)); FragColor = frag * vec4(t1.r, t1.g, t1.b, t2.a); }