summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNyx Linden <nyx@lindenlab.com>2013-09-24 20:22:19 +0000
committerNyx Linden <nyx@lindenlab.com>2013-09-24 20:22:19 +0000
commitab0c38612f5d055b41fdf08efa9ab8f2c30ec6b8 (patch)
tree8f36c6c4fc21d8179465963f3d41e9bd3525bece
parentb0c85e250d28351743e32af21b040868867cec27 (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.cpp10
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);
}
}