diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2009-10-12 05:32:52 +0000 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2009-10-12 05:32:52 +0000 |
commit | c2ddcfae49bb1b4794facd64de1c2ac62fdb5715 (patch) | |
tree | ad9b9f386a7725be892d7f221e973af97b7b2326 | |
parent | 18f1895bf2abceadba292672eb80a384f0142c73 (diff) |
fix for EXT-1328: Alpha textures are not displayed correctly when first loaded.
to be reviewed by davep.
-rw-r--r-- | indra/newview/llface.cpp | 7 | ||||
-rw-r--r-- | indra/newview/llface.h | 1 | ||||
-rw-r--r-- | indra/newview/llviewertexture.cpp | 5 |
3 files changed, 11 insertions, 2 deletions
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index b0ae13348b..4246cbc27f 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -280,6 +280,11 @@ void LLFace::setTexture(LLViewerTexture* tex) mTexture = tex ; } +void LLFace::dirtyTexture() +{ + gPipeline.markTextured(getDrawable()); +} + void LLFace::switchTexture(LLViewerTexture* new_texture) { if(mTexture == new_texture) @@ -295,7 +300,7 @@ void LLFace::switchTexture(LLViewerTexture* new_texture) getViewerObject()->changeTEImage(mTEOffset, new_texture) ; setTexture(new_texture) ; - gPipeline.markTextured(getDrawable()); + dirtyTexture(); } void LLFace::setTEOffset(const S32 te_offset) diff --git a/indra/newview/llface.h b/indra/newview/llface.h index f6ffefcb7c..d734b327d9 100644 --- a/indra/newview/llface.h +++ b/indra/newview/llface.h @@ -90,6 +90,7 @@ public: U16 getGeomStart() const { return mGeomIndex; } // index into draw pool void setTexture(LLViewerTexture* tex) ; void switchTexture(LLViewerTexture* new_texture); + void dirtyTexture(); LLXformMatrix* getXform() const { return mXform; } BOOL hasGeometry() const { return mGeomCount > 0; } LLVector3 getPositionAgent() const; diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 9f096209dd..a0ab4cb1e6 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -1315,7 +1315,10 @@ bool LLViewerFetchedTexture::updateFetch() mComponents = mRawImage->getComponents(); mGLTexturep->setComponents(mComponents) ; - gTextureList.dirtyImage(this); + for(ll_face_list_t::iterator iter = mFaceList.begin(); iter != mFaceList.end(); ++iter) + { + (*iter)->dirtyTexture() ; + } } mIsRawImageValid = TRUE; gTextureList.mCreateTextureList.insert(this); |