Automated merge with ssh://hg.lindenlab.com/viewer/viewer-2-0

meow-7.2.2
Xiaohong Bao 2009-11-16 15:39:25 -08:00
commit 39efc3de51
2 changed files with 12 additions and 6 deletions

View File

@ -2121,10 +2121,11 @@ LLImageRaw* LLViewerFetchedTexture::reloadRawImage(S8 discard_level)
llassert_always(mGLTexturep.notNull()) ;
llassert_always(discard_level >= 0);
llassert_always(mComponents > 0);
if (mRawImage.notNull())
{
llerrs << "called with existing mRawImage" << llendl;
mRawImage = NULL;
//mRawImage is in use by somebody else, do not delete it.
return NULL ;
}
if(mSavedRawDiscardLevel >= 0 && mSavedRawDiscardLevel <= discard_level)

View File

@ -287,17 +287,22 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
min_dim /= 2;
}
mDetailTextures[i]->reloadRawImage(ddiscard) ;
BOOL delete_raw = (mDetailTextures[i]->reloadRawImage(ddiscard) != NULL) ;
if(mDetailTextures[i]->getRawImageLevel() != ddiscard)//raw iamge is not ready, will enter here again later.
{
mDetailTextures[i]->destroyRawImage() ;
if(delete_raw)
{
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(delete_raw)
{
mDetailTextures[i]->destroyRawImage() ;
}
if (mDetailTextures[i]->getWidth(ddiscard) != BASE_SIZE ||
mDetailTextures[i]->getHeight(ddiscard) != BASE_SIZE ||
mDetailTextures[i]->getComponents() != 3)