summaryrefslogtreecommitdiff
path: root/indra/llappearance/llavatarappearance.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llappearance/llavatarappearance.h')
-rw-r--r--indra/llappearance/llavatarappearance.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/indra/llappearance/llavatarappearance.h b/indra/llappearance/llavatarappearance.h
index 0e746b3b9d..9bff6b111e 100644
--- a/indra/llappearance/llavatarappearance.h
+++ b/indra/llappearance/llavatarappearance.h
@@ -30,6 +30,7 @@
#include "llcharacter.h"
//#include "llframetimer.h"
#include "llavatarappearancedefines.h"
+#include "lljoint.h"
class LLTexLayerSet;
class LLTexGlobalColor;
@@ -79,6 +80,7 @@ public:
// Morph masks
//--------------------------------------------------------------------
public:
+ void addMaskedMorph(LLAvatarAppearanceDefines::EBakedTextureIndex index, LLVisualParam* morph_target, BOOL invert, std::string layer);
virtual void applyMorphMask(U8* tex_data, S32 width, S32 height, S32 num_components, LLAvatarAppearanceDefines::EBakedTextureIndex index = LLAvatarAppearanceDefines::BAKED_NUM_INDICES) = 0;
/** Rendering
@@ -153,6 +155,43 @@ public:
virtual LLWearable* getWearable(const LLWearableType::EType type, U32 index /*= 0*/) = 0;
virtual const LLWearable* getWearable(const LLWearableType::EType type, U32 index /*= 0*/) const = 0;
+/********************************************************************************
+ ** **
+ ** BAKED TEXTURES
+ **/
+protected:
+ struct LLMaskedMorph;
+ typedef std::deque<LLMaskedMorph *> morph_list_t;
+ struct BakedTextureData
+ {
+ LLUUID mLastTextureIndex;
+ LLTexLayerSet* mTexLayerSet; // Only exists for self
+ bool mIsLoaded;
+ bool mIsUsed;
+ LLAvatarAppearanceDefines::ETextureIndex mTextureIndex;
+ U32 mMaskTexName;
+ // Stores pointers to the joint meshes that this baked texture deals with
+ std::vector< LLJoint* > mMeshes; // std::vector<LLViewerJointMesh> mJoints[i]->mMeshParts
+ morph_list_t mMaskedMorphs;
+ };
+ typedef std::vector<BakedTextureData> bakedtexturedata_vec_t;
+ bakedtexturedata_vec_t mBakedTextureDatas;
+
+
+/********************************************************************************
+ ** **
+ ** SUPPORT CLASSES
+ **/
+
+ class LLMaskedMorph
+ {
+ public:
+ LLMaskedMorph(LLVisualParam *morph_target, BOOL invert, std::string layer);
+
+ LLVisualParam *mMorphTarget;
+ BOOL mInvert;
+ std::string mLayer;
+ };
};