summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]BuildParams6
-rw-r--r--indra/llplugin/llpluginclassmedia.h2
-rw-r--r--indra/llrender/llimagegl.cpp6
-rw-r--r--indra/llrender/llshadermgr.cpp1
-rw-r--r--indra/llrender/llshadermgr.h1
-rw-r--r--indra/llrender/llvertexbuffer.cpp22
-rw-r--r--indra/llui/lltextbase.cpp6
-rw-r--r--indra/llui/lltextbase.h2
-rw-r--r--indra/llui/llview.cpp6
-rw-r--r--indra/llui/llview.h2
-rw-r--r--indra/llwindow/llmousehandler.h2
-rw-r--r--indra/llwindow/llwindowwin32.cpp5
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/settings.xml14
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/cofF.glsl87
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl52
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl82
-rw-r--r--indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/interface/highlightF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl2
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl5
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl4
-rw-r--r--indra/newview/installers/darwin/dmg-cleanup.applescript2
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/fix_application_icon_position.sh2
-rw-r--r--indra/newview/installers/darwin/release-dmg/_DS_Storebin12292 -> 12292 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/installer_template.nsi173
-rw-r--r--indra/newview/lldrawpoolbump.cpp60
-rw-r--r--indra/newview/lldrawpoolterrain.cpp3
-rw-r--r--indra/newview/llfolderviewitem.cpp2
-rw-r--r--indra/newview/llfolderviewitem.h2
-rw-r--r--indra/newview/llspatialpartition.cpp40
-rw-r--r--indra/newview/lltool.h2
-rw-r--r--indra/newview/llviewercontrol.cpp2
-rw-r--r--indra/newview/llviewerdisplay.cpp12
-rw-r--r--indra/newview/llviewermedia.cpp283
-rw-r--r--indra/newview/llviewermedia.h2
-rw-r--r--indra/newview/llviewershadermgr.cpp24
-rw-r--r--indra/newview/llviewershadermgr.h2
-rw-r--r--indra/newview/pipeline.cpp430
-rw-r--r--indra/newview/pipeline.h1
-rw-r--r--indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml95
-rw-r--r--indra/newview/skins/default/xui/ru/floater_joystick.xml24
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preferences.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_chat.xml22
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_colors.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_general.xml24
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_move.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_setup.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_sound.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/panel_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/strings.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml95
-rw-r--r--indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml20
-rw-r--r--indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preview_texture.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_tools.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_windlight_options.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_gesture_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_hide_navbar.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_landmark.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_picks_plus.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_place.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_slurl.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_viewer.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/notifications.xml46
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_pick.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_landmarks.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_me.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_navigation_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfit_edit.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfits_list.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_people.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_picks.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_profile_view.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/role_actions.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/sidepanel_appearance.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/strings.xml20
-rw-r--r--indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml95
-rwxr-xr-x[-rw-r--r--]indra/newview/viewer_manifest.py13
-rwxr-xr-x[-rw-r--r--]indra/viewer_components/updater/scripts/darwin/update_install2
-rwxr-xr-x[-rw-r--r--]indra/viewer_components/updater/scripts/linux/update_install2
89 files changed, 1071 insertions, 895 deletions
diff --git a/BuildParams b/BuildParams
index 1c76b6f935..5068edb21f 100644..100755
--- a/BuildParams
+++ b/BuildParams
@@ -190,4 +190,10 @@ simon_viewer-dev-private.public_build = false
simon_viewer-dev-private.email_status_this_is_os = false
+# ========================================
+# Vir
+# ========================================
+vir-project-1.viewer_channel = "Second Life Release"
+vir-project-1.login_channel = "Second Life Release"
+
# eof
diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h
index 1f548f8cc0..26fff7a614 100644
--- a/indra/llplugin/llpluginclassmedia.h
+++ b/indra/llplugin/llpluginclassmedia.h
@@ -269,7 +269,7 @@ public:
std::string getHoverText() const { return mHoverText; };
std::string getHoverLink() const { return mHoverLink; };
- std::string getMediaName() const { return mMediaName; };
+ const std::string& getMediaName() const { return mMediaName; };
std::string getMediaDescription() const { return mMediaDescription; };
// Crash the plugin. If you use this outside of a testbed, you will be punished.
diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index 3d3c94ef3e..7d73888151 100644
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -1116,7 +1116,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
U32* scratch = NULL;
if (LLRender::sGLCoreProfile)
{
- if (intformat == GL_ALPHA8 && pixformat == GL_ALPHA && pixtype == GL_UNSIGNED_BYTE)
+ if (pixformat == GL_ALPHA && pixtype == GL_UNSIGNED_BYTE)
{ //GL_ALPHA is deprecated, convert to RGBA
use_scratch = true;
scratch = new U32[width*height];
@@ -1133,7 +1133,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
intformat = GL_RGBA8;
}
- if (intformat == GL_LUMINANCE8_ALPHA8 && pixformat == GL_LUMINANCE_ALPHA && pixtype == GL_UNSIGNED_BYTE)
+ if (pixformat == GL_LUMINANCE_ALPHA && pixtype == GL_UNSIGNED_BYTE)
{ //GL_LUMINANCE_ALPHA is deprecated, convert to RGBA
use_scratch = true;
scratch = new U32[width*height];
@@ -1153,7 +1153,7 @@ void LLImageGL::setManualImage(U32 target, S32 miplevel, S32 intformat, S32 widt
intformat = GL_RGBA8;
}
- if (intformat == GL_LUMINANCE8 && pixformat == GL_LUMINANCE && pixtype == GL_UNSIGNED_BYTE)
+ if (pixformat == GL_LUMINANCE && pixtype == GL_UNSIGNED_BYTE)
{ //GL_LUMINANCE_ALPHA is deprecated, convert to RGB
use_scratch = true;
scratch = new U32[width*height];
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
index 84dc768983..b390037a9c 100644
--- a/indra/llrender/llshadermgr.cpp
+++ b/indra/llrender/llshadermgr.cpp
@@ -1046,6 +1046,7 @@ void LLShaderMgr::initAttribsAndUniforms()
mReservedUniforms.push_back("blur_constant");
mReservedUniforms.push_back("tan_pixel_angle");
mReservedUniforms.push_back("magnification");
+ mReservedUniforms.push_back("max_cof");
mReservedUniforms.push_back("depthMap");
mReservedUniforms.push_back("shadowMap0");
diff --git a/indra/llrender/llshadermgr.h b/indra/llrender/llshadermgr.h
index a5150b3e51..82ce2dfff2 100644
--- a/indra/llrender/llshadermgr.h
+++ b/indra/llrender/llshadermgr.h
@@ -141,6 +141,7 @@ public:
DOF_BLUR_CONSTANT,
DOF_TAN_PIXEL_ANGLE,
DOF_MAGNIFICATION,
+ DOF_MAX_COF,
DEFERRED_DEPTH,
DEFERRED_SHADOW0,
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 7f73977010..b426421f88 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -938,7 +938,7 @@ void LLVertexBuffer::releaseIndices()
{
sStreamIBOPool.release(mGLIndices, mMappedIndexData, mIndicesSize);
}
- else if (mUsage == GL_DYNAMIC_DRAW_ARB)
+ else
{
sDynamicIBOPool.release(mGLIndices, mMappedIndexData, mIndicesSize);
}
@@ -1122,6 +1122,8 @@ void LLVertexBuffer::allocateBuffer(S32 nverts, S32 nindices, bool create)
}
}
+static LLFastTimer::DeclareTimer FTM_SETUP_VERTEX_ARRAY("Setup VAO");
+
void LLVertexBuffer::setupVertexArray()
{
if (!mGLArray)
@@ -1129,6 +1131,7 @@ void LLVertexBuffer::setupVertexArray()
return;
}
+ LLFastTimer t(FTM_SETUP_VERTEX_ARRAY);
#if GL_ARB_vertex_array_object
glBindVertexArray(mGLArray);
#endif
@@ -1201,6 +1204,9 @@ void LLVertexBuffer::setupVertexArray()
}
}
+ //draw a dummy triangle to set index array pointer
+ //glDrawElements(GL_TRIANGLES, 0, GL_UNSIGNED_SHORT, NULL);
+
unbind();
}
@@ -1843,14 +1849,18 @@ bool LLVertexBuffer::getClothWeightStrider(LLStrider<LLVector4>& strider, S32 in
//----------------------------------------------------------------------------
+static LLFastTimer::DeclareTimer FTM_BIND_GL_ARRAY("Bind Array");
bool LLVertexBuffer::bindGLArray()
{
if (mGLArray && sGLRenderArray != mGLArray)
{
+ {
+ LLFastTimer t(FTM_BIND_GL_ARRAY);
#if GL_ARB_vertex_array_object
- glBindVertexArray(mGLArray);
+ glBindVertexArray(mGLArray);
#endif
- sGLRenderArray = mGLArray;
+ sGLRenderArray = mGLArray;
+ }
//really shouldn't be necessary, but some drivers don't properly restore the
//state of GL_ELEMENT_ARRAY_BUFFER_BINDING
@@ -1862,6 +1872,8 @@ bool LLVertexBuffer::bindGLArray()
return false;
}
+static LLFastTimer::DeclareTimer FTM_BIND_GL_BUFFER("Bind Buffer");
+
bool LLVertexBuffer::bindGLBuffer(bool force_bind)
{
bindGLArray();
@@ -1870,6 +1882,7 @@ bool LLVertexBuffer::bindGLBuffer(bool force_bind)
if (useVBOs() && (force_bind || (mGLBuffer && (mGLBuffer != sGLRenderBuffer || !sVBOActive))))
{
+ LLFastTimer t(FTM_BIND_GL_BUFFER);
/*if (sMapped)
{
llerrs << "VBO bound while another VBO mapped!" << llendl;
@@ -1891,6 +1904,8 @@ bool LLVertexBuffer::bindGLBuffer(bool force_bind)
return ret;
}
+static LLFastTimer::DeclareTimer FTM_BIND_GL_INDICES("Bind Indices");
+
bool LLVertexBuffer::bindGLIndices(bool force_bind)
{
bindGLArray();
@@ -1898,6 +1913,7 @@ bool LLVertexBuffer::bindGLIndices(bool force_bind)
bool ret = false;
if (useVBOs() && (force_bind || (mGLIndices && (mGLIndices != sGLRenderIndices || !sIBOActive))))
{
+ LLFastTimer t(FTM_BIND_GL_INDICES);
/*if (sMapped)
{
llerrs << "VBO bound while another VBO mapped!" << llendl;
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 919364be63..3b768166f1 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -2518,7 +2518,11 @@ BOOL LLTextSegment::handleDoubleClick(S32 x, S32 y, MASK mask) { return FALSE; }
BOOL LLTextSegment::handleHover(S32 x, S32 y, MASK mask) { return FALSE; }
BOOL LLTextSegment::handleScrollWheel(S32 x, S32 y, S32 clicks) { return FALSE; }
BOOL LLTextSegment::handleToolTip(S32 x, S32 y, MASK mask) { return FALSE; }
-std::string LLTextSegment::getName() const { return ""; }
+const std::string& LLTextSegment::getName() const
+{
+ static std::string empty_string("");
+ return empty_string;
+}
void LLTextSegment::onMouseCaptureLost() {}
void LLTextSegment::screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const {}
void LLTextSegment::localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const {}
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index 384d9116fc..b699601908 100644
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -84,7 +84,7 @@ public:
/*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
/*virtual*/ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
/*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask);
- /*virtual*/ std::string getName() const;
+ /*virtual*/ const std::string& getName() const;
/*virtual*/ void onMouseCaptureLost();
/*virtual*/ void screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const;
/*virtual*/ void localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const;
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 1644f53978..486babb0ab 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -225,9 +225,11 @@ BOOL LLView::getUseBoundingRect() const
}
// virtual
-std::string LLView::getName() const
+const std::string& LLView::getName() const
{
- return mName.empty() ? std::string("(no name)") : mName;
+ static std::string no_name("(no name)");
+
+ return mName.empty() ? no_name : mName;
}
void LLView::sendChildToFront(LLView* child)
diff --git a/indra/llui/llview.h b/indra/llui/llview.h
index 08828e55e6..ec7f8e385d 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -431,7 +431,7 @@ public:
/*virtual*/ BOOL handleRightMouseUp(S32 x, S32 y, MASK mask);
/*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask);
- /*virtual*/ std::string getName() const;
+ /*virtual*/ const std::string& getName() const;
/*virtual*/ void onMouseCaptureLost();
/*virtual*/ BOOL hasMouseCapture();
/*virtual*/ void screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const;
diff --git a/indra/llwindow/llmousehandler.h b/indra/llwindow/llmousehandler.h
index bbbc3d4406..d825a3424c 100644
--- a/indra/llwindow/llmousehandler.h
+++ b/indra/llwindow/llmousehandler.h
@@ -65,7 +65,7 @@ public:
virtual BOOL handleHover(S32 x, S32 y, MASK mask) = 0;
virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks) = 0;
virtual BOOL handleToolTip(S32 x, S32 y, MASK mask) = 0;
- virtual std::string getName() const = 0;
+ virtual const std::string& getName() const = 0;
virtual void onMouseCaptureLost() = 0;
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index e46fcea692..f7cbc383eb 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -1416,6 +1416,11 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
{
llinfos << "Created OpenGL " << llformat("%d.%d", attribs[1], attribs[3]) << " context." << llendl;
done = true;
+
+ if (LLRender::sGLCoreProfile)
+ {
+ LLGLSLShader::sNoFixedFunction = true;
+ }
}
}
}
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 53ba005b8a..d057323e51 100644..100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1392,6 +1392,18 @@
<real>0.5</real>
</map>
+ <key>CameraMaxCoF</key>
+ <map>
+ <key>Comment</key>
+ <string>Maximum camera circle of confusion for DoF effect</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>10.0</real>
+ </map>
+
<key>CameraFNumber</key>
<map>
<key>Comment</key>
@@ -9054,7 +9066,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>1</integer>
+ <integer>0</integer>
</map>
<key>RenderVBOMappingDisable</key>
<map>
diff --git a/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
new file mode 100644
index 0000000000..56fa4e693b
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class1/deferred/cofF.glsl
@@ -0,0 +1,87 @@
+/**
+ * @file cofF.glsl
+ *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2007, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#extension GL_ARB_texture_rectangle : enable
+
+#ifdef DEFINE_GL_FRAGCOLOR
+out vec4 gl_FragColor;
+#endif
+
+uniform sampler2DRect diffuseRect;
+uniform sampler2DRect depthMap;
+uniform sampler2D bloomMap;
+
+uniform float depth_cutoff;
+uniform float norm_cutoff;
+uniform float focal_distance;
+uniform float blur_constant;
+uniform float tan_pixel_angle;
+uniform float magnification;
+uniform float max_cof;
+
+uniform mat4 inv_proj;
+uniform vec2 screen_res;
+
+VARYING vec2 vary_fragcoord;
+
+float getDepth(vec2 pos_screen)
+{
+ float z = texture2DRect(depthMap, pos_screen.xy).r;
+ z = z*2.0-1.0;
+ vec4 ndc = vec4(0.0, 0.0, z, 1.0);
+ vec4 p = inv_proj*ndc;
+ return p.z/p.w;
+}
+
+float calc_cof(float depth)
+{
+ float sc = abs(depth-focal_distance)/-depth*blur_constant;
+
+ sc /= magnification;
+
+ // tan_pixel_angle = pixel_length/-depth;
+ float pixel_length = tan_pixel_angle*-focal_distance;
+
+ sc = sc/pixel_length;
+ sc *= 1.414;
+
+ return sc;
+}
+
+void main()
+{
+ vec2 tc = vary_fragcoord.xy;
+
+ float depth = getDepth(tc);
+
+ vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy);
+
+ float sc = calc_cof(depth);
+ sc = min(abs(sc), max_cof);
+
+ vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res);
+ gl_FragColor.rgb = diff.rgb + bloom.rgb;
+ gl_FragColor.a = sc/10.f;
+}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl b/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl
new file mode 100644
index 0000000000..d2903b545c
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class1/deferred/dofCombineF.glsl
@@ -0,0 +1,52 @@
+/**
+ * @file dofCombineF.glsl
+ *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2007, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#extension GL_ARB_texture_rectangle : enable
+
+#ifdef DEFINE_GL_FRAGCOLOR
+out vec4 gl_FragColor;
+#endif
+
+uniform sampler2DRect diffuseRect;
+uniform sampler2DRect lightMap;
+
+uniform mat4 inv_proj;
+uniform vec2 screen_res;
+
+uniform float max_cof;
+
+VARYING vec2 vary_fragcoord;
+
+void main()
+{
+ vec2 tc = vary_fragcoord.xy;
+
+ vec4 dof = texture2DRect(diffuseRect, vary_fragcoord.xy*0.5);
+
+ vec4 diff = texture2DRect(lightMap, vary_fragcoord.xy);
+
+ float a = min(diff.a * max_cof*0.333, 1.0);
+ gl_FragColor = mix(diff, dof, a);
+}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
index 985f44fb6c..629648ddc3 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
@@ -30,76 +30,23 @@ out vec4 gl_FragColor;
#endif
uniform sampler2DRect diffuseRect;
-uniform sampler2DRect edgeMap;
-uniform sampler2DRect depthMap;
-uniform sampler2DRect normalMap;
-uniform sampler2D bloomMap;
-
-uniform float depth_cutoff;
-uniform float norm_cutoff;
-uniform float focal_distance;
-uniform float blur_constant;
-uniform float tan_pixel_angle;
-uniform float magnification;
uniform mat4 inv_proj;
uniform vec2 screen_res;
+uniform float max_cof;
VARYING vec2 vary_fragcoord;
-float getDepth(vec2 pos_screen)
-{
- float z = texture2DRect(depthMap, pos_screen.xy).r;
- z = z*2.0-1.0;
- vec4 ndc = vec4(0.0, 0.0, z, 1.0);
- vec4 p = inv_proj*ndc;
- return p.z/p.w;
-}
-
-float calc_cof(float depth)
+void dofSample(inout vec4 diff, inout float w, float min_sc, vec2 tc)
{
- float sc = abs(depth-focal_distance)/-depth*blur_constant;
-
- sc /= magnification;
-
- // tan_pixel_angle = pixel_length/-depth;
- float pixel_length = tan_pixel_angle*-focal_distance;
-
- sc = sc/pixel_length;
- sc *= 1.414;
-
- return sc;
-}
-
-void dofSampleNear(inout vec4 diff, inout float w, float cur_sc, vec2 tc)
-{
- float d = getDepth(tc);
-
- float sc = calc_cof(d);
-
- float wg = 0.25;
-
vec4 s = texture2DRect(diffuseRect, tc);
- // de-weight dull areas to make highlights 'pop'
- wg += s.r+s.g+s.b;
-
- diff += wg*s;
-
- w += wg;
-}
-void dofSample(inout vec4 diff, inout float w, float min_sc, float cur_depth, vec2 tc)
-{
- float d = getDepth(tc);
-
- float sc = calc_cof(d);
-
- if (sc > min_sc //sampled pixel is more "out of focus" than current sample radius
- || d < cur_depth) //sampled pixel is further away than current pixel
+ float sc = s.a*max_cof;
+
+ if (sc > min_sc) //sampled pixel is more "out of focus" than current sample radius
{
float wg = 0.25;
- vec4 s = texture2DRect(diffuseRect, tc);
// de-weight dull areas to make highlights 'pop'
wg += s.r+s.g+s.b;
@@ -109,30 +56,20 @@ void dofSample(inout vec4 diff, inout float w, float min_sc, float cur_depth, ve
}
}
-
void main()
{
- vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz;
- norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
-
vec2 tc = vary_fragcoord.xy;
- float depth = getDepth(tc);
-
vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy);
{
float w = 1.0;
- float sc = calc_cof(depth);
- sc = min(abs(sc), 10.0);
-
- float fd = depth*0.5f;
-
+ float sc = diff.a*max_cof;
+
float PI = 3.14159265358979323846264;
// sample quite uniformly spaced points within a circle, for a circular 'bokeh'
- //if (depth < focal_distance)
{
while (sc > 0.5)
{
@@ -143,7 +80,7 @@ void main()
float samp_x = sc*sin(ang);
float samp_y = sc*cos(ang);
// you could test sample coords against an interesting non-circular aperture shape here, if desired.
- dofSample(diff, w, sc, depth, vary_fragcoord.xy + vec2(samp_x,samp_y));
+ dofSample(diff, w, sc, vary_fragcoord.xy + vec2(samp_x,samp_y));
}
sc -= 1.0;
}
@@ -152,6 +89,5 @@ void main()
diff /= w;
}
- vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res);
- gl_FragColor = diff + bloom;
+ gl_FragColor = diff;
}
diff --git a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
index 7136d412ea..c66a6e5b48 100644
--- a/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/glowcombineFXAAF.glsl
@@ -29,17 +29,14 @@
out vec4 gl_FragColor;
#endif
-uniform sampler2D glowMap;
-uniform sampler2DRect screenMap;
+uniform sampler2DRect diffuseRect;
uniform vec2 screen_res;
VARYING vec2 vary_tc;
void main()
{
- vec3 col = texture2D(glowMap, vary_tc).rgb +
- texture2DRect(screenMap, vary_tc*screen_res).rgb;
-
+ vec3 col = texture2DRect(diffuseRect, vary_tc*screen_res).rgb;
gl_FragColor = vec4(col.rgb, dot(col.rgb, vec3(0.299, 0.587, 0.144)));
}
diff --git a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
index ecbc30f05f..574adeb50c 100644
--- a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
@@ -27,12 +27,12 @@
out vec4 gl_FragColor;
#endif
-uniform vec4 color;
+uniform vec4 highlight_color;
uniform sampler2D diffuseMap;
VARYING vec2 vary_texcoord0;
void main()
{
- gl_FragColor = color*texture2D(diffuseMap, vary_texcoord0.xy);
+ gl_FragColor = highlight_color*texture2D(diffuseMap, vary_texcoord0.xy);
}
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
index ef34c5c853..8afcc20f6d 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsWaterV.glsl
@@ -25,7 +25,6 @@
VARYING vec3 vary_PositionEye;
-VARYING float fog_depth;
vec3 getPositionEye()
{
@@ -35,5 +34,4 @@ vec3 getPositionEye()
void setPositionEye(vec3 v)
{
vary_PositionEye = v;
- fog_depth = v.z;
}
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl
index 23046f990d..163ef26444 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterF.glsl
@@ -24,9 +24,8 @@
*/
VARYING vec3 vary_PositionEye;
-VARYING vec3 vary_SunlitColor;
VARYING vec3 vary_AdditiveColor;
-VARYING float vary_AtmosAttenuation;
+VARYING vec3 vary_AtmosAttenuation;
vec3 getSunlitColor()
{
@@ -42,7 +41,7 @@ vec3 getAdditiveColor()
}
vec3 getAtmosAttenuation()
{
- return vec3(vary_AtmosAttenuation);
+ return vary_AtmosAttenuation;
}
vec3 getPositionEye()
{
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl
index 279c4dd981..553f6752e6 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsWaterV.glsl
@@ -25,7 +25,7 @@
VARYING vec3 vary_PositionEye;
VARYING vec3 vary_AdditiveColor;
-VARYING float vary_AtmosAttenuation;
+VARYING vec3 vary_AtmosAttenuation;
vec3 atmos_attenuation;
vec3 sunlit_color;
@@ -77,5 +77,5 @@ void setAdditiveColor(vec3 v)
void setAtmosAttenuation(vec3 v)
{
atmos_attenuation = v;
- vary_AtmosAttenuation = v.r;
+ vary_AtmosAttenuation = v;
}
diff --git a/indra/newview/installers/darwin/dmg-cleanup.applescript b/indra/newview/installers/darwin/dmg-cleanup.applescript
index f3d39aec21..8a71b392f9 100644
--- a/indra/newview/installers/darwin/dmg-cleanup.applescript
+++ b/indra/newview/installers/darwin/dmg-cleanup.applescript
@@ -19,7 +19,7 @@ tell application "Finder"
set current view of foo to icon view
set toolbar visible of foo to false
set statusbar visible of foo to false
- set the bounds of foo to {100, 100, 600, 399}
+ set the bounds of foo to {100, 100, 600, 449}
-- set the position of front window to {100, 100}
-- get {name, position} of every item of front window
diff --git a/indra/newview/installers/darwin/fix_application_icon_position.sh b/indra/newview/installers/darwin/fix_application_icon_position.sh
index c6b92589db..618e34820c 100644..100755
--- a/indra/newview/installers/darwin/fix_application_icon_position.sh
+++ b/indra/newview/installers/darwin/fix_application_icon_position.sh
@@ -1,6 +1,6 @@
# just run this script each time after you change the installer's name to fix the icon misalignment
#!/bin/bash
-cp -r ./../../../build-darwin-i386/newview/*.dmg ~/Desktop/TempBuild.dmg
+cp -r ../../../../build-darwin-i386/newview/*.dmg ~/Desktop/TempBuild.dmg
hdid ~/Desktop/TempBuild.dmg
open -a finder /Volumes/Second\ Life\ Installer
osascript dmg-cleanup.applescript
diff --git a/indra/newview/installers/darwin/release-dmg/_DS_Store b/indra/newview/installers/darwin/release-dmg/_DS_Store
index 8f6c25c2f4..747ca961d8 100644
--- a/indra/newview/installers/darwin/release-dmg/_DS_Store
+++ b/indra/newview/installers/darwin/release-dmg/_DS_Store
Binary files differ
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 4811f1fcd5..02ca7cbb3a 100644..100755
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -1,6 +1,22 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; secondlife setup.nsi
-;; Copyright 2004-2010, Linden Research, Inc.
+;; Copyright 2004-2011, Linden Research, Inc.
+;;
+;; This library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public
+;; License as published by the Free Software Foundation;
+;; version 2.1 of the License only.
+;;
+;; This library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; Lesser General Public License for more details.
+;;
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with this library; if not, write to the Free Software
+;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;;
+;; Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
;;
;; NSIS Unicode 2.38.1 or higher required
;; http://www.scratchpaper.com/
@@ -293,19 +309,106 @@ Function CheckNetworkConnection
Return
FunctionEnd
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Delete files in Documents and Settings\<user>\SecondLife\cache
-; Delete files in Documents and Settings\All Users\SecondLife\cache
+; Save user files to temp location
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;Function RemoveCacheFiles
-;
-;; Delete files in Documents and Settings\<user>\SecondLife
+Function PreserveUserFiles
+
+Push $0
+Push $1
+Push $2
+
+ RMDir /r "$TEMP\SecondLifeSettingsBackup"
+ CreateDirectory "$TEMP\SecondLifeSettingsBackup"
+ StrCpy $0 0 ; Index number used to iterate via EnumRegKey
+
+ LOOP:
+ EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
+ StrCmp $1 "" DONE ; no more users
+
+ ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
+ StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
+
+ ; Required since ProfileImagePath is of type REG_EXPAND_SZ
+ ExpandEnvStrings $2 $2
+
+ CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0"
+ CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\$0"
+
+ CONTINUE:
+ IntOp $0 $0 + 1
+ Goto LOOP
+ DONE:
+
+Pop $2
+Pop $1
+Pop $0
+
+; Copy files in Documents and Settings\All Users\SecondLife
+Push $0
+ ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
+ StrCmp $0 "" +2
+ CreateDirectory "$TEMP\SecondLifeSettingsBackup\AllUsers\"
+ CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\AllUsers\"
+Pop $0
+
+FunctionEnd
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Restore user files from temp location
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Function RestoreUserFiles
+
+Push $0
+Push $1
+Push $2
+
+ StrCpy $0 0 ; Index number used to iterate via EnumRegKey
+
+ LOOP:
+ EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
+ StrCmp $1 "" DONE ; no more users
+
+ ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
+ StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
+
+ ; Required since ProfileImagePath is of type REG_EXPAND_SZ
+ ExpandEnvStrings $2 $2
+
+ CreateDirectory "$2\Application Data\SecondLife\"
+ CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLife\"
+
+ CONTINUE:
+ IntOp $0 $0 + 1
+ Goto LOOP
+ DONE:
+
+Pop $2
+Pop $1
+Pop $0
+
+; Copy files in Documents and Settings\All Users\SecondLife
+Push $0
+ ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
+ StrCmp $0 "" +2
+ CreateDirectory "$2\Application Data\SecondLife\"
+ CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLife\"
+Pop $0
+
+FunctionEnd
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Clobber user files - TEST ONLY
+; This is here for testing, generally not desirable to call it.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;Function ClobberUserFilesTESTONLY
+
;Push $0
;Push $1
;Push $2
-; DetailPrint $(RemoveCacheFilesDP)
;
-; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
+; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
;
; LOOP:
; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
@@ -317,29 +420,24 @@ FunctionEnd
; ; Required since ProfileImagePath is of type REG_EXPAND_SZ
; ExpandEnvStrings $2 $2
;
-; ; When explicitly uninstalling, everything goes away
-; RMDir /r "$2\Application Data\SecondLife\cache"
+; RMDir /r "$2\Application Data\SecondLife\"
;
; CONTINUE:
; IntOp $0 $0 + 1
; Goto LOOP
; DONE:
+;
;Pop $2
;Pop $1
;Pop $0
;
-;; Delete files in Documents and Settings\All Users\SecondLife
+;; Copy files in Documents and Settings\All Users\SecondLife
;Push $0
-; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
-; StrCmp $0 "" +2
-; RMDir /r "$0\SecondLife\cache"
+; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
+; StrCmp $0 "" +2
+; RMDir /r "$2\Application Data\SecondLife\"
;Pop $0
;
-;; Delete filse in C:\Windows\Application Data\SecondLife
-;; If the user is running on a pre-NT system, Application Data lives here instead of
-;; in Documents and Settings.
-;RMDir /r "$WINDIR\Application Data\SecondLife\cache"
-;
;FunctionEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -412,17 +510,15 @@ Push $2
; Required since ProfileImagePath is of type REG_EXPAND_SZ
ExpandEnvStrings $2 $2
- ; If uninstalling a normal install remove everything
- ; Otherwise (preview/dmz etc) just remove cache
- StrCmp $INSTFLAGS "" RM_ALL RM_CACHE
- RM_ALL:
- RMDir /r "$2\Application Data\SecondLife"
- RM_CACHE:
- # Local Settings directory is the cache, there is no "cache" subdir
- RMDir /r "$2\Local Settings\Application Data\SecondLife"
- # Vista version of the same
- RMDir /r "$2\AppData\Local\SecondLife"
- Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml"
+ ; Remove all cache and settings files but leave any other .txt files to preserve the chat logs
+; RMDir /r "$2\Application Data\SecondLife\logs"
+ RMDir /r "$2\Application Data\SecondLife\browser_profile"
+ RMDir /r "$2\Application Data\SecondLife\user_settings"
+ Delete "$2\Application Data\SecondLife\*.xml"
+ Delete "$2\Application Data\SecondLife\*.bmp"
+ Delete "$2\Application Data\SecondLife\search_history.txt"
+ Delete "$2\Application Data\SecondLife\plugin_cookies.txt"
+ Delete "$2\Application Data\SecondLife\typed_locations.txt"
CONTINUE:
IntOp $0 $0 + 1
@@ -440,7 +536,7 @@ Push $0
RMDir /r "$0\SecondLife"
Pop $0
-; Delete filse in C:\Windows\Application Data\SecondLife
+; Delete files in C:\Windows\Application Data\SecondLife
; If the user is running on a pre-NT system, Application Data lives here instead of
; in Documents and Settings.
RMDir /r "$WINDIR\Application Data\SecondLife"
@@ -770,10 +866,11 @@ Call CloseSecondLife ; Make sure we're not running
Call CheckNetworkConnection ; ping secondlife.com
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Call PreserveUserFiles
+
;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers.
;Call RemoveCacheFiles ; Installing over removes potentially corrupted
; VFS and cache files.
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Need to clean out shader files from previous installs to fix DEV-5663
Call RemoveOldShaders
@@ -854,6 +951,18 @@ WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" ""
; write out uninstaller
WriteUninstaller "$INSTDIR\uninst.exe"
+; Remove existing "Second Life Viewer 2" install if any.
+StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" SLV2_DONE ; unless that's the install directory
+IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_FOUND SLV2_DONE
+
+SLV2_FOUND:
+ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2'
+Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" ; with _? option above, uninst.exe will be left behind.
+RMDir "$PROGRAMFILES\SecondLifeViewer2" ; will remove only if empty.
+
+SLV2_DONE:
+Call RestoreUserFiles
+
; end of default section
SectionEnd
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 7b9fb2b34b..b696b90d84 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -1363,6 +1363,7 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI
{
LLFastTimer t(FTM_BUMP_SOURCE_GEN_NORMAL);
gPipeline.mScreen.bindTarget();
+
LLGLDepthTest depth(GL_FALSE);
LLGLDisable cull(GL_CULL_FACE);
LLGLDisable blend(GL_BLEND);
@@ -1377,22 +1378,57 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI
gGL.getTexUnit(0)->bind(bump);
- gGL.begin(LLRender::TRIANGLE_STRIP);
+ S32 width = bump->getWidth();
+ S32 height = bump->getHeight();
+
+ S32 screen_width = gPipeline.mScreen.getWidth();
+ S32 screen_height = gPipeline.mScreen.getHeight();
+
+ glViewport(0, 0, screen_width, screen_height);
+
+ for (S32 left = 0; left < width; left += screen_width)
+ {
+ S32 right = left + screen_width;
+ right = llmin(right, width);
+
+ F32 left_tc = (F32) left/ width;
+ F32 right_tc = (F32) right/width;
+
+ for (S32 bottom = 0; bottom < height; bottom += screen_height)
+ {
+ S32 top = bottom+screen_height;
+ top = llmin(top, height);
+
+ F32 bottom_tc = (F32) bottom/height;
+ F32 top_tc = (F32)(bottom+screen_height)/height;
+ top_tc = llmin(top_tc, 1.f);
- gGL.texCoord2f(0, 0);
- gGL.vertex2f(0, 0);
- gGL.texCoord2f(0, 1);
- gGL.vertex2f(0, v.mV[1]);
- gGL.texCoord2f(1, 0);
- gGL.vertex2f(v.mV[0], 0);
- gGL.texCoord2f(1, 1);
- gGL.vertex2f(v.mV[0], v.mV[1]);
+ F32 screen_right = (F32) (right-left)/screen_width;
+ F32 screen_top = (F32) (top-bottom)/screen_height;
- gGL.end();
+ gGL.begin(LLRender::TRIANGLE_STRIP);
+ gGL.texCoord2f(left_tc, bottom_tc);
+ gGL.vertex2f(0, 0);
- gGL.flush();
+ gGL.texCoord2f(left_tc, top_tc);
+ gGL.vertex2f(0, screen_top);
- glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, bump->getWidth(), bump->getHeight());
+ gGL.texCoord2f(right_tc, bottom_tc);
+ gGL.vertex2f(screen_right, 0);
+
+ gGL.texCoord2f(right_tc, top_tc);
+ gGL.vertex2f(screen_right, screen_top);
+
+ gGL.end();
+
+ gGL.flush();
+
+ S32 w = right-left;
+ S32 h = top-bottom;
+
+ glCopyTexSubImage2D(GL_TEXTURE_2D, 0, left, bottom, 0, 0, w, h);
+ }
+ }
glGenerateMipmap(GL_TEXTURE_2D);
diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp
index 3e9d30283a..addb18a1d5 100644
--- a/indra/newview/lldrawpoolterrain.cpp
+++ b/indra/newview/lldrawpoolterrain.cpp
@@ -244,8 +244,9 @@ void LLDrawPoolTerrain::render(S32 pass)
{ //use fullbright shader for highlighting
LLGLSLShader* old_shader = sShader;
sShader->unbind();
- sShader = &gObjectFullbrightNonIndexedProgram;
+ sShader = &gHighlightProgram;
sShader->bind();
+ sShader->uniform4f(LLShaderMgr::HIGHLIGHT_COLOR, 1,1,1,1);
LLGLEnable polyOffset(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(-1.0f, -1.0f);
renderOwnership();
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index 622dcfe8dd..02222e430f 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -658,7 +658,7 @@ LLViewerInventoryItem * LLFolderViewItem::getInventoryItem(void)
return gInventory.getItem(getListener()->getUUID());
}
-std::string LLFolderViewItem::getName( void ) const
+const std::string& LLFolderViewItem::getName( void ) const
{
if(mListener)
{
diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h
index 676eaf825d..be71817316 100644
--- a/indra/newview/llfolderviewitem.h
+++ b/indra/newview/llfolderviewitem.h
@@ -267,7 +267,7 @@ public:
// This method returns the actual name of the thing being
// viewed. This method will ask the viewed object itself.
- std::string getName( void ) const;
+ const std::string& getName( void ) const;
const std::string& getSearchableLabel( void ) const;
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index 7bf4e901c1..3fecc33802 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -1617,6 +1617,13 @@ static LLFastTimer::DeclareTimer FTM_SET_OCCLUSION_STATE("Occlusion State");
static LLFastTimer::DeclareTimer FTM_OCCLUSION_EARLY_FAIL("Occlusion Early Fail");
static LLFastTimer::DeclareTimer FTM_OCCLUSION_ALLOCATE("Allocate");
static LLFastTimer::DeclareTimer FTM_OCCLUSION_BUILD("Build");
+static LLFastTimer::DeclareTimer FTM_OCCLUSION_BEGIN_QUERY("Begin Query");
+static LLFastTimer::DeclareTimer FTM_OCCLUSION_END_QUERY("End Query");
+static LLFastTimer::DeclareTimer FTM_OCCLUSION_SET_BUFFER("Set Buffer");
+static LLFastTimer::DeclareTimer FTM_OCCLUSION_DRAW_WATER("Draw Water");
+static LLFastTimer::DeclareTimer FTM_OCCLUSION_DRAW("Draw");
+
+
void LLSpatialGroup::doOcclusion(LLCamera* camera)
{
@@ -1635,6 +1642,19 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera)
{
if (!isOcclusionState(QUERY_PENDING) || isOcclusionState(DISCARD_QUERY))
{
+ bool check = true;
+
+ if (isOcclusionState(QUERY_PENDING))
+ {
+ GLuint available = 0;
+ glGetQueryObjectuivARB(mOcclusionQuery[LLViewerCamera::sCurCameraID], GL_QUERY_RESULT_AVAILABLE_ARB, &available);
+ if (available == GL_FALSE)
+ {
+ check = false;
+ }
+ }
+
+ if (check)
{ //no query pending, or previous query to be discarded
LLFastTimer t(FTM_RENDER_OCCLUSION);
@@ -1671,12 +1691,21 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera)
{
LLFastTimer t(FTM_PUSH_OCCLUSION_VERTS);
- glBeginQueryARB(mode, mOcclusionQuery[LLViewerCamera::sCurCameraID]);
+
+ {
+ LLFastTimer t(FTM_OCCLUSION_BEGIN_QUERY);
+ glBeginQueryARB(mode, mOcclusionQuery[LLViewerCamera::sCurCameraID]);
+ }
- mOcclusionVerts->setBuffer(LLVertexBuffer::MAP_VERTEX);
+ {
+ LLFastTimer t(FTM_OCCLUSION_SET_BUFFER);
+ mOcclusionVerts->setBuffer(LLVertexBuffer::MAP_VERTEX);
+ }
if (!use_depth_clamp && mSpatialPartition->mDrawableType == LLDrawPool::POOL_VOIDWATER)
{
+ LLFastTimer t(FTM_OCCLUSION_DRAW_WATER);
+
LLGLSquashToFarClip squash(glh_get_current_projection(), 1);
if (camera->getOrigin().isExactlyZero())
{ //origin is invalid, draw entire box
@@ -1690,6 +1719,7 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera)
}
else
{
+ LLFastTimer t(FTM_OCCLUSION_DRAW);
if (camera->getOrigin().isExactlyZero())
{ //origin is invalid, draw entire box
mOcclusionVerts->drawRange(LLRender::TRIANGLE_FAN, 0, 7, 8, 0);
@@ -1701,7 +1731,11 @@ void LLSpatialGroup::doOcclusion(LLCamera* camera)
}
}
- glEndQueryARB(mode);
+
+ {
+ LLFastTimer t(FTM_OCCLUSION_END_QUERY);
+ glEndQueryARB(mode);
+ }
}
}
diff --git a/indra/newview/lltool.h b/indra/newview/lltool.h
index d3edabb486..ecc435d844 100644
--- a/indra/newview/lltool.h
+++ b/indra/newview/lltool.h
@@ -68,7 +68,7 @@ public:
virtual void localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const
{ *screen_x = local_x; *screen_y = local_y; }
- virtual std::string getName() const { return mName; }
+ virtual const std::string& getName() const { return mName; }
// New virtual functions
virtual LLViewerObject* getEditingObject() { return NULL; }
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index d9210877dd..03d765eaee 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -574,6 +574,8 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("VertexShaderEnable")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderUIBuffer")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
+ gSavedSettings.getControl("RenderDepthOfField")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
+ gSavedSettings.getControl("RenderFSAASamples")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderSpecularResX")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderSpecularResY")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderSpecularExponent")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 86102e9a15..3f0b5bf3fb 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -1341,12 +1341,6 @@ void render_ui_3d()
// Debugging stuff goes before the UI.
- // Coordinate axes
- if (gSavedSettings.getBOOL("ShowAxes"))
- {
- draw_axes();
- }
-
stop_glerror();
if (LLGLSLShader::sNoFixedFunction)
@@ -1354,6 +1348,12 @@ void render_ui_3d()
gUIProgram.bind();
}
+ // Coordinate axes
+ if (gSavedSettings.getBOOL("ShowAxes"))
+ {
+ draw_axes();
+ }
+
gViewerWindow->renderSelections(FALSE, FALSE, TRUE); // Non HUD call in render_hud_elements
stop_glerror();
}
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 41b4dc01e8..cb78c40f9a 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -782,6 +782,12 @@ static bool proximity_comparitor(const LLViewerMediaImpl* i1, const LLViewerMedi
}
static LLFastTimer::DeclareTimer FTM_MEDIA_UPDATE("Update Media");
+static LLFastTimer::DeclareTimer FTM_MEDIA_SPARE_IDLE("Spare Idle");
+static LLFastTimer::DeclareTimer FTM_MEDIA_UPDATE_INTEREST("Update/Interest");
+static LLFastTimer::DeclareTimer FTM_MEDIA_SORT("Sort");
+static LLFastTimer::DeclareTimer FTM_MEDIA_SORT2("Sort 2");
+static LLFastTimer::DeclareTimer FTM_MEDIA_MISC("Misc");
+
//////////////////////////////////////////////////////////////////////////////////////////
// static
@@ -806,21 +812,28 @@ void LLViewerMedia::updateMedia(void *dummy_arg)
impl_list::iterator iter = sViewerMediaImplList.begin();
impl_list::iterator end = sViewerMediaImplList.end();
- for(; iter != end;)
{
- LLViewerMediaImpl* pimpl = *iter++;
- pimpl->update();
- pimpl->calculateInterest();
+ LLFastTimer t(FTM_MEDIA_UPDATE_INTEREST);
+ for(; iter != end;)
+ {
+ LLViewerMediaImpl* pimpl = *iter++;
+ pimpl->update();
+ pimpl->calculateInterest();
+ }
}
// Let the spare media source actually launch
if(sSpareBrowserMediaSource)
{
+ LLFastTimer t(FTM_MEDIA_SPARE_IDLE);
sSpareBrowserMediaSource->idle();
}
- // Sort the static instance list using our interest criteria
- sViewerMediaImplList.sort(priorityComparitor);
+ {
+ LLFastTimer t(FTM_MEDIA_SORT);
+ // Sort the static instance list using our interest criteria
+ sViewerMediaImplList.sort(priorityComparitor);
+ }
// Go through the list again and adjust according to priority.
iter = sViewerMediaImplList.begin();
@@ -848,147 +861,150 @@ void LLViewerMedia::updateMedia(void *dummy_arg)
// max_instances must be set high enough to allow the various instances used in the UI (for the help browser, search, etc.) to be loaded.
// If max_normal + max_low is less than max_instances, things will tend to get unloaded instead of being set to slideshow.
- for(; iter != end; iter++)
{
- LLViewerMediaImpl* pimpl = *iter;
+ LLFastTimer t(FTM_MEDIA_MISC);
+ for(; iter != end; iter++)
+ {
+ LLViewerMediaImpl* pimpl = *iter;
- LLPluginClassMedia::EPriority new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
+ LLPluginClassMedia::EPriority new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
- if(pimpl->isForcedUnloaded() || (impl_count_total >= (int)max_instances))
- {
- // Never load muted or failed impls.
- // Hard limit on the number of instances that will be loaded at one time
- new_priority = LLPluginClassMedia::PRIORITY_UNLOADED;
- }
- else if(!pimpl->getVisible())
- {
- new_priority = LLPluginClassMedia::PRIORITY_HIDDEN;
- }
- else if(pimpl->hasFocus())
- {
- new_priority = LLPluginClassMedia::PRIORITY_HIGH;
- impl_count_interest_normal++; // count this against the count of "normal" instances for priority purposes
- }
- else if(pimpl->getUsedInUI())
- {
- new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
- impl_count_interest_normal++;
- }
- else if(pimpl->isParcelMedia())
- {
- new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
- impl_count_interest_normal++;
- }
- else
- {
- // Look at interest and CPU usage for instances that aren't in any of the above states.
-
- // Heuristic -- if the media texture's approximate screen area is less than 1/4 of the native area of the texture,
- // turn it down to low instead of normal. This may downsample for plugins that support it.
- bool media_is_small = false;
- F64 approximate_interest = pimpl->getApproximateTextureInterest();
- if(approximate_interest == 0.0f)
+ if(pimpl->isForcedUnloaded() || (impl_count_total >= (int)max_instances))
{
- // this media has no current size, which probably means it's not loaded.
- media_is_small = true;
+ // Never load muted or failed impls.
+ // Hard limit on the number of instances that will be loaded at one time
+ new_priority = LLPluginClassMedia::PRIORITY_UNLOADED;
}
- else if(pimpl->getInterest() < (approximate_interest / 4))
+ else if(!pimpl->getVisible())
{
- media_is_small = true;
+ new_priority = LLPluginClassMedia::PRIORITY_HIDDEN;
}
-
- if(pimpl->getInterest() == 0.0f)
+ else if(pimpl->hasFocus())
{
- // This media is completely invisible, due to being outside the view frustrum or out of range.
- new_priority = LLPluginClassMedia::PRIORITY_HIDDEN;
+ new_priority = LLPluginClassMedia::PRIORITY_HIGH;
+ impl_count_interest_normal++; // count this against the count of "normal" instances for priority purposes
}
- else if(check_cpu_usage && (total_cpu > max_cpu))
+ else if(pimpl->getUsedInUI())
{
- // Higher priority plugins have already used up the CPU budget. Set remaining ones to slideshow priority.
- new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW;
+ new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
+ impl_count_interest_normal++;
}
- else if((impl_count_interest_normal < (int)max_normal) && !media_is_small)
+ else if(pimpl->isParcelMedia())
{
- // Up to max_normal inworld get normal priority
new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
impl_count_interest_normal++;
}
- else if (impl_count_interest_low + impl_count_interest_normal < (int)max_low + (int)max_normal)
+ else
{
- // The next max_low inworld get turned down
- new_priority = LLPluginClassMedia::PRIORITY_LOW;
- impl_count_interest_low++;
-
- // Set the low priority size for downsampling to approximately the size the texture is displayed at.
+ // Look at interest and CPU usage for instances that aren't in any of the above states.
+
+ // Heuristic -- if the media texture's approximate screen area is less than 1/4 of the native area of the texture,
+ // turn it down to low instead of normal. This may downsample for plugins that support it.
+ bool media_is_small = false;
+ F64 approximate_interest = pimpl->getApproximateTextureInterest();
+ if(approximate_interest == 0.0f)
+ {
+ // this media has no current size, which probably means it's not loaded.
+ media_is_small = true;
+ }
+ else if(pimpl->getInterest() < (approximate_interest / 4))
+ {
+ media_is_small = true;
+ }
+
+ if(pimpl->getInterest() == 0.0f)
{
- F32 approximate_interest_dimension = (F32) sqrt(pimpl->getInterest());
+ // This media is completely invisible, due to being outside the view frustrum or out of range.
+ new_priority = LLPluginClassMedia::PRIORITY_HIDDEN;
+ }
+ else if(check_cpu_usage && (total_cpu > max_cpu))
+ {
+ // Higher priority plugins have already used up the CPU budget. Set remaining ones to slideshow priority.
+ new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW;
+ }
+ else if((impl_count_interest_normal < (int)max_normal) && !media_is_small)
+ {
+ // Up to max_normal inworld get normal priority
+ new_priority = LLPluginClassMedia::PRIORITY_NORMAL;
+ impl_count_interest_normal++;
+ }
+ else if (impl_count_interest_low + impl_count_interest_normal < (int)max_low + (int)max_normal)
+ {
+ // The next max_low inworld get turned down
+ new_priority = LLPluginClassMedia::PRIORITY_LOW;
+ impl_count_interest_low++;
+
+ // Set the low priority size for downsampling to approximately the size the texture is displayed at.
+ {
+ F32 approximate_interest_dimension = (F32) sqrt(pimpl->getInterest());
- pimpl->setLowPrioritySizeLimit(llround(approximate_interest_dimension));
+ pimpl->setLowPrioritySizeLimit(llround(approximate_interest_dimension));
+ }
+ }
+ else
+ {
+ // Any additional impls (up to max_instances) get very infrequent time
+ new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW;
}
}
- else
- {
- // Any additional impls (up to max_instances) get very infrequent time
- new_priority = LLPluginClassMedia::PRIORITY_SLIDESHOW;
- }
- }
- if(!pimpl->getUsedInUI() && (new_priority != LLPluginClassMedia::PRIORITY_UNLOADED))
- {
- // This is a loadable inworld impl -- the last one in the list in this class defines the lowest loadable interest.
- lowest_interest_loadable = pimpl;
+ if(!pimpl->getUsedInUI() && (new_priority != LLPluginClassMedia::PRIORITY_UNLOADED))
+ {
+ // This is a loadable inworld impl -- the last one in the list in this class defines the lowest loadable interest.
+ lowest_interest_loadable = pimpl;
- impl_count_total++;
- }
+ impl_count_total++;
+ }
- // Overrides if the window is minimized or we lost focus (taking care
- // not to accidentally "raise" the priority either)
- if (!gViewerWindow->getActive() /* viewer window minimized? */
- && new_priority > LLPluginClassMedia::PRIORITY_HIDDEN)
- {
- new_priority = LLPluginClassMedia::PRIORITY_HIDDEN;
- }
- else if (!gFocusMgr.getAppHasFocus() /* viewer window lost focus? */
- && new_priority > LLPluginClassMedia::PRIORITY_LOW)
- {
- new_priority = LLPluginClassMedia::PRIORITY_LOW;
- }
+ // Overrides if the window is minimized or we lost focus (taking care
+ // not to accidentally "raise" the priority either)
+ if (!gViewerWindow->getActive() /* viewer window minimized? */
+ && new_priority > LLPluginClassMedia::PRIORITY_HIDDEN)
+ {
+ new_priority = LLPluginClassMedia::PRIORITY_HIDDEN;
+ }
+ else if (!gFocusMgr.getAppHasFocus() /* viewer window lost focus? */
+ && new_priority > LLPluginClassMedia::PRIORITY_LOW)
+ {
+ new_priority = LLPluginClassMedia::PRIORITY_LOW;
+ }
- if(!inworld_media_enabled)
- {
- // If inworld media is locked out, force all inworld media to stay unloaded.
- if(!pimpl->getUsedInUI())
+ if(!inworld_media_enabled)
{
- new_priority = LLPluginClassMedia::PRIORITY_UNLOADED;
+ // If inworld media is locked out, force all inworld media to stay unloaded.
+ if(!pimpl->getUsedInUI())
+ {
+ new_priority = LLPluginClassMedia::PRIORITY_UNLOADED;
+ }
}
- }
- // update the audio stream here as well
- if( !inworld_audio_enabled)
- {
- if(LLViewerMedia::isParcelAudioPlaying() && gAudiop && LLViewerMedia::hasParcelAudio())
+ // update the audio stream here as well
+ if( !inworld_audio_enabled)
{
- gAudiop->stopInternetStream();
+ if(LLViewerMedia::isParcelAudioPlaying() && gAudiop && LLViewerMedia::hasParcelAudio())
+ {
+ gAudiop->stopInternetStream();
+ }
}
- }
- pimpl->setPriority(new_priority);
+ pimpl->setPriority(new_priority);
- if(pimpl->getUsedInUI())
- {
- // Any impls used in the UI should not be in the proximity list.
- pimpl->mProximity = -1;
- }
- else
- {
- proximity_order.push_back(pimpl);
- }
+ if(pimpl->getUsedInUI())
+ {
+ // Any impls used in the UI should not be in the proximity list.
+ pimpl->mProximity = -1;
+ }
+ else
+ {
+ proximity_order.push_back(pimpl);
+ }
- total_cpu += pimpl->getCPUUsage();
+ total_cpu += pimpl->getCPUUsage();
- if (!pimpl->getUsedInUI() && pimpl->hasMedia())
- {
- sAnyMediaShowing = true;
- }
+ if (!pimpl->getUsedInUI() && pimpl->hasMedia())
+ {
+ sAnyMediaShowing = true;
+ }
+ }
}
// Re-calculate this every time.
@@ -1014,6 +1030,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg)
}
else
{
+ LLFastTimer t(FTM_MEDIA_SORT2);
// Use a distance-based sort for proximity values.
std::stable_sort(proximity_order.begin(), proximity_order.end(), proximity_comparitor);
}
@@ -2506,7 +2523,7 @@ void LLViewerMediaImpl::updateJavascriptObject()
}
//////////////////////////////////////////////////////////////////////////////////////////
-std::string LLViewerMediaImpl::getName() const
+const std::string& LLViewerMediaImpl::getName() const
{
if (mMediaSource)
{
@@ -2768,8 +2785,14 @@ bool LLViewerMediaImpl::canNavigateBack()
}
//////////////////////////////////////////////////////////////////////////////////////////
+static LLFastTimer::DeclareTimer FTM_MEDIA_DO_UPDATE("Do Update");
+static LLFastTimer::DeclareTimer FTM_MEDIA_GET_DATA("Get Data");
+static LLFastTimer::DeclareTimer FTM_MEDIA_SET_SUBIMAGE("Set Subimage");
+
+
void LLViewerMediaImpl::update()
{
+ LLFastTimer t(FTM_MEDIA_DO_UPDATE);
if(mMediaSource == NULL)
{
if(mPriority == LLPluginClassMedia::PRIORITY_UNLOADED)
@@ -2869,20 +2892,27 @@ void LLViewerMediaImpl::update()
if(width > 0 && height > 0)
{
- U8* data = mMediaSource->getBitsData();
+ U8* data = NULL;
+ {
+ LLFastTimer t(FTM_MEDIA_GET_DATA);
+ data = mMediaSource->getBitsData();
+ }
// Offset the pixels pointer to match x_pos and y_pos
data += ( x_pos * mMediaSource->getTextureDepth() * mMediaSource->getBitsWidth() );
data += ( y_pos * mMediaSource->getTextureDepth() );
- placeholder_image->setSubImage(
- data,
- mMediaSource->getBitsWidth(),
- mMediaSource->getBitsHeight(),
- x_pos,
- y_pos,
- width,
- height);
+ {
+ LLFastTimer t(FTM_MEDIA_SET_SUBIMAGE);
+ placeholder_image->setSubImage(
+ data,
+ mMediaSource->getBitsWidth(),
+ mMediaSource->getBitsHeight(),
+ x_pos,
+ y_pos,
+ width,
+ height);
+ }
}
@@ -3455,8 +3485,11 @@ BOOL LLViewerMediaImpl::isUpdated()
return mIsUpdated ;
}
+static LLFastTimer::DeclareTimer FTM_MEDIA_CALCULATE_INTEREST("Calculate Interest");
+
void LLViewerMediaImpl::calculateInterest()
{
+ LLFastTimer t(FTM_MEDIA_CALCULATE_INTEREST);
LLViewerMediaTexture* texture = LLViewerTextureManager::findMediaTexture( mTextureId );
if(texture != NULL)
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index 0b69b8f0c1..0da26ea3c7 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -317,7 +317,7 @@ public:
/*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask) { return FALSE; };
/*virtual*/ BOOL handleMiddleMouseDown(S32 x, S32 y, MASK mask) { return FALSE; };
/*virtual*/ BOOL handleMiddleMouseUp(S32 x, S32 y, MASK mask) {return FALSE; };
- /*virtual*/ std::string getName() const;
+ /*virtual*/ const std::string& getName() const;
/*virtual*/ void screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const {};
/*virtual*/ void localPointToScreen(S32 local_x, S32 local_y, S32* screen_x, S32* screen_y) const {};
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 108f008f58..32978a0d04 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -186,6 +186,8 @@ LLGLSLShader gDeferredAvatarEyesProgram;
LLGLSLShader gDeferredFullbrightProgram;
LLGLSLShader gDeferredEmissiveProgram;
LLGLSLShader gDeferredPostProgram;
+LLGLSLShader gDeferredCoFProgram;
+LLGLSLShader gDeferredDoFCombineProgram;
LLGLSLShader gFXAAProgram;
LLGLSLShader gDeferredPostNoDoFProgram;
LLGLSLShader gDeferredWLSkyProgram;
@@ -1013,6 +1015,8 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
gDeferredEmissiveProgram.unload();
gDeferredAvatarEyesProgram.unload();
gDeferredPostProgram.unload();
+ gDeferredCoFProgram.unload();
+ gDeferredDoFCombineProgram.unload();
gFXAAProgram.unload();
gDeferredWaterProgram.unload();
gDeferredWLSkyProgram.unload();
@@ -1427,6 +1431,26 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
if (success)
{
+ gDeferredCoFProgram.mName = "Deferred CoF Shader";
+ gDeferredCoFProgram.mShaderFiles.clear();
+ gDeferredCoFProgram.mShaderFiles.push_back(make_pair("deferred/postDeferredV.glsl", GL_VERTEX_SHADER_ARB));
+ gDeferredCoFProgram.mShaderFiles.push_back(make_pair("deferred/cofF.glsl", GL_FRAGMENT_SHADER_ARB));
+ gDeferredCoFProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED];
+ success = gDeferredCoFProgram.createShader(NULL, NULL);
+ }
+
+ if (success)
+ {
+ gDeferredDoFCombineProgram.mName = "Deferred DoFCombine Shader";
+ gDeferredDoFCombineProgram.mShaderFiles.clear();
+ gDeferredDoFCombineProgram.mShaderFiles.push_back(make_pair("deferred/postDeferredV.glsl", GL_VERTEX_SHADER_ARB));
+ gDeferredDoFCombineProgram.mShaderFiles.push_back(make_pair("deferred/dofCombineF.glsl", GL_FRAGMENT_SHADER_ARB));
+ gDeferredDoFCombineProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED];
+ success = gDeferredDoFCombineProgram.createShader(NULL, NULL);
+ }
+
+ if (success)
+ {
gDeferredPostNoDoFProgram.mName = "Deferred Post Shader";
gDeferredPostNoDoFProgram.mShaderFiles.clear();
gDeferredPostNoDoFProgram.mShaderFiles.push_back(make_pair("deferred/postDeferredV.glsl", GL_VERTEX_SHADER_ARB));
diff --git a/indra/newview/llviewershadermgr.h b/indra/newview/llviewershadermgr.h
index 3f670dfb14..95eb551bf1 100644
--- a/indra/newview/llviewershadermgr.h
+++ b/indra/newview/llviewershadermgr.h
@@ -330,6 +330,8 @@ extern LLGLSLShader gDeferredSoftenProgram;
extern LLGLSLShader gDeferredShadowProgram;
extern LLGLSLShader gDeferredShadowAlphaMaskProgram;
extern LLGLSLShader gDeferredPostProgram;
+extern LLGLSLShader gDeferredCoFProgram;
+extern LLGLSLShader gDeferredDoFCombineProgram;
extern LLGLSLShader gFXAAProgram;
extern LLGLSLShader gDeferredPostNoDoFProgram;
extern LLGLSLShader gDeferredAvatarShadowProgram;
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 152f4728dd..49f83fdb0d 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -185,6 +185,7 @@ LLVector3 LLPipeline::RenderShadowSplitExponent;
F32 LLPipeline::RenderShadowErrorCutoff;
F32 LLPipeline::RenderShadowFOVCutoff;
BOOL LLPipeline::CameraOffset;
+F32 LLPipeline::CameraMaxCoF;
const F32 BACKLIGHT_DAY_MAGNITUDE_AVATAR = 0.2f;
const F32 BACKLIGHT_NIGHT_MAGNITUDE_AVATAR = 0.1f;
@@ -443,7 +444,7 @@ void LLPipeline::init()
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
sUseTriStrips = gSavedSettings.getBOOL("RenderUseTriStrips");
LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseStreamVBO");
- LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseVAO");
+ LLVertexBuffer::sUseVAO = gSavedSettings.getBOOL("RenderUseVAO");
LLVertexBuffer::sPreferStreamDraw = gSavedSettings.getBOOL("RenderPreferStreamDraw");
sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights");
sRenderAttachedParticles = gSavedSettings.getBOOL("RenderAttachedParticles");
@@ -655,6 +656,7 @@ void LLPipeline::allocatePhysicsBuffer()
void LLPipeline::allocateScreenBuffer(U32 resX, U32 resY)
{
+ refreshCachedSettings();
U32 samples = gGLManager.getNumFBOFSAASamples(RenderFSAASamples);
//try to allocate screen buffers at requested resolution and samples
@@ -744,8 +746,8 @@ bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples)
mFXAABuffer.release();
}
- if (shadow_detail > 0 || ssao)
- { //only need mDeferredLight for shadows OR ssao
+ if (shadow_detail > 0 || ssao || RenderDepthOfField || samples > 0)
+ { //only need mDeferredLight for shadows OR ssao OR dof OR fxaa
if (!mDeferredLight.allocate(resX, resY, GL_RGBA, FALSE, FALSE, LLTexUnit::TT_RECT_TEXTURE, FALSE)) return false;
}
else
@@ -926,6 +928,7 @@ void LLPipeline::refreshCachedSettings()
RenderShadowErrorCutoff = gSavedSettings.getF32("RenderShadowErrorCutoff");
RenderShadowFOVCutoff = gSavedSettings.getF32("RenderShadowFOVCutoff");
CameraOffset = gSavedSettings.getBOOL("CameraOffset");
+ CameraMaxCoF = gSavedSettings.getF32("CameraMaxCoF");
}
void LLPipeline::releaseGLBuffers()
@@ -4247,8 +4250,16 @@ void LLPipeline::renderDebug()
bool hud_only = hasRenderType(LLPipeline::RENDER_TYPE_HUD);
+
if (!hud_only && !mDebugBlips.empty())
{ //render debug blips
+ if (LLGLSLShader::sNoFixedFunction)
+ {
+ gUIProgram.bind();
+ }
+
+ gGL.getTexUnit(0)->bind(LLViewerFetchedTexture::sWhiteImagep, true);
+
glPointSize(8.f);
LLGLDepthTest depth(GL_TRUE, GL_TRUE, GL_ALWAYS);
@@ -6136,7 +6147,7 @@ void LLPipeline::resetVertexBuffers()
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
sUseTriStrips = gSavedSettings.getBOOL("RenderUseTriStrips");
LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseStreamVBO");
- LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseVAO");
+ LLVertexBuffer::sUseVAO = gSavedSettings.getBOOL("RenderUseVAO");
LLVertexBuffer::sPreferStreamDraw = gSavedSettings.getBOOL("RenderPreferStreamDraw");
LLVertexBuffer::sEnableVBOs = gSavedSettings.getBOOL("RenderVBOEnable");
LLVertexBuffer::sDisableVBOMapping = LLVertexBuffer::sEnableVBOs && gSavedSettings.getBOOL("RenderVBOMappingDisable") ;
@@ -6414,209 +6425,235 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
multisample = false;
#endif
- if (multisample)
- {
- //bake out texture2D with RGBL for FXAA shader
- mFXAABuffer.bindTarget();
-
- S32 width = mScreen.getWidth();
- S32 height = mScreen.getHeight();
- glViewport(0, 0, width, height);
-
- gGlowCombineFXAAProgram.bind();
- gGlowCombineFXAAProgram.uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, width, height);
-
- gGL.getTexUnit(0)->bind(&mGlow[1]);
- gGL.getTexUnit(1)->bind(&mScreen);
-
- gGL.begin(LLRender::TRIANGLE_STRIP);
- gGL.vertex2f(-1,-1);
- gGL.vertex2f(-1,3);
- gGL.vertex2f(3,-1);
- gGL.end();
-
- gGL.flush();
-
- gGlowCombineFXAAProgram.unbind();
- mFXAABuffer.flush();
-
- if (dof_enabled)
- { //if depth of field is not enabled, this is the final pass (draw to window)
- mScreen.bindTarget();
- }
- LLGLSLShader* shader = &gFXAAProgram;
- shader->bind();
-
- S32 channel = shader->enableTexture(LLShaderMgr::DIFFUSE_MAP, mFXAABuffer.getUsage());
- if (channel > -1)
- {
- mFXAABuffer.bindTexture(0, channel);
- gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR);
- }
-
-
- F32 scale_x = (F32) width/mFXAABuffer.getWidth();
- F32 scale_y = (F32) height/mFXAABuffer.getHeight();
- shader->uniform2f(LLShaderMgr::FXAA_TC_SCALE, scale_x, scale_y);
- shader->uniform2f(LLShaderMgr::FXAA_RCP_SCREEN_RES, 1.f/width*scale_x, 1.f/height*scale_y);
- shader->uniform4f(LLShaderMgr::FXAA_RCP_FRAME_OPT, -0.5f/width*scale_x, -0.5f/height*scale_y, 0.5f/width*scale_x, 0.5f/height*scale_y);
- shader->uniform4f(LLShaderMgr::FXAA_RCP_FRAME_OPT2, -2.f/width*scale_x, -2.f/height*scale_y, 2.f/width*scale_x, 2.f/height*scale_y);
-
- gGL.begin(LLRender::TRIANGLE_STRIP);
- gGL.vertex2f(-1,-1);
- gGL.vertex2f(-1,3);
- gGL.vertex2f(3,-1);
- gGL.end();
-
- gGL.flush();
- if (dof_enabled)
- {
- mScreen.flush();
- }
- shader->unbind();
- }
-
gViewerWindow->setup3DViewport();
- if (dof_enabled || !multisample)
+ if (dof_enabled)
{
LLGLSLShader* shader = &gDeferredPostProgram;
- if (!dof_enabled)
- {
- shader = &gDeferredPostNoDoFProgram;
- }
-
LLGLDisable blend(GL_BLEND);
- bindDeferredShader(*shader);
- if (dof_enabled)
- {
- //depth of field focal plane calculations
-
- static F32 current_distance = 16.f;
- static F32 start_distance = 16.f;
- static F32 transition_time = 1.f;
+ //depth of field focal plane calculations
+ static F32 current_distance = 16.f;
+ static F32 start_distance = 16.f;
+ static F32 transition_time = 1.f;
- LLVector3 focus_point;
+ LLVector3 focus_point;
- LLViewerObject* obj = LLViewerMediaFocus::getInstance()->getFocusedObject();
- if (obj && obj->mDrawable && obj->isSelected())
- { //focus on selected media object
- S32 face_idx = LLViewerMediaFocus::getInstance()->getFocusedFace();
- if (obj && obj->mDrawable)
+ LLViewerObject* obj = LLViewerMediaFocus::getInstance()->getFocusedObject();
+ if (obj && obj->mDrawable && obj->isSelected())
+ { //focus on selected media object
+ S32 face_idx = LLViewerMediaFocus::getInstance()->getFocusedFace();
+ if (obj && obj->mDrawable)
+ {
+ LLFace* face = obj->mDrawable->getFace(face_idx);
+ if (face)
{
- LLFace* face = obj->mDrawable->getFace(face_idx);
- if (face)
- {
- focus_point = face->getPositionAgent();
- }
+ focus_point = face->getPositionAgent();
}
}
+ }
- if (focus_point.isExactlyZero())
+ if (focus_point.isExactlyZero())
+ {
+ if (LLViewerJoystick::getInstance()->getOverrideCamera())
+ { //focus on point under cursor
+ focus_point = gDebugRaycastIntersection;
+ }
+ else if (gAgentCamera.cameraMouselook())
+ { //focus on point under mouselook crosshairs
+ gViewerWindow->cursorIntersect(-1, -1, 512.f, NULL, -1, FALSE,
+ NULL,
+ &focus_point);
+ }
+ else
{
- if (LLViewerJoystick::getInstance()->getOverrideCamera())
- { //focus on point under cursor
- focus_point = gDebugRaycastIntersection;
- }
- else if (gAgentCamera.cameraMouselook())
- { //focus on point under mouselook crosshairs
- gViewerWindow->cursorIntersect(-1, -1, 512.f, NULL, -1, FALSE,
- NULL,
- &focus_point);
+ LLViewerObject* obj = gAgentCamera.getFocusObject();
+ if (obj)
+ { //focus on alt-zoom target
+ focus_point = LLVector3(gAgentCamera.getFocusGlobal()-gAgent.getRegion()->getOriginGlobal());
}
else
- {
- LLViewerObject* obj = gAgentCamera.getFocusObject();
- if (obj)
- { //focus on alt-zoom target
- focus_point = LLVector3(gAgentCamera.getFocusGlobal()-gAgent.getRegion()->getOriginGlobal());
- }
- else
- { //focus on your avatar
- focus_point = gAgent.getPositionAgent();
- }
+ { //focus on your avatar
+ focus_point = gAgent.getPositionAgent();
}
}
+ }
- LLVector3 eye = LLViewerCamera::getInstance()->getOrigin();
- F32 target_distance = 16.f;
- if (!focus_point.isExactlyZero())
- {
- target_distance = LLViewerCamera::getInstance()->getAtAxis() * (focus_point-eye);
- }
+ LLVector3 eye = LLViewerCamera::getInstance()->getOrigin();
+ F32 target_distance = 16.f;
+ if (!focus_point.isExactlyZero())
+ {
+ target_distance = LLViewerCamera::getInstance()->getAtAxis() * (focus_point-eye);
+ }
- if (transition_time >= 1.f &&
- fabsf(current_distance-target_distance)/current_distance > 0.01f)
- { //large shift happened, interpolate smoothly to new target distance
- transition_time = 0.f;
- start_distance = current_distance;
- }
- else if (transition_time < 1.f)
- { //currently in a transition, continue interpolating
- transition_time += 1.f/CameraFocusTransitionTime*gFrameIntervalSeconds;
- transition_time = llmin(transition_time, 1.f);
+ if (transition_time >= 1.f &&
+ fabsf(current_distance-target_distance)/current_distance > 0.01f)
+ { //large shift happened, interpolate smoothly to new target distance
+ transition_time = 0.f;
+ start_distance = current_distance;
+ }
+ else if (transition_time < 1.f)
+ { //currently in a transition, continue interpolating
+ transition_time += 1.f/CameraFocusTransitionTime*gFrameIntervalSeconds;
+ transition_time = llmin(transition_time, 1.f);
- F32 t = cosf(transition_time*F_PI+F_PI)*0.5f+0.5f;
- current_distance = start_distance + (target_distance-start_distance)*t;
- }
- else
- { //small or no change, just snap to target distance
- current_distance = target_distance;
- }
+ F32 t = cosf(transition_time*F_PI+F_PI)*0.5f+0.5f;
+ current_distance = start_distance + (target_distance-start_distance)*t;
+ }
+ else
+ { //small or no change, just snap to target distance
+ current_distance = target_distance;
+ }
- //convert to mm
- F32 subject_distance = current_distance*1000.f;
- F32 fnumber = CameraFNumber;
- F32 default_focal_length = CameraFocalLength;
+ //convert to mm
+ F32 subject_distance = current_distance*1000.f;
+ F32 fnumber = CameraFNumber;
+ F32 default_focal_length = CameraFocalLength;
- F32 fov = LLViewerCamera::getInstance()->getView();
+ F32 fov = LLViewerCamera::getInstance()->getView();
- const F32 default_fov = CameraFieldOfView * F_PI/180.f;
- //const F32 default_aspect_ratio = gSavedSettings.getF32("CameraAspectRatio");
+ const F32 default_fov = CameraFieldOfView * F_PI/180.f;
+ //const F32 default_aspect_ratio = gSavedSettings.getF32("CameraAspectRatio");
- //F32 aspect_ratio = (F32) mScreen.getWidth()/(F32)mScreen.getHeight();
+ //F32 aspect_ratio = (F32) mScreen.getWidth()/(F32)mScreen.getHeight();
- F32 dv = 2.f*default_focal_length * tanf(default_fov/2.f);
- //F32 dh = 2.f*default_focal_length * tanf(default_fov*default_aspect_ratio/2.f);
+ F32 dv = 2.f*default_focal_length * tanf(default_fov/2.f);
+ //F32 dh = 2.f*default_focal_length * tanf(default_fov*default_aspect_ratio/2.f);
- F32 focal_length = dv/(2*tanf(fov/2.f));
+ F32 focal_length = dv/(2*tanf(fov/2.f));
- //F32 tan_pixel_angle = tanf(LLDrawable::sCurPixelAngle);
+ //F32 tan_pixel_angle = tanf(LLDrawable::sCurPixelAngle);
- // from wikipedia -- c = |s2-s1|/s2 * f^2/(N(S1-f))
- // where N = fnumber
- // s2 = dot distance
- // s1 = subject distance
- // f = focal length
- //
+ // from wikipedia -- c = |s2-s1|/s2 * f^2/(N(S1-f))
+ // where N = fnumber
+ // s2 = dot distance
+ // s1 = subject distance
+ // f = focal length
+ //
+
+ F32 blur_constant = focal_length*focal_length/(fnumber*(subject_distance-focal_length));
+ blur_constant /= 1000.f; //convert to meters for shader
+ F32 magnification = focal_length/(subject_distance-focal_length);
+
+ { //build diffuse+bloom+CoF
+ mDeferredLight.bindTarget();
+ shader = &gDeferredCoFProgram;
- F32 blur_constant = focal_length*focal_length/(fnumber*(subject_distance-focal_length));
- blur_constant /= 1000.f; //convert to meters for shader
- F32 magnification = focal_length/(subject_distance-focal_length);
+ bindDeferredShader(*shader);
+
+ S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mScreen.getUsage());
+ if (channel > -1)
+ {
+ mScreen.bindTexture(0, channel);
+ }
shader->uniform1f(LLShaderMgr::DOF_FOCAL_DISTANCE, -subject_distance/1000.f);
shader->uniform1f(LLShaderMgr::DOF_BLUR_CONSTANT, blur_constant);
shader->uniform1f(LLShaderMgr::DOF_TAN_PIXEL_ANGLE, tanf(1.f/LLDrawable::sCurPixelAngle));
shader->uniform1f(LLShaderMgr::DOF_MAGNIFICATION, magnification);
+ shader->uniform1f(LLShaderMgr::DOF_MAX_COF, CameraMaxCoF);
+
+ gGL.begin(LLRender::TRIANGLE_STRIP);
+ gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
+ gGL.vertex2f(-1,-1);
+
+ gGL.texCoord2f(tc1.mV[0], tc2.mV[1]);
+ gGL.vertex2f(-1,3);
+
+ gGL.texCoord2f(tc2.mV[0], tc1.mV[1]);
+ gGL.vertex2f(3,-1);
+
+ gGL.end();
+
+ unbindDeferredShader(*shader);
+ mDeferredLight.flush();
}
- S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mScreen.getUsage());
- if (channel > -1)
- {
- mScreen.bindTexture(0, channel);
+ { //perform DoF sampling at half-res (preserve alpha channel)
+ mScreen.bindTarget();
+ glViewport(0,0,mScreen.getWidth()/2, mScreen.getHeight()/2);
+ gGL.setColorMask(true, false);
+
+ shader = &gDeferredPostProgram;
+ bindDeferredShader(*shader);
+ S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mDeferredLight.getUsage());
+ if (channel > -1)
+ {
+ mDeferredLight.bindTexture(0, channel);
+ }
+
+ shader->uniform1f(LLShaderMgr::DOF_MAX_COF, CameraMaxCoF);
+
+ gGL.begin(LLRender::TRIANGLE_STRIP);
+ gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
+ gGL.vertex2f(-1,-1);
+
+ gGL.texCoord2f(tc1.mV[0], tc2.mV[1]);
+ gGL.vertex2f(-1,3);
+
+ gGL.texCoord2f(tc2.mV[0], tc1.mV[1]);
+ gGL.vertex2f(3,-1);
+
+ gGL.end();
+
+ unbindDeferredShader(*shader);
+ mScreen.flush();
+ gGL.setColorMask(true, true);
}
+
+ { //combine result based on alpha
+ if (multisample)
+ {
+ mDeferredLight.bindTarget();
+ }
- if (multisample)
- { //bloom has already been added, bind black
- channel = shader->enableTexture(LLShaderMgr::DEFERRED_BLOOM);
+ shader = &gDeferredDoFCombineProgram;
+ bindDeferredShader(*shader);
+ glViewport(0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight());
+ S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mScreen.getUsage());
if (channel > -1)
{
- gGL.getTexUnit(0)->bind(LLViewerFetchedTexture::sBlackImagep);
+ mScreen.bindTexture(0, channel);
}
+
+ shader->uniform1f(LLShaderMgr::DOF_MAX_COF, CameraMaxCoF);
+
+ gGL.begin(LLRender::TRIANGLE_STRIP);
+ gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
+ gGL.vertex2f(-1,-1);
+
+ gGL.texCoord2f(tc1.mV[0], tc2.mV[1]);
+ gGL.vertex2f(-1,3);
+
+ gGL.texCoord2f(tc2.mV[0], tc1.mV[1]);
+ gGL.vertex2f(3,-1);
+
+ gGL.end();
+
+ unbindDeferredShader(*shader);
+
+ if (multisample)
+ {
+ mDeferredLight.flush();
+ }
+ }
+ }
+ else
+ {
+ if (multisample)
+ {
+ mDeferredLight.bindTarget();
+ }
+ LLGLSLShader* shader = &gDeferredPostNoDoFProgram;
+
+ bindDeferredShader(*shader);
+
+ S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mScreen.getUsage());
+ if (channel > -1)
+ {
+ mScreen.bindTexture(0, channel);
}
-
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.texCoord2f(tc1.mV[0], tc1.mV[1]);
gGL.vertex2f(-1,-1);
@@ -6630,6 +6667,71 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
gGL.end();
unbindDeferredShader(*shader);
+
+ if (multisample)
+ {
+ mDeferredLight.flush();
+ }
+ }
+
+ if (multisample)
+ {
+ //bake out texture2D with RGBL for FXAA shader
+ mFXAABuffer.bindTarget();
+
+ S32 width = mScreen.getWidth();
+ S32 height = mScreen.getHeight();
+ glViewport(0, 0, width, height);
+
+ LLGLSLShader* shader = &gGlowCombineFXAAProgram;
+
+ shader->bind();
+ shader->uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, width, height);
+
+ S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mDeferredLight.getUsage());
+ if (channel > -1)
+ {
+ mDeferredLight.bindTexture(0, channel);
+ }
+
+ gGL.begin(LLRender::TRIANGLE_STRIP);
+ gGL.vertex2f(-1,-1);
+ gGL.vertex2f(-1,3);
+ gGL.vertex2f(3,-1);
+ gGL.end();
+
+ gGL.flush();
+
+ shader->disableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mDeferredLight.getUsage());
+ shader->unbind();
+
+ mFXAABuffer.flush();
+
+ shader = &gFXAAProgram;
+ shader->bind();
+
+ channel = shader->enableTexture(LLShaderMgr::DIFFUSE_MAP, mFXAABuffer.getUsage());
+ if (channel > -1)
+ {
+ mFXAABuffer.bindTexture(0, channel);
+ gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_BILINEAR);
+ }
+
+ F32 scale_x = (F32) width/mFXAABuffer.getWidth();
+ F32 scale_y = (F32) height/mFXAABuffer.getHeight();
+ shader->uniform2f(LLShaderMgr::FXAA_TC_SCALE, scale_x, scale_y);
+ shader->uniform2f(LLShaderMgr::FXAA_RCP_SCREEN_RES, 1.f/width*scale_x, 1.f/height*scale_y);
+ shader->uniform4f(LLShaderMgr::FXAA_RCP_FRAME_OPT, -0.5f/width*scale_x, -0.5f/height*scale_y, 0.5f/width*scale_x, 0.5f/height*scale_y);
+ shader->uniform4f(LLShaderMgr::FXAA_RCP_FRAME_OPT2, -2.f/width*scale_x, -2.f/height*scale_y, 2.f/width*scale_x, 2.f/height*scale_y);
+
+ gGL.begin(LLRender::TRIANGLE_STRIP);
+ gGL.vertex2f(-1,-1);
+ gGL.vertex2f(-1,3);
+ gGL.vertex2f(3,-1);
+ gGL.end();
+
+ gGL.flush();
+ shader->unbind();
}
}
else
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index d653990977..e607e0aec6 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -845,6 +845,7 @@ public:
static F32 RenderShadowErrorCutoff;
static F32 RenderShadowFOVCutoff;
static BOOL CameraOffset;
+ static F32 CameraMaxCoF;
};
void render_bbox(const LLVector3 &min, const LLVector3 &max);
diff --git a/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml
deleted file mode 100644
index 7c702f246d..0000000000
--- a/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="РЕДАКТОР СУТОЧНОГО ЦИКЛА">
- <tab_container name="Day Cycle Tabs">
- <panel label="Суточный цикл" name="Day Cycle">
- <multi_slider initial_value="0" name="WLTimeSlider"/>
- <multi_slider initial_value="0" name="WLDayCycleKeys"/>
- <text name="WL12am">
- 00:00
- </text>
- <text name="WL3am">
- 03:00
- </text>
- <text name="WL6am">
- 06:00
- </text>
- <text name="WL9amHash">
- 09:00
- </text>
- <text name="WL12pmHash">
- 12:00
- </text>
- <text name="WL3pm">
- 15:00
- </text>
- <text name="WL6pm">
- 18:00
- </text>
- <text name="WL9pm">
- 21:00
- </text>
- <text name="WL12am2">
- 00:00
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="Добавить ключ" label_selected="Добавить ключ" name="WLAddKey"/>
- <button label="Удалить ключ" label_selected="Удалить ключ" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- Настройки ключевого кадра:
- </text>
- <text name="WLCurKeyTimeText">
- Ключевое время:
- </text>
- <spinner label="ч" name="WLCurKeyHour"/>
- <spinner label="мин" name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- Ключевая настройка:
- </text>
- <combo_box label="Настройка" name="WLKeyPresets"/>
- <text name="DayCycleText">
- Привязка:
- </text>
- <combo_box label="5 мин" name="WLSnapOptions"/>
- <text name="DayCycleText2">
- Длительность цикла:
- </text>
- <spinner label="ч" name="WLLengthOfDayHour"/>
- <spinner label="мин" name="WLLengthOfDayMin"/>
- <spinner label="с" name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- Просмотр:
- </text>
- <button label="Проиграть" label_selected="Проиграть" name="WLAnimSky"/>
- <button label="Стоп!" label_selected="Стоп" name="WLStopAnimSky"/>
- <button label="Использовать время в землевладении" label_selected="Перейти на время землевладения" name="WLUseLindenTime"/>
- <button label="Сохранить тестовый день" label_selected="Сохранить тестовый день" name="WLSaveDayCycle"/>
- <button label="Загрузить тестовый день" label_selected="Загрузить тестовый день" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_joystick.xml b/indra/newview/skins/default/xui/ru/floater_joystick.xml
index 2390789746..cc93152225 100644
--- a/indra/newview/skins/default/xui/ru/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/ru/floater_joystick.xml
@@ -4,13 +4,13 @@
устройство не выбрано
</floater.string>
<check_box label="Включить джойстик:" name="enable_joystick"/>
- <spinner label="Наложение по оси X" name="JoystickAxis1"/>
- <spinner label="Наложение по оси Y" name="JoystickAxis2"/>
- <spinner label="Наложение по оси Z" name="JoystickAxis0"/>
- <spinner label="Наложение уклонов" name="JoystickAxis4"/>
- <spinner label="Наложение сгибов" name="JoystickAxis5"/>
- <spinner label="Наложение вращения" name="JoystickAxis3"/>
- <spinner label="Наложение масштабирования" name="JoystickAxis6"/>
+ <spinner label="Наложение по X" name="JoystickAxis1"/>
+ <spinner label="Наложение по Y" name="JoystickAxis2"/>
+ <spinner label="Наложение по Z" name="JoystickAxis0"/>
+ <spinner label="Н. уклонов" name="JoystickAxis4"/>
+ <spinner label="Н. сгибов" name="JoystickAxis5"/>
+ <spinner label="Н. вращения" name="JoystickAxis3"/>
+ <spinner label="Н. масштабир." name="JoystickAxis6"/>
<check_box label="Масштабирование" name="ZoomDirect"/>
<check_box label="3D курсор" name="Cursor3D"/>
<check_box label="Автоуровень" name="AutoLeveling"/>
@@ -18,7 +18,7 @@
Режимы управления:
</text>
<check_box label="Аватар" name="JoystickAvatarEnabled"/>
- <check_box label="Строительство" name="JoystickBuildEnabled"/>
+ <check_box label="Стройка" name="JoystickBuildEnabled"/>
<check_box label="Камера" name="JoystickFlycamEnabled"/>
<stat_view label="Монитор джойстика" name="axis_view">
<stat_bar label="Ось 0" name="axis0"/>
@@ -56,13 +56,13 @@
Невидимая зона по Z
</text>
<text name="PitchDeadZone">
- Невидимая зона уклона
+ Невид. зона уклона
</text>
<text name="YawDeadZone">
- Невидимая зона сгиба
+ Невид. зона сгиба
</text>
<text name="RollDeadZone">
- Невидимая зона вращения
+ Невид. зона вращения
</text>
<text name="Feathering">
Размывка краев
@@ -71,7 +71,7 @@
Масштаб
</text>
<text name="ZoomDeadZone">
- Невидимая зона при масштабировании
+ Невид. зона масшт.
</text>
<button label="Стандартные значения SpaceNavigator" name="SpaceNavigatorDefaults"/>
<button label="OK" label_selected="OK" name="ok_btn"/>
diff --git a/indra/newview/skins/default/xui/ru/floater_preferences.xml b/indra/newview/skins/default/xui/ru/floater_preferences.xml
index 31c751250e..fc244b9d8b 100644
--- a/indra/newview/skins/default/xui/ru/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preferences.xml
@@ -11,7 +11,7 @@
<panel label="Уведомления" name="msgs"/>
<panel label="Цвета" name="colors"/>
<panel label="Приватность" name="im"/>
- <panel label="Настройка" name="input"/>
- <panel label="Расширенный" name="advanced1"/>
+ <panel label="Конфигурация" name="input"/>
+ <panel label="Дополнительно" name="advanced1"/>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
index ae6d8bf94d..7d8ee96924 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
@@ -17,7 +17,7 @@
<button label="Обзор" label_selected="Обзор" name="set_cache"/>
<button label="Расположение по умолчанию" label_selected="Расположение по умолчанию" name="default_cache_location"/>
<text name="UI Size:">
- Размер интерфейса:
+ Интерфейс:
</text>
<check_box label="Показывать ошибки скрипта в:" name="show_script_errors"/>
<radio_group name="show_location">
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
index e1135b5ee1..9d7ae546fd 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
@@ -3,7 +3,7 @@
<text name="tell_me_label">
Сообщать мне:
</text>
- <check_box label="о тратах и доходах" name="notify_money_change_checkbox"/>
+ <check_box label="о расходах и доходах" name="notify_money_change_checkbox"/>
<check_box label="о входе и выходе моих друзей" name="friends_online_notify_checkbox"/>
<text name="show_label">
Всегда показывать:
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
index 5e4130667f..fa08c134ad 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
@@ -4,39 +4,39 @@
Размер шрифта:
</text>
<radio_group name="chat_font_size">
- <radio_item label="Маленький" name="radio" value="0"/>
+ <radio_item label="Мелкий" name="radio" value="0"/>
<radio_item label="Средний" name="radio2" value="1"/>
- <radio_item label="Большой" name="radio3" value="2"/>
+ <radio_item label="Крупный" name="radio3" value="2"/>
</radio_group>
<check_box initial_value="истина" label="Воспроизводить анимацию ввода текста при общении" name="play_typing_animation"/>
- <check_box label="Отправлять мне сообщения по Email, когда я в оффлайне" name="send_im_to_email"/>
- <check_box label="Включить текстовые сообщения и журнал общения в чате" name="plain_text_chat_history"/>
+ <check_box label="Отправлять мне сообщения по почте, когда меня нет в сети" name="send_im_to_email"/>
+ <check_box label="Вести журнал текстового IM и чата" name="plain_text_chat_history"/>
<check_box label="Чат в пузырьках" name="bubble_text_chat"/>
<text name="show_ims_in_label">
- Показать сообщения в:
+ Показывать сообщения:
</text>
<text name="requires_restart_label">
(требуется перезапуск)
</text>
<radio_group name="chat_window" tool_tip="Показывать IM-сообщения в отдельных окнах или же в одном окне с несколькими вкладками (требуется перезапуск)">
- <radio_item label="Отдельные окна" name="radio" value="0"/>
- <radio_item label="Вкладки" name="radio2" value="1"/>
+ <radio_item label="В отдельных окнах" name="radio" value="0"/>
+ <radio_item label="На вкладках" name="radio2" value="1"/>
</radio_group>
<text name="disable_toast_label">
Включить всплывающие сообщения с новыми репликами в чате:
</text>
<check_box label="Групповой чат" name="EnableGroupChatPopups" tool_tip="Отображать всплывающие уведомления при появлении сообщений в групповом чате"/>
<check_box label="Текстовые чаты" name="EnableIMChatPopups" tool_tip="Отображать всплывающие уведомления при получении IM-сообщений"/>
- <spinner label="Время отображения всплывающих сообщений чата:" name="nearby_toasts_lifetime"/>
- <spinner label="Время затухания всплывающих сообщений чата:" name="nearby_toasts_fadingtime"/>
+ <spinner label="Время отображения всплывающих реплик:" name="nearby_toasts_lifetime"/>
+ <spinner label="Время затухания всплывающих реплик:" name="nearby_toasts_fadingtime"/>
<text name="translate_chb_label">
- Использовать машинный перевод во время общения (используется Google)
+ Использовать машинный перевод при общении (технология Google)
</text>
<text name="translate_language_text">
Переводить чат на:
</text>
<combo_box name="translate_language_combobox">
- <combo_box.item label="Стандартная система" name="System Default Language"/>
+ <combo_box.item label="Язык системы" name="System Default Language"/>
<combo_box.item label="English" name="English"/>
<combo_box.item label="Dansk" name="Danish"/>
<combo_box.item label="Deutsch" name="German"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
index 17d84e2a39..48c34fcbb2 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
@@ -35,9 +35,9 @@
Цвет фона тегов имен (также для чата в пузырьках):
</text>
<color_swatch name="background" tool_tip="Выберите цвет для тегов имен"/>
- <slider label="Прозрачность:" name="bubble_chat_opacity" tool_tip="Задайте прозрачность тегов имен"/>
+ <slider label="Видимость:" name="bubble_chat_opacity" tool_tip="Задайте непрозрачность тегов имен"/>
<text name="floater_opacity">
- Прозрачность окон:
+ Непрозрачность окон:
</text>
<slider label="Активные:" name="active"/>
<slider label="Неактивные:" name="inactive"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
index 770c47b3d4..49f743a6ba 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
@@ -4,7 +4,7 @@
Язык:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Стандартная настройка системы" name="System Default Language"/>
+ <combo_box.item label="Язык системы" name="System Default Language"/>
<combo_box.item label="English - Английский" name="English"/>
<combo_box.item label="Dansk – датский (бета-версия)" name="Danish"/>
<combo_box.item label="Deutsch – немецкий (бета-версия)" name="Deutsch(German)"/>
@@ -22,15 +22,15 @@
(Требуется перезапуск)
</text>
<text name="maturity_desired_prompt">
- Я хочу видеть содержимое:
+ Показывать контент:
</text>
<combo_box name="maturity_desired_combobox">
- <combo_box.item label="General, Moderate, Adult" name="Desired_Adult"/>
- <combo_box.item label="General и Moderate" name="Desired_Mature"/>
- <combo_box.item label="Общие" name="Desired_PG"/>
+ <combo_box.item label="Общий, умеренный, для взрослых" name="Desired_Adult"/>
+ <combo_box.item label="Общий и умеренный" name="Desired_Mature"/>
+ <combo_box.item label="Общий" name="Desired_PG"/>
</combo_box>
<text name="start_location_textbox">
- Начальное место:
+ Место старта:
</text>
<combo_box name="start_location_combo">
<combo_box.item label="Мое последнее место" name="MyLastLocation"/>
@@ -38,7 +38,7 @@
</combo_box>
<check_box initial_value="истина" label="Показывать на экране входа" name="show_location_checkbox"/>
<text name="name_tags_textbox">
- Теги имени:
+ Теги имен:
</text>
<radio_group name="Name_Tag_Preference">
<radio_item label="Выкл." name="radio" value="0"/>
@@ -46,10 +46,10 @@
<radio_item label="Временный показ" name="radio3" value="2"/>
</radio_group>
<check_box label="Мое имя" name="show_my_name_checkbox1"/>
- <check_box label="Имена пользователей" name="show_slids" tool_tip="Показывать имя пользователя, такое, как bobsmith123"/>
- <check_box label="Титулы группы" name="show_all_title_checkbox1" tool_tip="Показывать титулы групп, такие, как Officer или Member"/>
+ <check_box label="Имена пользователей" name="show_slids" tool_tip="Показывать имя пользователя, например, bobsmith123"/>
+ <check_box label="Титулы групп" name="show_all_title_checkbox1" tool_tip="Показывать титулы групп, например, Officer или Member"/>
<check_box label="Подсветка друзей" name="show_friends" tool_tip="Подсвечивать теги имен ваших друзей"/>
- <check_box label="Просмотреть экранные имена" name="display_names_check" tool_tip="Показывать экранные имена в чате, IM, тегах имен и пр."/>
+ <check_box label="Экранные имена" name="display_names_check" tool_tip="Показывать экранные имена в чате, IM, тегах имен и пр."/>
<text name="inworld_typing_rg_label">
Нажатие клавиш с буквами:
</text>
@@ -58,9 +58,9 @@
<radio_item label="Приводит к перемещению (т. е. WASD)" name="radio_move" value="0"/>
</radio_group>
<text name="title_afk_text">
- Включение режима «Отошел» через:
+ Задержка режима «Отошел»:
</text>
- <combo_box label="Включение режима «Отошел» через:" name="afk">
+ <combo_box label="Задержка режима «Отошел»:" name="afk">
<combo_box.item label="2 мин" name="item0"/>
<combo_box.item label="5 мин" name="item1"/>
<combo_box.item label="10 мин" name="item2"/>
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 867307cc43..a7e826f5fc 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
@@ -42,10 +42,10 @@
<combo_box.item label="Солнце/луна + осветители" name="2"/>
</combo_box>
<text name="reflection_label">
- Отражения от воды:
+ Вода отражает:
</text>
<combo_box name="Reflections">
- <combo_box.item label="Минимальные" name="0"/>
+ <combo_box.item label="Минимум" name="0"/>
<combo_box.item label="Ландшафт и деревья" name="1"/>
<combo_box.item label="Все статичные объекты" name="2"/>
<combo_box.item label="Все аватары и объекты" name="3"/>
@@ -99,16 +99,16 @@
<check_box initial_value="истина" label="Аппаратная отрисовка" name="AvatarVertexProgram"/>
<check_box initial_value="истина" label="Одежда аватара" name="AvatarCloth"/>
<text name="TerrainDetailText">
- Детализация ландшафта:
+ Ландшафт:
</text>
<radio_group name="TerrainDetailRadio">
- <radio_item label="Низко" name="0"/>
- <radio_item label="Высоко" name="2"/>
+ <radio_item label="Грубо" name="0"/>
+ <radio_item label="Детально" name="2"/>
</radio_group>
--&gt;
</panel>
<button label="Применить" label_selected="Применить" name="Apply"/>
<button label="Сброс" name="Defaults"/>
<button label="Дополнительно" name="Advanced"/>
- <button label="Аппаратные" label_selected="Аппаратные" name="GraphicsHardwareButton"/>
+ <button label="Аппаратура" label_selected="Аппаратура" name="GraphicsHardwareButton"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
index 8b3542a6d2..878a729113 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
@@ -5,8 +5,8 @@
<text name="heading2">
Автоматическая установка позиции для:
</text>
- <check_box label="Создания/редактирование" name="edit_camera_movement" tool_tip="Производить автоматическое позиционирование камеры при входе в режим редактирования и выходе из него"/>
- <check_box label="Внешность" name="appearance_camera_movement" tool_tip="Производить автоматическое позиционирование камеры в режиме изменения внешности"/>
+ <check_box label="создания/редактирования" name="edit_camera_movement" tool_tip="Производить автоматическое позиционирование камеры при входе в режим редактирования и выходе из него"/>
+ <check_box label="внешности" name="appearance_camera_movement" tool_tip="Производить автоматическое позиционирование камеры в режиме изменения внешности"/>
<text name="keyboard_lbl">
Клавиатура:
</text>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
index f3c7e43022..20bb839eed 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
@@ -20,7 +20,7 @@
<check_box label="Метка времени в каждой строке журнала чата" name="show_timestamps_check_im"/>
<check_box label="Метка времени в имени файла журнала." name="logfile_name_datestamp"/>
<text name="log_path_desc">
- Размещение журналов:
+ Папка журналов:
</text>
<button label="Обзор" label_selected="Обзор" name="log_path_button"/>
<button label="Черный список" name="block_list"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
index 9f23e2f5f7..db88189169 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Настройка" name="Input panel">
+<panel label="Конфигурация" name="Input panel">
<text name="Network:">
Сеть:
</text>
<text name="Maximum bandwidth">
- Максимальная ширина канала
+ Макс. ширина канала
</text>
<text name="text_box2">
Кбит/с
@@ -32,5 +32,5 @@
<text name="Proxy Settings:">
Настройки прокси-сервера:
</text>
- <button label="Задать настройки прокси" label_selected="Обзор" name="set_proxy"/>
+ <button label="Задать настройки" label_selected="Обзор" name="set_proxy"/>
</panel>
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 123989966c..bf673750d2 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Звуки" name="Preference Media panel">
<panel.string name="middle_mouse">
- Средняя кнопка мыши
+ среднюю кнопку мыши
</panel.string>
- <slider label="Главный регулятор" name="System Volume"/>
+ <slider label="Общая громкость" name="System Volume"/>
<check_box initial_value="истина" name="mute_when_minimized"/>
<text name="mute_chb_label">
Заглушать, когда свернуто
@@ -24,11 +24,11 @@
Настройки голосового чата
</text>
<text name="Listen from">
- Прослушивание с позиции:
+ Слушать с:
</text>
<radio_group name="ear_location">
- <radio_item label="Камера" name="0"/>
- <radio_item label="Аватар" name="1"/>
+ <radio_item label="Камеры" name="0"/>
+ <radio_item label="Аватара" name="1"/>
</radio_group>
<check_box label="Губы аватара двигаются при разговоре" name="enable_lip_sync"/>
<check_box label="Включать/выключать микрофон, когда я нажимаю:" name="push_to_talk_toggle_check" tool_tip="В режиме переключения ОДНОКРАТНОЕ нажатие и отпускание данной клавиши включает/выключает микрофон. Если режим переключения отключен, то микрофон передает голос, только когда клавиша нажата."/>
diff --git a/indra/newview/skins/default/xui/ru/panel_sound_devices.xml b/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
index 4a57ed4f4f..98dab288a3 100644
--- a/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
@@ -20,6 +20,6 @@
</text>
<slider_bar initial_value="1.0" name="mic_volume_slider" tool_tip="Измените значение, используя ползунок"/>
<text name="wait_text">
- Ожидайте
+ Подождите
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml
index 0134298166..df657b39c6 100644
--- a/indra/newview/skins/default/xui/ru/strings.xml
+++ b/indra/newview/skins/default/xui/ru/strings.xml
@@ -1940,7 +1940,7 @@ support@secondlife.com.
Новый скрипт
</string>
<string name="BusyModeResponseDefault">
- У жителя, которому вы адресовали сообщение, задан статус «Не беспокоить». Ваше сообщение все равно будет отображено на панели IM для просмотра позже.
+ У адресата вашего сообщения задан статус «Не беспокоить». Ваше сообщение все равно будет отображено на панели IM для просмотра позже.
</string>
<string name="MuteByName">
(по имени)
diff --git a/indra/newview/skins/default/xui/tr/floater_camera.xml b/indra/newview/skins/default/xui/tr/floater_camera.xml
index 33b4338e21..4161e6ea52 100644
--- a/indra/newview/skins/default/xui/tr/floater_camera.xml
+++ b/indra/newview/skins/default/xui/tr/floater_camera.xml
@@ -13,7 +13,7 @@
Kamera modları
</floater.string>
<floater.string name="pan_mode_title">
- Yörünge Değişimi - Yakınlaştırma - Kamerayı Çevirme
+ Yörünge - Yakınlş. - Kamerayı Çvr.
</floater.string>
<floater.string name="presets_mode_title">
Ön Ayarlı Görünümler
diff --git a/indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml
deleted file mode 100644
index 9e706d9892..0000000000
--- a/indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="GÜN DÖNGÜSÜ DÜZENLEYİCİ">
- <tab_container name="Day Cycle Tabs">
- <panel label="Gün Döngüsü" name="Day Cycle">
- <multi_slider initial_value="0" name="WLTimeSlider"/>
- <multi_slider initial_value="0" name="WLDayCycleKeys"/>
- <text name="WL12am">
- 12öö
- </text>
- <text name="WL3am">
- 3öö
- </text>
- <text name="WL6am">
- 6öö
- </text>
- <text name="WL9amHash">
- 9öö
- </text>
- <text name="WL12pmHash">
- 12ös
- </text>
- <text name="WL3pm">
- 3ös
- </text>
- <text name="WL6pm">
- 6ös
- </text>
- <text name="WL9pm">
- 9ös
- </text>
- <text name="WL12am2">
- 12öö
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="Anahtar Ekle" label_selected="Anahtar Ekle" name="WLAddKey"/>
- <button label="Anahtarı Sil" label_selected="Anahtarı Sil" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- Anahtar Kare Ayarları:
- </text>
- <text name="WLCurKeyTimeText">
- Anahtar Zamanı:
- </text>
- <spinner label="Saat" name="WLCurKeyHour"/>
- <spinner label="Dak" name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- Anahtar Ön Ayarı:
- </text>
- <combo_box label="Ön Ayar" name="WLKeyPresets"/>
- <text name="DayCycleText">
- Yasla:
- </text>
- <combo_box label="5 dak" name="WLSnapOptions"/>
- <text name="DayCycleText2">
- Döngü Uzunluğu:
- </text>
- <spinner label="Saat" name="WLLengthOfDayHour"/>
- <spinner label="Dak" name="WLLengthOfDayMin"/>
- <spinner label="San" name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- Önizleme:
- </text>
- <button label="Oyna" label_selected="Oyna" name="WLAnimSky"/>
- <button label="Durdur!" label_selected="Durdur" name="WLStopAnimSky"/>
- <button label="Gayrimenkul Saati Kullan" label_selected="Gayrimenkul Saatine Git" name="WLUseLindenTime"/>
- <button label="Test Gününü Kaydet" label_selected="Test Gününü Kaydet" name="WLSaveDayCycle"/>
- <button label="Test Gününü Yükle" label_selected="Test Gününü Yükle" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
index a5cbe3a416..e2e87ddf1e 100644
--- a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
@@ -36,31 +36,31 @@
<button label="Anahtar Ekle" label_selected="Anahtar Ekle" name="WLAddKey"/>
<button label="Anahtarı Sil" label_selected="Anahtarı Sil" name="WLDeleteKey"/>
<text name="WL12am">
- 12öö
+ 12
</text>
<text name="WL3am">
- 3öö
+ 3
</text>
<text name="WL6am">
- 6öö
+ 6
</text>
<text name="WL9amHash">
- 9öö
+ 9
</text>
<text name="WL12pmHash">
- 12ös
+ 24
</text>
<text name="WL3pm">
- 3ös
+ 15
</text>
<text name="WL6pm">
- 6ös
+ 18
</text>
<text name="WL9pm">
- 9ös
+ 21
</text>
<text name="WL12am2">
- 12öö
+ 12
</text>
<text name="WL12amHash">
|
@@ -97,7 +97,7 @@
<text name="WLCurKeyTimeText">
Zaman:
</text>
- <time name="time" value="6:00 ÖÖ"/>
+ <time name="time" value="6:00"/>
<check_box label="Bunu yeni gün döngüm yap" name="make_default_cb"/>
<button label="Kaydet" name="save"/>
<button label="İptal" name="cancel"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
index 16564963e5..0e9f86148d 100644
--- a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
@@ -86,21 +86,21 @@
|
</text>
<text name="WL12am">
- 12öö
+ 12
</text>
<text name="WL6am">
- 6öö
+ 6
</text>
<text name="WL12pmHash">
- 12ös
+ 24
</text>
<text name="WL6pm">
- 6ös
+ 18
</text>
<text name="WL12am2">
- 12öö
+ 12
</text>
- <time name="WLDayTime" value="6:00 ÖÖ"/>
+ <time name="WLDayTime" value="6:00"/>
<text name="WLEastAngleText">
Doğu Açısı
</text>
diff --git a/indra/newview/skins/default/xui/tr/floater_picks.xml b/indra/newview/skins/default/xui/tr/floater_picks.xml
index 06a404447e..513a2e319a 100644
--- a/indra/newview/skins/default/xui/tr/floater_picks.xml
+++ b/indra/newview/skins/default/xui/tr/floater_picks.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_picks" title="Favoriler"/>
+<floater name="floater_picks" title="Seçmeler"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_preview_texture.xml b/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
index 4548fbae64..79e184130a 100644
--- a/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
@@ -34,7 +34,7 @@
<combo_item name="16:10">
16:10
</combo_item>
- <combo_item name="16:9" tool_tip="Profil favorileri">
+ <combo_item name="16:9" tool_tip="Profil seçmeleri">
16:9
</combo_item>
<combo_item name="2:1">
diff --git a/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
index 1ba9f8c2aa..4ef789f585 100644
--- a/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="texture picker" title="FAVORİ: DOKU">
+<floater name="texture picker" title="SEÇME: DOKU">
<floater.string name="choose_picture">
Bir resim seçmek için tıklayın
</floater.string>
<floater.string name="pick title">
- Favori:
+ Seçme:
</floater.string>
<text name="Multiple">
Birden çok doku
diff --git a/indra/newview/skins/default/xui/tr/floater_tools.xml b/indra/newview/skins/default/xui/tr/floater_tools.xml
index 47299059af..cd5e6b7fac 100644
--- a/indra/newview/skins/default/xui/tr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/tr/floater_tools.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" short_title="İNŞA ARAÇLARI">
+<floater name="toolbox floater" short_title="İNŞA ET ARAÇLARI">
<floater.string name="status_rotate">
Nesneyi döndürmek için renkli bantları sürükleyin
</floater.string>
diff --git a/indra/newview/skins/default/xui/tr/floater_windlight_options.xml b/indra/newview/skins/default/xui/tr/floater_windlight_options.xml
index 02910e2539..6c5fba374c 100644
--- a/indra/newview/skins/default/xui/tr/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/tr/floater_windlight_options.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="WindLight floater" title="GELİŞMİŞ GÖKYÜZÜ DÜZENLEYİCİ">
<floater.string name="WLDefaultSkyNames">
- A-12ÖÖ:A-12ÖS:A-3ÖÖ:A-3ÖS:A-4.30ÖS:A-6ÖÖ:A-6ÖS:A-9ÖÖ:A-9ÖS:Barselona:Tipi:Mavi Gün Ortası:Sahilde Öğleden Sonra:Sahilde Gün Batımı:Varsayılan:Çölde Gün Batımı:Güzel Bir Gün:Kabarık Büyük Bulutlar:Sisli:Şık Şık:Şık Şık Şık:Dondurma:Hayalet:Uygunsuz Gerçekler:Gün Ortası1:Gün Ortası 2:Gün Ortası 3:Gün Ortası 4:Gece:Korsan:Mor:Denizcinin Keyfi:Saf Tensel
+ A-12:A-24:A-3:A-15:A-16.30:A-6:A-18:A-9:A-21:Barselona:Tipi:Mavi Gün Ortası:Sahilde Öğleden Sonra:Sahilde Gün Batımı:Varsayılan:Çölde Gün Batımı:Güzel Bir Gün:Kabarık Büyük Bulutlar:Sisli:Şık Şık:Şık Şık Şık:Dondurma:Hayalet:Uygunsuz Gerçekler:Gün Ortası1:Gün Ortası 2:Gün Ortası 3:Gün Ortası 4:Gece:Korsan:Mor:Denizcinin Keyfi:Saf Tensel
</floater.string>
<text name="KeyFramePresetsText">
Gökyüzü Ön Ayarları:
diff --git a/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml b/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
index 9ae433d8bb..cb9b678fdd 100644
--- a/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="menu_gesture_gear">
- <menu_item_call label="Sık Kullanılanlara Ekle/Çıkar" name="activate"/>
+ <menu_item_call label="Favorilere Ekle/Çıkar" name="activate"/>
<menu_item_call label="Kopyala" name="copy_gesture"/>
<menu_item_call label="Yapıştır" name="paste"/>
<menu_item_call label="UUID&apos;yi Kopyala" name="copy_uuid"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml b/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
index 130c72e04d..d1f213516b 100644
--- a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="hide_navbar_menu">
- <menu_item_check label="Gezinme ve Sık Kullanılanlar Çubuğunu Göster" name="ShowNavbarNavigationPanel"/>
- <menu_item_check label="Sık Kullanılanlar Çubuğunu Göster" name="ShowNavbarFavoritesPanel"/>
+ <menu_item_check label="Gezinme ve Favoriler Çubuğunu Göster" name="ShowNavbarNavigationPanel"/>
+ <menu_item_check label="Favoriler Çubuğunu Göster" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="Mini Konum Çubuğunu Göster" name="ShowMiniLocationPanel"/>
</menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_landmark.xml b/indra/newview/skins/default/xui/tr/menu_landmark.xml
index 17068d445d..c68a2f6a90 100644
--- a/indra/newview/skins/default/xui/tr/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/tr/menu_landmark.xml
@@ -2,6 +2,6 @@
<toggleable_menu name="landmark_overflow_menu">
<menu_item_call label="SLurl&apos;i Kopyala" name="copy"/>
<menu_item_call label="Sil" name="delete"/>
- <menu_item_call label="Favori Oluştur" name="pick"/>
- <menu_item_call label="Sık Kullanılanlar Çubuğuna Ekle" name="add_to_favbar"/>
+ <menu_item_call label="Seçme Oluştur" name="pick"/>
+ <menu_item_call label="Favoriler Çubuğuna Ekle" name="add_to_favbar"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_picks_plus.xml b/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
index 0bd84fa88e..d9c4fefc97 100644
--- a/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="picks_plus_menu">
- <menu_item_call label="Yeni Favori" name="create_pick"/>
+ <menu_item_call label="Yeni Seçme" name="create_pick"/>
<menu_item_call label="Yeni İlan" name="create_classified"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_place.xml b/indra/newview/skins/default/xui/tr/menu_place.xml
index 4ef7c01f09..ad167a328a 100644
--- a/indra/newview/skins/default/xui/tr/menu_place.xml
+++ b/indra/newview/skins/default/xui/tr/menu_place.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="place_overflow_menu">
<menu_item_call label="Yer İmi Yap" name="landmark"/>
- <menu_item_call label="Favori Oluştur" name="pick"/>
+ <menu_item_call label="Seçme Oluştur" name="pick"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
index 5282d9fec7..939ee2c7cb 100644
--- a/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
@@ -15,5 +15,5 @@
<menu_item_call label="Tüm klasörleri genişlet" name="expand_all"/>
<menu_item_call label="Tüm klasörleri daralt" name="collapse_all"/>
<menu_item_check label="Tarihe Göre Sırala" name="sort_by_date"/>
- <menu_item_call label="Favori Oluştur" name="create_pick"/>
+ <menu_item_call label="Seçme Oluştur" name="create_pick"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_slurl.xml b/indra/newview/skins/default/xui/tr/menu_slurl.xml
index 03e3837ea0..73ac068b26 100644
--- a/indra/newview/skins/default/xui/tr/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/tr/menu_slurl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
<menu_item_call label="URL Hakkında" name="about_url"/>
- <menu_item_call label="URL&apos;ye Işınlan" name="teleport_to_url"/>
+ <menu_item_call label="URL&apos;ye Işınla" name="teleport_to_url"/>
<menu_item_call label="Harita" name="show_on_map"/>
</menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_viewer.xml b/indra/newview/skins/default/xui/tr/menu_viewer.xml
index 0877d8881b..efeed833a5 100644
--- a/indra/newview/skins/default/xui/tr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/tr/menu_viewer.xml
@@ -56,7 +56,7 @@
<menu_item_check label="Parsel Özellikleri" name="Parcel Properties"/>
<menu_item_check label="Gelişmiş Menü" name="Show Advanced Menu"/>
</menu>
- <menu_item_call label="Ana Konuma Işınlan" name="Teleport Home"/>
+ <menu_item_call label="Ana Konuma Işınla" name="Teleport Home"/>
<menu_item_call label="Ana Konumu Burası Olarak Seç" name="Set Home to Here"/>
<menu label="Güneş" name="Environment Settings">
<menu_item_call label="Gün Doğumu" name="Sunrise"/>
diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml
index b75307b67b..a268c103a6 100644
--- a/indra/newview/skins/default/xui/tr/notifications.xml
+++ b/indra/newview/skins/default/xui/tr/notifications.xml
@@ -189,7 +189,7 @@ Bu Yetenek &apos;[ROLE_NAME]&apos; rolüne eklensin mi?
<usetemplate ignoretext="Aksesuarları çıkarmadan önce doğrulama iste" name="okcancelignore" notext="Hayır" yestext="Evet"/>
</notification>
<notification name="JoinGroupCanAfford">
- Bu gruba katılmanın maliyeti: [COST] L$.
+ Bu gruba katılmanın maliyeti: L$ [COST].
Devam etmek istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="İptal Et" yestext="Katıl"/>
</notification>
@@ -199,33 +199,33 @@ Devam etmek istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="İptal Et" yestext="Katıl"/>
</notification>
<notification name="JoinGroupCannotAfford">
- Bu gruba katılmanın maliyeti: [COST] L$.
+ Bu gruba katılmanın maliyeti: L$ [COST].
Bu gruba katılmak için yeterli L$&apos;na sahip değilsiniz.
</notification>
<notification name="CreateGroupCost">
- Bu grubu oluşturmanın maliyeti: 100 L$.
+ Bu grubu oluşturmanın maliyeti: L$ 100.
Grupların birden fazla üyeye sahip olması gereklidir, aksi takdirde grup kalıcı olarak silinir.
Lütfen 48 saat içinde diğer üyeleri davet edin.
- <usetemplate canceltext="İptal" name="okcancelbuttons" notext="İptal" yestext="100 L$ ödeyerek grubu oluştur"/>
+ <usetemplate canceltext="İptal" name="okcancelbuttons" notext="İptal" yestext="L$ 100 ödeyerek grubu oluştur"/>
</notification>
<notification name="LandBuyPass">
- [COST] L$ ödeyerek (&apos;[PARCEL_NAME]&apos;) arazisine [TIME] saat süreyle girebilirsiniz. Giriş hakkı satın almak istiyor musunuz?
+ L$ [COST] ödeyerek (&apos;[PARCEL_NAME]&apos;) arazisine [TIME] saat süreyle girebilirsiniz. Giriş hakkı satın almak istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="SalePriceRestriction">
- Herhangi birine satış yaparken satış fiyatı 0 L$&apos;ndan daha yüksek bir değere ayarlanmalıdır.
-0 L$ fiyatla satış yapıyorsanız lütfen satışın yapılacağı kişiyi seçin.
+ Herhangi birine satış yaparken satış fiyatı L$ 0&apos;dan daha yüksek bir değere ayarlanmalıdır.
+L$ 0 fiyatla satış yapıyorsanız lütfen satışın yapılacağı kişiyi seçin.
</notification>
<notification name="ConfirmLandSaleChange">
Seçili [LAND_SIZE] m² arazi satışa çıkarılmak üzere ayarlanıyor.
-Satış fiyatınız [SALE_PRICE] L$ olacak ve [NAME] için satışa açık olacaktır.
+Satış fiyatınız L$ [SALE_PRICE] olacak ve [NAME] için satışa açık olacaktır.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="ConfirmLandSaleToAnyoneChange">
DİKKAT: &apos;Herkes için satışa açık&apos; seçeneğinin tıklanması, arazinizi tüm [SECOND_LIFE] topluluğuna açık hale getirir, bu bölgede bulunmayanlar da buna dahildir.
Seçili [LAND_SIZE] m² arazi satışa çıkarılmak üzere ayarlanıyor.
-Satış fiyatınız [SALE_PRICE] L$ olacak ve [NAME] için satışa açık olacaktır.
+Satış fiyatınız L$ [SALE_PRICE] olacak ve [NAME] için satışa açık olacaktır.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="ReturnObjectsDeededToGroup">
@@ -365,7 +365,7 @@ Devam etmek istediğinize emin misiniz?
<usetemplate name="okbutton" yestext="Tamam"/>
</notification>
<notification name="DeleteAvatarPick">
- Favori &lt;nolink&gt;[PICK]&lt;/nolink&gt; silinsin mi?
+ Seçme &lt;nolink&gt;[PICK]&lt;/nolink&gt; silinsin mi?
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="DeleteOutfits">
@@ -1008,7 +1008,7 @@ bu simdeki TÜM ARAZİLERDEN SİLMEK istediğinize emin misiniz?
İlanınız için bir ad belirtmelisiniz.
</notification>
<notification name="MinClassifiedPrice">
- Listeleme için ödenmesi gereken tutar en az [MIN_PRICE] L$ olmalıdır.
+ Listeleme için ödenmesi gereken tutar en az L$ [MIN_PRICE] olmalıdır.
Lütfen daha yüksek bir tutar girin.
</notification>
@@ -1586,7 +1586,7 @@ Lütfen daha sonra tekrar deneyin.
</notification>
<notification name="TeleportToPick">
[PICK] konumuna ışınlanılsın mı?
- <usetemplate ignoretext="Favori sekmesindeki bir konuma ışınlanma istediğimde doğrulama iste" name="okcancelignore" notext="İptal Et" yestext="Işınla"/>
+ <usetemplate ignoretext="Seçme sekmesindeki bir konuma ışınlanma istediğimde doğrulama iste" name="okcancelignore" notext="İptal Et" yestext="Işınla"/>
</notification>
<notification name="TeleportToClassified">
[CLASSIFIED] konumuna ışınlanılsın mı?
@@ -1766,7 +1766,7 @@ Erişkinlik Seviyesi tercihinizi şimdi yükseltmek ve araziye girebilmek için
<notification name="PublishClassified">
Hatırla: İlan ücretleri iade edilmez.
-Şimdi [AMOUNT] L$ ödeyerek bu ilanı yayınlamak istiyor musunuz?
+Şimdi L$ [AMOUNT] ödeyerek bu ilanı yayınlamak istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="SetClassifiedMature">
@@ -1810,7 +1810,7 @@ Lütfen sadece bir nesne seçin ve tekrar deneyin.
Lütfen sadece bir nesne seçin ve tekrar deneyin.
</notification>
<notification name="BuyOriginal">
- Özgün nesne [OWNER] kullanıcısından [PRICE] L$ karşılığında satın alınsın mı?
+ Özgün nesne [OWNER] kullanıcısından L$ [PRICE] karşılığında satın alınsın mı?
Nesnenin sahibi siz olacaksınız.
Şu işlemleri yapabileceksiniz:
Değiştirme: [MODIFYPERM]
@@ -1819,7 +1819,7 @@ Nesnenin sahibi siz olacaksınız.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="BuyOriginalNoOwner">
- Özgün nesne PRICE] L$ karşılığında satın alınsın mı?
+ Özgün nesne L$ [PRICE] karşılığında satın alınsın mı?
Nesnenin sahibi siz olacaksınız.
Şu işlemleri yapabileceksiniz:
Değiştirme: [MODIFYPERM]
@@ -1828,7 +1828,7 @@ Nesnenin sahibi siz olacaksınız.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="BuyCopy">
- Bir kopyası [OWNER] kullanıcısından [PRICE] L$ karşılığında satın alınsın mı?
+ Bir kopyası [OWNER] kullanıcısından L$ [PRICE] karşılığında satın alınsın mı?
Nesne envanterinize kopyalanacak.
Şu işlemleri yapabileceksiniz:
Değiştirme: [MODIFYPERM]
@@ -1837,7 +1837,7 @@ Nesne envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="BuyCopyNoOwner">
- Bir kopyası [PRICE] L$ karşılığında satın alınsın mı?
+ Bir kopyası L$ [PRICE] karşılığında satın alınsın mı?
Nesne envanterinize kopyalanacak.
Şu işlemleri yapabileceksiniz:
Değiştirme: [MODIFYPERM]
@@ -1846,12 +1846,12 @@ Nesne envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="BuyContents">
- İçerik [OWNER] kullanıcısından [PRICE] L$ karşılığında satın alınsın mı?
+ İçerik [OWNER] kullanıcısından L$ [PRICE] karşılığında satın alınsın mı?
İçerik envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="BuyContentsNoOwner">
- İçerik [PRICE] L$ karşılığında satın alınsın mı?
+ İçerik L$ [PRICE] karşılığında satın alınsın mı?
İçerik envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="İptal" yestext="Tamam"/>
</notification>
@@ -1875,7 +1875,7 @@ Lütfen parolanızı yeniden girin ve Tamam&apos;ı tıklatın.
</notification>
<notification name="SetPickLocation">
Not:
-Bu favorinin konumunu güncellediniz fakat diğer detaylar özgün değerlerini koruyacak.
+Bu seçmenin konumunu güncellediniz fakat diğer detaylar özgün değerlerini koruyacak.
<usetemplate name="okbutton" yestext="Tamam"/>
</notification>
<notification name="MoveInventoryFromObject">
@@ -2132,7 +2132,7 @@ Bu adımda web tarayıcınızın başlatılacağına dikkat edin.
(Yaklaşık 5 dakika sürecektir.)
</notification>
<notification name="UploadPayment">
- Karşıya yüklemek için [AMOUNT] L$ ödediniz.
+ Karşıya yüklemek için L$ [AMOUNT] ödediniz.
</notification>
<notification name="UploadWebSnapshotDone">
Web sitesinde yer alan anlık görüntülerin karşıya yüklenmesi tamamlandı.
@@ -2479,7 +2479,7 @@ Lütfen biraz sonra tekrar deneyin.
[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
- <button name="Teleport" text="Işınlan"/>
+ <button name="Teleport" text="Işınla"/>
<button name="Cancel" text="İptal"/>
</form>
</notification>
@@ -3014,7 +3014,7 @@ Görünümünüzü döndürmek için dünya üzerindeki herhangi bir yeri tıkla
<usetemplate name="okcancelbuttons" notext="Çıkma" yestext="Çık"/>
</notification>
<notification label="" name="NoPicks">
- Favorileri oluşturma ve düzenleme sadece Gelişmiş modda kullanılabilir. Uygulamadan çıkıp, mod değiştirmek ister misiniz? Mod seçici oturum açma ekranında bulunabilir.
+ Seçmeleri oluşturma ve düzenleme sadece Gelişmiş modda kullanılabilir. Uygulamadan çıkıp, mod değiştirmek ister misiniz? Mod seçici oturum açma ekranında bulunabilir.
<usetemplate name="okcancelbuttons" notext="Çıkma" yestext="Çık"/>
</notification>
<notification label="" name="NoWorldMap">
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml b/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
index 446beb6eb8..98b02d27df 100644
--- a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
@@ -4,7 +4,7 @@
(kaydedildikten sonra güncelleştirilir)
</panel.string>
<text name="title">
- Favori Düzenle
+ Seçme Düzenle
</text>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
@@ -27,7 +27,7 @@
<panel label="bottom_panel" name="bottom_panel">
<layout_stack name="layout_stack1">
<layout_panel name="layout_panel1">
- <button label="Favori Kaydet" name="save_changes_btn"/>
+ <button label="Seçme Kaydet" name="save_changes_btn"/>
</layout_panel>
<layout_panel name="layout_panel2">
<button label="İptal" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_landmarks.xml b/indra/newview/skins/default/xui/tr/panel_landmarks.xml
index 7543decb36..d40d0c1543 100644
--- a/indra/newview/skins/default/xui/tr/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/tr/panel_landmarks.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Landmarks">
<accordion name="landmarks_accordion">
- <accordion_tab name="tab_favorites" title="Sık Kullanılanlar çubuğu"/>
+ <accordion_tab name="tab_favorites" title="Favoriler çubuğu"/>
<accordion_tab name="tab_landmarks" title="Yer İmlerim"/>
<accordion_tab name="tab_inventory" title="Envanterim"/>
<accordion_tab name="tab_library" title="Kütüphane"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_me.xml b/indra/newview/skins/default/xui/tr/panel_me.xml
index 0441660f3c..4b911c9ce6 100644
--- a/indra/newview/skins/default/xui/tr/panel_me.xml
+++ b/indra/newview/skins/default/xui/tr/panel_me.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profilim" name="panel_me">
- <panel label="FAVORİLERİM" name="panel_picks"/>
+ <panel label="SEÇMELERİM" name="panel_picks"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml b/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
index b61ba0a12f..8d43e3fb5a 100644
--- a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
@@ -12,9 +12,9 @@
<layout_panel name="favorites_layout_panel">
<favorites_bar name="favorite" tool_tip="Second Life içerisinde sık kullandığınız yerlere hızla erişmek için Yer İmlerini buraya sürükleyin!">
<label name="favorites_bar_label" tool_tip="Second Life içerisinde sık kullandığınız yerlere hızla erişmek için Yer İmlerini buraya sürükleyin!">
- Sık Kullanılanlar Çubuğu
+ Favoriler Çubuğu
</label>
- <more_button name="&gt;&gt;" tool_tip="Sık Kullanılanlarımdan daha çok göster">
+ <more_button name="&gt;&gt;" tool_tip="Favorilerimden daha çok göster">
Daha Fazla ▼
</more_button>
</favorites_bar>
diff --git a/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml b/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
index cc9f531831..00cd49abcd 100644
--- a/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray Outfit Edit panel -->
<panel name="outfit_edit">
- <string name="No Outfit" value="Kıyafet Yok"/>
+ <string name="No Outfit" value="Dış Görünüm Yok"/>
<string name="unsaved_changes" value="Kaydedilmemiş Değişiklikler"/>
<string name="now_editing" value="Şimdi Düzenleniyor"/>
<panel.string name="not_available">
@@ -20,7 +20,7 @@
<panel name="header_panel">
<panel name="outfit_name_and_status">
<text name="status" value="Şimdi düzenleniyor..."/>
- <text name="curr_outfit_name" value="[Mevcut Kıyafet]"/>
+ <text name="curr_outfit_name" value="[Mevcut Dış Görünüm]"/>
</panel>
</panel>
<layout_stack name="im_panels">
diff --git a/indra/newview/skins/default/xui/tr/panel_outfits_list.xml b/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
index 12892e1642..60a3576d84 100644
--- a/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
@@ -6,6 +6,6 @@
</accordion>
<panel name="bottom_panel">
<menu_button name="options_gear_btn" tool_tip="İlave seçenekleri göster"/>
- <button name="trash_btn" tool_tip="Seçili kıyafeti sil"/>
+ <button name="trash_btn" tool_tip="Seçili dış görünümü sil"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_people.xml b/indra/newview/skins/default/xui/tr/panel_people.xml
index 96701fbd84..7d42e3ab79 100644
--- a/indra/newview/skins/default/xui/tr/panel_people.xml
+++ b/indra/newview/skins/default/xui/tr/panel_people.xml
@@ -3,7 +3,7 @@
<panel label="Kişiler" name="people_panel">
<string name="no_recent_people" value="Yakın zamanlı kişi yok. Birlikte takılacak kişiler mi arıyorsunuz? [secondlife:///app/search/people Arayı] veya [secondlife:///app/worldmap Dünya Haritasını] deneyin."/>
<string name="no_filtered_recent_people" value="Aradığınızı bulamadınız mı? [secondlife:///app/search/people/[SEARCH_TERM] Ara] deneyin."/>
- <string name="no_one_near" value="Yakında kimse yok. Birlikte takılacak kişiler mi arıyorsunuz? [secondlife:///app/search/people Arayı] veya [secondlife:///app/worldmap Dünya Haritasını] deneyin."/>
+ <string name="no_one_near" value="Yakında kimse yok. Birlikte takılacak kişiler mi arıyorsunuz? [secondlife:///app/search/people Arayın] veya [secondlife:///app/worldmap Dünya Haritasını] deneyin."/>
<string name="no_one_filtered_near" value="Aradığınızı bulamadınız mı? [secondlife:///app/search/people/[SEARCH_TERM] Ara] deneyin."/>
<string name="no_friends_online" value="Çevrimiçi arkadaş yok"/>
<string name="no_friends" value="Arkadaş yok"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_picks.xml b/indra/newview/skins/default/xui/tr/panel_picks.xml
index a36f3faf03..26beac7854 100644
--- a/indra/newview/skins/default/xui/tr/panel_picks.xml
+++ b/indra/newview/skins/default/xui/tr/panel_picks.xml
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Favorilerim" name="panel_picks">
- <string name="no_picks" value="Favori Yok"/>
+ <string name="no_picks" value="Seçme Yok"/>
<string name="no_classifieds" value="İlan Yok"/>
<accordion name="accordion">
- <accordion_tab name="tab_picks" title="Favorilerim"/>
+ <accordion_tab name="tab_picks" title="Seçmelerim"/>
<accordion_tab name="tab_classifieds" title="İlanlar"/>
</accordion>
<panel label="bottom_panel" name="edit_panel">
<layout_stack name="edit_panel_ls">
<layout_panel name="gear_menu_btn">
- <button name="new_btn" tool_tip="Mevcut konumda yeni bir favori veya ilan oluşturun"/>
+ <button name="new_btn" tool_tip="Mevcut konumda yeni bir seçme veya ilan oluşturun"/>
</layout_panel>
</layout_stack>
</panel>
<panel name="buttons_cucks">
<layout_stack name="buttons_cucks_ls">
<layout_panel name="info_btn_lp">
- <button label="Bilgi" name="info_btn" tool_tip="Favori bilgilerini göster"/>
+ <button label="Bilgi" name="info_btn" tool_tip="Seçme bilgilerini göster"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="Işınla" name="teleport_btn" tool_tip="İlişkili alana ışınlanın"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
index 38fa8ab7f9..e76616f667 100644
--- a/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
@@ -11,7 +11,7 @@
<check_box label="Çevrimiçi olduğumu sadece arkadaşlar ve gruplar bilsin" name="online_visibility"/>
<check_box label="Sadece arkadaşlar ve gruplar beni arasın veya Aİ göndersin" name="voice_call_friends_only_check"/>
<check_box label="Aramaları sonlandırırken mikrofonu kapat" name="auto_disengage_mic_check"/>
- <check_box label="Oturum Açarken Sık Kullanılan Yer İmlerimi Göster (&apos;Buradan başla&apos; açılır menüsünden)" name="favorites_on_login_check"/>
+ <check_box label="Oturum Açarken Favori Yer İmlerimi Göster (&apos;Buradan başla&apos; açılır menüsünden)" name="favorites_on_login_check"/>
<text name="Logs:">
Sohbet Günlükleri:
</text>
diff --git a/indra/newview/skins/default/xui/tr/panel_profile_view.xml b/indra/newview/skins/default/xui/tr/panel_profile_view.xml
index c5cee39b70..17c5002bd7 100644
--- a/indra/newview/skins/default/xui/tr/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/tr/panel_profile_view.xml
@@ -14,7 +14,7 @@
<text name="user_label" value="Kullanıcı Adı:"/>
<tab_container name="tabs">
<panel label="PROFİL" name="panel_profile"/>
- <panel label="FAVORİLER" name="panel_picks"/>
+ <panel label="SEÇMELER" name="panel_picks"/>
<panel label="NOTLAR &amp; GİZLİLİK" name="panel_notes"/>
</tab_container>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/role_actions.xml b/indra/newview/skins/default/xui/tr/role_actions.xml
index 002589b276..18f7d6dca2 100644
--- a/indra/newview/skins/default/xui/tr/role_actions.xml
+++ b/indra/newview/skins/default/xui/tr/role_actions.xml
@@ -53,10 +53,10 @@
<action description="Gruba ait olmayan nesneleri iade et" longdescription="Grubun sahip olduğu parseller üzerinde gruba ait olmayan nesneleri Arazi Hakkında &gt; Nesneler sekmesinden iade edin." name="land return non group" value="34"/>
<action description="Linden bitkilerini kullanarak bahçe düzenleme" longdescription="Linden ağaçlarını, bitkilerini ve çimleri yerleştirerek veya yerlerini değiştirerek bahçe düzenleme yeteneği. Bu öğeler envanterinizin Kütüphane &gt; Nesneler klasörü içinde bulunabilir veya İnşa Et menüsünden oluşturulabilir." name="land gardening" value="35"/>
</action_set>
- <action_set description="Bu Yeteneklere grubun sahip olduğu nesneleri devretme, değiştirme ve satma güçleri de dahildir. Bu değişiklikler İnşa Araçları &gt; Genel sekmesinden yapılabilir. Bir nesneyi sağ tıklatıp Düzenle&apos;yi seçerek ayarlarını görebilirsiniz." name="Object Management">
- <action description="Nesneleri gruba devret" longdescription="Nesneleri İnşa Araçları &gt; Genel sekmesinden gruba devredin." name="object deed" value="36"/>
- <action description="Grubun sahip olduğu nesneleri kullan (taşı, kopyala, değiştir)" longdescription="Grubun sahip olduğu nesneleri, İnşa Araçları &gt; Genel sekmesi üzerinden kullanın (taşıyın, kopyalayın, değiştirin)." name="object manipulate" value="38"/>
- <action description="Grubun sahip olduğu nesneleri satışa çıkar" longdescription="Grubun sahip olduğu nesneleri İnşa Araçları &gt; Genel sekmesinden satışa çıkarın." name="object set sale" value="39"/>
+ <action_set description="Bu Yeteneklere grubun sahip olduğu nesneleri devretme, değiştirme ve satma güçleri de dahildir. Bu değişiklikler İnşa Et Araçları &gt; Genel sekmesinden yapılabilir. Bir nesneyi sağ tıklatıp Düzenle&apos;yi seçerek ayarlarını görebilirsiniz." name="Object Management">
+ <action description="Nesneleri gruba devret" longdescription="Nesneleri İnşa Et Araçları &gt; Genel sekmesinden gruba devredin." name="object deed" value="36"/>
+ <action description="Grubun sahip olduğu nesneleri kullan (taşı, kopyala, değiştir)" longdescription="Grubun sahip olduğu nesneleri, İnşa Et Araçları &gt; Genel sekmesi üzerinden kullanın (taşıyın, kopyalayın, değiştirin)." name="object manipulate" value="38"/>
+ <action description="Grubun sahip olduğu nesneleri satışa çıkar" longdescription="Grubun sahip olduğu nesneleri İnşa Et Araçları &gt; Genel sekmesinden satışa çıkarın." name="object set sale" value="39"/>
</action_set>
<action_set description="Bu Yeteneklere Üyelerin grup borçlarını ödemesini ve grup kâr paylarını almasını sağlayan ve grup hesabının geçmiş bilgilerine erişimi sınırlandıran güçler de dahildir." name="Accounting">
<action description="Grup borçlarını öde ve grup kâr paylarını al" longdescription="Bu Yeteneğe sahip bir Roldeki Üyeler otomatik olarak grup borçlarını ödeyecek ve grup kâr paylarını alacaktır. Bu da grubun sahip olduğu arazi satışlarından kendilerine düşen ve günlük olarak dağıtılan ksımı alacakları gibi parsel için ilan verme ücreti gibi masraflara da katkıda bulunacakları anlamına gelir." name="accounting accountable" value="40"/>
diff --git a/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml b/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
index 75528974ec..b632f21cf5 100644
--- a/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Kıyafetler" name="appearance panel">
- <string name="No Outfit" value="Kıyafet Yok"/>
+<panel label="Dış Görünümler" name="appearance panel">
+ <string name="No Outfit" value="Dış Görünüm Yok"/>
<string name="Unsaved Changes" value="Kaydedilmemiş değişiklikler"/>
<string name="Now Wearing" value="Şimdi giyiyor..."/>
- <string name="Changing outfits" value="Kıyafetleri değiştiriyor"/>
+ <string name="Changing outfits" value="Dış görünümler değiştiriliyor"/>
<panel name="panel_currentlook">
<button label="E" name="editappearance_btn"/>
<button label="O" name="openoutfit_btn"/>
@@ -11,9 +11,9 @@
(Durum)
</text>
<text name="currentlook_name">
- MOOSE gibi gerçekten Uzun bir Adla Kıyafetim
+ MOOSE gibi gerçekten Uzun bir Adla Dış Görünümüm
</text>
- <button label="" name="edit_outfit_btn" tool_tip="Bu kıyafeti düzenle"/>
+ <button label="" name="edit_outfit_btn" tool_tip="Bu dış görünümü düzenle"/>
</panel>
- <filter_editor label="Kıyafetleri Filtrele" name="Filter"/>
+ <filter_editor label="Dış Görünümleri Filtrele" name="Filter"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml
index e1885413bb..a17d78486d 100644
--- a/indra/newview/skins/default/xui/tr/strings.xml
+++ b/indra/newview/skins/default/xui/tr/strings.xml
@@ -584,7 +584,7 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
sim durumu
</string>
<string name="favorite">
- sık kullanılan
+ favori
</string>
<string name="symbolic link">
bağlantı
@@ -1205,7 +1205,7 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
Aradığınızı bulamadınız mı? [secondlife:///app/search/places/[SEARCH_TERM] Arama] ile bulmayı deneyin.
</string>
<string name="FavoritesNoMatchingItems">
- Bir yer imini sık kullanılanlarınıza eklemek için buraya sürükleyin.
+ Bir yer imini favorilerinize eklemek için buraya sürükleyin.
</string>
<string name="InventoryNoTexture">
Envanterinizde bu dokunun kopyası yok
@@ -1380,10 +1380,10 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
Mimikler
</string>
<string name="InvFolder Favorite">
- Sık Kullanılanlarım
+ Favorilerim
</string>
<string name="InvFolder favorite">
- Sık Kullanılanlarım
+ Favorilerim
</string>
<string name="InvFolder Current Outfit">
Mevcut Dış Görünüm
@@ -1985,10 +1985,10 @@ Lütfen bir dakika içerisinde tekrar oturum açmayı deneyin.
(yayınlandıktan sonra güncelleştirilir)
</string>
<string name="NoPicksClassifiedsText">
- Herhangi bir Favori veya İlan oluşturmadınız. Bir Favori veya İlan oluşturmak için aşağıdaki Artı düğmesine tıklayın.
+ Herhangi bir Seçme veya İlan oluşturmadınız. Bir Seçme veya İlan oluşturmak için aşağıdaki Artı düğmesine tıklayın.
</string>
<string name="NoAvatarPicksClassifiedsText">
- Kullanıcının herhangi bir favorisi veya ilanı yok
+ Kullanıcının herhangi bir seçmesi veya ilanı yok
</string>
<string name="PicksClassifiedsLoadingText">
Yükleniyor...
@@ -4165,7 +4165,7 @@ Kötüye Kullanımı Bildirme
Konuşma Mimikleri
</string>
<string name="Common Gestures">
- Sık Kullanılan Mimikler
+ Favori Mimikler
</string>
<string name="Male - Excuse me">
Erkek - Afedersiniz
@@ -4798,7 +4798,7 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
Pusula
</string>
<string name="Command_Destinations_Label">
- Hedef Konumlar
+ Hedef Konum
</string>
<string name="Command_Gestures_Label">
Mimikler
@@ -4825,7 +4825,7 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
Kişiler
</string>
<string name="Command_Picks_Label">
- Favoriler
+ Seçmeler
</string>
<string name="Command_Places_Label">
Yerler
@@ -4897,7 +4897,7 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
Arkadaşlar, gruplar ve yakındaki kişiler
</string>
<string name="Command_Picks_Tooltip">
- Profilinizde sık kullanılan olarak gösterilecek yerler
+ Profilinizde favori olarak gösterilecek yerler
</string>
<string name="Command_Places_Tooltip">
Kaydettiğiniz yerler
diff --git a/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml
deleted file mode 100644
index 84186c5836..0000000000
--- a/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="日循環編輯器">
- <tab_container name="Day Cycle Tabs">
- <panel label="日循環" name="Day Cycle">
- <multi_slider initial_value="0" name="WLTimeSlider"/>
- <multi_slider initial_value="0" name="WLDayCycleKeys"/>
- <text name="WL12am">
- 12am
- </text>
- <text name="WL3am">
- 3am
- </text>
- <text name="WL6am">
- 6am
- </text>
- <text name="WL9amHash">
- 9am
- </text>
- <text name="WL12pmHash">
- 12pm
- </text>
- <text name="WL3pm">
- 3pm
- </text>
- <text name="WL6pm">
- 6pm
- </text>
- <text name="WL9pm">
- 9pm
- </text>
- <text name="WL12am2">
- 12am
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="Add Key" label_selected="Add Key" name="WLAddKey"/>
- <button label="Delete Key" label_selected="Delete Key" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- Key Frame Settings:
- </text>
- <text name="WLCurKeyTimeText">
- Key Time:
- </text>
- <spinner label="Hour" name="WLCurKeyHour"/>
- <spinner label="Min" name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- Key Preset:
- </text>
- <combo_box label="Preset" name="WLKeyPresets"/>
- <text name="DayCycleText">
- Snap:
- </text>
- <combo_box label="五分鐘" name="WLSnapOptions"/>
- <text name="DayCycleText2">
- Length of Cycle:
- </text>
- <spinner label="小時" name="WLLengthOfDayHour"/>
- <spinner label="分" name="WLLengthOfDayMin"/>
- <spinner label="秒" name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- 預覽:
- </text>
- <button label="播放" label_selected="播放" name="WLAnimSky"/>
- <button label="停止!" label_selected="停止" name="WLStopAnimSky"/>
- <button label="Use Estate Time" label_selected="Go to Estate Time" name="WLUseLindenTime"/>
- <button label="Save Test Day" label_selected="Save Test Day" name="WLSaveDayCycle"/>
- <button label="Load Test Day" label_selected="Load Test Day" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index f0bee2bfee..0931c4ec9b 100644..100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -495,8 +495,9 @@ class WindowsManifest(ViewerManifest):
# tag:"crash-logger" here as a cue to the exporter
self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'],
dst="win_crash_logger.exe")
- self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'],
- dst="updater.exe")
+# For CHOP-397, windows updater no longer used.
+# self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'],
+# dst="updater.exe")
if not self.is_packaging_viewer():
self.package_file = "copied_deps"
@@ -573,10 +574,10 @@ class WindowsManifest(ViewerManifest):
grid_vars_template = """
OutFile "%(installer_file)s"
!define INSTFLAGS "%(flags)s"
- !define INSTNAME "SecondLifeViewer2"
- !define SHORTCUT "Second Life Viewer 2"
+ !define INSTNAME "SecondLifeViewer"
+ !define SHORTCUT "Second Life Viewer"
!define URLNAME "secondlife"
- Caption "Second Life ${VERSION}"
+ Caption "Second Life"
"""
else:
# beta grid viewer
@@ -804,7 +805,7 @@ class DarwinManifest(ViewerManifest):
self.run_command("chmod +x %r" % os.path.join(self.get_dst_prefix(), script))
def package_finish(self):
- channel_standin = 'Second Life Viewer 2' # hah, our default channel is not usable on its own
+ channel_standin = 'Second Life Viewer' # hah, our default channel is not usable on its own
if not self.default_channel():
channel_standin = self.channel()
diff --git a/indra/viewer_components/updater/scripts/darwin/update_install b/indra/viewer_components/updater/scripts/darwin/update_install
index 6a95f96d86..e7f36dc5a3 100644..100755
--- a/indra/viewer_components/updater/scripts/darwin/update_install
+++ b/indra/viewer_components/updater/scripts/darwin/update_install
@@ -6,5 +6,5 @@
#
cd "$(dirname "$0")"
-(../Resources/mac-updater.app/Contents/MacOS/mac-updater -dmg "$1" -name "Second Life Viewer 2"; if [ $? -ne 0 ]; then echo $3 >> "$2"; fi;) &
+(../Resources/mac-updater.app/Contents/MacOS/mac-updater -dmg "$1" -name "Second Life Viewer"; if [ $? -ne 0 ]; then echo $3 >> "$2"; fi;) &
exit 0
diff --git a/indra/viewer_components/updater/scripts/linux/update_install b/indra/viewer_components/updater/scripts/linux/update_install
index 88451340ec..e0505a9f72 100644..100755
--- a/indra/viewer_components/updater/scripts/linux/update_install
+++ b/indra/viewer_components/updater/scripts/linux/update_install
@@ -1,7 +1,7 @@
#! /bin/bash
INSTALL_DIR=$(cd "$(dirname "$0")/.." ; pwd)
export LD_LIBRARY_PATH="$INSTALL_DIR/lib"
-bin/linux-updater.bin --file "$1" --dest "$INSTALL_DIR" --name "Second Life Viewer 2" --stringsdir "$INSTALL_DIR/skins/default/xui/en" --stringsfile "strings.xml"
+bin/linux-updater.bin --file "$1" --dest "$INSTALL_DIR" --name "Second Life Viewer" --stringsdir "$INSTALL_DIR/skins/default/xui/en" --stringsfile "strings.xml"
if [ $? -ne 0 ]
then echo $3 >> "$2"