summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2024-07-15 07:32:14 +0800
committerErik Kundiman <erik@megapahit.org>2024-07-15 07:32:14 +0800
commit972a3c4b944bd5a313eb4ba15b455133b3cb4ebb (patch)
tree2601642c922d2e7bdaa527ecba23fab5a94b1902
parent22c216764f9aaefa45a82cc8666cff7d4e3f4da8 (diff)
parent54ef82dae2005d2340ea39208f262c564642f98f (diff)
Merge branch 'main' into maint-b
-rw-r--r--indra/llrender/llgl.cpp14
-rw-r--r--indra/llrender/llvertexbuffer.cpp41
-rw-r--r--indra/llwindow/llwindow.h4
-rw-r--r--indra/llwindow/llwindowmacosx.cpp14
-rw-r--r--indra/llwindow/llwindowsdl.cpp16
-rw-r--r--indra/newview/CMakeLists.txt22
-rw-r--r--indra/newview/app_settings/settings.xml18
-rw-r--r--indra/newview/llfloatercamera.cpp25
-rw-r--r--indra/newview/llfloatercamera.h6
-rw-r--r--indra/newview/llprogressview.cpp14
-rw-r--r--indra/newview/llviewerfloaterreg.cpp6
-rw-r--r--indra/newview/llviewerwindow.cpp2
-rw-r--r--indra/newview/mpfloatertuning.cpp (renamed from indra/newview/mpvfloatertuning.cpp)31
-rw-r--r--indra/newview/mpfloatertuning.h (renamed from indra/newview/mpvfloatertuning.h)10
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml113
-rw-r--r--indra/newview/skins/default/xui/en/floater_mp_performance.xml (renamed from indra/newview/skins/default/xui/en/floater_mpv_performance.xml)13
-rw-r--r--indra/newview/skins/default/xui/en/floater_script.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml3
18 files changed, 192 insertions, 163 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index eae395e90c..f3346733aa 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -50,6 +50,11 @@
#include "llglheaders.h"
#include "llglslshader.h"
+#include "llvertexbuffer.h"
+#include "llcontrol.h"
+extern LLControlGroup gSavedSettings;
+
+
#if LL_WINDOWS
#include "lldxhardware.h"
#endif
@@ -1259,6 +1264,15 @@ bool LLGLManager::initGL()
initGLStates();
+ U32 MPVBufferOptiMode = gSavedSettings.getU32("MPVBufferOptiMode");
+ if (MPVBufferOptiMode == 0)
+ {
+ if(mIsApple) MPVBufferOptiMode = 2;
+ else MPVBufferOptiMode = 1;
+ gSavedSettings.setU32("MPVBufferOptiMode",MPVBufferOptiMode);
+ }
+ LLVertexBuffer::sMappingMode = MPVBufferOptiMode;
+
return true;
}
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 30a7ed796a..59a8b3f7fb 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -534,7 +534,7 @@ U32 LLVertexBuffer::sGLRenderIndices = 0;
U32 LLVertexBuffer::sLastMask = 0;
U32 LLVertexBuffer::sVertexCount = 0;
-U32 LLVertexBuffer::sMappingMode = gSavedSettings.getU32("MPVBufferOptiMode");
+U32 LLVertexBuffer::sMappingMode = 0;
//NOTE: each component must be AT LEAST 4 bytes in size to avoid a performance penalty on AMD hardware
const U32 LLVertexBuffer::sTypeSize[LLVertexBuffer::TYPE_MAX] =
@@ -1149,17 +1149,12 @@ U8* LLVertexBuffer::mapIndexBuffer(U32 index, S32 count)
// start -- first byte to copy
// end -- last byte to copy (NOT last byte + 1)
// data -- mMappedData or mMappedIndexData
-static void flush_vbo(GLenum target, U32 start, U32 end, void* data, S16 mode)
+// note (observeur) : the mode parameter adds an altenative method to map the buffer
+// mode = 0 or 1: glBufferSubData(), mode = 2 : glMapBufferRange() works much better on Apple gpus
+// mode = 3 or 4: experimental bits parameters for glMapBufferRange()
+static void flush_vbo(GLenum target, U32 start, U32 end, void* data, U32 mode)
{
- if (end == 0) return;
-
- if (mode == 0)
- {
- if(gGLManager.mIsApple) mode = 2;
- else mode = 1;
- }
-
- if (mode == 1)
+ if (mode < 2)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_VERTEX("glBufferSubData");
LL_PROFILE_ZONE_NUM(start);
@@ -1173,7 +1168,6 @@ static void flush_vbo(GLenum target, U32 start, U32 end, void* data, S16 mode)
LL_PROFILE_ZONE_NAMED_CATEGORY_VERTEX("glBufferSubData block");
LL_PROFILE_GPU_ZONE("glBufferSubData");
U32 tend = llmin(i + block_size, end);
- //U32 size = tend - i + 1;
glBufferSubData(target, i, tend - i +1, (U8*) data + (i-start));
}
@@ -1181,7 +1175,8 @@ static void flush_vbo(GLenum target, U32 start, U32 end, void* data, S16 mode)
}
U32 MapBits = GL_MAP_WRITE_BIT;
- if (mode>2) MapBits = GL_MAP_WRITE_BIT | GL_MAP_UNSYNCHRONIZED_BIT;
+ if (mode==3) MapBits = MapBits | GL_MAP_INVALIDATE_RANGE_BIT;
+ if (mode==4) MapBits = MapBits | GL_MAP_UNSYNCHRONIZED_BIT;
U32 buffer_size = end-start+1;
@@ -1191,16 +1186,9 @@ static void flush_vbo(GLenum target, U32 start, U32 end, void* data, S16 mode)
if (mptr)
{
std::memcpy(mptr, (U8*) data, buffer_size);
- if(!glUnmapBuffer(target))
- {
- LL_WARNS() << "glUnmapBuffer() failed" << LL_ENDL;
- }
+ if(!glUnmapBuffer(target)) LL_WARNS() << "glUnmapBuffer() failed" << LL_ENDL;
}
- else
- {
- LL_WARNS() << "glMapBufferRange() returned NULL" << LL_ENDL;
- }
-
+ else LL_WARNS() << "glMapBufferRange() returned NULL" << LL_ENDL;
}
void LLVertexBuffer::unmapBuffer()
@@ -1236,13 +1224,13 @@ void LLVertexBuffer::unmapBuffer()
}
else
{
- flush_vbo(GL_ARRAY_BUFFER, start, end, (U8*)mMappedData + start, sMappingMode);
+ if(end > start) flush_vbo(GL_ARRAY_BUFFER, start, end, (U8*)mMappedData + start,sMappingMode);
start = region.mStart;
end = region.mEnd;
}
}
- flush_vbo(GL_ARRAY_BUFFER, start, end, (U8*)mMappedData + start, sMappingMode);
+ if(end > start) flush_vbo(GL_ARRAY_BUFFER, start, end, (U8*)mMappedData + start,sMappingMode);
mMappedVertexRegions.clear();
}
@@ -1270,14 +1258,13 @@ void LLVertexBuffer::unmapBuffer()
}
else
{
- flush_vbo(GL_ELEMENT_ARRAY_BUFFER, start, end, (U8*)mMappedIndexData + start, sMappingMode);
-
+ if(end > start) flush_vbo(GL_ELEMENT_ARRAY_BUFFER, start, end, (U8*)mMappedIndexData + start, sMappingMode);
start = region.mStart;
end = region.mEnd;
}
}
- flush_vbo(GL_ELEMENT_ARRAY_BUFFER, start, end, (U8*)mMappedIndexData + start, sMappingMode);
+ if(end > start) flush_vbo(GL_ELEMENT_ARRAY_BUFFER, start, end, (U8*)mMappedIndexData + start, sMappingMode);
mMappedIndexRegions.clear();
}
diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h
index 5bb538f892..aff9334cb6 100644
--- a/indra/llwindow/llwindow.h
+++ b/indra/llwindow/llwindow.h
@@ -34,8 +34,6 @@
#include "llinstancetracker.h"
#include "llsd.h"
-#include "../llrender/llglheaders.h"
-
class LLSplashScreen;
class LLPreeditor;
class LLWindowCallbacks;
@@ -245,8 +243,6 @@ protected:
S32 mMinWindowHeight;
S32 mRefreshRate;
- GLsync swapFense;
-
// Handle a UTF-16 encoding unit received from keyboard.
// Converting the series of UTF-16 encoding units to UTF-32 data,
// this method passes the resulting UTF-32 data to mCallback's
diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 1b8ab27f23..842a41427e 100644
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -38,7 +38,6 @@
#include "lldir.h"
#include "indra_constants.h"
-#include "../newview/llviewercontrol.h"
#include <OpenGL/OpenGL.h>
#include <Carbon/Carbon.h>
@@ -1013,19 +1012,6 @@ BOOL LLWindowMacOSX::setSizeImpl(const LLCoordWindow size)
void LLWindowMacOSX::swapBuffers()
{
CGLFlushDrawable(mContext);
-
- U32 mode = gSavedSettings.getU32("MPVBufferOptiMode");
- if (mode == 0)
- {
- if(gGLManager.mIsApple) mode = 2;
- else mode = 1;
- }
- if (mode > 2)
- {
- glClientWaitSync(swapFense, GL_SYNC_FLUSH_COMMANDS_BIT, GL_TIMEOUT_IGNORED);
- glDeleteSync(swapFense);
- swapFense = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
- }
}
void LLWindowMacOSX::restoreGLContext()
diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index 83f5e16977..eb689dc48c 100644
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -38,10 +38,6 @@
#include "lldir.h"
#include "llfindlocale.h"
-#include "../newview/llviewercontrol.h"
-
-extern LLControlGroup gSavedSettings;
-
#ifdef LL_GLIB
#include <glib.h>
#endif
@@ -1259,18 +1255,6 @@ void LLWindowSDL::swapBuffers()
if (mWindow)
{
SDL_GL_SwapWindow( mWindow );
- U32 mode = gSavedSettings.getU32("MPVBufferOptiMode");
- if (mode == 0)
- {
- if(gGLManager.mIsApple) mode = 2;
- else mode = 1;
- }
- if (mode > 2)
- {
- glClientWaitSync(swapFense, GL_SYNC_FLUSH_COMMANDS_BIT, GL_TIMEOUT_IGNORED);
- glDeleteSync(swapFense);
- swapFense = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
- }
}
}
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 5cc1a4ec16..226c905463 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -250,7 +250,7 @@ set(viewer_SOURCE_FILES
llfloaterhandler.cpp
llfloaterhelpbrowser.cpp
llfloaterhoverheight.cpp
- mpvfloatertuning.cpp
+ mpfloatertuning.cpp
llfloaterhowto.cpp
llfloaterhud.cpp
llfloaterimagepreview.cpp
@@ -913,7 +913,7 @@ set(viewer_HEADER_FILES
llfloaterhandler.h
llfloaterhelpbrowser.h
llfloaterhoverheight.h
- mpvfloatertuning.h
+ mpfloatertuning.h
llfloaterhowto.h
llfloaterhud.h
llfloaterimagepreview.h
@@ -1417,7 +1417,7 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt"
"${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}\n")
set_source_files_properties(
- llversioninfo.cpp tests/llversioninfo_test.cpp
+ llversioninfo.cpp tests/llversioninfo_test.cpp
PROPERTIES
COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}" # see BuildVersion.cmake
)
@@ -1623,7 +1623,7 @@ endif (WINDOWS)
file(GLOB_RECURSE viewer_XUI_FILES LIST_DIRECTORIES FALSE
${CMAKE_CURRENT_SOURCE_DIR}/skins/*.xml)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/skins PREFIX "XUI Files" FILES ${viewer_XUI_FILES})
-set_source_files_properties(${viewer_XUI_FILES}
+set_source_files_properties(${viewer_XUI_FILES}
PROPERTIES HEADER_FILE_ONLY TRUE)
list(APPEND viewer_SOURCE_FILES ${viewer_XUI_FILES})
@@ -1631,7 +1631,7 @@ list(APPEND viewer_SOURCE_FILES ${viewer_XUI_FILES})
file(GLOB_RECURSE viewer_SHADER_FILES LIST_DIRECTORIES FALSE
${CMAKE_CURRENT_SOURCE_DIR}/app_settings/shaders/*.glsl)
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/app_settings/shaders PREFIX "Shaders" FILES ${viewer_SHADER_FILES})
-set_source_files_properties(${viewer_SHADER_FILES}
+set_source_files_properties(${viewer_SHADER_FILES}
PROPERTIES HEADER_FILE_ONLY TRUE)
list(APPEND viewer_SOURCE_FILES ${viewer_SHADER_FILES})
@@ -1923,7 +1923,7 @@ endif (WINDOWS)
# one of these being libz where you can find four or more versions in play
# at once. On Linux, libz can be found at link and run time via a number
# of paths:
-#
+#
# => -lfreetype
# => libz.so.1 (on install machine, not build)
# => -lSDL
@@ -2040,7 +2040,7 @@ foreach(elem ${country_codes})
set(emoji_mapping_src_file
"${emoji_mapping_src_folder}/${elem}/emoji_characters.xml")
set(emoji_mapping_dst_file
- "${emoji_mapping_dst_folder}/${elem}/emoji_characters.xml")
+ "${emoji_mapping_dst_folder}/${elem}/emoji_characters.xml")
configure_file(${emoji_mapping_src_file} ${emoji_mapping_dst_file} COPYONLY)
endforeach()
@@ -2144,7 +2144,7 @@ if (DARWIN)
# https://blog.kitware.com/upcoming-in-cmake-2-8-12-osx-rpath-support/
set(CMAKE_MACOSX_RPATH 1)
-
+
set_target_properties(
${VIEWER_BINARY_NAME}
PROPERTIES
@@ -2351,7 +2351,7 @@ if (LL_TESTS)
# llremoteparcelrequest.cpp
llviewerhelputil.cpp
llversioninfo.cpp
-# llvocache.cpp
+# llvocache.cpp
llworldmap.cpp
llworldmipmap.cpp
)
@@ -2360,7 +2360,7 @@ if (LL_TESTS)
llworldmap.cpp
llworldmipmap.cpp
PROPERTIES
- LL_TEST_ADDITIONAL_SOURCE_FILES
+ LL_TEST_ADDITIONAL_SOURCE_FILES
tests/llviewertexture_stub.cpp
#llviewertexturelist.cpp
)
@@ -2394,7 +2394,7 @@ if (LL_TESTS)
llworldmap.cpp
llworldmipmap.cpp
PROPERTIES
- LL_TEST_ADDITIONAL_SOURCE_FILES
+ LL_TEST_ADDITIONAL_SOURCE_FILES
tests/llviewertexture_stub.cpp
)
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index d132e81e20..1de263b5cc 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -13773,7 +13773,10 @@
<key>Comment</key>
<string>
OpenGL buffer mapping mode:
- 0:auto, 1:normal, 2:optimised, 3:unsynchronized.</string>
+ 0:auto
+ 1:normal
+ 2:optimised
+ 3:experimental.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -13781,7 +13784,18 @@
<key>Value</key>
<integer>0</integer>
</map>
-
+ <key>MPVCameraCollapsed</key>
+ <map>
+ <key>Comment</key>
+ <string>
+ Camera floater collapsed</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<!-- Settings below are for back compatibility only.
They are not used in current viewer anymore. But they can't be removed to avoid
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index 4b91ff6881..b08af851c3 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -478,10 +478,8 @@ BOOL LLFloaterCamera::postBuild()
mZoom = getChild<LLPanelCameraZoom>(ZOOM);
mTrack = getChild<LLJoystickCameraTrack>(PAN);
mPresetCombo = getChild<LLComboBox>("preset_combo");
- mPreciseCtrls = getChild<LLTextBox>("precise_ctrs_label");
+ mPreciseCtrls = getChild<LLButton>("precise_btn");
- mPreciseCtrls->setShowCursorHand(false);
- mPreciseCtrls->setSoundFlags(LLView::MOUSE_UP);
mPreciseCtrls->setClickedCallback(boost::bind(&LLFloaterReg::showInstance, "prefs_view_advanced", LLSD(), FALSE));
mPresetCombo->setCommitCallback(boost::bind(&LLFloaterCamera::onCustomPresetSelected, this));
@@ -492,6 +490,11 @@ BOOL LLFloaterCamera::postBuild()
// ensure that appearance mode is handled while building. See EXT-7796.
handleAvatarEditingAppearance(sAppearanceEditing);
+ mCollapseCtrl = getChild<LLButton>("collapse_btn");
+ mCollapseCtrl->setCommitCallback(boost::bind(&LLFloaterCamera::toggleCollapsedView, this));
+
+ updateCollapsedView();
+
return LLFloater::postBuild();
}
@@ -736,3 +739,19 @@ void LLFloaterCamera::onCustomPresetSelected()
switchToPreset(selected_preset);
}
}
+
+void LLFloaterCamera::toggleCollapsedView()
+{
+ BOOL isCollapsed = gSavedSettings.getBOOL("MPVCameraCollapsed");
+ gSavedSettings.setBOOL("MPVCameraCollapsed", !isCollapsed);
+ updateCollapsedView();
+}
+
+void LLFloaterCamera::updateCollapsedView()
+{
+ BOOL isCollapsed = gSavedSettings.getBOOL("MPVCameraCollapsed");
+ mCollapseCtrl->setImageOverlay(!isCollapsed ? "Conv_toolbar_collapse" : "Conv_toolbar_expand");
+ getChild<LLPanel>("buttons_panel")->setVisible(!isCollapsed);
+ //mPreciseCtrls->setVisible(!collapse);
+ reshape(!isCollapsed ? 410 : 220, getRect().getHeight(), FALSE);
+}
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index 038ce8f173..561e9a5bb3 100644
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
@@ -122,6 +122,9 @@ private:
void showDebugInfo(bool show);
+ void toggleCollapsedView();
+ void updateCollapsedView();
+
// set to true when free camera mode is selected in modes list
// remains true until preset camera mode is chosen, or pan button is clicked, or escape pressed
static bool sFreeCamera;
@@ -135,7 +138,8 @@ private:
LLPanel* mViewerCameraInfo { nullptr };
LLPanel* mAgentCameraInfo { nullptr };
LLComboBox* mPresetCombo { nullptr };
- LLTextBox* mPreciseCtrls { nullptr };
+ LLButton* mPreciseCtrls { nullptr };
+ LLButton* mCollapseCtrl { nullptr };
};
/**
diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp
index 664860db30..0a2debc7c6 100644
--- a/indra/newview/llprogressview.cpp
+++ b/indra/newview/llprogressview.cpp
@@ -379,17 +379,17 @@ void LLProgressView::initLogos()
{
mLogosList.clear();
- const U8 image_codec = IMG_CODEC_PNG;
- const LLRectf default_clip(0.f, 1.f, 1.f, 0.f);
+ //const U8 image_codec = IMG_CODEC_PNG;
+ //const LLRectf default_clip(0.f, 1.f, 1.f, 0.f);
//const S32 default_height = 28;
- const S32 default_pad = 15;
+ //const S32 default_pad = 15;
- S32 icon_width, icon_height;
+ //S32 icon_width, icon_height;
// 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 = -7;
+ //LLTextBox *logos_label = getChild<LLTextBox>("logos_lbl");
+ //S32 texture_start_x = logos_label->getFont()->getWidthF32(logos_label->getText()) + default_pad;
+ //S32 texture_start_y = -7;
// Normally we would just preload these textures from textures.xml,
// and display them via icon control, but they are only needed on
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 9ec5f4f122..38fde25ebb 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -81,7 +81,7 @@
#include "llfloatergroups.h"
#include "llfloaterhelpbrowser.h"
#include "llfloaterhoverheight.h"
-#include "mpvfloatertuning.h"
+#include "mpfloatertuning.h"
#include "llfloaterhowto.h"
#include "llfloaterhud.h"
#include "llfloaterimagepreview.h"
@@ -381,8 +381,8 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("edit_hover_height", "floater_edit_hover_height.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHoverHeight>);
LLFloaterReg::add("hud", "floater_hud.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHUD>);
- LLFloaterReg::add("mpv_performance", "floater_mpv_performance.xml", (LLFloaterBuildFunc)&
- LLFloaterReg::build<MPVFloaterTuning>);
+ LLFloaterReg::add("mpv_performance", "floater_mp_performance.xml", (LLFloaterBuildFunc)&
+ LLFloaterReg::build<MPFloaterTuning>);
LLFloaterReg::add("impanel", "floater_im_session.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterIMSession>);
LLFloaterReg::add("im_container", "floater_im_container.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterIMContainer>);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index a19d9a3567..e7caf777f5 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2010,6 +2010,8 @@ LLViewerWindow::LLViewerWindow(const Params& p)
mDebugText = new LLDebugText(this);
mWorldViewRectScaled = calcScaledRect(mWorldViewRectRaw, mDisplayScale);
+
+ mWindow->toggleVSync(gSavedSettings.getBOOL("RenderVSyncEnabled"));
}
std::string LLViewerWindow::getLastSnapshotDir()
diff --git a/indra/newview/mpvfloatertuning.cpp b/indra/newview/mpfloatertuning.cpp
index 177bd3caa7..938299cacf 100644
--- a/indra/newview/mpvfloatertuning.cpp
+++ b/indra/newview/mpfloatertuning.cpp
@@ -1,5 +1,5 @@
/**
-* @file mpvfloatertuning.cpp
+* @file mpfloatertuning.cpp
* @brief Controller for viewer tuning
* @author observeur@megapahit.net
*
@@ -27,7 +27,7 @@
#include "llviewerprecompiledheaders.h"
-#include "mpvfloatertuning.h"
+#include "mpfloatertuning.h"
#include "llsliderctrl.h"
#include "llcheckboxctrl.h"
#include "llcombobox.h"
@@ -36,34 +36,41 @@
#include "../llrender/llvertexbuffer.cpp"
-MPVFloaterTuning::MPVFloaterTuning(const LLSD& key) : LLFloater(key)
+MPFloaterTuning::MPFloaterTuning(const LLSD& key) : LLFloater(key)
{
}
-void MPVFloaterTuning::syncFromPreferenceSetting(void *user_data)
+void MPFloaterTuning::syncFromPreferenceSetting(void *user_data)
{
- MPVFloaterTuning *self = static_cast<MPVFloaterTuning*>(user_data);
+ MPFloaterTuning *self = static_cast<MPFloaterTuning*>(user_data);
U32 fps = gSavedSettings.getU32("MaxFPS");
LLSliderCtrl* fpsSliderCtrl = self->getChild<LLSliderCtrl>("fpsSlider");
fpsSliderCtrl->setValue(fps,FALSE);
U32 optBuf = gSavedSettings.getU32("MPVBufferOptiMode");
+
+ if(optBuf == 0)
+ {
+ if(gGLManager.mIsApple) optBuf = 2;
+ else optBuf = 1;
+ }
+
LLComboBox * optBufCtrl = self->getChild<LLComboBox>("MPVBuffModeComboBox");
- optBufCtrl->setCurrentByIndex(optBuf);
+ optBufCtrl->setCurrentByIndex(optBuf-1);
LL_INFOS() << "syncFromPreferenceSetting optBuf=" << optBuf << LL_ENDL;
}
-BOOL MPVFloaterTuning::postBuild()
+BOOL MPFloaterTuning::postBuild()
{
LLSliderCtrl* fpsSliderCtrl = getChild<LLSliderCtrl>("fpsSlider");
fpsSliderCtrl->setMinValue(0);
fpsSliderCtrl->setMaxValue(165);
- fpsSliderCtrl->setSliderMouseUpCallback(boost::bind(&MPVFloaterTuning::onFinalCommit,this));
+ fpsSliderCtrl->setSliderMouseUpCallback(boost::bind(&MPFloaterTuning::onFinalCommit,this));
LLComboBox* optBufCtrl = getChild<LLComboBox>("MPVBuffModeComboBox");
- optBufCtrl->setCommitCallback(boost::bind(&MPVFloaterTuning::onFinalCommit,this));
+ optBufCtrl->setCommitCallback(boost::bind(&MPFloaterTuning::onFinalCommit,this));
syncFromPreferenceSetting(this);
@@ -72,19 +79,19 @@ BOOL MPVFloaterTuning::postBuild()
// Do send-to-the-server work when slider drag completes, or new
// value entered as text.
-void MPVFloaterTuning::onFinalCommit()
+void MPFloaterTuning::onFinalCommit()
{
LLSliderCtrl* fpsSliderCtrl = getChild<LLSliderCtrl>("fpsSlider");
U32 fps = (U32)fpsSliderCtrl->getValueF32();
gSavedSettings.setU32("MaxFPS",fps);
LLComboBox* optBufCtrl = getChild<LLComboBox>("MPVBuffModeComboBox");
- S16 optBuf = optBufCtrl->getCurrentIndex();
+ S16 optBuf = optBufCtrl->getCurrentIndex() + 1;
gSavedSettings.setU32("MPVBufferOptiMode",optBuf);
LLVertexBuffer::sMappingMode = optBuf;
}
-void MPVFloaterTuning::onClose(bool app_quitting)
+void MPFloaterTuning::onClose(bool app_quitting)
{
} \ No newline at end of file
diff --git a/indra/newview/mpvfloatertuning.h b/indra/newview/mpfloatertuning.h
index ed91317eab..8812395ef3 100644
--- a/indra/newview/mpvfloatertuning.h
+++ b/indra/newview/mpfloatertuning.h
@@ -1,5 +1,5 @@
/**
-* @file mpvfloatertuning.h
+* @file mpfloatertuning.h
* @brief Controller for viewer tuning
* @author observeur@megapahit.net
*
@@ -24,15 +24,15 @@
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
-#ifndef LL_MPVFLOATERTUNING_H
-#define LL_MPVFLOATERTUNING_H
+#ifndef LL_MPFLOATERTUNING_H
+#define LL_MPFLOATERTUNING_H
#include "llfloater.h"
-class MPVFloaterTuning: public LLFloater
+class MPFloaterTuning: public LLFloater
{
public:
- MPVFloaterTuning(const LLSD& key);
+ MPFloaterTuning(const LLSD& key);
BOOL postBuild();
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index 93b306d7d7..44a5638bc4 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -5,9 +5,11 @@
bottom="-50"
follows="left|bottom"
legacy_header_height="18"
- can_minimize="true"
+ can_minimize="false"
+ can_collapse="false"
can_close="true"
- height="135"
+ width="410"
+ height="114"
layout="topleft"
name="camera_floater"
help_topic="camera_floater"
@@ -15,8 +17,7 @@
single_instance="true"
title="CAMERA CONTROLS"
chrome="true"
- save_rect="true"
- width="400">
+ save_rect="true">
<floater.string
name="rotate_tooltip">
Rotate Camera Around Focus
@@ -36,18 +37,19 @@
<string name="inactive_combo_text">Use preset</string>
<panel
border="false"
- height="123"
+ width="220"
+ height="90"
layout="topleft"
left="2"
- top="0"
+ top="18"
mouse_opaque="false"
name="controls"
- width="220">
+ >
<!--TODO: replace + - images -->
<panel
border="false"
class="camera_zoom_panel"
- height="123"
+ height="90"
layout="topleft"
left="0"
mouse_opaque="false"
@@ -56,54 +58,59 @@
width="220">
<joystick_rotate
follows="top|left"
+ width="78"
height="78"
layout="topleft"
left="7"
+ top="8"
name="cam_rotate_stick"
quadrant="left"
sound_flags="3"
visible="true"
+ scale_image="true"
tool_tip="Orbit camera around focus"
- top="25"
- width="78" />
+ />
<button
follows="top|left"
+ width="18"
height="18"
+ left_pad="4"
+ top="2"
+ layout="topleft"
image_disabled="AddItem_Disabled"
image_selected="AddItem_Press"
image_unselected="AddItem_Off"
- layout="topleft"
- left_pad="14"
name="zoom_plus_btn"
- width="18"
- top="23">
+ >
<commit_callback
function="Zoom.plus" />
<mouse_held_callback
function="Zoom.plus" />
</button>
<slider_bar
+ width="18"
height="50"
+ top_pad="0"
layout="topleft"
name="zoom_slider"
orientation="vertical"
tool_tip="Zoom camera toward focus"
- top_pad="0"
min_val="0"
- max_val="1"
- width="18">
+ max_val="1"
+ >
<commit_callback function="Slider.value_changed"/>
</slider_bar>
<button
follows="top|left"
+ width="18"
height="18"
+ top_pad="0"
+ layout="topleft"
image_disabled="MinusItem_Disabled"
image_selected="MinusItem_Press"
image_unselected="MinusItem_Off"
- layout="topleft"
name="zoom_minus_btn"
- top_pad="0"
- width="18">
+ >
<commit_callback
function="Zoom.minus" />
<mouse_held_callback
@@ -111,35 +118,46 @@
</button>
<joystick_track
follows="top|left"
+ width="78"
height="78"
+ left_pad="4"
image_selected="Cam_Tracking_In"
image_unselected="Cam_Tracking_Out"
layout="topleft"
- left="133"
name="cam_track_stick"
quadrant="left"
- scale_image="false"
+ scale_image="true"
sound_flags="3"
tool_tip="Move camera up and down, left and right"
- top="25"
- width="78"/>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="15"
+ />
+ <button
+ follows="top|left"
+ width="18"
+ height="18"
+ top="8"
+ left_pad="6"
+ layout="topleft"
+ name="collapse_btn"
+ >
+ </button>
+ <button
+ follows="top|left"
+ width="18"
+ height="18"
+ top_pad="4"
layout="topleft"
- left="41"
- top_pad="9"
- name="precise_ctrs_label"
- width="200">
- Use precise controls
- </text>
+ name="precise_btn"
+ image_disabled="Cam_FreeCam_Off"
+ image_selected="Cam_FreeCam_Off"
+ image_unselected="Cam_FreeCam_Off"
+ tool_tip="Use precise controls"
+ >
+ </button>
</panel>
</panel>
<panel
follows="left|top"
- height="102"
+ height="90"
layout="topleft"
left_pad="2"
right="-2"
@@ -216,7 +234,7 @@
mouse_opaque="true"
name="preset_combo"
top_pad="10"
- width="136">
+ width="124">
<combo_list
mouse_wheel_opaque="true"/>
<combo_box.item
@@ -226,13 +244,13 @@
</combo_box>
<button
height="16"
- width="16"
+ width="16"
layout="topleft"
mouse_opaque="true"
name="gear_btn"
tool_tip="My Camera Presets"
top_delta="3"
- left_pad="10"
+ left_pad="10"
image_selected="Icon_Gear"
image_pressed="Icon_Gear"
image_unselected="Icon_Gear"
@@ -242,13 +260,16 @@
</button>
<button
follows="top|left"
- height="25"
- label="Save as preset..."
+ width="18"
+ height="18"
+ left_pad="4"
+ tooltip_text="Save as preset..."
layout="topleft"
- left="0"
name="save_preset_btn"
- top_pad="18"
- width="150">
+ image_disabled="Conv_toolbar_plus"
+ image_selected="Conv_toolbar_plus"
+ image_unselected="Conv_toolbar_plus"
+ >
<button.commit_callback
function="CameraPresets.Save"/>
</button>
@@ -259,7 +280,7 @@
top="135"
width="400"
height="150"
- border="true"
+ border="false"
visible="false"
background_visible="true"/>
<panel
@@ -268,7 +289,7 @@
top="285"
width="400"
height="150"
- border="true"
+ border="false"
visible="false"
background_visible="true"/>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_mpv_performance.xml b/indra/newview/skins/default/xui/en/floater_mp_performance.xml
index 5c54d366f2..865ffe82cf 100644
--- a/indra/newview/skins/default/xui/en/floater_mpv_performance.xml
+++ b/indra/newview/skins/default/xui/en/floater_mp_performance.xml
@@ -3,7 +3,7 @@
positioning="cascading"
legacy_header_height="40"
top="12"
- right="2"
+ right="-324"
height="120"
min_height="120"
width="320"
@@ -74,16 +74,11 @@
name="MPVBuffModeComboBox"
width="150"
height="23"
- left="120"
+ left="130"
top="4"
>
<combo_box.item
enabled="true"
- label="Auto"
- name="Auto"
- value="0" />
- <combo_box.item
- enabled="true"
label="Normal"
name="Normal"
value="1" />
@@ -94,8 +89,8 @@
value="2" />
<combo_box.item
enabled="true"
- label="Optimized+ (AMD GPU)"
- name="Optimized+"
+ label="Experimental"
+ name="Experimental"
value="3" />
</combo_box>
diff --git a/indra/newview/skins/default/xui/en/floater_script.xml b/indra/newview/skins/default/xui/en/floater_script.xml
index ae6e68de17..900319620d 100644
--- a/indra/newview/skins/default/xui/en/floater_script.xml
+++ b/indra/newview/skins/default/xui/en/floater_script.xml
@@ -7,7 +7,8 @@
name="script_floater"
can_dock="true"
can_minimize="true"
- visible="false"
+ save_rect="true"
+ visible="false"
width="350"
can_resize="false"
min_width="350"
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
index f337ad9038..80fa230bba 100644
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -188,13 +188,12 @@
<button
type="string"
font="SansSerif"
- text_color="FpsTextColor"
+ label_color="FpsTextColor"
follows="right|top"
halign="center"
valign="center"
height="18"
top="1"
- v_pad="0"
left_pad="4"
name="FpsText"
tool_tip="fps"