summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorDon Kjer <don@lindenlab.com>2012-09-28 23:56:55 +0000
committerDon Kjer <don@lindenlab.com>2012-09-28 23:56:55 +0000
commit0a94b5bb390675bb1746f24c8352e73240a8d670 (patch)
tree1af6208350561a5afab804caeeb7898bc85a40cf /indra
parent5c101330caf7eb4ee145c8b2f2921ff6b3a870ee (diff)
Exposing more tex layer information for hash id generation
Diffstat (limited to 'indra')
-rw-r--r--indra/llappearance/llavatarappearancedefines.h1
-rw-r--r--indra/llappearance/lltexlayer.cpp20
-rw-r--r--indra/llappearance/lltexlayer.h4
3 files changed, 21 insertions, 4 deletions
diff --git a/indra/llappearance/llavatarappearancedefines.h b/indra/llappearance/llavatarappearancedefines.h
index 0351f28429..2e073bf5d2 100644
--- a/indra/llappearance/llavatarappearancedefines.h
+++ b/indra/llappearance/llavatarappearancedefines.h
@@ -46,6 +46,7 @@ extern const S32 IMPOSTOR_PERIOD;
//--------------------------------------------------------------------
enum ETextureIndex
{
+ TEX_INVALID = -1,
TEX_HEAD_BODYPAINT = 0,
TEX_UPPER_SHIRT,
TEX_LOWER_PANTS,
diff --git a/indra/llappearance/lltexlayer.cpp b/indra/llappearance/lltexlayer.cpp
index 79d870c61d..6f079b4abb 100644
--- a/indra/llappearance/lltexlayer.cpp
+++ b/indra/llappearance/lltexlayer.cpp
@@ -903,6 +903,21 @@ const std::string& LLTexLayerInterface::getName() const
return mInfo->mName;
}
+ETextureIndex LLTexLayerInterface::getLocalTextureIndex() const
+{
+ return (ETextureIndex) mInfo->mLocalTexture;
+}
+
+LLWearableType::EType LLTexLayerInterface::getWearableType() const
+{
+ ETextureIndex te = getLocalTextureIndex();
+ if (TEX_INVALID == te)
+ {
+ return LLWearableType::WT_INVALID;
+ }
+ return LLAvatarAppearanceDictionary::getTEWearableType(te);
+}
+
LLTexLayerInterface::ERenderPass LLTexLayerInterface::getRenderPass() const
{
return mInfo->mRenderPass;
@@ -1585,13 +1600,12 @@ U32 LLTexLayerTemplate::updateWearableCache() const
{
mWearableCache.clear();
- S32 te = mInfo->mLocalTexture;
- if (te == -1)
+ LLWearableType::EType wearable_type = getWearableType();
+ if (LLWearableType::WT_INVALID == wearable_type)
{
//this isn't a cloneable layer
return 0;
}
- LLWearableType::EType wearable_type = LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te);
U32 num_wearables = getAvatarAppearance()->getWearableData()->getWearableCount(wearable_type);
U32 added = 0;
for (U32 i = 0; i < num_wearables; i++)
diff --git a/indra/llappearance/lltexlayer.h b/indra/llappearance/lltexlayer.h
index a288d7fc50..f9f8bdd817 100644
--- a/indra/llappearance/lltexlayer.h
+++ b/indra/llappearance/lltexlayer.h
@@ -72,6 +72,8 @@ public:
const LLTexLayerInfo* getInfo() const { return mInfo; }
virtual BOOL setInfo(const LLTexLayerInfo *info, LLWearable* wearable); // sets mInfo, calls initialization functions
+ LLWearableType::EType getWearableType() const;
+ LLAvatarAppearanceDefines::ETextureIndex getLocalTextureIndex() const;
const std::string& getName() const;
const LLTexLayerSet* const getTexLayerSet() const { return mTexLayerSet; }
@@ -211,7 +213,7 @@ public:
LLAvatarAppearance* getAvatarAppearance() const { return mAvatarAppearance; }
const std::string getBodyRegionName() const;
BOOL hasComposite() const { return (mComposite.notNull()); }
- LLAvatarAppearanceDefines::EBakedTextureIndex getBakedTexIndex() { return mBakedTexIndex; }
+ LLAvatarAppearanceDefines::EBakedTextureIndex getBakedTexIndex() const { return mBakedTexIndex; }
void setBakedTexIndex(LLAvatarAppearanceDefines::EBakedTextureIndex index) { mBakedTexIndex = index; }
BOOL isVisible() const { return mIsVisible; }