diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 061fb48e7..1e698adfc 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -352,7 +352,10 @@ void LLImageGL::destroyGL(BOOL save_state) glimage->mSaveData = NULL ; } else + { + glimage->mSaveDiscardLevel = glimage->mCurrentDiscardLevel; stored_count++; + } } glimage->destroyGLTexture(); @@ -379,13 +382,14 @@ void LLImageGL::restoreGL() } if (glimage->mSaveData.notNull()) { - if (glimage->getComponents() && glimage->mSaveData->getComponents()) + if (glimage->getComponents() && glimage->mSaveData->getComponents() && glimage->mSaveDiscardLevel >= 0) { - glimage->createGLTexture(glimage->mCurrentDiscardLevel, glimage->mSaveData, 0, TRUE, glimage->getCategory()); + glimage->createGLTexture(glimage->mSaveDiscardLevel, glimage->mSaveData, 0, TRUE, glimage->getCategory()); stop_glerror(); recovered_count++; } glimage->mSaveData = NULL; // deletes data + glimage->mSaveDiscardLevel = -1; } } llinfos << "Restored " << recovered_count << " images" << llendl; @@ -430,7 +434,7 @@ BOOL LLImageGL::create(LLPointer& dest, const LLImageRaw* imageraw, B //---------------------------------------------------------------------------- LLImageGL::LLImageGL(BOOL usemipmaps) - : mSaveData(0) + : mSaveData(0), mSaveDiscardLevel(-1) { init(usemipmaps); setSize(0, 0, 0); @@ -439,7 +443,7 @@ LLImageGL::LLImageGL(BOOL usemipmaps) } LLImageGL::LLImageGL(U32 width, U32 height, U8 components, BOOL usemipmaps) - : mSaveData(0) + : mSaveData(0), mSaveDiscardLevel(-1) { llassert( components <= 4 ); init(usemipmaps); @@ -449,7 +453,7 @@ LLImageGL::LLImageGL(U32 width, U32 height, U8 components, BOOL usemipmaps) } LLImageGL::LLImageGL(const LLImageRaw* imageraw, BOOL usemipmaps) - : mSaveData(0) + : mSaveData(0), mSaveDiscardLevel(-1) { init(usemipmaps); setSize(0, 0, 0); @@ -1415,6 +1419,8 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre if (discard_level < 0) { discard_level = mCurrentDiscardLevel; + if(discard_level < 0) + return FALSE; } if (mTexName == 0 || discard_level < mCurrentDiscardLevel || discard_level > mMaxDiscardLevel ) diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h index e90b242e1..a80dd0998 100644 --- a/indra/llrender/llimagegl.h +++ b/indra/llrender/llimagegl.h @@ -183,6 +183,7 @@ public: private: LLPointer mSaveData; // used for destroyGL/restoreGL + S32 mSaveDiscardLevel; U8* mPickMask; //downsampled bitmap approximation of alpha channel. NULL if no alpha channel U16 mPickMaskWidth; U16 mPickMaskHeight; diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml index 97ff2cd19..b2602e351 100644 --- a/indra/newview/app_settings/settings_per_account.xml +++ b/indra/newview/app_settings/settings_per_account.xml @@ -314,14 +314,6 @@ Value 0 - - - - - - - - RLVaLoginLastLocation Comment diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index a330de1ff..7a426decc 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -69,7 +69,7 @@ SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text BrandingText "Prepare to Implode!" ; bottom of window text Icon %%SOURCE%%\installers\windows\install_icon_singularity.ico -UninstallIcon %%SOURCE%%\installers\windows\install_icon_singularity.ico +UninstallIcon %%SOURCE%%\installers\windows\uninstall_icon_singularity.ico WindowIcon off ; show our icon in left corner BGGradient 9090b0 000000 notext CRCCheck on ; make sure CRC is OK diff --git a/indra/newview/skins/default/xui/en-us/floater_critical.xml b/indra/newview/skins/default/xui/en-us/floater_critical.xml index 4d1d10dde..f6c8b8937 100644 --- a/indra/newview/skins/default/xui/en-us/floater_critical.xml +++ b/indra/newview/skins/default/xui/en-us/floater_critical.xml @@ -8,8 +8,7 @@