From 40e75f9c893202b6adb6f8782c85b99c9db22f23 Mon Sep 17 00:00:00 2001 From: vladislavbelov Date: Sat, 15 Jan 2022 16:47:42 +0000 Subject: [PATCH] Removes binding additional attribute for water shader added in 1d9a8b2b0b. Reported By: Freagarach This was SVN commit r26223. --- source/renderer/PatchRData.cpp | 5 +++-- source/renderer/PatchRData.h | 2 +- source/renderer/TerrainRenderer.cpp | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/source/renderer/PatchRData.cpp b/source/renderer/PatchRData.cpp index 4dd01e1e2c..d07f1bbff3 100644 --- a/source/renderer/PatchRData.cpp +++ b/source/renderer/PatchRData.cpp @@ -1370,7 +1370,7 @@ void CPatchRData::BuildWater() } } -void CPatchRData::RenderWaterSurface(CShaderProgramPtr& shader) +void CPatchRData::RenderWaterSurface(CShaderProgramPtr& shader, const bool bindWaterData) { ASSERT(m_UpdateFlags == 0); @@ -1382,7 +1382,8 @@ void CPatchRData::RenderWaterSurface(CShaderProgramPtr& shader) // Setup data pointers. const GLsizei stride = sizeof(SWaterVertex); shader->VertexPointer(3, GL_FLOAT, stride, &base[m_VBWater->m_Index].m_Position); - shader->VertexAttribPointer(str_a_waterInfo, 2, GL_FLOAT, false, stride, &base[m_VBWater->m_Index].m_WaterData); + if (bindWaterData) + shader->VertexAttribPointer(str_a_waterInfo, 2, GL_FLOAT, false, stride, &base[m_VBWater->m_Index].m_WaterData); shader->AssertPointersBound(); diff --git a/source/renderer/PatchRData.h b/source/renderer/PatchRData.h index ff08ee0112..b0dd59882b 100644 --- a/source/renderer/PatchRData.h +++ b/source/renderer/PatchRData.h @@ -47,7 +47,7 @@ public: void RenderOutline(); void RenderPriorities(CTextRenderer& textRenderer); - void RenderWaterSurface(CShaderProgramPtr& shader); + void RenderWaterSurface(CShaderProgramPtr& shader, const bool bindWaterData); void RenderWaterShore(CShaderProgramPtr& shader); CPatch* GetPatch() { return m_Patch; } diff --git a/source/renderer/TerrainRenderer.cpp b/source/renderer/TerrainRenderer.cpp index 5a77243067..abc0b9186a 100644 --- a/source/renderer/TerrainRenderer.cpp +++ b/source/renderer/TerrainRenderer.cpp @@ -486,7 +486,7 @@ bool TerrainRenderer::RenderFancyWater(const CShaderDefines& context, int cullGr for (size_t i = 0; i < visiblePatches.size(); ++i) { CPatchRData* data = visiblePatches[i]; - data->RenderWaterSurface(fancyWaterShader); + data->RenderWaterSurface(fancyWaterShader, true); data->RenderWaterShore(fancyWaterShader); } m->fancyWaterTech->EndPass(); @@ -536,7 +536,7 @@ void TerrainRenderer::RenderSimpleWater(int cullGroup) for (size_t i = 0; i < visiblePatches.size(); ++i) { CPatchRData* data = visiblePatches[i]; - data->RenderWaterSurface(waterSimpleShader); + data->RenderWaterSurface(waterSimpleShader, false); } g_Renderer.BindTexture(1, 0);