diff options
| author | Dave Parks <davep@lindenlab.com> | 2011-09-24 23:29:38 -0500 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2011-09-24 23:29:38 -0500 | 
| commit | f49e7014ca9693d77ff265d3fc668a8b05ddf085 (patch) | |
| tree | 96895fe605247d78e6bb3951f61a47e2d744a188 /indra | |
| parent | c70026499afccc2730119ae3c7abc7ab971170ea (diff) | |
SH-2244 Fix for crash when transparent water disabled (silently ignore setting when basic shaders enabled)
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/llui.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/lldrawpoolwater.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llvowater.cpp | 2 | 
3 files changed, 10 insertions, 5 deletions
| diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index 212672b809..36f87fc597 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -534,7 +534,7 @@ void gl_draw_scaled_image_with_border(S32 x, S32 y, S32 width, S32 height, LLTex  		}  	} -	gGL.getTexUnit(0)->bind(image); +	gGL.getTexUnit(0)->bind(image, true);  	gGL.color4fv(color.mV); @@ -732,7 +732,7 @@ void gl_draw_scaled_rotated_image(S32 x, S32 y, S32 width, S32 height, F32 degre  	LLGLSUIDefault gls_ui; -	gGL.getTexUnit(0)->bind(image); +	gGL.getTexUnit(0)->bind(image, true);  	gGL.color4fv(color.mV); @@ -785,7 +785,7 @@ void gl_draw_scaled_rotated_image(S32 x, S32 y, S32 width, S32 height, F32 degre  		LLMatrix3 quat(0.f, 0.f, degrees*DEG_TO_RAD); -		gGL.getTexUnit(0)->bind(image); +		gGL.getTexUnit(0)->bind(image, true);  		gGL.color4fv(color.mV); 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, | 
