summaryrefslogtreecommitdiff
path: root/indra/llappearance/llavatarappearance.h
diff options
context:
space:
mode:
authorNyx (Neal Orman) <nyx@lindenlab.com>2012-09-05 17:46:11 -0400
committerNyx (Neal Orman) <nyx@lindenlab.com>2012-09-05 17:46:11 -0400
commitb146490e1b46799ccb35e156b4751eddea3a23ce (patch)
tree0f197a5d97afaa566e3019043b5df488aaf03aa6 /indra/llappearance/llavatarappearance.h
parent2cb3b8ef6bbfa328e35b9c066f0b5c3ceebba55f (diff)
SH-3264 Worked to move over mBakedTextureDatas from LLVOAvatar to LLAvatarAppearance.
Appear to have been able to move over the parts that are common to both the backend and the viewer into LLAvatarAppearance.
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;
+ };
};