diff --git a/indra/llfilesystem/llfilesystem.cpp b/indra/llfilesystem/llfilesystem.cpp index 053b52014e..da44e8d98c 100644 --- a/indra/llfilesystem/llfilesystem.cpp +++ b/indra/llfilesystem/llfilesystem.cpp @@ -200,9 +200,36 @@ BOOL LLFileSystem::write(const U8* buffer, S32 bytes) { ofs.write((const char*)buffer, bytes); + mPosition = ofs.tellp(); // Fix asset caching + success = TRUE; } } + // Fix asset caching + else if (mMode == READ_WRITE) + { + // Don't truncate if file already exists + llofstream ofs(filename, std::ios::in | std::ios::binary); + if (ofs) + { + ofs.seekp(mPosition, std::ios::beg); + ofs.write((const char*)buffer, bytes); + mPosition += bytes; + success = TRUE; + } + else + { + // File doesn't exist - open in write mode + ofs.open(filename, std::ios::binary); + if (ofs.is_open()) + { + ofs.write((const char*)buffer, bytes); + mPosition += bytes; + success = TRUE; + } + } + } + // else { llofstream ofs(filename, std::ios::binary); diff --git a/indra/llwindow/llkeyboardmacosx.cpp b/indra/llwindow/llkeyboardmacosx.cpp index f7dc734a3e..0e9ad2e7a2 100644 --- a/indra/llwindow/llkeyboardmacosx.cpp +++ b/indra/llwindow/llkeyboardmacosx.cpp @@ -133,8 +133,10 @@ LLKeyboardMacOSX::LLKeyboardMacOSX() mTranslateKeyMap[0x7e] = KEY_UP; // Build inverse map - std::map::iterator iter; - for (iter = mTranslateKeyMap.begin(); iter != mTranslateKeyMap.end(); iter++) + // Change to U32 for SDL2 + //std::map::iterator iter; + //for (iter = mTranslateKeyMap.begin(); iter != mTranslateKeyMap.end(); iter++) + for (auto iter = mTranslateKeyMap.begin(); iter != mTranslateKeyMap.end(); iter++) { mInvTranslateKeyMap[iter->second] = iter->first; } @@ -154,7 +156,9 @@ LLKeyboardMacOSX::LLKeyboardMacOSX() mTranslateNumpadMap[0x4c] = KEY_PAD_RETURN; // keypad enter // Build inverse numpad map - for (iter = mTranslateNumpadMap.begin(); iter != mTranslateNumpadMap.end(); iter++) + // Change to U32 for SDL2 + //for (iter = mTranslateNumpadMap.begin(); iter != mTranslateNumpadMap.end(); iter++) + for (auto iter = mTranslateNumpadMap.begin(); iter != mTranslateNumpadMap.end(); iter++) { mInvTranslateNumpadMap[iter->second] = iter->first; } diff --git a/indra/llwindow/llkeyboardsdl.cpp b/indra/llwindow/llkeyboardsdl.cpp index 7c9aa1d340..b2ef1fb0e3 100644 --- a/indra/llwindow/llkeyboardsdl.cpp +++ b/indra/llwindow/llkeyboardsdl.cpp @@ -74,7 +74,6 @@ LLKeyboardSDL::LLKeyboardSDL() mTranslateKeyMap[SDLK_RIGHT] = KEY_RIGHT; mTranslateKeyMap[SDLK_UP] = KEY_UP; mTranslateKeyMap[SDLK_DOWN] = KEY_DOWN; - mTranslateKeyMap[SDLK_ESCAPE] = KEY_ESCAPE; mTranslateKeyMap[SDLK_KP_ENTER] = KEY_RETURN; mTranslateKeyMap[SDLK_ESCAPE] = KEY_ESCAPE; mTranslateKeyMap[SDLK_BACKSPACE] = KEY_BACKSPACE; diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index 9cc52c876b..dbe6222fdd 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -6.4.15 +6.4.17 diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index a2b8a67c25..5074b9b9ca 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1586,7 +1586,7 @@ Type String Value - http://crashlogs.phoenixviewer.com/upload_llsd + Backup 0 diff --git a/indra/newview/app_settings/settings_crash_behavior.xml b/indra/newview/app_settings/settings_crash_behavior.xml index a22d9a5452..36e9bcfa08 100644 --- a/indra/newview/app_settings/settings_crash_behavior.xml +++ b/indra/newview/app_settings/settings_crash_behavior.xml @@ -42,7 +42,7 @@ Type String Value - http://crashlogs.phoenixviewer.com/upload_llsd + diff --git a/indra/newview/fs_viewer_manifest.py b/indra/newview/fs_viewer_manifest.py index 933c43be6a..5bea417026 100644 --- a/indra/newview/fs_viewer_manifest.py +++ b/indra/newview/fs_viewer_manifest.py @@ -78,31 +78,6 @@ class FSViewerManifest: # New Method, for reading cross platform stack traces on a linux/mac host print( "Packaging symbols" ) - """ - Copy symbols into a .debug subdir, then add a debug link into the stripped exe. - This allows gdb to automatically pick up symbols, even when they are not embedded. - Maybe at some point it is worth to extract the build-id (readelf -n) and store the - symbols in a .symbol server in form of xy/za*.debug where xyza* is the build-id. - """ - - fileBin = os.path.join( self.get_dst_prefix(), "bin", "do-not-directly-run-firestorm-bin" ) - fileSource = os.path.join( self.get_dst_prefix(), "..", "firestorm-bin" ) - - debugName = "firestorm-bin.debug" - debugIndexName = "firestorm-bin.debug.gdb-index" - debugDir = os.path.join( self.get_dst_prefix(), "bin", ".debug" ) - debugFile = os.path.join( self.get_dst_prefix(), "bin", ".debug", debugName ) - debugIndexFile = os.path.join( self.get_dst_prefix(), "bin", ".debug", debugIndexName ) - if not os.path.exists( debugDir ): - os.makedirs( debugDir ) - - self.run_command_shell( "objcopy %s %s" % (fileSource, debugFile) ) - - self.run_command_shell( "gdb -batch -ex \"save gdb-index %s\" %s" % (debugDir, debugFile ) ) - self.run_command_shell( "objcopy --add-section .gdb_index=%s --set-section-flags .gdb_index=readonly %s %s" % (debugIndexFile, debugFile, debugFile) ) - - self.run_command_shell( "cd %s && objcopy --add-gnu-debuglink=%s %s" % (debugDir, debugName, fileBin) ) - self.fs_save_symbols("linux") def fs_linux_tar_excludes(self): diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp index 4d1162d351..f5a5314abe 100644 --- a/indra/newview/lllandmarklist.cpp +++ b/indra/newview/lllandmarklist.cpp @@ -163,7 +163,9 @@ void LLLandmarkList::processGetAssetReply( gLandmarkList.makeCallbacks(uuid); } } + else gLandmarkList.mLoadedCallbackMap.erase(uuid); // Clean up callback map } + else gLandmarkList.mLoadedCallbackMap.erase(uuid); // Clean up callback map } else { @@ -182,6 +184,7 @@ void LLLandmarkList::processGetAssetReply( gLandmarkList.mBadList.insert(uuid); gLandmarkList.mRequestedList.erase(uuid); //mBadList effectively blocks any load, so no point keeping id in requests // todo: this should clean mLoadedCallbackMap! + gLandmarkList.mLoadedCallbackMap.erase(uuid); // Clean up callback map } // getAssetData can fire callback immediately, causing @@ -225,6 +228,7 @@ void LLLandmarkList::onRegionHandle(const LLUUID& landmark_id) if (!landmark) { LL_WARNS() << "Got region handle but the landmark not found." << LL_ENDL; + mLoadedCallbackMap.erase(landmark_id); // Clean up callback map return; } @@ -234,6 +238,7 @@ void LLLandmarkList::onRegionHandle(const LLUUID& landmark_id) if (!landmark->getGlobalPos(pos)) { LL_WARNS() << "Got region handle but the landmark global position is still unknown." << LL_ENDL; + mLoadedCallbackMap.erase(landmark_id); // Clean up callback map return; } diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index a594b9583c..fc9b5174d7 100644 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -3352,13 +3352,29 @@ void LLMeshHeaderHandler::processData(LLCore::BufferArray * /* body */, S32 /* b // only allocate as much space in the cache as is needed for the local cache data_size = llmin(data_size, bytes); - LLFileSystem file(mesh_id, LLAssetType::AT_MESH, LLFileSystem::WRITE); + // Fix asset caching + //LLFileSystem file(mesh_id, LLAssetType::AT_MESH, LLFileSystem::WRITE); + LLFileSystem file(mesh_id, LLAssetType::AT_MESH, LLFileSystem::READ_WRITE); if (file.getMaxSize() >= bytes) { LLMeshRepository::sCacheBytesWritten += data_size; ++LLMeshRepository::sCacheWrites; file.write(data, data_size); + + // Fix asset caching + S32 remaining = bytes - file.tell(); + if (remaining > 0) + { + U8* block = new(std::nothrow) U8[remaining]; + if (block) + { + memset(block, 0, remaining); + file.write(block, remaining); + delete[] block; + } + } + // } } else @@ -3411,7 +3427,9 @@ void LLMeshLODHandler::processData(LLCore::BufferArray * /* body */, S32 /* body if (result == MESH_OK) { // good fetch from sim, write to cache - LLFileSystem file(mMeshParams.getSculptID(), LLAssetType::AT_MESH, LLFileSystem::WRITE); + // Fix asset caching + //LLFileSystem file(mMeshParams.getSculptID(), LLAssetType::AT_MESH, LLFileSystem::WRITE); + LLFileSystem file(mMeshParams.getSculptID(), LLAssetType::AT_MESH, LLFileSystem::READ_WRITE); S32 offset = mOffset; S32 size = mRequestedBytes; @@ -3475,7 +3493,9 @@ void LLMeshSkinInfoHandler::processData(LLCore::BufferArray * /* body */, S32 /* && gMeshRepo.mThread->skinInfoReceived(mMeshID, data, data_size)) { // good fetch from sim, write to cache - LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::WRITE); + // Fix asset caching + //LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::WRITE); + LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::READ_WRITE); S32 offset = mOffset; S32 size = mRequestedBytes; @@ -3523,7 +3543,9 @@ void LLMeshDecompositionHandler::processData(LLCore::BufferArray * /* body */, S && gMeshRepo.mThread->decompositionReceived(mMeshID, data, data_size)) { // good fetch from sim, write to cache - LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::WRITE); + // Fix asset caching + //LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::WRITE); + LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::READ_WRITE); S32 offset = mOffset; S32 size = mRequestedBytes; @@ -3570,7 +3592,9 @@ void LLMeshPhysicsShapeHandler::processData(LLCore::BufferArray * /* body */, S3 && gMeshRepo.mThread->physicsShapeReceived(mMeshID, data, data_size) == MESH_OK) { // good fetch from sim, write to cache for caching - LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::WRITE); + // Fix asset caching + //LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::WRITE); + LLFileSystem file(mMeshID, LLAssetType::AT_MESH, LLFileSystem::READ_WRITE); S32 offset = mOffset; S32 size = mRequestedBytes; diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml index cb0f874176..73d591530c 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml @@ -27,7 +27,7 @@ Texturen - + diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml index 87cd62e168..a920cce952 100644 --- a/indra/newview/skins/default/xui/de/floater_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_tools.xml @@ -92,11 +92,9 @@ þ: [COUNT] - + - - diff --git a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml index 977b513514..ec6ebbef69 100644 --- a/indra/newview/skins/default/xui/de/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/de/menu_avatar_icon.xml @@ -4,7 +4,7 @@ - + diff --git a/indra/newview/skins/default/xui/de/menu_mini_map.xml b/indra/newview/skins/default/xui/de/menu_mini_map.xml index 21360dddcf..a38e8c4f87 100644 --- a/indra/newview/skins/default/xui/de/menu_mini_map.xml +++ b/indra/newview/skins/default/xui/de/menu_mini_map.xml @@ -59,7 +59,7 @@ - + diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 22978f5ca0..4df4f2379b 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -512,9 +512,6 @@ Um Medien nur auf einer Fläche einzufügen, wählen Sie „Oberfläche auswähl Fehler beim Erstellen des Fotos! - - Du brauchst L$[COST], um diesen Artikel hochzuladen. - Es kostet L$[COST], um ein Foto in Ihrem Inventar zu speichern. Sie können entweder L$ kaufen oder das Foto auf Ihrem Computer speichern. @@ -3526,9 +3523,6 @@ Diese werden für ein paar Sekunden sicherheitshalber gesperrt. Fehler beim Speichern des Bildes unter [PATH]: Zu wenig Speicherplatz auf dem Medium. [NEED_MEMORY]KB werden benötigt, es stehen jedoch nur [FREE_MEMORY]KB zur Verfügung. - - Fehler beim Speichern des Bildes unter [PATH]: Verzeichnis nicht vorhanden. - Fehler beim Speichern des Bildes unter [PATH]: Verzeichnis existiert nicht. @@ -3730,10 +3724,6 @@ Sie haben eine [RESOLUTION]-gebackene Textur für „[BODYREGION]“ nach [TIME] ( [EXISTENCE] Sekunden am Leben) Sie haben lokal eine [RESOLUTION]-gebackene Textur für „[BODYREGION]“ nach [TIME] Sekunden aktualisiert. - - - Textur kann nicht hochgeladen werden. -[REASON] Texture konnte nicht hochgeladen werden. @@ -5261,7 +5251,7 @@ Stream-Liste erfolgreich aus XML importiert. Einstellungen wurden gesichert. - + Sicherungspfad ist nicht gesetzt. Bitte zunächst einen Ort festlegen, an dem die Einstellungen gesichert sind und von wo sie wiederhergestellt werden sollen. @@ -5314,7 +5304,7 @@ Export unerwartet fehlgeschlagen. Siehe Log-Datei für weitergehende Details. [OBJECT] erfolgreich als [FILENAME] gespeichert. - + Export von [OBJECT] nach [FILENAME] fehlgeschlagen. diff --git a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml index 151e82c73a..ba5551ac3a 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_alerts.xml @@ -29,7 +29,6 @@ - diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index 0a4f4fe8a6..2f9df6fae8 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -104,9 +104,6 @@ Voice-Serverversion: [VOICE_VERSION] [day, datetime, slt]. [month, datetime, slt] [year, datetime, slt] [hour24, datetime, slt]:[min, datetime, slt]:[second,datetime,slt] SLT - - [month, datetime, slt] [day, datetime, slt] [year, datetime, slt] [hour, datetime, slt]:[min, datetime, slt]:[second,datetime,slt] - Fehler beim Abrufen der URL für die Server-Versionshinweise. @@ -6620,7 +6617,7 @@ Support-Bereich der Website Secondlife.com und melden Sie das Problem. Explodiert - + Penetriert diff --git a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml index c2ce9b3c41..c484f4efb4 100644 --- a/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml +++ b/indra/newview/skins/default/xui/es/floater_inventory_view_finder.xml @@ -5,9 +5,7 @@ - - diff --git a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml index 4b9704d61c..3b94cf10e0 100644 --- a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml @@ -49,5 +49,4 @@ - diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml index be3eb75781..82b2f5385b 100644 --- a/indra/newview/skins/default/xui/ru/notifications.xml +++ b/indra/newview/skins/default/xui/ru/notifications.xml @@ -437,14 +437,11 @@ Ошибка при кодировке снимка. - - Чтобы загрузить этот предмет, вам нужно L$[COST]. - Требуется L$[COST] для сохранения фото в вашем инвентаре. Купите L$ или сохраните фото на компьютере. - Вам нужно L$[COST] , чтобы загрузить этот элемент. + Чтобы загрузить этот предмет, вам нужно L$[COST]. Требуется L$[COST] для сохранения текстуры в вашем инвентаре. Купите L$ или сохраните фото на компьютере. diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_UI.xml b/indra/newview/skins/default/xui/ru/panel_preferences_UI.xml index 7c8d8529bf..8baf6aed4f 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_UI.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_UI.xml @@ -34,7 +34,6 @@ Масштаб HUD: - Диалогов скрипта на объект: diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml index fc0ac4abe2..942327fe5b 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml @@ -107,7 +107,7 @@ - + Сглаживание (рекомендуется перезапуск): diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml index a9396fa8f9..cd87ce4302 100644 --- a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml @@ -100,6 +100,8 @@ + + diff --git a/indra/newview/skins/default/xui/ru/panel_settings_sky_atmos.xml b/indra/newview/skins/default/xui/ru/panel_settings_sky_atmos.xml index 13fb79c219..ca6ac3b0b8 100644 --- a/indra/newview/skins/default/xui/ru/panel_settings_sky_atmos.xml +++ b/indra/newview/skins/default/xui/ru/panel_settings_sky_atmos.xml @@ -11,14 +11,14 @@ Дымка горизонта: Плотность дымки: - Уровень влажности: + Уровень влаги: Радиус капли: Уровень льда: - Множитель плотности: - Множитель расстояния: - Максимальная высота: + Множ. плотности: + Множ. дистанции: + Макс. высота: Гамма сцены: diff --git a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml index 0c4f01b2a4..16b175fb17 100644 --- a/indra/newview/skins/default/xui/ru/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/ru/panel_tools_texture.xml @@ -26,7 +26,6 @@ - Альфа-режим diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml index ece8d1e5fc..b66ec18c51 100644 --- a/indra/newview/skins/default/xui/ru/strings.xml +++ b/indra/newview/skins/default/xui/ru/strings.xml @@ -92,6 +92,9 @@ SLURL: <nolink>[SLURL]</nolink> Память текстур: динамическая ([TEXTUREMEMORYMIN] МБ мин. / [TEXTUREMEMORYCACHERESERVE]% Кэш / [TEXTUREMEMORYGPURESERVE]% VRAM) + + Кэш диска: [DISK_CACHE_INFO] + Режим отображения HiDPI: [HIDPI]