diff options
author | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2015-01-07 02:04:03 +0200 |
---|---|---|
committer | ruslantproductengine <ruslantproductengine@lindenlab.com> | 2015-01-07 02:04:03 +0200 |
commit | bb3517c24e77e7fdea915a8a57326e10e8261d7c (patch) | |
tree | 4f7e91b21d3dd876d063981b0b62319935541d1e /indra/newview/llviewertexture.h | |
parent | dbafa3c358f24c9dec0c6e9b5fc92880e6f0e0dd (diff) |
MAINT-4773 FIXED Some transparent textures are rendered as white.
This bug fix related also to MAINT-4092. In 4092 sometimes when we
don't have information about the texture during the setup the materail
(LLVOVolume::setTEMaterialParams()), we should substitute the material with
disabled "diffuse alpha mode" (for detail in cases see MAINT-4092 JIRA ticket
comment).
This bug fix cover the case when after the loading texture we have all
information about alpha mode, and in this case we should restore diffuse
alpha mode if need.
In short: now we always believe that information about the material is valid
(LLVOVolume::setTEMaterialParams()).
Of course before setup it we check information about texture (if it possible)
, if texture is not exist in database or not 32 bit depth (for diffuse) we
made changes.
But in all other cases (if we can't receive information about texture)
we remeber this case in mWaitingTextureInfo multimap.
When information about texture will be available we get it in:
LLVOVolume::notify AboutCreatingTexture()
or
Volume::notifyAboutMissingAsset()
and again, we recheck it and if need change (substitute)
the material parameters.
I suppose that this solution is better than was before.
If this patch will be accepted
, I think that MAINT-4092 should be rechecked again.
Diffstat (limited to 'indra/newview/llviewertexture.h')
-rwxr-xr-x | indra/newview/llviewertexture.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index 05912404e4..aed7e94945 100755 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -169,9 +169,13 @@ public: /*virtual*/ void updateBindStatsForTester() ; protected: void cleanup() ; - void init(bool firstinit) ; + void init(bool firstinit) ; void reorganizeFaceList() ; void reorganizeVolumeList() ; + + void notifyAboutMissingAsset(); + void notifyAboutCreatingTexture(); + private: friend class LLBumpImageList; friend class LLUIImageList; @@ -307,10 +311,11 @@ public: void addToCreateTexture(); + // ONLY call from LLViewerTextureList BOOL createTexture(S32 usename = 0); - void destroyTexture() ; - + void destroyTexture() ; + virtual void processTextureStats() ; F32 calcDecodePriority() ; |