Moved gatherMorphMaskAlpha into llappearance.
parent
5010cf72d3
commit
5483bc28ae
|
|
@ -220,7 +220,7 @@ ETextureIndex LLAvatarAppearanceDictionary::bakedToLocalTextureIndex(EBakedTextu
|
|||
return LLAvatarAppearanceDictionary::getInstance()->getBakedTexture(index)->mTextureIndex;
|
||||
}
|
||||
|
||||
//static
|
||||
// static
|
||||
EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByRegionName(std::string name)
|
||||
{
|
||||
U8 index = 0;
|
||||
|
|
@ -238,6 +238,28 @@ EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByRegionName(std::stri
|
|||
return BAKED_NUM_INDICES;
|
||||
}
|
||||
|
||||
// static
|
||||
EBakedTextureIndex LLAvatarAppearanceDictionary::findBakedByImageName(std::string name)
|
||||
{
|
||||
U8 index = 0;
|
||||
while (index < BAKED_NUM_INDICES)
|
||||
{
|
||||
const BakedEntry *be = LLAvatarAppearanceDictionary::getInstance()->getBakedTexture((EBakedTextureIndex) index);
|
||||
if (be)
|
||||
{
|
||||
const TextureEntry *te = LLAvatarAppearanceDictionary::getInstance()->getTexture(be->mTextureIndex);
|
||||
if (te && te->mDefaultImageName.compare(name) == 0)
|
||||
{
|
||||
// baked texture found
|
||||
return (EBakedTextureIndex) index;
|
||||
}
|
||||
}
|
||||
index++;
|
||||
}
|
||||
// baked texture could not be found
|
||||
return BAKED_NUM_INDICES;
|
||||
}
|
||||
|
||||
// static
|
||||
LLWearableType::EType LLAvatarAppearanceDictionary::getTEWearableType(ETextureIndex index )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -217,6 +217,7 @@ public:
|
|||
|
||||
// find a baked texture index based on its name
|
||||
static EBakedTextureIndex findBakedByRegionName(std::string name);
|
||||
static EBakedTextureIndex findBakedByImageName(std::string name);
|
||||
|
||||
// Given a texture entry, determine which wearable type owns it.
|
||||
static LLWearableType::EType getTEWearableType(ETextureIndex index);
|
||||
|
|
|
|||
|
|
@ -516,6 +516,21 @@ const LLTexLayerSetBuffer* LLTexLayerSet::getComposite() const
|
|||
return mComposite;
|
||||
}
|
||||
|
||||
void LLTexLayerSet::gatherMorphMaskAlpha(U8 *data, S32 origin_x, S32 origin_y, S32 width, S32 height)
|
||||
{
|
||||
memset(data, 255, width * height);
|
||||
|
||||
for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
|
||||
{
|
||||
LLTexLayerInterface* layer = *iter;
|
||||
layer->gatherAlphaMasks(data, origin_x, origin_y, width, height);
|
||||
}
|
||||
|
||||
// Set alpha back to that of our alpha masks.
|
||||
renderAlphaMaskTextures(origin_x, origin_y, width, height, true);
|
||||
}
|
||||
|
||||
|
||||
void LLTexLayerSet::renderAlphaMaskTextures(S32 x, S32 y, S32 width, S32 height, bool forceClear)
|
||||
{
|
||||
const LLTexLayerSetInfo *info = getInfo();
|
||||
|
|
|
|||
|
|
@ -194,6 +194,7 @@ public:
|
|||
const LLTexLayerSetBuffer* getComposite() const; // Do not create one if it doesn't exist.
|
||||
virtual void createComposite() = 0;
|
||||
void destroyComposite();
|
||||
void gatherMorphMaskAlpha(U8 *data, S32 origin_x, S32 origin_y, S32 width, S32 height);
|
||||
|
||||
const LLTexLayerSetInfo* getInfo() const { return mInfo; }
|
||||
BOOL setInfo(const LLTexLayerSetInfo *info); // This sets mInfo and calls initialization functions
|
||||
|
|
|
|||
|
|
@ -379,7 +379,9 @@ void LLViewerTexLayerSetBuffer::doUpload()
|
|||
LLGLSUIDefault gls_ui;
|
||||
LLPointer<LLImageRaw> baked_mask_image = new LLImageRaw(mFullWidth, mFullHeight, 1 );
|
||||
U8* baked_mask_data = baked_mask_image->getData();
|
||||
layer_set->gatherMorphMaskAlpha(baked_mask_data, mFullWidth, mFullHeight);
|
||||
layer_set->gatherMorphMaskAlpha(baked_mask_data,
|
||||
mOrigin.mX, mOrigin.mY,
|
||||
mFullWidth, mFullHeight);
|
||||
|
||||
|
||||
// Create the baked image from our color and mask information
|
||||
|
|
@ -700,23 +702,6 @@ void LLViewerTexLayerSet::setUpdatesEnabled( BOOL b )
|
|||
mUpdatesEnabled = b;
|
||||
}
|
||||
|
||||
|
||||
void LLViewerTexLayerSet::gatherMorphMaskAlpha(U8 *data, S32 width, S32 height)
|
||||
{
|
||||
memset(data, 255, width * height);
|
||||
|
||||
for( layer_list_t::iterator iter = mLayerList.begin(); iter != mLayerList.end(); iter++ )
|
||||
{
|
||||
LLTexLayerInterface* layer = *iter;
|
||||
layer->gatherAlphaMasks(data, getViewerComposite()->getOriginX(),
|
||||
getViewerComposite()->getOriginY(), width, height);
|
||||
}
|
||||
|
||||
// Set alpha back to that of our alpha masks.
|
||||
renderAlphaMaskTextures(getViewerComposite()->getOriginX(),
|
||||
getViewerComposite()->getOriginY(), width, height, true);
|
||||
}
|
||||
|
||||
LLVOAvatarSelf* LLViewerTexLayerSet::getAvatar()
|
||||
{
|
||||
return dynamic_cast<LLVOAvatarSelf*> (mAvatarAppearance);
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ public:
|
|||
/*virtual*/void createComposite();
|
||||
void setUpdatesEnabled(BOOL b);
|
||||
BOOL getUpdatesEnabled() const { return mUpdatesEnabled; }
|
||||
void gatherMorphMaskAlpha(U8 *data, S32 width, S32 height);
|
||||
|
||||
LLVOAvatarSelf* getAvatar();
|
||||
const LLVOAvatarSelf* getAvatar() const;
|
||||
|
|
|
|||
Loading…
Reference in New Issue