diff options
author | Dave Parks <davep@lindenlab.com> | 2012-02-10 14:28:16 -0600 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2012-02-10 14:28:16 -0600 |
commit | bb1a1f9d01fdbc377ca61f52041f66a86b974086 (patch) | |
tree | 99f4a78d969b0ac2c4897f50b19f9bfed2cf81c8 /indra/newview/llvovolume.cpp | |
parent | ae7d475aebc836203984654912df036a11c365fc (diff) |
SH-2963 Fix for highlight transparent not highlighting 100% transparent objects.
Diffstat (limited to 'indra/newview/llvovolume.cpp')
-rw-r--r-- | indra/newview/llvovolume.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 6354230796..438d578ac5 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -4433,10 +4433,10 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group) else { if (te->getColor().mV[3] > 0.f) - { + { //only treat as alpha in the pipeline if < 100% transparent drawablep->setState(LLDrawable::HAS_ALPHA); - alpha_faces.push_back(facep); } + alpha_faces.push_back(facep); } } else @@ -4952,7 +4952,11 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std:: if (is_alpha) { // can we safely treat this as an alpha mask? - if (facep->canRenderAsMask()) + if (facep->getFaceColor().mV[3] <= 0.f) + { //100% transparent, don't render unless we're highlighting transparent + registerFace(group, facep, LLRenderPass::PASS_ALPHA_INVISIBLE); + } + else if (facep->canRenderAsMask()) { if (te->getFullbright() || LLPipeline::sNoAlpha) { |