Removes direct shader binding, uses BeginPass always following e1374252b7.

Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4431
This was SVN commit r26199.
This commit is contained in:
vladislavbelov
2022-01-11 05:56:44 +00:00
parent 2e38c117d2
commit 9757cc2539
5 changed files with 4 additions and 20 deletions
-3
View File
@@ -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);
-3
View File
@@ -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);
+4 -6
View File
@@ -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);
-4
View File
@@ -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)
-4
View File
@@ -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);