diff options
| -rw-r--r-- | indra/newview/llviewertexture.cpp | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 9e1cb84bd1..0f9c65893d 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -2495,6 +2495,11 @@ bool LLViewerFetchedTexture::doLoadedCallbacks()          }      } +    if (need_readback) +    { +        readbackRawImage(); +    } +      //      // Run raw/auxiliary data callbacks      // @@ -2744,10 +2749,22 @@ void LLViewerFetchedTexture::readbackRawImage()      if (mGLTexturep.notNull() && mGLTexturep->getTexName() != 0 &&          (mRawImage.isNull() || mRawImage->getWidth() < mGLTexturep->getWidth() || mRawImage->getHeight() < mGLTexturep->getHeight() ))      { +        if (mRawImage.isNull()) +        { +            sRawCount++; +        }          mRawImage = new LLImageRaw();          if (!mGLTexturep->readBackRaw(-1, mRawImage, false))          {              mRawImage = nullptr; +            mIsRawImageValid = false; +            mRawDiscardLevel = INVALID_DISCARD_LEVEL; +            sRawCount--; +        } +        else +        { +            mIsRawImageValid = true; +            mRawDiscardLevel = mGLTexturep->getDiscardLevel();          }      }  } | 
