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 | 8d22adbbed589125c89ea8e28610816361615753 (patch) | |
tree | bc6209bea2e86eff62efa447ab1f5919b9b3ca1b /indra/newview/llvovolume.cpp | |
parent | e0582d4bc71e2f367b4cf4a6f0b808451620b52f (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) { |