for SH-2242: fixes the assertion caused by gGL.diffuseColor4f when shadows is on.

master
Xiaohong Bao 2011-09-01 17:18:16 -06:00
parent 7ee10ae1de
commit 38c19f4e55
2 changed files with 9 additions and 7 deletions

View File

@ -353,15 +353,15 @@ void LLDrawPoolAvatar::beginShadowPass(S32 pass)
{
sVertexProgram = &gDeferredAvatarShadowProgram;
//gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.2f);
gGL.diffuseColor4f(1,1,1,1);
//gGL.setAlphaRejectSettings(LLRender::CF_GREATER_EQUAL, 0.2f);
if ((sShaderLevel > 0)) // for hardware blending
{
sRenderingSkinned = TRUE;
sVertexProgram->bind();
}
gGL.diffuseColor4f(1,1,1,1);
}
else
{

View File

@ -4041,6 +4041,8 @@ void LLPipeline::renderGeomShadow(LLCamera& camera)
pool_set_t::iterator iter2 = iter1;
if (hasRenderType(poolp->getType()) && poolp->getNumShadowPasses() > 0)
{
poolp->prerender() ;
gGLLastMatrix = NULL;
glLoadMatrixd(gGLModelView);
@ -8341,12 +8343,8 @@ void LLPipeline::renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera
}
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
gGL.diffuseColor4f(1,1,1,1);
stop_glerror();
gGL.setColorMask(false, false);
//glCullFace(GL_FRONT);
@ -8357,6 +8355,10 @@ void LLPipeline::renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera
{ //occlusion program is general purpose depth-only no-textures
gOcclusionProgram.bind();
}
gGL.diffuseColor4f(1,1,1,1);
gGL.setColorMask(false, false);
LLFastTimer ftm(FTM_SHADOW_SIMPLE);
gGL.getTexUnit(0)->disable();
for (U32 i = 0; i < sizeof(types)/sizeof(U32); ++i)