diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/newview/llviewerimage.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/linden/indra/newview/llviewerimage.cpp b/linden/indra/newview/llviewerimage.cpp index 62539a6..400fb2f 100644 --- a/linden/indra/newview/llviewerimage.cpp +++ b/linden/indra/newview/llviewerimage.cpp | |||
@@ -545,7 +545,14 @@ BOOL LLViewerImage::createTexture(S32 usename/*= 0*/) | |||
545 | destroyRawImage(); | 545 | destroyRawImage(); |
546 | return FALSE; | 546 | return FALSE; |
547 | } | 547 | } |
548 | 548 | if (mRawImage->getComponents()>4) | |
549 | { | ||
550 | LL_DEBUGS("Openjpeg")<<"broken raw image" << LL_ENDL; | ||
551 | setIsMissingAsset(); | ||
552 | destroyRawImage(); | ||
553 | return FALSE; | ||
554 | } | ||
555 | |||
549 | res = LLImageGL::createGLTexture(mRawDiscardLevel, mRawImage, usename); | 556 | res = LLImageGL::createGLTexture(mRawDiscardLevel, mRawImage, usename); |
550 | } | 557 | } |
551 | 558 | ||
@@ -1058,6 +1065,11 @@ bool LLViewerImage::updateFetch() | |||
1058 | { | 1065 | { |
1059 | if (getComponents() != mRawImage->getComponents()) | 1066 | if (getComponents() != mRawImage->getComponents()) |
1060 | { | 1067 | { |
1068 | // We've changed the number of components, so we need to move any | ||
1069 | // objects using this pool to a different pool. | ||
1070 | mComponents = mRawImage->getComponents(); | ||
1071 | gImageList.dirtyImage(this); | ||
1072 | /* | ||
1061 | // Do a quick sanity check to make sure we can actually | 1073 | // Do a quick sanity check to make sure we can actually |
1062 | // use the right number of components here -- MC | 1074 | // use the right number of components here -- MC |
1063 | if ((U32)mRawImage->getComponents() > 4) | 1075 | if ((U32)mRawImage->getComponents() > 4) |
@@ -1079,6 +1091,7 @@ bool LLViewerImage::updateFetch() | |||
1079 | mComponents = mRawImage->getComponents(); | 1091 | mComponents = mRawImage->getComponents(); |
1080 | gImageList.dirtyImage(this); | 1092 | gImageList.dirtyImage(this); |
1081 | } | 1093 | } |
1094 | */ | ||
1082 | } | 1095 | } |
1083 | 1096 | ||
1084 | mFullWidth = mRawImage->getWidth() << mRawDiscardLevel; | 1097 | mFullWidth = mRawImage->getWidth() << mRawDiscardLevel; |