diff options
author | Nyx Linden <nyx@lindenlab.com> | 2013-09-24 20:22:19 +0000 |
---|---|---|
committer | Nyx Linden <nyx@lindenlab.com> | 2013-09-24 20:22:19 +0000 |
commit | ab0c38612f5d055b41fdf08efa9ab8f2c30ec6b8 (patch) | |
tree | 8f36c6c4fc21d8179465963f3d41e9bd3525bece | |
parent | b0c85e250d28351743e32af21b040868867cec27 (diff) |
SH-2728 SH-4010 FIX pants flare issues
When wearing multiple layers of pants, the morph masks for all layers would be composited,
resulting in the smallest intersection of all layers. Instead we should only be applying the
top layer. This change will affect all consumers of the llappearance library.
-rw-r--r-- | indra/llappearance/lltexlayer.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp index 59765b3833..510d8ce879 100644 --- a/indra/llappearance/lltexlayer.cpp +++ b/indra/llappearance/lltexlayer.cpp @@ -1776,13 +1776,11 @@ LLTexLayer* LLTexLayerTemplate::getLayer(U32 i) const /*virtual*/ void LLTexLayerTemplate::gatherAlphaMasks(U8 *data, S32 originX, S32 originY, S32 width, S32 height) { U32 num_wearables = updateWearableCache(); - for (U32 i = 0; i < num_wearables; i++) + U32 i = num_wearables - 1; // For rendering morph masks, we only want to use the top wearable + LLTexLayer *layer = getLayer(i); + if (layer) { - LLTexLayer *layer = getLayer(i); - if (layer) - { - layer->addAlphaMask(data, originX, originY, width, height); - } + layer->addAlphaMask(data, originX, originY, width, height); } } |