summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2011-09-24 23:29:38 -0500
committerDave Parks <davep@lindenlab.com>2011-09-24 23:29:38 -0500
commitf49e7014ca9693d77ff265d3fc668a8b05ddf085 (patch)
tree96895fe605247d78e6bb3951f61a47e2d744a188 /indra/newview
parentc70026499afccc2730119ae3c7abc7ab971170ea (diff)
SH-2244 Fix for crash when transparent water disabled (silently ignore setting when basic shaders enabled)
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/lldrawpoolwater.cpp7
-rw-r--r--indra/newview/llvowater.cpp2
2 files changed, 7 insertions, 2 deletions
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index c97f92fa6f..5de0b8c796 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -167,7 +167,7 @@ void LLDrawPoolWater::render(S32 pass)
std::sort(mDrawFace.begin(), mDrawFace.end(), LLFace::CompareDistanceGreater());
// See if we are rendering water as opaque or not
- if (!gSavedSettings.getBOOL("RenderTransparentWater"))
+ if (!gSavedSettings.getBOOL("RenderTransparentWater") && !LLGLSLShader::sNoFixedFunction)
{
// render water for low end hardware
renderOpaqueLegacyWater();
@@ -332,6 +332,11 @@ void LLDrawPoolWater::renderOpaqueLegacyWater()
{
LLVOSky *voskyp = gSky.mVOSkyp;
+ if (LLGLSLShader::sNoFixedFunction)
+ {
+ gObjectSimpleProgram.bind();
+ }
+
stop_glerror();
// Depth sorting and write to depth buffer
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index 75198c465b..7df50ec815 100644
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
@@ -160,7 +160,7 @@ BOOL LLVOWater::updateGeometry(LLDrawable *drawable)
static const unsigned int vertices_per_quad = 4;
static const unsigned int indices_per_quad = 6;
- const S32 size = gSavedSettings.getBOOL("RenderTransparentWater") ? 16 : 1;
+ const S32 size = gSavedSettings.getBOOL("RenderTransparentWater") && !LLGLSLShader::sNoFixedFunction ? 16 : 1;
const S32 num_quads = size * size;
face->setSize(vertices_per_quad * num_quads,