diff options
Diffstat (limited to 'indra/llrender')
| -rw-r--r-- | indra/llrender/llglslshader.cpp | 2 | ||||
| -rw-r--r-- | indra/llrender/llglslshader.h | 1 | ||||
| -rw-r--r-- | indra/llrender/llrender.cpp | 2 | ||||
| -rw-r--r-- | indra/llrender/llrendertarget.cpp | 3 | ||||
| -rw-r--r-- | indra/llrender/llshadermgr.cpp | 20 | 
5 files changed, 19 insertions, 9 deletions
| diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 5a6f3d8292..6b2852670a 100644 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -66,7 +66,7 @@ BOOL shouldChange(const LLVector4& v1, const LLVector4& v2)  LLShaderFeatures::LLShaderFeatures()  : calculatesLighting(false), isShiny(false), isFullbright(false), hasWaterFog(false),  hasTransport(false), hasSkinning(false), hasObjectSkinning(false), hasAtmospherics(false), isSpecular(false), -hasGamma(false), hasLighting(false), calculatesAtmospherics(false), mIndexedTextureChannels(0), disableTextureIndex(false), +hasGamma(false), hasLighting(false), isAlphaLighting(false), calculatesAtmospherics(false), mIndexedTextureChannels(0), disableTextureIndex(false),  hasAlphaMask(false)  {  } diff --git a/indra/llrender/llglslshader.h b/indra/llrender/llglslshader.h index 2a6c050eac..00b4b0dbd4 100644 --- a/indra/llrender/llglslshader.h +++ b/indra/llrender/llglslshader.h @@ -36,6 +36,7 @@ public:  	bool calculatesLighting;  	bool calculatesAtmospherics;  	bool hasLighting; // implies no transport (it's possible to have neither though) +	bool isAlphaLighting; // indicates lighting shaders need not be linked in (lighting performed directly in alpha shader to match deferred lighting functions)  	bool isShiny;  	bool isFullbright; // implies no lighting  	bool isSpecular; diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index cd827f5091..03a9884c2b 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -1434,6 +1434,8 @@ void LLRender::loadIdentity()  	flush();  	{ +		llassert_always(mMatrixMode < NUM_MATRIX_MODES) ; +  		mMatrix[mMatrixMode][mMatIdx[mMatrixMode]].make_identity();  		mMatHash[mMatrixMode]++;  	} diff --git a/indra/llrender/llrendertarget.cpp b/indra/llrender/llrendertarget.cpp index 1aa12614ea..ef2a7395da 100644 --- a/indra/llrender/llrendertarget.cpp +++ b/indra/llrender/llrendertarget.cpp @@ -457,7 +457,8 @@ void LLRenderTarget::copyContents(LLRenderTarget& source, S32 srcX0, S32 srcY0,  	gGL.flush();  	if (!source.mFBO || !mFBO)  	{ -		llerrs << "Cannot copy framebuffer contents for non FBO render targets." << llendl; +		llwarns << "Cannot copy framebuffer contents for non FBO render targets." << llendl; +		return;  	} diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index ac9dc9544d..1a03aeebb7 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -107,10 +107,13 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)  			{  				return FALSE;  			} -			 -			if (!shader->attachObject("lighting/sumLightsSpecularV.glsl")) +		 +			if (!features->isAlphaLighting)  			{ -				return FALSE; +				if (!shader->attachObject("lighting/sumLightsSpecularV.glsl")) +				{ +					return FALSE; +				}  			}  			if (!shader->attachObject("lighting/lightSpecularV.glsl")) @@ -125,9 +128,12 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)  				return FALSE;  			} -			if (!shader->attachObject("lighting/sumLightsV.glsl")) +			if (!features->isAlphaLighting)  			{ -				return FALSE; +				if (!shader->attachObject("lighting/sumLightsV.glsl")) +				{ +					return FALSE; +				}  			}  			if (!shader->attachObject("lighting/lightV.glsl")) @@ -296,7 +302,7 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)  				}  				shader->mFeatures.mIndexedTextureChannels = llmax(LLGLSLShader::sIndexedTextureChannels-1, 1);  			} -		}		 +		}  	}  	// NOTE order of shader object attaching is VERY IMPORTANT!!! @@ -579,7 +585,7 @@ GLhandleARB LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shade  		text[count++] = strdup("#define ATTRIBUTE attribute\n");  		text[count++] = strdup("#define VARYING varying\n");  	} -	else if (version < 3.f) +	else if (version < 3.3f)  	{  		//set version to 1.20  		text[count++] = strdup("#version 120\n"); | 
