From 9757cc25394e08c4774cae779aef8f58fb1fd10b Mon Sep 17 00:00:00 2001 From: vladislavbelov Date: Tue, 11 Jan 2022 05:56:44 +0000 Subject: [PATCH] Removes direct shader binding, uses BeginPass always following e1374252b7. Tested By: Stan Differential Revision: https://code.wildfiregames.com/D4431 This was SVN commit r26199. --- source/graphics/LOSTexture.cpp | 3 --- source/renderer/OverlayRenderer.cpp | 3 --- source/renderer/PostprocManager.cpp | 10 ++++------ source/renderer/TerrainOverlay.cpp | 4 ---- source/renderer/TerrainRenderer.cpp | 4 ---- 5 files changed, 4 insertions(+), 20 deletions(-) diff --git a/source/graphics/LOSTexture.cpp b/source/graphics/LOSTexture.cpp index 88599b1340..aa29c9626b 100644 --- a/source/graphics/LOSTexture.cpp +++ b/source/graphics/LOSTexture.cpp @@ -148,8 +148,6 @@ void CLOSTexture::InterpolateLOS(Renderer::Backend::GL::CDeviceCommandContext* d glDisable(GL_BLEND); - shader->Bind(); - shader->BindTexture(str_losTex1, m_Texture.get()); shader->BindTexture(str_losTex2, (m_WhichTex ? m_TextureSmooth1 : m_TextureSmooth2).get()); @@ -191,7 +189,6 @@ void CLOSTexture::InterpolateLOS(Renderer::Backend::GL::CDeviceCommandContext* d g_Renderer.SetViewport(oldVp); - shader->Unbind(); m_SmoothTech->EndPass(); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); diff --git a/source/renderer/OverlayRenderer.cpp b/source/renderer/OverlayRenderer.cpp index 6417dee867..66102357ac 100644 --- a/source/renderer/OverlayRenderer.cpp +++ b/source/renderer/OverlayRenderer.cpp @@ -431,7 +431,6 @@ void OverlayRenderer::RenderTexturedOverlayLines() CShaderProgramPtr shaderTexLineNormal = shaderTechTexLineNormal->GetShader(); - shaderTexLineNormal->Bind(); shaderTexLineNormal->BindTexture(str_losTex, los.GetTexture()); shaderTexLineNormal->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f); @@ -452,7 +451,6 @@ void OverlayRenderer::RenderTexturedOverlayLines() CShaderProgramPtr shaderTexLineAlwaysVisible = shaderTechTexLineAlwaysVisible->GetShader(); - shaderTexLineAlwaysVisible->Bind(); // TODO: losTex and losTransform are unused in the always visible shader; see if these can be safely omitted shaderTexLineAlwaysVisible->BindTexture(str_losTex, los.GetTexture()); shaderTexLineAlwaysVisible->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f); @@ -529,7 +527,6 @@ void OverlayRenderer::RenderQuadOverlays() CLOSTexture& los = g_Renderer.GetSceneRenderer().GetScene().GetLOSTexture(); - shader->Bind(); shader->BindTexture(str_losTex, los.GetTexture()); shader->Uniform(str_losTransform, los.GetTextureMatrix()[0], los.GetTextureMatrix()[12], 0.f, 0.f); diff --git a/source/renderer/PostprocManager.cpp b/source/renderer/PostprocManager.cpp index d148bdc650..60634329d4 100644 --- a/source/renderer/PostprocManager.cpp +++ b/source/renderer/PostprocManager.cpp @@ -416,8 +416,6 @@ void CPostprocManager::ApplyEffect(CShaderTechniquePtr &shaderTech1, int pass) shaderTech1->BeginPass(pass); CShaderProgramPtr shader = shaderTech1->GetShader(pass); - shader->Bind(); - // Use the textures from the current FBO as input to the shader. // We also bind a bunch of other textures and parameters, but since // this only happens once per frame the overhead is negligible. @@ -444,7 +442,8 @@ void CPostprocManager::ApplyEffect(CShaderTechniquePtr &shaderTech1, int pass) shader->Uniform(str_saturation, g_LightEnv.m_Saturation); shader->Uniform(str_bloom, g_LightEnv.m_Bloom); - float quadVerts[] = { + float quadVerts[] = + { 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, -1.0f, @@ -453,7 +452,8 @@ void CPostprocManager::ApplyEffect(CShaderTechniquePtr &shaderTech1, int pass) 1.0f, -1.0f, 1.0f, 1.0f }; - float quadTex[] = { + float quadTex[] = + { 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, @@ -467,8 +467,6 @@ void CPostprocManager::ApplyEffect(CShaderTechniquePtr &shaderTech1, int pass) shader->AssertPointersBound(); glDrawArrays(GL_TRIANGLES, 0, 6); - shader->Unbind(); - shaderTech1->EndPass(pass); glDepthMask(GL_TRUE); diff --git a/source/renderer/TerrainOverlay.cpp b/source/renderer/TerrainOverlay.cpp index 2a6b0b8b15..8ff48b78d2 100644 --- a/source/renderer/TerrainOverlay.cpp +++ b/source/renderer/TerrainOverlay.cpp @@ -225,7 +225,6 @@ void TerrainOverlay::RenderTile(const CColor& color, bool draw_hidden, ssize_t i overlayTech->BeginPass(); CShaderProgramPtr overlayShader = overlayTech->GetShader(); - overlayShader->Bind(); overlayShader->Uniform(str_transform, g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection()); overlayShader->Uniform(str_color, color); @@ -235,7 +234,6 @@ void TerrainOverlay::RenderTile(const CColor& color, bool draw_hidden, ssize_t i glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glDrawArrays(GL_TRIANGLES, 0, vertices.size() / 3); - overlayShader->Unbind(); overlayTech->EndPass(); #endif } @@ -287,7 +285,6 @@ void TerrainOverlay::RenderTileOutline(const CColor& color, int line_width, bool overlayTech->BeginPass(); CShaderProgramPtr overlayShader = overlayTech->GetShader(); - overlayShader->Bind(); overlayShader->Uniform(str_transform, g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection()); overlayShader->Uniform(str_color, color); @@ -296,7 +293,6 @@ void TerrainOverlay::RenderTileOutline(const CColor& color, int line_width, bool glDrawArrays(GL_QUADS, 0, vertices.size() / 3); - overlayShader->Unbind(); overlayTech->EndPass(); if (line_width != 1) diff --git a/source/renderer/TerrainRenderer.cpp b/source/renderer/TerrainRenderer.cpp index 2eb73f893e..550da6ba2b 100644 --- a/source/renderer/TerrainRenderer.cpp +++ b/source/renderer/TerrainRenderer.cpp @@ -181,7 +181,6 @@ void TerrainRenderer::RenderTerrainOverlayTexture(int cullGroup, CMatrix3D& text debugOverlayTech->BeginPass(); CShaderProgramPtr debugOverlayShader = debugOverlayTech->GetShader(); - debugOverlayShader->Bind(); debugOverlayShader->BindTexture(str_baseTex, texture); debugOverlayShader->Uniform(str_transform, g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection()); debugOverlayShader->Uniform(str_textureTransform, textureMatrix); @@ -213,7 +212,6 @@ void TerrainRenderer::RenderTerrainOverlayTexture(int cullGroup, CMatrix3D& text glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } - debugOverlayShader->Unbind(); debugOverlayTech->EndPass(); glDepthMask(1); @@ -521,7 +519,6 @@ void TerrainRenderer::RenderSimpleWater(int cullGroup) waterSimpleTech->BeginPass(); CShaderProgramPtr waterSimpleShader = waterSimpleTech->GetShader(); - waterSimpleShader->Bind(); waterSimpleShader->BindTexture(str_baseTex, waterManager.m_WaterTexture[waterManager.GetCurrentTextureIndex(1.6)]); waterSimpleShader->BindTexture(str_losTex, losTexture.GetTextureSmooth()); waterSimpleShader->Uniform(str_transform, g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection()); @@ -536,7 +533,6 @@ void TerrainRenderer::RenderSimpleWater(int cullGroup) data->RenderWater(waterSimpleShader, false, true); } - waterSimpleShader->Unbind(); g_Renderer.BindTexture(1, 0); glActiveTextureARB(GL_TEXTURE0_ARB);