diff options
Diffstat (limited to 'indra/llrender')
| -rw-r--r-- | indra/llrender/llrender.cpp | 14 | ||||
| -rw-r--r-- | indra/llrender/llrender.h | 4 | 
2 files changed, 17 insertions, 1 deletions
| diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp index 5f5b76d425..f0d59d0eaf 100644 --- a/indra/llrender/llrender.cpp +++ b/indra/llrender/llrender.cpp @@ -1114,6 +1114,7 @@ void LLRender::syncLightState()  		shader->uniform3fv("light_direction", 8, direction[0].mV);  		shader->uniform3fv("light_attenuation", 8, attenuation[0].mV);  		shader->uniform3fv("light_diffuse", 8, diffuse[0].mV); +		shader->uniform4fv("light_ambient", 1, mAmbientLightColor.mV);  	}  } @@ -1638,6 +1639,19 @@ LLLightState* LLRender::getLight(U32 index)  	return NULL;  } +void LLRender::setAmbientLightColor(const LLColor4& color) +{ +	if (color != mAmbientLightColor) +	{ +		++mLightHash; +		mAmbientLightColor = color; +		if (!LLGLSLShader::sNoFixedFunction) +		{ +			glLightModelfv(GL_LIGHT_MODEL_AMBIENT, color.mV); +		} +	} +} +  bool LLRender::verifyTexUnitActive(U32 unitToVerify)  {  	if (mCurrTextureUnitIndex == unitToVerify) diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h index 3f319022f6..7d636060f5 100644 --- a/indra/llrender/llrender.h +++ b/indra/llrender/llrender.h @@ -406,7 +406,8 @@ public:  		       eBlendFactor alpha_sfactor, eBlendFactor alpha_dfactor);  	LLLightState* getLight(U32 index); - +	void setAmbientLightColor(const LLColor4& color); +	  	LLTexUnit* getTexUnit(U32 index);  	U32	getCurrentTexUnitIndex(void) const { return mCurrTextureUnitIndex; } @@ -437,6 +438,7 @@ private:  	glh::matrix4f mMatrix[NUM_MATRIX_MODES][LL_MATRIX_STACK_DEPTH];  	U32 mCurMatHash[NUM_MATRIX_MODES];  	U32 mLightHash; +	LLColor4 mAmbientLightColor;  	bool			mDirty;  	U32				mCount; | 
