diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lldrawpoolalpha.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llvovolume.cpp | 16 | 
2 files changed, 14 insertions, 5 deletions
| diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index d671a5968f..da0467315f 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -226,6 +226,9 @@ void LLDrawPoolAlpha::beginRenderPass(S32 pass)          }      }  	gPipeline.enableLightsDynamic(); + +    LLGLSLShader::bindNoShader(); +	current_shader = NULL;  }  void LLDrawPoolAlpha::endRenderPass( S32 pass ) diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index edd5f5e2cb..3866045b1d 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -6493,14 +6493,20 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace  					}  					else  					{ -						if (mat->getEnvironmentIntensity() > 0 || -							te->getShiny() > 0) +						if (mat->getEnvironmentIntensity() > 0 || te->getShiny() > 0)  						{  							material_pass = true;  						} -						else if (!invisible) +						else  						{ -							registerFace(group, facep, LLRenderPass::PASS_FULLBRIGHT); +                            if (opaque) +						    { +							    registerFace(group, facep, LLRenderPass::PASS_FULLBRIGHT); +                            } +                            else +                            { +                                registerFace(group, facep, LLRenderPass::PASS_ALPHA); +                            }  						}  					}  				} @@ -6565,7 +6571,7 @@ U32 LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, LLFace  				{  					registerFace(group, facep, fullbright ? LLRenderPass::PASS_FULLBRIGHT_ALPHA_MASK : LLRenderPass::PASS_ALPHA_MASK);  				} -				else if (is_alpha || (te->getColor().mV[3] < 0.999f)) +				else if (is_alpha || transparent)  				{  					registerFace(group, facep, LLRenderPass::PASS_ALPHA);  				} | 
