diff options
author | Palmer <palmer@lindenlab.com> | 2009-11-11 15:16:49 -0800 |
---|---|---|
committer | Palmer <palmer@lindenlab.com> | 2009-11-11 15:16:49 -0800 |
commit | 6f3536d5979efa6db28098056ab5e3a158020225 (patch) | |
tree | aae087995fa1c3df3cebbdf345fca7a2e7c1b548 /indra/newview/llvlcomposition.cpp | |
parent | 7fa698252060a72be6b5ebc52f0ff01bcea6134c (diff) | |
parent | 25d8cf689aa04a1bd4ebb336714730d29040d05c (diff) |
Merged in viewer 2 changes, adjusted xui problems, added mesh folder type and more mesh inventory type info
Diffstat (limited to 'indra/newview/llvlcomposition.cpp')
-rw-r--r-- | indra/newview/llvlcomposition.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/indra/newview/llvlcomposition.cpp b/indra/newview/llvlcomposition.cpp index d124cbcdce..999701ece1 100644 --- a/indra/newview/llvlcomposition.cpp +++ b/indra/newview/llvlcomposition.cpp @@ -279,7 +279,6 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y, if (mRawImages[i].isNull()) { // Read back a raw image for this discard level, if it exists - mRawImages[i] = new LLImageRaw; S32 min_dim = llmin(mDetailTextures[i]->getFullWidth(), mDetailTextures[i]->getFullHeight()); S32 ddiscard = 0; while (min_dim > BASE_SIZE && ddiscard < MAX_DISCARD_LEVEL) @@ -287,12 +286,18 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y, ddiscard++; min_dim /= 2; } - if (!mDetailTextures[i]->readBackRaw(ddiscard, mRawImages[i], false)) + + mDetailTextures[i]->reloadRawImage(ddiscard) ; + if(mDetailTextures[i]->getRawImageLevel() != ddiscard)//raw iamge is not ready, will enter here again later. { - llwarns << "Unable to read raw data for terrain detail texture: " << mDetailTextures[i]->getID() << llendl; - mRawImages[i] = NULL; + mDetailTextures[i]->destroyRawImage() ; + lldebugs << "cached raw data for terrain detail texture is not ready yet: " << mDetailTextures[i]->getID() << llendl; return FALSE; } + + mRawImages[i] = mDetailTextures[i]->getRawImage() ; + mDetailTextures[i]->destroyRawImage() ; + if (mDetailTextures[i]->getWidth(ddiscard) != BASE_SIZE || mDetailTextures[i]->getHeight(ddiscard) != BASE_SIZE || mDetailTextures[i]->getComponents() != 3) |