From d3db9dd2a17a7829e9e577caa5281ef4250c5f62 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Wed, 4 Aug 2010 12:52:44 +0100 Subject: DEV-52379 FIXED (Supplementary) Viewer is not successfully caching object geometry Encapsulated building of the cache filename into a help function to prevent code duplication. Reviewed by Tofu. --- indra/newview/llviewerregion.cpp | 32 ++++++++++++++++++++++---------- indra/newview/llviewerregion.h | 10 ++++++---- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 004d138221..82fef1d916 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -79,6 +79,8 @@ // format changes. JC const U32 INDRA_OBJECT_CACHE_VERSION = 14; +// Format string used to construct filename for the object cache +static const char OBJECT_CACHE_FILENAME[] = "objects_%d_%d.slc"; extern BOOL gNoRender; @@ -323,13 +325,25 @@ LLViewerRegion::~LLViewerRegion() delete mEventPoll; LLHTTPSender::clearSender(mHost); - saveCache(); + saveObjectCache(); std::for_each(mObjectPartition.begin(), mObjectPartition.end(), DeletePointer()); } -void LLViewerRegion::loadCache() +const std::string LLViewerRegion::getObjectCacheFilename(U64 mHandle) const +{ + std::string filename; + U32 region_x, region_y; + + grid_from_region_handle(mHandle, ®ion_x, ®ion_y); + filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, + llformat(OBJECT_CACHE_FILENAME, region_x, region_y)); + + return filename; +} + +void LLViewerRegion::loadObjectCache() { if (mCacheLoaded) { @@ -341,9 +355,8 @@ void LLViewerRegion::loadCache() LLVOCacheEntry *entry; - std::string filename; - filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() + - llformat("objects_%d_%d.slc",U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS ); + std::string filename = getObjectCacheFilename(mHandle); + LL_DEBUGS("ObjectCache") << filename << LL_ENDL; LLFILE* fp = LLFile::fopen(filename, "rb"); /* Flawfinder: ignore */ if (!fp) @@ -414,7 +427,7 @@ void LLViewerRegion::loadCache() } -void LLViewerRegion::saveCache() +void LLViewerRegion::saveObjectCache() { if (!mCacheLoaded) { @@ -427,9 +440,8 @@ void LLViewerRegion::saveCache() return; } - std::string filename; - filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() + - llformat("objects_%d_%d.slc", U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS ); + std::string filename = getObjectCacheFilename(mHandle); + LL_DEBUGS("ObjectCache") << filename << LL_ENDL; LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */ if (!fp) @@ -1454,7 +1466,7 @@ void LLViewerRegion::unpackRegionHandshake() // Now that we have the name, we can load the cache file // off disk. - loadCache(); + loadObjectCache(); // After loading cache, signal that simulator can start // sending data. diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index a9e7ef771c..e15609065c 100644 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -99,9 +99,8 @@ public: ~LLViewerRegion(); // Call this after you have the region name and handle. - void loadCache(); - - void saveCache(); + void loadObjectCache(); + void saveObjectCache(); void sendMessage(); // Send the current message to this region's simulator void sendReliableMessage(); // Send the current message to this region's simulator @@ -330,6 +329,9 @@ public: LLDynamicArray mMapAvatarIDs; private: + // determine the cache filename for the region from the region handle + const std::string LLViewerRegion::getObjectCacheFilename(U64 mHandle) const; + // The surfaces and other layers LLSurface* mLandp; @@ -404,7 +406,7 @@ private: // Cache ID is unique per-region, across renames, moving locations, // etc. LLUUID mCacheID; - + typedef std::map CapabilityMap; CapabilityMap mCapabilities; -- cgit v1.2.3 From fd4cbed787e4a5e5a06898cdb46fa040163db136 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Wed, 4 Aug 2010 13:18:16 +0100 Subject: DEV-52379 FIXED (Supplementary to my supplementary) Fix Linux build breakage ... oopsie. --- indra/newview/llviewerregion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index e15609065c..8254cf1cad 100644 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -330,7 +330,7 @@ public: private: // determine the cache filename for the region from the region handle - const std::string LLViewerRegion::getObjectCacheFilename(U64 mHandle) const; + const std::string getObjectCacheFilename(U64 mHandle) const; // The surfaces and other layers LLSurface* mLandp; -- cgit v1.2.3 From 11f473210653c27c4ebcda7143cd3122aabc6ba8 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Wed, 4 Aug 2010 14:26:44 +0100 Subject: EXT-8548 FIXED Login screen contains invisible field which blocks keyboard-only login The panel_layout itself was taking focus by default (hmm). --- indra/newview/skins/default/xui/en/panel_login.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml index 185e458a85..0499873fb0 100644 --- a/indra/newview/skins/default/xui/en/panel_login.xml +++ b/indra/newview/skins/default/xui/en/panel_login.xml @@ -156,6 +156,7 @@ width="135" visible="false" /> Date: Wed, 4 Aug 2010 16:52:22 +0300 Subject: EXT-8524 FIXED Non-ASCII character corruption in date. Convert formatted date from system charset to UTF-8 on Windows (other OSes don't require this). See http://jira.secondlife.com/browse/EXT-8318 for more details. Reviewed by Sergey Litovchuk at https://codereview.productengine.com/secondlife/r/834/ --HG-- branch : product-engine --- indra/llcommon/lldate.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/indra/llcommon/lldate.cpp b/indra/llcommon/lldate.cpp index a7ef28b431..04583cdd4a 100644 --- a/indra/llcommon/lldate.cpp +++ b/indra/llcommon/lldate.cpp @@ -121,7 +121,12 @@ std::string LLDate::toHTTPDateString (tm * gmt, std::string fmt) // use strftime() as it appears to be faster than std::time_put char buffer[128]; strftime(buffer, 128, fmt.c_str(), gmt); - return std::string(buffer); + std::string res(buffer); +#if LL_WINDOWS + // Convert from locale-dependant charset to UTF-8 (EXT-8524). + res = ll_convert_string_to_utf8_string(res); +#endif + return res; } void LLDate::toStream(std::ostream& s) const -- cgit v1.2.3 From 0f3286af36c94f187f2b4a67d37bc24fcd20f5e6 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Wed, 4 Aug 2010 10:21:20 -0400 Subject: EXT-8550 DONE Rewrite "You [ACTION] a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds." for localization Split this into two messages to take out ACTION as requested. --- indra/newview/lltexlayer.cpp | 6 ++---- indra/newview/skins/default/xui/en/notifications.xml | 12 ++++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp index f4f8241b99..1feb987682 100644 --- a/indra/newview/lltexlayer.cpp +++ b/indra/newview/lltexlayer.cpp @@ -542,8 +542,7 @@ void LLTexLayerSetBuffer::doUpload() args["TIME"] = llformat("%d",(U32)mNeedsUploadTimer.getElapsedTimeF32()); args["BODYREGION"] = mTexLayerSet->getBodyRegionName(); args["RESOLUTION"] = lod_str; - args["ACTION"] = "uploaded"; - LLNotificationsUtil::add("AvatarRezSelfBakeNotification",args); + LLNotificationsUtil::add("AvatarRezSelfBakedTextureUploadNotification",args); llinfos << "Uploading [ name: " << mTexLayerSet->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUploadTimer.getElapsedTimeF32() << " ]" << llendl; } } @@ -593,8 +592,7 @@ void LLTexLayerSetBuffer::doUpdate() args["TIME"] = llformat("%d",(U32)mNeedsUpdateTimer.getElapsedTimeF32()); args["BODYREGION"] = mTexLayerSet->getBodyRegionName(); args["RESOLUTION"] = lod_str; - args["ACTION"] = "locally updated"; - LLNotificationsUtil::add("AvatarRezSelfBakeNotification",args); + LLNotificationsUtil::add("AvatarRezSelfBakedTextureUpdateNotification",args); llinfos << "Locally updating [ name: " << mTexLayerSet->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUpdateTimer.getElapsedTimeF32() << " ]" << llendl; } } diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 95ee374e39..3576462cca 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6340,10 +6340,18 @@ Avatar '[NAME]' left as fully loaded. ( [EXISTENCE] seconds alive ) -You [ACTION] a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds. +You uploaded a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds. + + + +( [EXISTENCE] seconds alive ) +You locally updated a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds. Date: Wed, 4 Aug 2010 10:55:07 -0600 Subject: more fix for EXT-7397: decoding textures get stuck in REQ status --- indra/newview/lltexturefetch.cpp | 2 +- indra/newview/lltexturefetch.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 63bcdcda2d..65a40a5b3a 100644 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -1707,7 +1707,7 @@ bool LLTextureFetch::isHTTPThrottled(S32 requested_size) if(mHTTPTextureQueue.size() >= MAX_HTTP_QUEUE_SIZE)//if the http queue is full. { - if(!mHTTPThrottleFlag[TOTAL_TEXTURE_TYPES - 1]) + if(!mHTTPThrottleFlag[type + 1]) { for(S32 i = type + 1 ; i < TOTAL_TEXTURE_TYPES; i++) //block all requests with fetching size larger than this request. { diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h index bae2ceff72..c31c38b04a 100644 --- a/indra/newview/lltexturefetch.h +++ b/indra/newview/lltexturefetch.h @@ -141,6 +141,7 @@ private: SMALL_TEXTURE = 0 , //size <= 64 * 64 MEDIUM_TEXTURE, //size <= 256 * 256 LARGE_TEXTURE, //size > 256 * 256 + DUMMY, TOTAL_TEXTURE_TYPES }; BOOL mHTTPThrottleFlag[TOTAL_TEXTURE_TYPES]; -- cgit v1.2.3 From 7253c7eeb156f9f6cd75f52b0df856ec8ef165fb Mon Sep 17 00:00:00 2001 From: Andrew Dyukov Date: Wed, 4 Aug 2010 21:13:11 +0300 Subject: EXT-7511 FIXED Fixed item selection cropping in Edit Outfit Restored changeset which was lost after merge 58571b4e704b. Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/780/ --HG-- branch : product-engine --- indra/newview/llinventorylistitem.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/indra/newview/llinventorylistitem.cpp b/indra/newview/llinventorylistitem.cpp index e4a7a158a3..2546390fcb 100644 --- a/indra/newview/llinventorylistitem.cpp +++ b/indra/newview/llinventorylistitem.cpp @@ -96,9 +96,12 @@ void LLPanelInventoryListItemBase::draw() if (mSeparatorVisible && mSeparatorImage) { - // stretch along bottom of listitem, using image height + // place under bottom of listitem, using image height + // item_pad in list using the item should be >= image height + // to avoid cropping of top of the next item. LLRect separator_rect = getLocalRect(); - separator_rect.mTop = mSeparatorImage->getHeight(); + separator_rect.mTop = separator_rect.mBottom; + separator_rect.mBottom -= mSeparatorImage->getHeight(); mSeparatorImage->draw(separator_rect); } -- cgit v1.2.3 From b3fd508cff74da6b8620dc440482e41fabc9337a Mon Sep 17 00:00:00 2001 From: Eli Linden Date: Wed, 4 Aug 2010 12:51:12 -0700 Subject: CT-575 WIP PT translation for set16 for Viewer 2.1.1 --- indra/newview/skins/default/xui/fr/strings.xml | 2 +- .../default/xui/pt/floater_preview_gesture.xml | 7 +- .../skins/default/xui/pt/floater_world_map.xml | 13 ++-- indra/newview/skins/default/xui/pt/menu_viewer.xml | 2 +- .../newview/skins/default/xui/pt/notifications.xml | 7 +- .../skins/default/xui/pt/panel_group_notices.xml | 2 +- .../skins/default/xui/pt/panel_group_roles.xml | 18 ++--- .../default/xui/pt/panel_preferences_sound.xml | 10 ++- .../default/xui/pt/panel_teleport_history.xml | 3 +- .../skins/default/xui/pt/sidepanel_item_info.xml | 3 +- indra/newview/skins/default/xui/pt/strings.xml | 89 +++++++++++++++++++++- 11 files changed, 125 insertions(+), 31 deletions(-) diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index 7aadaed209..c2a0e173ed 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -541,7 +541,7 @@ Va te faire voir ! - Baiser + Envoyer un baiser Rire diff --git a/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml b/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml index a01bee94a1..80bdbb0fb4 100644 --- a/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml @@ -42,7 +42,12 @@ Biblioteca: - + + + + + +