diff options
-rw-r--r-- | autobuild.xml | 28 | ||||
-rw-r--r-- | indra/llcommon/indra_constants.cpp | 2 | ||||
-rw-r--r-- | indra/llcommon/indra_constants.h | 2 | ||||
-rw-r--r-- | indra/newview/CMakeLists.txt | 3 | ||||
-rw-r--r-- | indra/newview/llprogressview.cpp | 221 | ||||
-rw-r--r-- | indra/newview/llprogressview.h | 26 | ||||
-rw-r--r-- | indra/newview/llstartup.cpp | 79 | ||||
-rw-r--r-- | indra/newview/llviewertexturelist.cpp | 31 | ||||
-rw-r--r-- | indra/newview/llviewerwindow.cpp | 13 | ||||
-rw-r--r-- | indra/newview/llviewerwindow.h | 2 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_progress.xml | 21 | ||||
-rwxr-xr-x | indra/newview/viewer_manifest.py | 6 |
12 files changed, 274 insertions, 160 deletions
diff --git a/autobuild.xml b/autobuild.xml index 51259486ab..37ffe61307 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -1420,9 +1420,9 @@ <key>archive</key> <map> <key>hash</key> - <string>a0c4405c9e44d4a0135fe20ba8cfbace</string> + <string>7e883d641b5e541c3c46fb6efbbd06ca</string> <key>url</key> - <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/4693/14627/havok_source-2012.1-2-darwin64-504680.tar.bz2</string> + <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/51113/463266/havok_source-2012.1-2-darwin64-536003.tar.bz2</string> </map> <key>name</key> <string>darwin64</string> @@ -1456,9 +1456,9 @@ <key>archive</key> <map> <key>hash</key> - <string>035572a1929be66f6c56468e0ef7fe74</string> + <string>81e15d58f3ce98f8342842b62bce08f0</string> <key>url</key> - <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/4695/14637/havok_source-2012.1-2-windows-504680.tar.bz2</string> + <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/51115/463279/havok_source-2012.1-2-windows-536003.tar.bz2</string> </map> <key>name</key> <string>windows</string> @@ -1468,9 +1468,9 @@ <key>archive</key> <map> <key>hash</key> - <string>d8525d2fbb9e0f7bc31427b47350e468</string> + <string>df66566126db0f7b75af024b0768a541</string> <key>url</key> - <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/4694/14634/havok_source-2012.1-2-windows64-504680.tar.bz2</string> + <string>http://s3-proxy.lindenlab.com/private-builds-secondlife-com/ct2/51114/463273/havok_source-2012.1-2-windows64-536003.tar.bz2</string> </map> <key>name</key> <string>windows64</string> @@ -2930,9 +2930,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>f824d586ab5de6edd14ef6828e9e4b66</string> + <string>d02241c69dc4fac8e270f9bdc0460a90</string> + <key>hash_algorithm</key> + <string>md5</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/44719/395040/slvoice-4.10.0000.32327.5fc3fe7c.531581-darwin64-531581.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/51111/463254/slvoice-4.10.0000.32327.5fc3fe7c.536001-darwin64-536001.tar.bz2</string> </map> <key>name</key> <string>darwin64</string> @@ -2966,9 +2968,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>1941c17c81905f23b4928288bcf719fb</string> + <string>6c9c0f59e4974e131456c3ced2b6b23f</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/44720/395047/slvoice-4.10.0000.32327.5fc3fe7c.531581-windows-531581.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/51107/463239/slvoice-4.10.0000.32327.5fc3fe7c.536001-windows-536001.tar.bz2</string> </map> <key>name</key> <string>windows</string> @@ -2978,16 +2980,16 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string> <key>archive</key> <map> <key>hash</key> - <string>baa6cdc8e8762d5519996ed9faa0bf3f</string> + <string>05341caee4c837fe732702fa18a7ed98</string> <key>url</key> - <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/44721/395056/slvoice-4.10.0000.32327.5fc3fe7c.531581-windows64-531581.tar.bz2</string> + <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/51108/463245/slvoice-4.10.0000.32327.5fc3fe7c.536001-windows64-536001.tar.bz2</string> </map> <key>name</key> <string>windows64</string> </map> </map> <key>version</key> - <string>4.10.0000.32327.5fc3fe7c.531581</string> + <string>4.10.0000.32327.5fc3fe7c.536001</string> </map> <key>tut</key> <map> diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp index 53f98adbbf..e13176e8fa 100644 --- a/indra/llcommon/indra_constants.cpp +++ b/indra/llcommon/indra_constants.cpp @@ -84,5 +84,3 @@ const LLUUID IMG_USE_BAKED_AUX1 ("9742065b-19b5-297c-858a-29711d539043"); const LLUUID IMG_USE_BAKED_AUX2 ("03642e83-2bd1-4eb9-34b4-4c47ed586d2d"); const LLUUID IMG_USE_BAKED_AUX3 ("edd51b77-fc10-ce7a-4b3d-011dfc349e4f"); -const LLUUID IMG_LOGO_FMOD("876982f5-f5fd-4a68-b5e7-727f3ae3487b"); - diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h index 7d20286ac9..0fbf4b966b 100644 --- a/indra/llcommon/indra_constants.h +++ b/indra/llcommon/indra_constants.h @@ -218,8 +218,6 @@ LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX1; LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX2; LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX3; -LL_COMMON_API extern const LLUUID IMG_LOGO_FMOD; - LL_COMMON_API extern const LLUUID DEFAULT_WATER_NORMAL; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 1ede6188fb..a5cb9bc3d3 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1715,12 +1715,11 @@ endif (OPENAL) if (FMODSTUDIO) set(LLSTARTUP_COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS} -DLL_FMODSTUDIO") - # texture list needs to load fmod icon - set_source_files_properties(llviewertexturelist.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}") set(FMODWRAPPER_LIBRARY ${FMODSTUDIO_LIBRARY}) endif (FMODSTUDIO) set_source_files_properties(llstartup.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}") +set_source_files_properties(llprogressview.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}") list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES}) diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp index dfa6c97b26..f745d26864 100644 --- a/indra/newview/llprogressview.cpp +++ b/indra/newview/llprogressview.cpp @@ -42,7 +42,6 @@ #include "llbutton.h" #include "llcallbacklist.h" #include "llfocusmgr.h" -#include "lliconctrl.h" #include "llnotifications.h" #include "llprogressbar.h" #include "llstartup.h" @@ -184,7 +183,6 @@ void LLProgressView::setVisible(BOOL visible) if (getVisible() && !visible) { LLPanel::setVisible(FALSE); - setShowLogos(FALSE); } // showing progress view else if (visible && (!getVisible() || mFadeToWorldTimer.getStarted())) @@ -231,6 +229,33 @@ void LLProgressView::drawStartTexture(F32 alpha) gGL.popMatrix(); } +void LLProgressView::drawLogos(F32 alpha) +{ + if (mLogosList.empty()) + { + return; + } + + // logos are tied to label, + // due to potential resizes we have to figure offsets out on draw or resize + LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl"); + S32 offset_x, offset_y; + logos_label->localPointToScreen(0, 0, &offset_x, &offset_y); + std::vector<TextureData>::const_iterator iter = mLogosList.begin(); + std::vector<TextureData>::const_iterator end = mLogosList.end(); + for (; iter != end; iter++) + { + gl_draw_scaled_image_with_border(iter->mDrawRect.mLeft + offset_x, + iter->mDrawRect.mBottom + offset_y, + iter->mDrawRect.getWidth(), + iter->mDrawRect.getHeight(), + iter->mTexturep.get(), + UI_VERTEX_COLOR % alpha, + FALSE, + iter->mClipRect, + iter->mOffsetRect); + } +} void LLProgressView::draw() { @@ -247,6 +272,7 @@ void LLProgressView::draw() } LLPanel::draw(); + drawLogos(alpha); return; } @@ -259,6 +285,7 @@ void LLProgressView::draw() drawStartTexture(alpha); LLPanel::draw(); + drawLogos(alpha); // faded out completely - remove panel and reveal world if (mFadeToWorldTimer.getElapsedTimeF32() > FADE_TO_WORLD_TIME ) @@ -285,7 +312,7 @@ void LLProgressView::draw() // FIXME: this causes a crash that i haven't been able to fix mMediaCtrl->unloadMediaSource(); - gStartTexture = NULL; + releaseTextures(); } return; } @@ -293,6 +320,7 @@ void LLProgressView::draw() drawStartTexture(1.0f); // draw children LLPanel::draw(); + drawLogos(1.0f); } void LLProgressView::setText(const std::string& text) @@ -311,16 +339,189 @@ void LLProgressView::setMessage(const std::string& msg) getChild<LLUICtrl>("message_text")->setValue(mMessage); } -void LLProgressView::setShowLogos(const BOOL logos_visible) +void LLProgressView::loadLogo(const std::string &path, + const U8 image_codec, + const LLRect &pos_rect, + const LLRectf &clip_rect, + const LLRectf &offset_rect) +{ + // We need these images very early, so we have to force-load them, otherwise they might not load in time. + if (!gDirUtilp->fileExists(path)) + { + return; + } + + LLPointer<LLImageFormatted> start_image_frmted = LLImageFormatted::createFromType(image_codec); + if (!start_image_frmted->load(path)) + { + LL_WARNS("AppInit") << "Image load failed: " << path << LL_ENDL; + return; + } + + LLPointer<LLImageRaw> raw = new LLImageRaw; + if (!start_image_frmted->decode(raw, 0.0f)) + { + LL_WARNS("AppInit") << "Image decode failed " << path << LL_ENDL; + return; + } + // HACK: getLocalTexture allows only power of two dimentions + raw->expandToPowerOfTwo(); + + TextureData data; + data.mTexturep = LLViewerTextureManager::getLocalTexture(raw.get(), FALSE); + data.mDrawRect = pos_rect; + data.mClipRect = clip_rect; + data.mOffsetRect = offset_rect; + mLogosList.push_back(data); +} + +void LLProgressView::initLogos() { - LLIconCtrl* logo = getChild<LLIconCtrl>("fmod_logo"); - if (logos_visible) + mLogosList.clear(); + + const U8 image_codec = IMG_CODEC_PNG; + const LLRectf default_clip(0.f, 1.f, 1.f, 0.f); + const S32 default_height = 24; + const S32 default_width = 91; + const S32 default_pad = 7; + + // We don't know final screen rect yet, so we can't precalculate position fully + LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl"); + S32 texture_start_x = logos_label->getFont()->getWidthF32(logos_label->getText()) + default_pad; + S32 texture_start_y = -3; + + // Normally iamges stay in skins folder, but 3p images come from package instead + // of repository and need special handling +#ifdef LL_WINDOWS + std::string temp_str = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons"); +#elif LL_DARWIN + // On MAC use resource directory + std::string temp_str = gDirUtilp->add(gDirUtilp->getAppRODataDir(), "3p_icons"); +#else + std::string temp_str = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons"); +#endif + temp_str += gDirUtilp->getDirDelimiter(); + +#ifdef LL_FMODSTUDIO + const S32 fmod_y_offset = 2; + loadLogo(temp_str + "fmod.png", + image_codec, + LLRect(texture_start_x, texture_start_y + default_height + fmod_y_offset, texture_start_x + default_width + fmod_y_offset, texture_start_y), + default_clip, + default_clip); + + texture_start_x += default_width + default_pad; +#endif + + loadLogo(temp_str + "havok_logo.png", + image_codec, + LLRect(texture_start_x, texture_start_y + default_height, texture_start_x + default_width, texture_start_y), + default_clip, + default_clip); + + texture_start_x += default_width + default_pad - 2; // offset to compensate for enormous borders for vivox + + const LLRectf vivox_clip(0.0f /*repeats*/, 0.52f /*cut starting from center*/, 0.52f, 0.0f); // non-standard icon, clip it + const LLRectf vivox_offset(0.0f, 0.23f, 0.23f, 0.0f); // keeping clipping identical to not mess up scale + const S32 vivox_y_offset = -5; + loadLogo(temp_str + "vivox_logo.png", + image_codec, + LLRect(texture_start_x, texture_start_y + default_height + vivox_y_offset, texture_start_x + default_width, texture_start_y + vivox_y_offset), + vivox_clip, + vivox_offset); +} + +void LLProgressView::initStartTexture(S32 location_id, bool is_in_production) +{ + if (gStartTexture.notNull()) { - logo->setValue(IMG_LOGO_FMOD); + gStartTexture = NULL; + LL_INFOS("AppInit") << "re-initializing start screen" << LL_ENDL; } - logo->setVisible(logos_visible); - getChild<LLUICtrl>("fmod_text")->setVisible(logos_visible); - getChild<LLUICtrl>("message_text")->setVisible(!logos_visible); + + LL_DEBUGS("AppInit") << "Loading startup bitmap..." << LL_ENDL; + + U8 image_codec = IMG_CODEC_PNG; + std::string temp_str = gDirUtilp->getLindenUserDir() + gDirUtilp->getDirDelimiter(); + + if ((S32)START_LOCATION_ID_LAST == location_id) + { + temp_str += LLStartUp::getScreenLastFilename(); + } + else + { + std::string path = temp_str + LLStartUp::getScreenHomeFilename(); + + if (!gDirUtilp->fileExists(path) && is_in_production) + { + // Fallback to old file, can be removed later + // Home image only sets when user changes home, so it will take time for users to switch to pngs + temp_str += "screen_home.bmp"; + image_codec = IMG_CODEC_BMP; + } + else + { + temp_str = path; + } + } + + LLPointer<LLImageFormatted> start_image_frmted = LLImageFormatted::createFromType(image_codec); + + // Turn off start screen to get around the occasional readback + // driver bug + if (!gSavedSettings.getBOOL("UseStartScreen")) + { + LL_INFOS("AppInit") << "Bitmap load disabled" << LL_ENDL; + return; + } + else if (!start_image_frmted->load(temp_str)) + { + LL_WARNS("AppInit") << "Bitmap load failed" << LL_ENDL; + gStartTexture = NULL; + } + else + { + gStartImageWidth = start_image_frmted->getWidth(); + gStartImageHeight = start_image_frmted->getHeight(); + + LLPointer<LLImageRaw> raw = new LLImageRaw; + if (!start_image_frmted->decode(raw, 0.0f)) + { + LL_WARNS("AppInit") << "Bitmap decode failed" << LL_ENDL; + gStartTexture = NULL; + } + else + { + // HACK: getLocalTexture allows only power of two dimentions + raw->expandToPowerOfTwo(); + gStartTexture = LLViewerTextureManager::getLocalTexture(raw.get(), FALSE); + } + } + + if (gStartTexture.isNull()) + { + gStartTexture = LLViewerTexture::sBlackImagep; + gStartImageWidth = gStartTexture->getWidth(); + gStartImageHeight = gStartTexture->getHeight(); + } +} + +void LLProgressView::initTextures(S32 location_id, bool is_in_production) +{ + initStartTexture(location_id, is_in_production); + initLogos(); + + LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl"); + logos_label->setVisible(true); +} + +void LLProgressView::releaseTextures() +{ + gStartTexture = NULL; + mLogosList.clear(); + + LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl"); + logos_label->setVisible(false); } void LLProgressView::setCancelButtonVisible(BOOL b, const std::string& label) diff --git a/indra/newview/llprogressview.h b/indra/newview/llprogressview.h index 1d4ae3a66f..56377a5889 100644 --- a/indra/newview/llprogressview.h +++ b/indra/newview/llprogressview.h @@ -35,6 +35,7 @@ class LLImageRaw; class LLButton; class LLProgressBar; +class LLViewerTexture; class LLProgressView : public LLPanel, @@ -51,6 +52,7 @@ public: /*virtual*/ void draw(); void drawStartTexture(F32 alpha); + void drawLogos(F32 alpha); /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask); /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); @@ -70,8 +72,9 @@ public: void setStartupComplete(); - // turns on logos, hides message of the day - void setShowLogos(const BOOL logos_visible); + // we have to preload local textures to make sure they won't be grey + void initTextures(S32 location_id, bool is_in_production); + void releaseTextures(); void setCancelButtonVisible(BOOL b, const std::string& label); @@ -98,6 +101,25 @@ protected: bool handleUpdate(const LLSD& event_data); static void onIdle(void* user_data); + void loadLogo(const std::string &path, const U8 image_codec, const LLRect &pos_rect, const LLRectf &clip_rect, const LLRectf &offset_rect); + // logos have unusual location and need to be preloaded to not appear grey, then deleted + void initLogos(); + // Loads a bitmap to display during load + void initStartTexture(S32 location_id, bool is_in_production); + +private: + // We need to draw textures on login, but only once. + // So this vector gets filled up for textures to render and gets cleaned later + // Some textures have unusual requirements, so we are rendering directly + class TextureData + { + public: + LLPointer<LLViewerTexture> mTexturep; + LLRect mDrawRect; + LLRectf mClipRect; + LLRectf mOffsetRect; + }; + std::vector<TextureData> mLogosList; }; #endif // LL_LLPROGRESSVIEW_H diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 56e8000400..1510506cd9 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -734,7 +734,6 @@ bool idle_startup() display_startup(); // LLViewerMedia::initBrowser(); LLStartUp::setStartupState( STATE_LOGIN_SHOW ); - gViewerWindow->setShowLogos(TRUE); return FALSE; } @@ -1010,9 +1009,8 @@ bool idle_startup() gViewerWindow->getWindow()->setCursor(UI_CURSOR_WAIT); - init_start_screen(agent_location_id); - // Display the startup progress bar. + gViewerWindow->initTextures(agent_location_id); gViewerWindow->setShowProgress(TRUE); gViewerWindow->setProgressCancelButtonVisible(TRUE, LLTrans::getString("Quit")); @@ -2728,81 +2726,6 @@ std::string LLStartUp::getUserId() return gUserCredential->userID(); } -// Loads a bitmap to display during load -void init_start_screen(S32 location_id) -{ - if (gStartTexture.notNull()) - { - gStartTexture = NULL; - LL_INFOS("AppInit") << "re-initializing start screen" << LL_ENDL; - } - - LL_DEBUGS("AppInit") << "Loading startup bitmap..." << LL_ENDL; - - U8 image_codec = IMG_CODEC_PNG; - std::string temp_str = gDirUtilp->getLindenUserDir() + gDirUtilp->getDirDelimiter(); - - if ((S32)START_LOCATION_ID_LAST == location_id) - { - temp_str += LLStartUp::getScreenLastFilename(); - } - else - { - std::string path = temp_str + LLStartUp::getScreenHomeFilename(); - - if (!gDirUtilp->fileExists(path) && LLGridManager::getInstance()->isInProductionGrid()) - { - // Fallback to old file, can be removed later - // Home image only sets when user changes home, so it will take time for users to switch to pngs - temp_str += "screen_home.bmp"; - image_codec = IMG_CODEC_BMP; - } - else - { - temp_str = path; - } - } - - LLPointer<LLImageFormatted> start_image_frmted = LLImageFormatted::createFromType(image_codec); - - // Turn off start screen to get around the occasional readback - // driver bug - if(!gSavedSettings.getBOOL("UseStartScreen")) - { - LL_INFOS("AppInit") << "Bitmap load disabled" << LL_ENDL; - return; - } - else if(!start_image_frmted->load(temp_str) ) - { - LL_WARNS("AppInit") << "Bitmap load failed" << LL_ENDL; - gStartTexture = NULL; - } - else - { - gStartImageWidth = start_image_frmted->getWidth(); - gStartImageHeight = start_image_frmted->getHeight(); - - LLPointer<LLImageRaw> raw = new LLImageRaw; - if (!start_image_frmted->decode(raw, 0.0f)) - { - LL_WARNS("AppInit") << "Bitmap decode failed" << LL_ENDL; - gStartTexture = NULL; - } - else - { - raw->expandToPowerOfTwo(); - gStartTexture = LLViewerTextureManager::getLocalTexture(raw.get(), FALSE) ; - } - } - - if(gStartTexture.isNull()) - { - gStartTexture = LLViewerTexture::sBlackImagep ; - gStartImageWidth = gStartTexture->getWidth() ; - gStartImageHeight = gStartTexture->getHeight() ; - } -} - // frees the bitmap void release_start_screen() diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 4221f941f5..06524847d1 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -190,37 +190,6 @@ void LLViewerTextureList::doPreloadImages() mImagePreloads.insert(image); } - // Normally images are located in 'skins' folder in working directory, - // but 3p images were added from packages and had to stay in separate folder - // with path relative to exe. - -#ifdef LL_FMODSTUDIO -#ifdef LL_WINDOWS - std::string full_path = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons", "fmod.png"); -#elif LL_DARWIN - // On MAC use resource directory - std::string full_path = gDirUtilp->add(gDirUtilp->getAppRODataDir(), "3p_icons", "fmod.png"); -#else - std::string full_path = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "3p_icons", "fmod.png"); -#endif - image = LLViewerTextureManager::getFetchedTextureFromUrl("file://" + full_path, FTT_LOCAL_FILE, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE, - 0, 0, IMG_LOGO_FMOD); - if (image) - { - image->setAddressMode(LLTexUnit::TAM_WRAP); - mImagePreloads.insert(image); - // Speed up load (this texture will be used early) - image->setKnownDrawSize(364, 98); - image->processTextureStats(); - image->setDecodePriority(LLViewerFetchedTexture::maxDecodePriority()); - image->updateFetch(); - // Fmod logo is only needed at startup, if we will get more logos - // for startup, might be good idea to save resources and do loading - // in scope of llprogressview and then unload everything once no - // longer needed - } -#endif - LLPointer<LLImageRaw> img_blak_square_tex(new LLImageRaw(2, 2, 3)); memset(img_blak_square_tex->getData(), 0, img_blak_square_tex->getDataSize()); LLPointer<LLViewerFetchedTexture> img_blak_square(new LLViewerFetchedTexture(img_blak_square_tex, FTT_DEFAULT, FALSE)); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 89f3b17021..86cb43555a 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -5098,6 +5098,14 @@ void LLViewerWindow::revealIntroPanel() } } +void LLViewerWindow::initTextures(S32 location_id) +{ + if (mProgressView) + { + mProgressView->initTextures(location_id, LLGridManager::getInstance()->isInProductionGrid()); + } +} + void LLViewerWindow::setShowProgress(const BOOL show) { if (mProgressView) @@ -5151,11 +5159,6 @@ void LLViewerWindow::setProgressCancelButtonVisible( BOOL b, const std::string& } } -void LLViewerWindow::setShowLogos(const BOOL show_3p_logos) -{ - mProgressView->setShowLogos(show_3p_logos); -} - LLProgressView *LLViewerWindow::getProgressView() const { return mProgressView; diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index 9adfe7b5c5..44c1fbd066 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -303,13 +303,13 @@ public: BOOL getCursorHidden() { return mCursorHidden; } void moveCursorToCenter(); // move to center of window + void initTextures(S32 location_id); void setShowProgress(const BOOL show); BOOL getShowProgress() const; void setProgressString(const std::string& string); void setProgressPercent(const F32 percent); void setProgressMessage(const std::string& msg); void setProgressCancelButtonVisible( BOOL b, const std::string& label = LLStringUtil::null ); - void setShowLogos(const BOOL show_3p_logos); LLProgressView *getProgressView() const; void revealIntroPanel(); void setStartupComplete(); diff --git a/indra/newview/skins/default/xui/en/panel_progress.xml b/indra/newview/skins/default/xui/en/panel_progress.xml index 03caf8e8ad..f52422c08f 100644 --- a/indra/newview/skins/default/xui/en/panel_progress.xml +++ b/indra/newview/skins/default/xui/en/panel_progress.xml @@ -106,27 +106,20 @@ top="145" right="-90" word_wrap="true"/> - <icon - height="24" - width="91" - left="48" - top="190" - name="fmod_logo" - visible ="false" - /> + <!--Logos are tied to following label from code--> <text - follows="left|right|top|bottom" + follows="left|right|top" layout="topleft" font_shadow="none" halign="left" height="16" - width="400" - top_delta="10" - left_pad="4" + width="100" + left="48" + top="200" line_spacing.pixels="2" - name="fmod_text" + name="logos_lbl" text_color="LoginProgressBoxTextColor"> - Made with FMOD Studio by Firelight Technologies Pty Ltd. + Second Life uses </text> </layout_panel> <layout_panel diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index b9e42139e6..de71a66519 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -501,6 +501,8 @@ class WindowsManifest(ViewerManifest): with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"): if self.args['fmodstudio'] == 'ON': self.path("fmod.png") + self.path("havok_logo.png") + self.path("vivox_logo.png") # Plugin host application self.path2basename(os.path.join(os.pardir, @@ -975,6 +977,8 @@ class DarwinManifest(ViewerManifest): with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"): if self.args['fmodstudio'] == 'ON': self.path("fmod.png") + self.path("havok_logo.png") + self.path("vivox_logo.png") # Translations self.path("English.lproj/language.txt") @@ -1480,6 +1484,8 @@ class Linux_i686_Manifest(LinuxManifest): with self.prefix(src=os.path.join(pkgdir, "icons"), dst="3p_icons"): if self.args['fmodstudio'] == 'ON': self.path("fmod.png") + self.path("havok_logo.png") + self.path("vivox_logo.png") with self.prefix(src=relpkgdir, dst="lib"): self.path("libapr-1.so") |