diff options
| -rw-r--r-- | indra/llrender/llcubemap.cpp | 5 | ||||
| -rw-r--r-- | indra/llrender/llgl.cpp | 19 | ||||
| -rw-r--r-- | indra/llrender/llimagegl.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/lldrawpoolterrain.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llvosky.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 16 | 
6 files changed, 42 insertions, 20 deletions
| diff --git a/indra/llrender/llcubemap.cpp b/indra/llrender/llcubemap.cpp index 5eb29efbfa..a75f01c708 100644 --- a/indra/llrender/llcubemap.cpp +++ b/indra/llrender/llcubemap.cpp @@ -36,6 +36,7 @@  #include "m4math.h"  #include "llrender.h" +#include "llglslshader.h"  #include "llglheaders.h" @@ -195,7 +196,7 @@ void LLCubeMap::enableTexture(S32 stage)  void LLCubeMap::enableTextureCoords(S32 stage)  {  	mTextureCoordStage = stage; -	if (gGLManager.mHasCubeMap && stage >= 0 && LLCubeMap::sUseCubeMaps) +	if (!LLGLSLShader::sNoFixedFunction && gGLManager.mHasCubeMap && stage >= 0 && LLCubeMap::sUseCubeMaps)  	{  		if (stage > 0)  		{ @@ -237,7 +238,7 @@ void LLCubeMap::disableTexture(void)  void LLCubeMap::disableTextureCoords(void)  { -	if (gGLManager.mHasCubeMap && mTextureCoordStage >= 0 && LLCubeMap::sUseCubeMaps) +	if (!LLGLSLShader::sNoFixedFunction && gGLManager.mHasCubeMap && mTextureCoordStage >= 0 && LLCubeMap::sUseCubeMaps)  	{  		if (mTextureCoordStage > 0)  		{ diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp index 1667afe179..32d8b105a3 100644 --- a/indra/llrender/llgl.cpp +++ b/indra/llrender/llgl.cpp @@ -1783,17 +1783,30 @@ LLGLState::LLGLState(LLGLenum state, S32 enabled) :  	mState(state), mWasEnabled(FALSE), mIsEnabled(FALSE)  {  	if (LLGLSLShader::sNoFixedFunction) -	{ //always disable state that's deprecated post GL 3.0 +	{ //always ignore state that's deprecated post GL 3.0  		switch (state)  		{  			case GL_ALPHA_TEST: -				enabled = 0; +			case GL_RESCALE_NORMAL: +			case GL_NORMALIZE: +			case GL_TEXTURE_GEN_R: +			case GL_TEXTURE_GEN_S: +			case GL_TEXTURE_GEN_T: +			case GL_TEXTURE_GEN_Q: +			case GL_VERTEX_PROGRAM_TWO_SIDE: +			case GL_LIGHTING: +			case GL_COLOR_MATERIAL: +			case GL_CLAMP_VERTEX_COLOR: +			case GL_CLAMP_FRAGMENT_COLOR: +			case GL_FOG: +			case GL_LINE_STIPPLE: +				mState = 0;  				break;  		}  	}  	stop_glerror(); -	if (state) +	if (mState)  	{  		mWasEnabled = sStateMap[state];  		llassert(mWasEnabled == glIsEnabled(state)); diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 7188b0fa44..128773df5a 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -36,7 +36,9 @@  #include "llmath.h"  #include "llgl.h" +#include "llglslshader.h"  #include "llrender.h" +  //----------------------------------------------------------------------------  const F32 MIN_TEXTURE_LIFETIME = 10.f; @@ -723,7 +725,7 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips)  		}  		else if (!is_compressed)  		{ -			if (mAutoGenMips) +			if (mAutoGenMips && !LLGLSLShader::sNoFixedFunction) //auto-generating mipmaps is deprecated in GL 3.0  			{  				glTexParameteri(LLTexUnit::getInternalType(mBindTarget), GL_GENERATE_MIPMAP_SGIS, TRUE);  				stop_glerror(); diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp index cac8439eb8..5078da02e3 100644 --- a/indra/newview/lldrawpoolterrain.cpp +++ b/indra/newview/lldrawpoolterrain.cpp @@ -383,14 +383,11 @@ void LLDrawPoolTerrain::renderFullShader()  	gGL.getTexUnit(alpha_ramp)->unbind(LLTexUnit::TT_TEXTURE);  	gGL.getTexUnit(4)->disable();  	gGL.getTexUnit(4)->activate(); -	glDisable(GL_TEXTURE_GEN_S); -	glDisable(GL_TEXTURE_GEN_T);  	gGL.getTexUnit(detail3)->unbind(LLTexUnit::TT_TEXTURE);  	gGL.getTexUnit(3)->disable();  	gGL.getTexUnit(3)->activate(); -	glDisable(GL_TEXTURE_GEN_S); -	glDisable(GL_TEXTURE_GEN_T); +	  	gGL.matrixMode(LLRender::MM_TEXTURE);  	gGL.loadIdentity();  	gGL.matrixMode(LLRender::MM_MODELVIEW); @@ -398,8 +395,7 @@ void LLDrawPoolTerrain::renderFullShader()  	gGL.getTexUnit(detail2)->unbind(LLTexUnit::TT_TEXTURE);  	gGL.getTexUnit(2)->disable();  	gGL.getTexUnit(2)->activate(); -	glDisable(GL_TEXTURE_GEN_S); -	glDisable(GL_TEXTURE_GEN_T); +	  	gGL.matrixMode(LLRender::MM_TEXTURE);  	gGL.loadIdentity();  	gGL.matrixMode(LLRender::MM_MODELVIEW); @@ -407,8 +403,7 @@ void LLDrawPoolTerrain::renderFullShader()  	gGL.getTexUnit(detail1)->unbind(LLTexUnit::TT_TEXTURE);  	gGL.getTexUnit(1)->disable();  	gGL.getTexUnit(1)->activate(); -	glDisable(GL_TEXTURE_GEN_S); -	glDisable(GL_TEXTURE_GEN_T); +	  	gGL.matrixMode(LLRender::MM_TEXTURE);  	gGL.loadIdentity();  	gGL.matrixMode(LLRender::MM_MODELVIEW); @@ -419,8 +414,6 @@ void LLDrawPoolTerrain::renderFullShader()  	gGL.getTexUnit(detail0)->unbind(LLTexUnit::TT_TEXTURE);  	gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);  	gGL.getTexUnit(0)->activate(); -	glDisable(GL_TEXTURE_GEN_S); -	glDisable(GL_TEXTURE_GEN_T);  	gGL.matrixMode(LLRender::MM_TEXTURE);  	gGL.loadIdentity();  	gGL.matrixMode(LLRender::MM_MODELVIEW); diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp index ef21e7373e..29ca16ede6 100644 --- a/indra/newview/llvosky.cpp +++ b/indra/newview/llvosky.cpp @@ -2162,7 +2162,10 @@ void LLVOSky::updateFog(const F32 distance)  	glFogf(GL_FOG_DENSITY, fog_density); -	glHint(GL_FOG_HINT, GL_NICEST); +	if (!LLGLSLShader::sNoFixedFunction) +	{ +		glHint(GL_FOG_HINT, GL_NICEST); +	}  	stop_glerror();  } diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index db614388f4..2248d18155 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -5236,7 +5236,11 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)  	}  	// Init GL state -	glDisable(GL_LIGHTING); +	if (!LLGLSLShader::sNoFixedFunction) +	{ +		glDisable(GL_LIGHTING); +	} +  	for (S32 i = 0; i < 8; ++i)  	{  		gGL.getLight(i)->disable(); @@ -5257,7 +5261,10 @@ void LLPipeline::enableLights(U32 mask)  		stop_glerror();  		if (!mLightMask)  		{ -			glEnable(GL_LIGHTING); +			if (!LLGLSLShader::sNoFixedFunction) +			{ +				glEnable(GL_LIGHTING); +			}  		}  		if (mask)  		{ @@ -5280,7 +5287,10 @@ void LLPipeline::enableLights(U32 mask)  		}  		else  		{ -			glDisable(GL_LIGHTING); +			if (!LLGLSLShader::sNoFixedFunction) +			{ +				glDisable(GL_LIGHTING); +			}  		}  		mLightMask = mask;  		stop_glerror(); | 
