Merge branch 'master' of https://github.com/singularity-viewer/SingularityViewer
This commit is contained in:
@@ -38,6 +38,7 @@ include(LLXML)
|
||||
#include(LScript)
|
||||
include(Linking)
|
||||
include(NDOF)
|
||||
include(NVAPI)
|
||||
include(StateMachine)
|
||||
include(TemplateCheck)
|
||||
include(UI)
|
||||
@@ -1140,7 +1141,6 @@ if (DARWIN)
|
||||
${VIEWER_BRANDING_ID}.icns
|
||||
macview.r
|
||||
gpu_table.txt
|
||||
Info-${VIEWER_BRANDING_NAME_CAMELCASE}.plist
|
||||
SecondLife.nib/
|
||||
# CMake doesn't seem to support Xcode language variants well just yet
|
||||
English.lproj/InfoPlist.strings
|
||||
@@ -1433,13 +1433,7 @@ if (!DISABLE_TEMPLATE_CHECK)
|
||||
check_message_template(${VIEWER_BINARY_NAME})
|
||||
endif (!DISABLE_TEMPLATE_CHECK)
|
||||
|
||||
# We package by default on Linux so we can run from newview/packaged.
|
||||
if (LINUX)
|
||||
set(PACKAGE_DEFAULT ON)
|
||||
else (LINUX)
|
||||
set(PACKAGE_DEFAULT OFF)
|
||||
endif (LINUX)
|
||||
set(PACKAGE ${PACKAGE_DEFAULT} CACHE BOOL
|
||||
set(PACKAGE OFF CACHE BOOL
|
||||
"Add a package target that builds an installer package.")
|
||||
|
||||
if (WINDOWS)
|
||||
@@ -1598,6 +1592,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
|
||||
${LLMATH_LIBRARIES}
|
||||
${LLCOMMON_LIBRARIES}
|
||||
${NDOF_LIBRARY}
|
||||
${NVAPI_LIBRARY}
|
||||
${viewer_LIBRARIES}
|
||||
${Boost_CONTEXT_LIBRARY}
|
||||
${Boost_FILESYSTEM_LIBRARY}
|
||||
@@ -1711,7 +1706,7 @@ if (DARWIN)
|
||||
MACOSX_BUNDLE_BUNDLE_NAME "${VIEWER_BRANDING_NAME}"
|
||||
MACOSX_BUNDLE_SHORT_VERSION_STRING "${viewer_VERSION}"
|
||||
MACOSX_BUNDLE_BUNDLE_VERSION "${viewer_VERSION}"
|
||||
MACOSX_BUNDLE_COPYRIGHT "Copyright 2010 Balseraph Software Group"
|
||||
MACOSX_BUNDLE_COPYRIGHT "Copyright 2013 Siana Gearz"
|
||||
)
|
||||
|
||||
add_custom_command(
|
||||
@@ -1760,32 +1755,10 @@ if (DARWIN)
|
||||
--grid=${GRID}
|
||||
--login_channel=${VIEWER_LOGIN_CHANNEL}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
|
||||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${Product}.touched
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
)
|
||||
# Viewer-Development doesn't have this duplicate of the above command, here..
|
||||
# this may be a botched merge, but Mac seems to be picky, so I'm leaving it ~Liru
|
||||
add_custom_command(
|
||||
TARGET package POST_BUILD
|
||||
COMMAND ${PYTHON_EXECUTABLE}
|
||||
ARGS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
--artwork=${ARTWORK_DIR}
|
||||
--branding_id=${VIEWER_BRANDING_ID}
|
||||
--build=${CMAKE_CURRENT_BINARY_DIR}
|
||||
--buildtype=${CMAKE_BUILD_TYPE}
|
||||
--channel=${VIEWER_CHANNEL}
|
||||
--configuration=${CMAKE_CFG_INTDIR}
|
||||
--dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
|
||||
--grid=${GRID}
|
||||
--login_channel=${VIEWER_LOGIN_CHANNEL}
|
||||
--source=${CMAKE_CURRENT_SOURCE_DIR}
|
||||
--touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.touched
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
|
||||
)
|
||||
|
||||
endif (PACKAGE)
|
||||
endif (DARWIN)
|
||||
|
||||
@@ -1813,7 +1786,7 @@ if (PACKAGE)
|
||||
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/quicktime/${CMAKE_CFG_INTDIR}")
|
||||
list(APPEND SYMBOL_SEARCH_DIRS "${CMAKE_BINARY_DIR}/media_plugins/webkit/${CMAKE_CFG_INTDIR}")
|
||||
set(VIEWER_SYMBOL_FILE "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/secondlife-symbols-darwin.tar.bz2")
|
||||
set(VIEWER_EXE_GLOBS "'Singularity' SLPlugin")
|
||||
set(VIEWER_EXE_GLOBS "'${VIEWER_BRANDING_NAME}' SLPlugin")
|
||||
set(VIEWER_LIB_GLOB "*.dylib")
|
||||
endif (DARWIN)
|
||||
if (LINUX)
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
||||
CFBundleName = "Singularity";
|
||||
|
||||
CFBundleShortVersionString = "Singularity Viewer 1.7.0.0";
|
||||
CFBundleGetInfoString = "Singularity Viewer 1.7.0.0, Copyright 2012 Siana Gearz";
|
||||
|
||||
6
indra/newview/English.lproj/InfoPlist.strings.in
Normal file
6
indra/newview/English.lproj/InfoPlist.strings.in
Normal file
@@ -0,0 +1,6 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
||||
CFBundleName = "${VIEWER_CHANNEL_ONE_WORD}";
|
||||
|
||||
CFBundleShortVersionString = "${VIEWER_CHANNEL} Viewer ${vMAJOR}.${vMINOR}.${vPATCH}.${vBUILD}";
|
||||
CFBundleGetInfoString = "${VIEWER_CHANNEL} Viewer ${vMAJOR}.${vMINOR}.${vPATCH}.${vBUILD}, Copyright 2012 Siana Gearz";
|
||||
@@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Singularity</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>singularity.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.singularityviewer.singularity</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Singularity</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>Second Life URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>secondlife</string>
|
||||
</array>
|
||||
<key>LSIsAppleDefaultForScheme</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0.0.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -2,7 +2,7 @@
|
||||
<array>
|
||||
|
||||
<map>
|
||||
<key>default_grids_version</key><string>21</string>
|
||||
<key>default_grids_version</key><string>22</string>
|
||||
</map>
|
||||
|
||||
<!-- Second Life -->
|
||||
@@ -20,6 +20,7 @@
|
||||
<key>render_compat</key><boolean>1</boolean>
|
||||
<key>inventory_links</key><boolean>1</boolean>
|
||||
<key>auto_update</key><boolean>0</boolean>
|
||||
<key>locked</key><boolean>1</boolean>
|
||||
</map>
|
||||
|
||||
<map>
|
||||
|
||||
@@ -13785,6 +13785,17 @@ This should be as low as possible, but too low may break functionality</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RevokePermsOnStopAnimation</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Clear animation permssions when choosing "Stop Animating Me"</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RotateRight</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -17780,6 +17791,17 @@ This should be as low as possible, but too low may break functionality</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>CrashReportID</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>ID of the last crash report sent. Zero indicates that no crash report has been sent. Non-zero value can be useful infermation for developers to track a specific issue</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>S32</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#define INDEXED 1
|
||||
#define NON_INDEXED 2
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -22,8 +22,6 @@
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
@@ -34,7 +34,7 @@ out vec4 frag_color;
|
||||
|
||||
#define FXAA_PC 1
|
||||
//#define FXAA_GLSL_130 1
|
||||
#define FXAA_QUALITY__PRESET 12
|
||||
#define FXAA_QUALITY_M_PRESET 12
|
||||
|
||||
/*============================================================================
|
||||
|
||||
@@ -67,7 +67,7 @@ Example,
|
||||
|
||||
#define FXAA_PC 1
|
||||
#define FXAA_HLSL_5 1
|
||||
#define FXAA_QUALITY__PRESET 12
|
||||
#define FXAA_QUALITY_M_PRESET 12
|
||||
|
||||
Or,
|
||||
|
||||
@@ -366,7 +366,7 @@ A. Or use FXAA_GREEN_AS_LUMA.
|
||||
/*============================================================================
|
||||
FXAA CONSOLE PS3 - TUNING KNOBS
|
||||
============================================================================*/
|
||||
#ifndef FXAA_CONSOLE__PS3_EDGE_SHARPNESS
|
||||
#ifndef FXAA_CONSOLE_M_PS3_EDGE_SHARPNESS
|
||||
//
|
||||
// Consoles the sharpness of edges on PS3 only.
|
||||
// Non-PS3 tuning is done with shader input.
|
||||
@@ -380,17 +380,17 @@ A. Or use FXAA_GREEN_AS_LUMA.
|
||||
// 2.0 is really soft (good for vector graphics inputs)
|
||||
//
|
||||
#if 1
|
||||
#define FXAA_CONSOLE__PS3_EDGE_SHARPNESS 8.0
|
||||
#define FXAA_CONSOLE_M_PS3_EDGE_SHARPNESS 8.0
|
||||
#endif
|
||||
#if 0
|
||||
#define FXAA_CONSOLE__PS3_EDGE_SHARPNESS 4.0
|
||||
#define FXAA_CONSOLE_M_PS3_EDGE_SHARPNESS 4.0
|
||||
#endif
|
||||
#if 0
|
||||
#define FXAA_CONSOLE__PS3_EDGE_SHARPNESS 2.0
|
||||
#define FXAA_CONSOLE_M_PS3_EDGE_SHARPNESS 2.0
|
||||
#endif
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#ifndef FXAA_CONSOLE__PS3_EDGE_THRESHOLD
|
||||
#ifndef FXAA_CONSOLE_M_PS3_EDGE_THRESHOLD
|
||||
//
|
||||
// Only effects PS3.
|
||||
// Non-PS3 tuning is done with shader input.
|
||||
@@ -408,9 +408,9 @@ A. Or use FXAA_GREEN_AS_LUMA.
|
||||
// 0.25 leaves more aliasing, and is sharper
|
||||
//
|
||||
#if 1
|
||||
#define FXAA_CONSOLE__PS3_EDGE_THRESHOLD 0.125
|
||||
#define FXAA_CONSOLE_M_PS3_EDGE_THRESHOLD 0.125
|
||||
#else
|
||||
#define FXAA_CONSOLE__PS3_EDGE_THRESHOLD 0.25
|
||||
#define FXAA_CONSOLE_M_PS3_EDGE_THRESHOLD 0.25
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -419,7 +419,7 @@ A. Or use FXAA_GREEN_AS_LUMA.
|
||||
------------------------------------------------------------------------------
|
||||
NOTE the other tuning knobs are now in the shader function inputs!
|
||||
============================================================================*/
|
||||
#ifndef FXAA_QUALITY__PRESET
|
||||
#ifndef FXAA_QUALITY_M_PRESET
|
||||
//
|
||||
// Choose the quality preset.
|
||||
// This needs to be compiled into the shader as it effects code.
|
||||
@@ -440,7 +440,7 @@ NOTE the other tuning knobs are now in the shader function inputs!
|
||||
// _ = the lowest digit is directly related to performance
|
||||
// _ = the highest digit is directly related to style
|
||||
//
|
||||
#define FXAA_QUALITY__PRESET 12
|
||||
#define FXAA_QUALITY_M_PRESET 12
|
||||
#endif
|
||||
|
||||
|
||||
@@ -453,198 +453,198 @@ NOTE the other tuning knobs are now in the shader function inputs!
|
||||
/*============================================================================
|
||||
FXAA QUALITY - MEDIUM DITHER PRESETS
|
||||
============================================================================*/
|
||||
#if (FXAA_QUALITY__PRESET == 10)
|
||||
#define FXAA_QUALITY__PS 3
|
||||
#define FXAA_QUALITY__P0 1.5
|
||||
#define FXAA_QUALITY__P1 3.0
|
||||
#define FXAA_QUALITY__P2 12.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 10)
|
||||
#define FXAA_QUALITY_M_PS 3
|
||||
#define FXAA_QUALITY_M_P0 1.5
|
||||
#define FXAA_QUALITY_M_P1 3.0
|
||||
#define FXAA_QUALITY_M_P2 12.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 11)
|
||||
#define FXAA_QUALITY__PS 4
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 3.0
|
||||
#define FXAA_QUALITY__P3 12.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 11)
|
||||
#define FXAA_QUALITY_M_PS 4
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 3.0
|
||||
#define FXAA_QUALITY_M_P3 12.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 12)
|
||||
#define FXAA_QUALITY__PS 5
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 4.0
|
||||
#define FXAA_QUALITY__P4 12.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 12)
|
||||
#define FXAA_QUALITY_M_PS 5
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 4.0
|
||||
#define FXAA_QUALITY_M_P4 12.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 13)
|
||||
#define FXAA_QUALITY__PS 6
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 4.0
|
||||
#define FXAA_QUALITY__P5 12.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 13)
|
||||
#define FXAA_QUALITY_M_PS 6
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 4.0
|
||||
#define FXAA_QUALITY_M_P5 12.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 14)
|
||||
#define FXAA_QUALITY__PS 7
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 4.0
|
||||
#define FXAA_QUALITY__P6 12.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 14)
|
||||
#define FXAA_QUALITY_M_PS 7
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 4.0
|
||||
#define FXAA_QUALITY_M_P6 12.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 15)
|
||||
#define FXAA_QUALITY__PS 8
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 2.0
|
||||
#define FXAA_QUALITY__P6 4.0
|
||||
#define FXAA_QUALITY__P7 12.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 15)
|
||||
#define FXAA_QUALITY_M_PS 8
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 2.0
|
||||
#define FXAA_QUALITY_M_P6 4.0
|
||||
#define FXAA_QUALITY_M_P7 12.0
|
||||
#endif
|
||||
|
||||
/*============================================================================
|
||||
FXAA QUALITY - LOW DITHER PRESETS
|
||||
============================================================================*/
|
||||
#if (FXAA_QUALITY__PRESET == 20)
|
||||
#define FXAA_QUALITY__PS 3
|
||||
#define FXAA_QUALITY__P0 1.5
|
||||
#define FXAA_QUALITY__P1 2.0
|
||||
#define FXAA_QUALITY__P2 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 20)
|
||||
#define FXAA_QUALITY_M_PS 3
|
||||
#define FXAA_QUALITY_M_P0 1.5
|
||||
#define FXAA_QUALITY_M_P1 2.0
|
||||
#define FXAA_QUALITY_M_P2 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 21)
|
||||
#define FXAA_QUALITY__PS 4
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 21)
|
||||
#define FXAA_QUALITY_M_PS 4
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 22)
|
||||
#define FXAA_QUALITY__PS 5
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 22)
|
||||
#define FXAA_QUALITY_M_PS 5
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 23)
|
||||
#define FXAA_QUALITY__PS 6
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 23)
|
||||
#define FXAA_QUALITY_M_PS 6
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 24)
|
||||
#define FXAA_QUALITY__PS 7
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 3.0
|
||||
#define FXAA_QUALITY__P6 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 24)
|
||||
#define FXAA_QUALITY_M_PS 7
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 3.0
|
||||
#define FXAA_QUALITY_M_P6 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 25)
|
||||
#define FXAA_QUALITY__PS 8
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 2.0
|
||||
#define FXAA_QUALITY__P6 4.0
|
||||
#define FXAA_QUALITY__P7 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 25)
|
||||
#define FXAA_QUALITY_M_PS 8
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 2.0
|
||||
#define FXAA_QUALITY_M_P6 4.0
|
||||
#define FXAA_QUALITY_M_P7 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 26)
|
||||
#define FXAA_QUALITY__PS 9
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 2.0
|
||||
#define FXAA_QUALITY__P6 2.0
|
||||
#define FXAA_QUALITY__P7 4.0
|
||||
#define FXAA_QUALITY__P8 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 26)
|
||||
#define FXAA_QUALITY_M_PS 9
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 2.0
|
||||
#define FXAA_QUALITY_M_P6 2.0
|
||||
#define FXAA_QUALITY_M_P7 4.0
|
||||
#define FXAA_QUALITY_M_P8 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 27)
|
||||
#define FXAA_QUALITY__PS 10
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 2.0
|
||||
#define FXAA_QUALITY__P6 2.0
|
||||
#define FXAA_QUALITY__P7 2.0
|
||||
#define FXAA_QUALITY__P8 4.0
|
||||
#define FXAA_QUALITY__P9 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 27)
|
||||
#define FXAA_QUALITY_M_PS 10
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 2.0
|
||||
#define FXAA_QUALITY_M_P6 2.0
|
||||
#define FXAA_QUALITY_M_P7 2.0
|
||||
#define FXAA_QUALITY_M_P8 4.0
|
||||
#define FXAA_QUALITY_M_P9 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 28)
|
||||
#define FXAA_QUALITY__PS 11
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 2.0
|
||||
#define FXAA_QUALITY__P6 2.0
|
||||
#define FXAA_QUALITY__P7 2.0
|
||||
#define FXAA_QUALITY__P8 2.0
|
||||
#define FXAA_QUALITY__P9 4.0
|
||||
#define FXAA_QUALITY__P10 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 28)
|
||||
#define FXAA_QUALITY_M_PS 11
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 2.0
|
||||
#define FXAA_QUALITY_M_P6 2.0
|
||||
#define FXAA_QUALITY_M_P7 2.0
|
||||
#define FXAA_QUALITY_M_P8 2.0
|
||||
#define FXAA_QUALITY_M_P9 4.0
|
||||
#define FXAA_QUALITY_M_P10 8.0
|
||||
#endif
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PRESET == 29)
|
||||
#define FXAA_QUALITY__PS 12
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.5
|
||||
#define FXAA_QUALITY__P2 2.0
|
||||
#define FXAA_QUALITY__P3 2.0
|
||||
#define FXAA_QUALITY__P4 2.0
|
||||
#define FXAA_QUALITY__P5 2.0
|
||||
#define FXAA_QUALITY__P6 2.0
|
||||
#define FXAA_QUALITY__P7 2.0
|
||||
#define FXAA_QUALITY__P8 2.0
|
||||
#define FXAA_QUALITY__P9 2.0
|
||||
#define FXAA_QUALITY__P10 4.0
|
||||
#define FXAA_QUALITY__P11 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 29)
|
||||
#define FXAA_QUALITY_M_PS 12
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.5
|
||||
#define FXAA_QUALITY_M_P2 2.0
|
||||
#define FXAA_QUALITY_M_P3 2.0
|
||||
#define FXAA_QUALITY_M_P4 2.0
|
||||
#define FXAA_QUALITY_M_P5 2.0
|
||||
#define FXAA_QUALITY_M_P6 2.0
|
||||
#define FXAA_QUALITY_M_P7 2.0
|
||||
#define FXAA_QUALITY_M_P8 2.0
|
||||
#define FXAA_QUALITY_M_P9 2.0
|
||||
#define FXAA_QUALITY_M_P10 4.0
|
||||
#define FXAA_QUALITY_M_P11 8.0
|
||||
#endif
|
||||
|
||||
/*============================================================================
|
||||
FXAA QUALITY - EXTREME QUALITY
|
||||
============================================================================*/
|
||||
#if (FXAA_QUALITY__PRESET == 39)
|
||||
#define FXAA_QUALITY__PS 12
|
||||
#define FXAA_QUALITY__P0 1.0
|
||||
#define FXAA_QUALITY__P1 1.0
|
||||
#define FXAA_QUALITY__P2 1.0
|
||||
#define FXAA_QUALITY__P3 1.0
|
||||
#define FXAA_QUALITY__P4 1.0
|
||||
#define FXAA_QUALITY__P5 1.5
|
||||
#define FXAA_QUALITY__P6 2.0
|
||||
#define FXAA_QUALITY__P7 2.0
|
||||
#define FXAA_QUALITY__P8 2.0
|
||||
#define FXAA_QUALITY__P9 2.0
|
||||
#define FXAA_QUALITY__P10 4.0
|
||||
#define FXAA_QUALITY__P11 8.0
|
||||
#if (FXAA_QUALITY_M_PRESET == 39)
|
||||
#define FXAA_QUALITY_M_PS 12
|
||||
#define FXAA_QUALITY_M_P0 1.0
|
||||
#define FXAA_QUALITY_M_P1 1.0
|
||||
#define FXAA_QUALITY_M_P2 1.0
|
||||
#define FXAA_QUALITY_M_P3 1.0
|
||||
#define FXAA_QUALITY_M_P4 1.0
|
||||
#define FXAA_QUALITY_M_P5 1.5
|
||||
#define FXAA_QUALITY_M_P6 2.0
|
||||
#define FXAA_QUALITY_M_P7 2.0
|
||||
#define FXAA_QUALITY_M_P8 2.0
|
||||
#define FXAA_QUALITY_M_P9 2.0
|
||||
#define FXAA_QUALITY_M_P10 4.0
|
||||
#define FXAA_QUALITY_M_P11 8.0
|
||||
#endif
|
||||
|
||||
|
||||
@@ -869,7 +869,7 @@ FxaaFloat4 FxaaPixelShader(
|
||||
// This used to be the FXAA_CONSOLE__EDGE_SHARPNESS define.
|
||||
// It is here now to allow easier tuning.
|
||||
// This does not effect PS3, as this needs to be compiled in.
|
||||
// Use FXAA_CONSOLE__PS3_EDGE_SHARPNESS for PS3.
|
||||
// Use FXAA_CONSOLE_M_PS3_EDGE_SHARPNESS for PS3.
|
||||
// Due to the PS3 being ALU bound,
|
||||
// there are only three safe values here: 2 and 4 and 8.
|
||||
// These options use the shaders ability to a free *|/ by 2|4|8.
|
||||
@@ -883,7 +883,7 @@ FxaaFloat4 FxaaPixelShader(
|
||||
// This used to be the FXAA_CONSOLE__EDGE_THRESHOLD define.
|
||||
// It is here now to allow easier tuning.
|
||||
// This does not effect PS3, as this needs to be compiled in.
|
||||
// Use FXAA_CONSOLE__PS3_EDGE_THRESHOLD for PS3.
|
||||
// Use FXAA_CONSOLE_M_PS3_EDGE_THRESHOLD for PS3.
|
||||
// Due to the PS3 being ALU bound,
|
||||
// there are only two safe values here: 1/4 and 1/8.
|
||||
// These options use the shaders ability to a free *|/ by 2|4|8.
|
||||
@@ -1041,11 +1041,11 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if( horzSpan) posB.y += lengthSign * 0.5;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
FxaaFloat2 posN;
|
||||
posN.x = posB.x - offNP.x * FXAA_QUALITY__P0;
|
||||
posN.y = posB.y - offNP.y * FXAA_QUALITY__P0;
|
||||
posN.x = posB.x - offNP.x * FXAA_QUALITY_M_P0;
|
||||
posN.y = posB.y - offNP.y * FXAA_QUALITY_M_P0;
|
||||
FxaaFloat2 posP;
|
||||
posP.x = posB.x + offNP.x * FXAA_QUALITY__P0;
|
||||
posP.y = posB.y + offNP.y * FXAA_QUALITY__P0;
|
||||
posP.x = posB.x + offNP.x * FXAA_QUALITY_M_P0;
|
||||
posP.y = posB.y + offNP.y * FXAA_QUALITY_M_P0;
|
||||
FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;
|
||||
FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));
|
||||
FxaaFloat subpixE = subpixC * subpixC;
|
||||
@@ -1061,11 +1061,11 @@ FxaaFloat4 FxaaPixelShader(
|
||||
lumaEndP -= lumaNN * 0.5;
|
||||
FxaaBool doneN = abs(lumaEndN) >= gradientScaled;
|
||||
FxaaBool doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P1;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P1;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P1;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P1;
|
||||
FxaaBool doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P1;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P1;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P1;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P1;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
@@ -1074,13 +1074,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P2;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P2;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P2;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P2;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P2;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P2;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P2;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P2;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 3)
|
||||
#if (FXAA_QUALITY_M_PS > 3)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1088,13 +1088,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P3;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P3;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P3;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P3;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P3;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P3;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P3;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P3;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 4)
|
||||
#if (FXAA_QUALITY_M_PS > 4)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1102,13 +1102,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P4;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P4;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P4;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P4;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P4;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P4;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P4;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P4;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 5)
|
||||
#if (FXAA_QUALITY_M_PS > 5)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1116,13 +1116,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P5;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P5;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P5;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P5;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P5;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P5;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P5;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P5;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 6)
|
||||
#if (FXAA_QUALITY_M_PS > 6)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1130,13 +1130,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P6;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P6;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P6;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P6;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P6;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P6;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P6;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P6;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 7)
|
||||
#if (FXAA_QUALITY_M_PS > 7)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1144,13 +1144,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P7;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P7;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P7;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P7;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P7;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P7;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P7;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P7;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 8)
|
||||
#if (FXAA_QUALITY_M_PS > 8)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1158,13 +1158,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P8;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P8;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P8;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P8;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P8;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P8;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P8;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P8;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 9)
|
||||
#if (FXAA_QUALITY_M_PS > 9)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1172,13 +1172,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P9;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P9;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P9;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P9;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P9;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P9;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P9;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P9;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 10)
|
||||
#if (FXAA_QUALITY_M_PS > 10)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1186,13 +1186,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P10;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P10;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P10;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P10;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P10;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P10;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P10;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P10;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 11)
|
||||
#if (FXAA_QUALITY_M_PS > 11)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1200,13 +1200,13 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P11;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P11;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P11;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P11;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P11;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P11;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P11;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P11;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
#if (FXAA_QUALITY__PS > 12)
|
||||
#if (FXAA_QUALITY_M_PS > 12)
|
||||
if(doneNP) {
|
||||
if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));
|
||||
if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));
|
||||
@@ -1214,11 +1214,11 @@ FxaaFloat4 FxaaPixelShader(
|
||||
if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;
|
||||
doneN = abs(lumaEndN) >= gradientScaled;
|
||||
doneP = abs(lumaEndP) >= gradientScaled;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY__P12;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY__P12;
|
||||
if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_M_P12;
|
||||
if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_M_P12;
|
||||
doneNP = (!doneN) || (!doneP);
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY__P12;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY__P12;
|
||||
if(!doneP) posP.x += offNP.x * FXAA_QUALITY_M_P12;
|
||||
if(!doneP) posP.y += offNP.y * FXAA_QUALITY_M_P12;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
}
|
||||
#endif
|
||||
@@ -1291,9 +1291,9 @@ FxaaFloat4 FxaaPixelShader(
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
Instead of using this on PC, I'd suggest just using FXAA Quality with
|
||||
#define FXAA_QUALITY__PRESET 10
|
||||
#define FXAA_QUALITY_M_PRESET 10
|
||||
Or
|
||||
#define FXAA_QUALITY__PRESET 20
|
||||
#define FXAA_QUALITY_M_PRESET 20
|
||||
Either are higher qualilty and almost as fast as this on modern PC GPUs.
|
||||
============================================================================*/
|
||||
#if (FXAA_PC_CONSOLE == 1)
|
||||
@@ -1704,7 +1704,7 @@ half4 FxaaPixelShader(
|
||||
// (5)
|
||||
half4 dir1_pos;
|
||||
dir1_pos.xy = normalize(dir.xyz).xz;
|
||||
half dirAbsMinTimesC = min(abs(dir1_pos.x), abs(dir1_pos.y)) * half(FXAA_CONSOLE__PS3_EDGE_SHARPNESS);
|
||||
half dirAbsMinTimesC = min(abs(dir1_pos.x), abs(dir1_pos.y)) * half(FXAA_CONSOLE_M_PS3_EDGE_SHARPNESS);
|
||||
/*--------------------------------------------------------------------------*/
|
||||
// (6)
|
||||
half4 dir2_pos;
|
||||
@@ -2019,7 +2019,7 @@ half4 FxaaPixelShader(
|
||||
// (6)
|
||||
half4 dir1_pos;
|
||||
dir1_pos.xy = normalize(dir).xz;
|
||||
half dirAbsMinTimes8 = min(abs(dir1_pos.x), abs(dir1_pos.y)) * half(FXAA_CONSOLE__PS3_EDGE_SHARPNESS);
|
||||
half dirAbsMinTimes8 = min(abs(dir1_pos.x), abs(dir1_pos.y)) * half(FXAA_CONSOLE_M_PS3_EDGE_SHARPNESS);
|
||||
/*--------------------------------------------------------------------------*/
|
||||
// (7)
|
||||
half4 dir2_pos;
|
||||
@@ -2061,7 +2061,7 @@ half4 FxaaPixelShader(
|
||||
temp2N = h4tex2Dlod(tex, half4(temp2N.xy, 0.0, 0.0));
|
||||
half4 rgby2;
|
||||
rgby2.xy = dir2_pos.zw + dir2_pos.xy * fxaaConsoleRcpFrameOpt2.zw;
|
||||
half lumaRangeM = (lumaMaxM - lumaMinM) / FXAA_CONSOLE__PS3_EDGE_THRESHOLD;
|
||||
half lumaRangeM = (lumaMaxM - lumaMinM) / FXAA_CONSOLE_M_PS3_EDGE_THRESHOLD;
|
||||
/*--------------------------------------------------------------------------*/
|
||||
// (12)
|
||||
rgby2 = h4tex2Dlod(tex, half4(rgby2.xy, 0.0, 0.0));
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -31,8 +31,8 @@ out vec4 frag_color;
|
||||
|
||||
//class 1 -- no shadows
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
uniform sampler2DRect diffuseRect;
|
||||
uniform sampler2DRect specularRect;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
//class 1, no shadow, no SSAO, should never be called
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -151,7 +151,7 @@ void main()
|
||||
|
||||
vec4 fb = texture2D(screenTex, distort);
|
||||
|
||||
frag_data[0] = vec4(linear_to_srgb(fb.rgb), 1.0); // diffuse
|
||||
frag_data[0] = vec4(/*linear_to_srgb*/(fb.rgb), 1.0); // diffuse
|
||||
frag_data[1] = vec4(0.5,0.5,0.5, 0.95); // speccolor*spec, spec
|
||||
frag_data[2] = vec4(encode_normal(wavef), 0.0, 0.0); // normalxyz, displace
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_data[3];
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* $License$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* $License$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* $License$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* $License$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* $License$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -29,7 +29,7 @@ out vec4 frag_color;
|
||||
#define frag_color gl_FragColor
|
||||
#endif
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
uniform sampler2D glowMap;
|
||||
uniform sampler2DRect screenMap;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
#extension GL_ARB_shader_texture_lod : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_shader_texture_lod : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#extension GL_ARB_texture_rectangle : enable
|
||||
//#extension GL_ARB_texture_rectangle : enable
|
||||
|
||||
#ifdef DEFINE_GL_FRAGCOLOR
|
||||
out vec4 frag_color;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
version 27
|
||||
version 28
|
||||
|
||||
// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
|
||||
// Should be combined into one table
|
||||
@@ -301,7 +301,7 @@ RenderObjectBump 0 0
|
||||
list OpenGLPre15
|
||||
RenderVBOEnable 1 0
|
||||
|
||||
list Intel
|
||||
list IntelPre30
|
||||
RenderAnisotropic 1 0
|
||||
// Avoid some Intel crashes on Linux
|
||||
RenderCubeMap 0 0
|
||||
|
||||
@@ -301,7 +301,11 @@ Intel Eaglelake .*Intel.*Eaglelake.* 0 1
|
||||
Intel Graphics Media HD .*Intel.*Graphics Media.*HD.* 0 1
|
||||
Intel HD Graphics 2000 .*Intel.*HD Graphics 2000.* 1 1
|
||||
Intel HD Graphics 3000 .*Intel.*HD Graphics 3000.* 2 1
|
||||
Intel HD Graphics 3000 .*Intel.*Sandybridge.* 2 1
|
||||
Intel HD Graphics 4000 .*Intel.*HD Graphics 4000.* 2 1
|
||||
Intel HD Graphics 4000 .*Intel.*Ivybridge.* 2 1
|
||||
Intel HD Graphics 5000 .*Intel.*HD Graphics 5.* 2 1
|
||||
Intel HD Graphics 5000 .*Intel.*Haswell.* 2 1
|
||||
Intel HD Graphics .*Intel.*HD Graphics.* 2 1
|
||||
Intel Mobile 4 Series .*Intel.*Mobile.* 4 Series.* 0 1
|
||||
Intel Media Graphics HD .*Intel.*Media Graphics HD.* 0 1
|
||||
@@ -312,6 +316,7 @@ Intel HD Graphics 2000 .*Intel.*HD2000.* 1 1
|
||||
Intel HD Graphics 3000 .*Intel.*HD3000.* 2 1
|
||||
Matrox .*Matrox.* 0 0
|
||||
Mesa .*Mesa.* 0 0
|
||||
Gallium .*Gallium.* 1 1
|
||||
NVIDIA 205 .*NVIDIA .*GeForce 205.* 2 1
|
||||
NVIDIA 210 .*NVIDIA .*GeForce 210.* 2 1
|
||||
NVIDIA 310M .*NVIDIA .*GeForce 310M.* 1 1
|
||||
@@ -407,6 +412,12 @@ NVIDIA GTX 670 .*NVIDIA .*GTX *67.* 3 1
|
||||
NVIDIA GTX 680M .*NVIDIA .*GTX *680M.* 3 1
|
||||
NVIDIA GTX 680 .*NVIDIA .*GTX *68.* 3 1
|
||||
NVIDIA GTX 690 .*NVIDIA .*GTX *69.* 3 1
|
||||
NVIDIA GTX 750 .*NVIDIA .*GTX *75.* 3 1
|
||||
NVIDIA GTX 760 .*NVIDIA .*GTX *76.* 3 1
|
||||
NVIDIA GTX 770 .*NVIDIA .*GTX *77.* 3 1
|
||||
NVIDIA GTX 780 .*NVIDIA .*GTX *78.* 3 1
|
||||
NVIDIA GTX TITAN .*NVIDIA .*GTX *TITAN.* 3 1
|
||||
NVIDIA GT 7xxM .*NVIDIA .*GT *7.* 3 1
|
||||
NVIDIA C51 .*NVIDIA .*C51.* 0 1
|
||||
NVIDIA G72 .*NVIDIA .*G72.* 1 1
|
||||
NVIDIA G73 .*NVIDIA .*G73.* 1 1
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "lltrans.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llweb.h"
|
||||
#include "aialert.h"
|
||||
|
||||
// ********************************************************************
|
||||
// Global Variables
|
||||
@@ -56,6 +57,7 @@ HippoGridInfo::HippoGridInfo(const std::string& gridName) :
|
||||
mRenderCompat(true),
|
||||
mInvLinks(false),
|
||||
mAutoUpdate(false),
|
||||
mLocked(false),
|
||||
mMaxAgentGroups(-1),
|
||||
mCurrencySymbol("OS$"),
|
||||
mCurrencyText("OS Dollars"),
|
||||
@@ -157,18 +159,34 @@ void HippoGridInfo::setGridNick(std::string gridNick)
|
||||
}
|
||||
}
|
||||
|
||||
void HippoGridInfo::useHttps()
|
||||
{
|
||||
// If the Login URI starts with "http:", replace that with "https:".
|
||||
if (mLoginUri.substr(0, 5) == "http:")
|
||||
{
|
||||
mLoginUri = "https:" + mLoginUri.substr(5);
|
||||
}
|
||||
}
|
||||
|
||||
void HippoGridInfo::setLoginUri(const std::string& loginUri)
|
||||
{
|
||||
std::string uri = loginUri;
|
||||
mLoginUri = sanitizeUri(uri);
|
||||
if (utf8str_tolower(LLURI(uri).hostName()) == "login.agni.lindenlab.com")
|
||||
mLoginUri = sanitizeUri(loginUri);
|
||||
if (utf8str_tolower(LLURI(mLoginUri).hostName()) == "login.agni.lindenlab.com")
|
||||
{
|
||||
mIsInProductionGrid = true;
|
||||
useHttps();
|
||||
setPlatform(PLATFORM_SECONDLIFE);
|
||||
}
|
||||
if (utf8str_tolower(LLURI(uri).hostName()) == "login.avination.com" ||
|
||||
utf8str_tolower(LLURI(uri).hostName()) == "login.avination.net")
|
||||
if (utf8str_tolower(LLURI(mLoginUri).hostName()) == "login.aditi.lindenlab.com")
|
||||
{
|
||||
useHttps();
|
||||
setPlatform(PLATFORM_SECONDLIFE);
|
||||
}
|
||||
if (utf8str_tolower(LLURI(mLoginUri).hostName()) == "login.avination.com" ||
|
||||
utf8str_tolower(LLURI(mLoginUri).hostName()) == "login.avination.net")
|
||||
{
|
||||
mIsInAvination = true;
|
||||
useHttps();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,8 +197,7 @@ void HippoGridInfo::setLoginPage(const std::string& loginPage)
|
||||
|
||||
void HippoGridInfo::setHelperUri(const std::string& helperUri)
|
||||
{
|
||||
std::string uri = helperUri;
|
||||
mHelperUri = sanitizeUri(uri);
|
||||
mHelperUri = sanitizeUri(helperUri);
|
||||
}
|
||||
|
||||
void HippoGridInfo::setWebSite(const std::string& website)
|
||||
@@ -398,15 +415,13 @@ void HippoGridInfo::onXmlCharacterData(void* userData, const XML_Char* s, int le
|
||||
|
||||
case XML_LOGINURI:
|
||||
{
|
||||
std::string loginuri(s, len);
|
||||
self->mLoginUri = sanitizeUri( loginuri );
|
||||
self->setLoginUri(std::string(s, len));
|
||||
break;
|
||||
}
|
||||
|
||||
case XML_HELPERURI:
|
||||
{
|
||||
std::string helperuri(s, len);
|
||||
self->mHelperUri = sanitizeUri( helperuri );
|
||||
self->setHelperUri(std::string(s, len));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -437,24 +452,45 @@ void HippoGridInfo::onXmlCharacterData(void* userData, const XML_Char* s, int le
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool HippoGridInfo::retrieveGridInfo()
|
||||
// Throws AIAlert::ErrorCode with the http status as 'code' (HTTP_OK on XML parse error).
|
||||
void HippoGridInfo::getGridInfo()
|
||||
{
|
||||
if (mLoginUri == "") return false;
|
||||
|
||||
// If last character in uri is not "/"
|
||||
std::string uri = mLoginUri;
|
||||
if (uri.compare(uri.length()-1, 1, "/") != 0)
|
||||
if (mLoginUri.empty())
|
||||
{
|
||||
uri += '/';
|
||||
// By passing 0 we automatically get GridInfoErrorInstruction appended.
|
||||
THROW_ALERTC(0, "GridInfoErrorNoLoginURI");
|
||||
}
|
||||
|
||||
// Make sure the uri ends on a '/'.
|
||||
std::string uri = mLoginUri;
|
||||
if (uri.compare(uri.length() - 1, 1, "/") != 0)
|
||||
{
|
||||
uri += '/';
|
||||
}
|
||||
|
||||
std::string reply;
|
||||
int result = LLHTTPClient::blockingGetRaw(uri + "get_grid_info", reply);
|
||||
if (result != 200) return false;
|
||||
if (result != HTTP_OK)
|
||||
{
|
||||
char const* xml_desc;
|
||||
switch (result)
|
||||
{
|
||||
case HTTP_NOT_FOUND:
|
||||
xml_desc = "GridInfoErrorNotFound";
|
||||
break;
|
||||
case HTTP_METHOD_NOT_ALLOWED:
|
||||
xml_desc = "GridInfoErrorNotAllowed";
|
||||
break;
|
||||
default:
|
||||
xml_desc = "AIError";
|
||||
break;
|
||||
}
|
||||
// LLHTTPClient::blockingGetRaw puts any error message in the reply.
|
||||
THROW_ALERTC(result, xml_desc, AIArgs("[ERROR]", reply));
|
||||
}
|
||||
|
||||
llinfos << "Received: " << reply << llendl;
|
||||
|
||||
bool success = true;
|
||||
XML_Parser parser = XML_ParserCreate(0);
|
||||
XML_SetUserData(parser, this);
|
||||
XML_SetElementHandler(parser, onXmlElementStart, onXmlElementEnd);
|
||||
@@ -462,15 +498,11 @@ bool HippoGridInfo::retrieveGridInfo()
|
||||
mXmlState = XML_VOID;
|
||||
if (!XML_Parse(parser, reply.data(), reply.size(), TRUE))
|
||||
{
|
||||
llwarns << "XML Parse Error: " << XML_ErrorString(XML_GetErrorCode(parser)) << llendl;
|
||||
success = false;
|
||||
THROW_ALERTC(HTTP_OK, "GridInfoParseError", AIArgs("[XML_ERROR]", XML_ErrorString(XML_GetErrorCode(parser))));
|
||||
}
|
||||
XML_ParserFree(parser);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
std::string HippoGridInfo::getUploadFee() const
|
||||
{
|
||||
std::string fee;
|
||||
@@ -558,22 +590,40 @@ const char* HippoGridInfo::getPlatformString(Platform platform)
|
||||
}
|
||||
|
||||
// static
|
||||
std::string HippoGridInfo::sanitizeUri(std::string &uri)
|
||||
std::string HippoGridInfo::sanitizeUri(std::string const& uri_in)
|
||||
{
|
||||
// if (uri.empty()) {
|
||||
// return "";
|
||||
// }
|
||||
std::string uri = uri_in;
|
||||
|
||||
// // If last character in uri is not "/"
|
||||
// // NOTE: This wrongly assumes that all URIs should end with "/"!
|
||||
// if (uri.compare(uri.length()-1, 1, "/") != 0) {
|
||||
// return uri + '/';
|
||||
// }
|
||||
// Strip any leading and trailing spaces.
|
||||
LLStringUtil::trim(uri);
|
||||
|
||||
// Only use https when it was entered.
|
||||
bool use_https = uri.substr(0, 6) == "https:";
|
||||
|
||||
// Strip off attempts to use some prefix that is just wrong.
|
||||
// We accept the following:
|
||||
// "" (nothing)
|
||||
// "http:" or "https:", optionally followed by one or more '/'.
|
||||
std::string::size_type pos = uri.find_first_not_of("htps");
|
||||
if (pos != std::string::npos && pos < 6 && uri[pos] == ':')
|
||||
{
|
||||
do { ++pos; } while(uri[pos] == '/');
|
||||
uri = uri.substr(pos);
|
||||
}
|
||||
|
||||
// Add (back) the prefix.
|
||||
if (use_https)
|
||||
{
|
||||
uri = "https://" + uri;
|
||||
}
|
||||
else
|
||||
{
|
||||
uri = "http://" + uri;
|
||||
}
|
||||
|
||||
return uri;
|
||||
}
|
||||
|
||||
|
||||
void HippoGridInfo::initFallback()
|
||||
{
|
||||
FALLBACK_GRIDINFO.setPlatform(PLATFORM_OPENSIM);
|
||||
@@ -607,11 +657,6 @@ bool HippoGridInfo::getAutoUpdate()
|
||||
return mAutoUpdate;
|
||||
}
|
||||
|
||||
void HippoGridInfo::setAutoUpdate(bool b)
|
||||
{
|
||||
mAutoUpdate = b;
|
||||
}
|
||||
|
||||
bool HippoGridInfo::getUPCSupported()
|
||||
{
|
||||
if(isSecondLife())
|
||||
@@ -967,7 +1012,8 @@ void HippoGridManager::parseData(LLSD &gridInfo, bool mergeIfNewer)
|
||||
if (gridMap.has("search")) grid->setSearchUrl(gridMap["search"]);
|
||||
if (gridMap.has("render_compat")) grid->setRenderCompat(gridMap["render_compat"]);
|
||||
if (gridMap.has("inventory_links")) grid->setSupportsInvLinks(gridMap["inventory_links"]);
|
||||
if (gridMap.has("auto_update")) grid->setAutoUpdate(gridMap["auto_update"]);
|
||||
if (gridMap.has("auto_update")) grid->mAutoUpdate = gridMap["auto_update"];
|
||||
if (gridMap.has("locked")) grid->mLocked = gridMap["locked"];
|
||||
if (newGrid) addGrid(grid);
|
||||
}
|
||||
}
|
||||
@@ -1004,6 +1050,7 @@ void HippoGridManager::saveFile()
|
||||
gridInfo[i]["render_compat"] = grid->isRenderCompat();
|
||||
gridInfo[i]["inventory_links"] = grid->supportsInvLinks();
|
||||
gridInfo[i]["auto_update"] = grid->getAutoUpdate();
|
||||
gridInfo[i]["locked"] = grid->getLocked();
|
||||
}
|
||||
|
||||
// write client grid info file
|
||||
|
||||
@@ -22,6 +22,7 @@ class LLSD;
|
||||
|
||||
class HippoGridInfo
|
||||
{
|
||||
friend class HippoGridManager;
|
||||
public:
|
||||
enum Platform {
|
||||
PLATFORM_OTHER = 0,
|
||||
@@ -96,9 +97,9 @@ public:
|
||||
bool supportsInvLinks();
|
||||
void setSupportsInvLinks(bool b);
|
||||
bool getAutoUpdate();
|
||||
void setAutoUpdate(bool b);
|
||||
bool getLocked() { return mLocked; }
|
||||
|
||||
bool retrieveGridInfo();
|
||||
void getGridInfo();
|
||||
|
||||
static const char* getPlatformString(Platform platform);
|
||||
static std::string sanitizeGridNick(const std::string &gridnick);
|
||||
@@ -124,6 +125,7 @@ private:
|
||||
bool mRenderCompat;
|
||||
bool mInvLinks;
|
||||
bool mAutoUpdate;
|
||||
bool mLocked;
|
||||
bool mUPCSupported;
|
||||
int mMaxAgentGroups;
|
||||
|
||||
@@ -142,7 +144,8 @@ private:
|
||||
};
|
||||
XmlState mXmlState;
|
||||
|
||||
static std::string sanitizeUri(std::string &uri);
|
||||
static std::string sanitizeUri(std::string const& uri_in);
|
||||
void useHttps(void);
|
||||
void formatFee(std::string &fee, int cost, bool showFree) const;
|
||||
|
||||
static void onXmlElementStart(void* userData, const XML_Char* name, const XML_Char** atts);
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
||||
#include "llhttpstatuscodes.h"
|
||||
|
||||
// ********************************************************************
|
||||
|
||||
@@ -61,6 +61,7 @@ class HippoPanelGridsImpl : public HippoPanelGrids
|
||||
enum State { NORMAL, ADD_NEW, ADD_COPY };
|
||||
State mState;
|
||||
std::string mCurGrid;
|
||||
bool mIsEditable;
|
||||
|
||||
void loadCurGrid();
|
||||
bool saveCurGrid();
|
||||
@@ -78,6 +79,8 @@ class HippoPanelGridsImpl : public HippoPanelGrids
|
||||
static void onClickGridInfo(void *data);
|
||||
static void onClickHelpRenderCompat(void *data);
|
||||
static void onClickAdvanced(void *data);
|
||||
|
||||
void enableEditing(bool);
|
||||
};
|
||||
|
||||
|
||||
@@ -103,7 +106,7 @@ HippoPanelGrids *HippoPanelGrids::create()
|
||||
|
||||
|
||||
HippoPanelGridsImpl::HippoPanelGridsImpl() :
|
||||
mState(NORMAL)
|
||||
mState(NORMAL), mIsEditable(true)
|
||||
{
|
||||
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_grids.xml");
|
||||
}
|
||||
@@ -152,7 +155,7 @@ BOOL HippoPanelGridsImpl::postBuild()
|
||||
|
||||
childSetCommitCallback("grid_selector", onSelectGrid, this);
|
||||
childSetCommitCallback("platform", onSelectPlatform, this);
|
||||
|
||||
|
||||
// !!!### server_choice_combo->setFocusLostCallback(onServerComboLostFocus);
|
||||
|
||||
reset();
|
||||
@@ -194,27 +197,10 @@ void HippoPanelGridsImpl::refresh()
|
||||
|
||||
childSetTextArg("default_grid", "[DEFAULT]", (defaultGrid != "")? defaultGrid: " ");
|
||||
|
||||
childSetEnabled("btn_delete", (selectIndex >= 0));
|
||||
childSetEnabled("btn_delete", (selectIndex >= 0) && mIsEditable );
|
||||
childSetEnabled("btn_copy", (mState == NORMAL) && (selectIndex >= 0));
|
||||
childSetEnabled("btn_default", (mState == NORMAL) && (selectIndex > 0));
|
||||
childSetEnabled("gridname", (mState == ADD_NEW) || (mState == ADD_COPY));
|
||||
|
||||
if (childGetValue("platform").asString() == "SecondLife") {
|
||||
// disable platform selector, if logged into the grid edited and it is SL
|
||||
// so object export restrictions cannot be circumvented by changing the platform
|
||||
bool enablePlatform = (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) ||
|
||||
(mCurGrid != gHippoGridManager->getConnectedGrid()->getGridName());
|
||||
childSetEnabled("platform", enablePlatform);
|
||||
childSetEnabled("search", false);
|
||||
childSetText("search", LLStringExplicit(""));
|
||||
childSetEnabled("render_compat", false);
|
||||
childSetValue("render_compat", false);
|
||||
} else {
|
||||
childSetEnabled("platform", true);
|
||||
childSetEnabled("search", true);
|
||||
childSetText("search", gHippoGridManager->getConnectedGrid()->getSearchUrl());
|
||||
childSetEnabled("render_compat", true);
|
||||
}
|
||||
childSetEnabled("gridname", (mState == ADD_NEW) || (mState == ADD_COPY));
|
||||
}
|
||||
|
||||
|
||||
@@ -256,9 +242,11 @@ void HippoPanelGridsImpl::loadCurGrid()
|
||||
childSetText("helperuri", gridInfo->getHelperUri());
|
||||
childSetText("website", gridInfo->getWebSite());
|
||||
childSetText("support", gridInfo->getSupportUrl());
|
||||
childSetText("search", gridInfo->getSearchUrl());
|
||||
childSetText("register", gridInfo->getRegisterUrl());
|
||||
childSetText("password", gridInfo->getPasswordUrl());
|
||||
childSetValue("render_compat", gridInfo->isRenderCompat());
|
||||
enableEditing(!gridInfo->getLocked());
|
||||
} else {
|
||||
std::string empty = "";
|
||||
LLComboBox *platform = getChild<LLComboBox>("platform");
|
||||
@@ -269,10 +257,11 @@ void HippoPanelGridsImpl::loadCurGrid()
|
||||
childSetText("helperuri", empty);
|
||||
childSetText("website", empty);
|
||||
childSetText("support", empty);
|
||||
childSetText("search", empty);
|
||||
childSetText("register", empty);
|
||||
childSetText("password", empty);
|
||||
childSetEnabled("render_compat", true);
|
||||
childSetValue("render_compat", true);
|
||||
enableEditing(true);
|
||||
}
|
||||
|
||||
if (mState == ADD_NEW) {
|
||||
@@ -281,6 +270,7 @@ void HippoPanelGridsImpl::loadCurGrid()
|
||||
childSetText("loginuri", required);
|
||||
} else if (mState == ADD_COPY) {
|
||||
childSetText("gridname", std::string("<required>"));
|
||||
enableEditing(true);
|
||||
} else if (mState != NORMAL) {
|
||||
llwarns << "Illegal state " << mState << '.' << llendl;
|
||||
}
|
||||
@@ -294,7 +284,7 @@ bool HippoPanelGridsImpl::saveCurGrid()
|
||||
HippoGridInfo *gridInfo = 0;
|
||||
|
||||
gridInfo = gHippoGridManager->getGrid(mCurGrid);
|
||||
//gridInfo->retrieveGridInfo();
|
||||
//gridInfo->getGridInfo();
|
||||
refresh();
|
||||
|
||||
std::string gridname = childGetValue("gridname");
|
||||
@@ -333,9 +323,30 @@ bool HippoPanelGridsImpl::saveCurGrid()
|
||||
mCurGrid = gridname;
|
||||
gridInfo = new HippoGridInfo(gridname);
|
||||
gHippoGridManager->addGrid(gridInfo);
|
||||
gridInfo->retrieveGridInfo();
|
||||
try
|
||||
{
|
||||
gridInfo->getGridInfo();
|
||||
}
|
||||
catch (AIAlert::ErrorCode const& error)
|
||||
{
|
||||
if (error.getCode() == HTTP_NOT_FOUND || error.getCode() == HTTP_METHOD_NOT_ALLOWED)
|
||||
{
|
||||
// Ignore this error; it might be a user entered entry for a grid that has no get_grid_info support.
|
||||
llwarns << AIAlert::text(error) << llendl;
|
||||
}
|
||||
else if (error.getCode() == HTTP_OK)
|
||||
{
|
||||
// XML parse error.
|
||||
AIAlert::add("GridInfoError", error);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Append GridInfoErrorInstruction to error message.
|
||||
AIAlert::add("GridInfoError", AIAlert::Error(AIAlert::Prefix(), AIAlert::not_modal, error, "GridInfoErrorInstruction"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!gridInfo) {
|
||||
llwarns << "Grid not found, ignoring changes." << llendl;
|
||||
return true;
|
||||
@@ -394,7 +405,10 @@ void HippoPanelGridsImpl::retrieveGridInfo()
|
||||
}
|
||||
|
||||
grid->setLoginUri(loginuri);
|
||||
if (grid->retrieveGridInfo()) {
|
||||
try
|
||||
{
|
||||
grid->getGridInfo();
|
||||
|
||||
if (grid->getPlatform() != HippoGridInfo::PLATFORM_OTHER)
|
||||
getChild<LLComboBox>("platform")->setCurrentByIndex(grid->getPlatform());
|
||||
if (grid->getGridName() != "") childSetText("gridname", grid->getGridName());
|
||||
@@ -407,10 +421,20 @@ void HippoPanelGridsImpl::retrieveGridInfo()
|
||||
if (grid->getPasswordUrl() != "") childSetText("password", grid->getPasswordUrl());
|
||||
if (grid->getSearchUrl() != "") childSetText("search", grid->getSearchUrl());
|
||||
if (grid->getGridMessage() != "") childSetText("gridmessage", grid->getGridMessage());
|
||||
} else {
|
||||
LLNotificationsUtil::add("GridInfoError");
|
||||
}
|
||||
|
||||
catch(AIAlert::ErrorCode const& error)
|
||||
{
|
||||
if (error.getCode() == HTTP_METHOD_NOT_ALLOWED || error.getCode() == HTTP_OK)
|
||||
{
|
||||
AIAlert::add("GridInfoError", error);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Append GridInfoErrorInstruction to error message.
|
||||
AIAlert::add("GridInfoError", AIAlert::Error(AIAlert::Prefix(), AIAlert::not_modal, error, "GridInfoErrorInstruction"));
|
||||
}
|
||||
}
|
||||
|
||||
if (cleanupGrid) delete grid;
|
||||
}
|
||||
|
||||
@@ -472,8 +496,10 @@ void HippoPanelGridsImpl::onClickDefault(void *data)
|
||||
{
|
||||
HippoPanelGridsImpl *self = (HippoPanelGridsImpl*)data;
|
||||
if (self->mState == NORMAL) {
|
||||
self->saveCurGrid();
|
||||
gHippoGridManager->setDefaultGrid(self->mCurGrid);
|
||||
if (self->saveCurGrid())
|
||||
{
|
||||
gHippoGridManager->setDefaultGrid(self->mCurGrid);
|
||||
}
|
||||
self->refresh();
|
||||
}
|
||||
}
|
||||
@@ -538,3 +564,31 @@ void HippoPanelGridsImpl::onClickHelpRenderCompat(void *data)
|
||||
{
|
||||
LLNotificationsUtil::add("HelpRenderCompat");
|
||||
}
|
||||
|
||||
|
||||
void HippoPanelGridsImpl::enableEditing(bool b)
|
||||
{
|
||||
static const char * elements [] = {
|
||||
"platform",
|
||||
"gridname",
|
||||
"loginuri",
|
||||
"loginpage",
|
||||
"helperuri",
|
||||
"website",
|
||||
"support",
|
||||
"register",
|
||||
"password",
|
||||
"search",
|
||||
"btn_delete",
|
||||
"btn_gridinfo",
|
||||
"render_compat",
|
||||
"gridmessage",
|
||||
0
|
||||
};
|
||||
|
||||
for(int i = 0; elements[i]; ++i ) {
|
||||
this->childSetEnabled(elements[i], b);
|
||||
}
|
||||
|
||||
mIsEditable = b;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,9 @@ fi
|
||||
export SDL_VIDEO_X11_DGAMOUSE=0
|
||||
|
||||
## - Works around a problem with misconfigured 64-bit systems not finding GL
|
||||
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}":/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri
|
||||
# This is less needed nowadays; don't uncomment this unless LibGL can't find your
|
||||
# drivers automatically.
|
||||
#export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}":/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri
|
||||
|
||||
## - The 'scim' GTK IM module widely crashes the viewer. Avoid it.
|
||||
if [ "$GTK_IM_MODULE" = "scim" ]; then
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
#include "llworld.h"
|
||||
#include "llworldmap.h"
|
||||
#include "llworldmapmessage.h"
|
||||
#include "../lscript/lscript_byteformat.h"
|
||||
|
||||
//Misc non-standard includes
|
||||
#include "llurldispatcher.h"
|
||||
@@ -3061,7 +3062,7 @@ LLQuaternion LLAgent::getHeadRotation()
|
||||
return rot;
|
||||
}
|
||||
|
||||
void LLAgent::sendAnimationRequests(LLDynamicArray<LLUUID> &anim_ids, EAnimRequest request)
|
||||
void LLAgent::sendAnimationRequests(const std::vector<LLUUID> &anim_ids, EAnimRequest request)
|
||||
{
|
||||
if (gAgentID.isNull())
|
||||
{
|
||||
@@ -3076,7 +3077,7 @@ void LLAgent::sendAnimationRequests(LLDynamicArray<LLUUID> &anim_ids, EAnimReque
|
||||
msg->addUUIDFast(_PREHASH_AgentID, getID());
|
||||
msg->addUUIDFast(_PREHASH_SessionID, getSessionID());
|
||||
|
||||
for (S32 i = 0; i < anim_ids.count(); i++)
|
||||
for (U32 i = 0; i < anim_ids.size(); i++)
|
||||
{
|
||||
if (anim_ids[i].isNull())
|
||||
{
|
||||
@@ -3118,6 +3119,55 @@ void LLAgent::sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request)
|
||||
sendReliableMessage();
|
||||
}
|
||||
|
||||
// Send a message to the region to stop the NULL animation state
|
||||
// This will reset animation state overrides for the agent.
|
||||
void LLAgent::sendAnimationStateReset()
|
||||
{
|
||||
if (gAgentID.isNull() || !mRegionp)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessageFast(_PREHASH_AgentAnimation);
|
||||
msg->nextBlockFast(_PREHASH_AgentData);
|
||||
msg->addUUIDFast(_PREHASH_AgentID, getID());
|
||||
msg->addUUIDFast(_PREHASH_SessionID, getSessionID());
|
||||
|
||||
msg->nextBlockFast(_PREHASH_AnimationList);
|
||||
msg->addUUIDFast(_PREHASH_AnimID, LLUUID::null );
|
||||
msg->addBOOLFast(_PREHASH_StartAnim, FALSE);
|
||||
|
||||
msg->nextBlockFast(_PREHASH_PhysicalAvatarEventList);
|
||||
msg->addBinaryDataFast(_PREHASH_TypeData, NULL, 0);
|
||||
sendReliableMessage();
|
||||
}
|
||||
|
||||
|
||||
// Send a message to the region to revoke sepecified permissions on ALL scripts in the region
|
||||
// If the target is an object in the region, permissions in scripts on that object are cleared.
|
||||
// If it is the region ID, all scripts clear the permissions for this agent
|
||||
void LLAgent::sendRevokePermissions(const LLUUID & target, U32 permissions)
|
||||
{
|
||||
// Currently only the bits for SCRIPT_PERMISSION_TRIGGER_ANIMATION and SCRIPT_PERMISSION_OVERRIDE_ANIMATIONS
|
||||
// are supported by the server. Sending any other bits will cause the message to be dropped without changing permissions
|
||||
|
||||
if (gAgentID.notNull() && gMessageSystem)
|
||||
{
|
||||
LLMessageSystem* msg = gMessageSystem;
|
||||
msg->newMessageFast(_PREHASH_RevokePermissions);
|
||||
msg->nextBlockFast(_PREHASH_AgentData);
|
||||
msg->addUUIDFast(_PREHASH_AgentID, getID()); // Must be our ID
|
||||
msg->addUUIDFast(_PREHASH_SessionID, getSessionID());
|
||||
|
||||
msg->nextBlockFast(_PREHASH_Data);
|
||||
msg->addUUIDFast(_PREHASH_ObjectID, target); // Must be in the region
|
||||
msg->addU32Fast(_PREHASH_ObjectPermissions, permissions);
|
||||
|
||||
sendReliableMessage();
|
||||
}
|
||||
}
|
||||
|
||||
// [RLVa:KB] - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i
|
||||
void LLAgent::setAlwaysRun()
|
||||
{
|
||||
@@ -4338,6 +4388,8 @@ void LLAgent::stopCurrentAnimations()
|
||||
// avatar, propagating this change back to the server.
|
||||
if (isAgentAvatarValid())
|
||||
{
|
||||
std::vector<LLUUID> anim_ids;
|
||||
|
||||
for ( LLVOAvatar::AnimIterator anim_it =
|
||||
gAgentAvatarp->mPlayingAnimations.begin();
|
||||
anim_it != gAgentAvatarp->mPlayingAnimations.end();
|
||||
@@ -4355,7 +4407,24 @@ void LLAgent::stopCurrentAnimations()
|
||||
// stop this animation locally
|
||||
gAgentAvatarp->stopMotion(anim_it->first, TRUE);
|
||||
// ...and tell the server to tell everyone.
|
||||
sendAnimationRequest(anim_it->first, ANIM_REQUEST_STOP);
|
||||
anim_ids.push_back(anim_it->first);
|
||||
}
|
||||
}
|
||||
|
||||
sendAnimationRequests(anim_ids, ANIM_REQUEST_STOP);
|
||||
|
||||
// Tell the region to clear any animation state overrides
|
||||
sendAnimationStateReset();
|
||||
|
||||
// Revoke all animation permissions
|
||||
if (mRegionp &&
|
||||
gSavedSettings.getBOOL("RevokePermsOnStopAnimation"))
|
||||
{
|
||||
U32 permissions = LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_TRIGGER_ANIMATION] | LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_OVERRIDE_ANIMATIONS];
|
||||
sendRevokePermissions(mRegionp->getRegionID(), permissions);
|
||||
if (gAgentAvatarp->isSitting())
|
||||
{ // Also stand up, since auto-granted sit animation permission has been revoked
|
||||
gAgent.standUp();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -464,8 +464,11 @@ public:
|
||||
void stopCurrentAnimations();
|
||||
void requestStopMotion(LLMotion* motion);
|
||||
void onAnimStop(const LLUUID& id);
|
||||
void sendAnimationRequests(LLDynamicArray<LLUUID> &anim_ids, EAnimRequest request);
|
||||
void sendAnimationRequests(const std::vector<LLUUID> &anim_ids, EAnimRequest request);
|
||||
void sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request);
|
||||
void sendAnimationStateReset();
|
||||
void sendRevokePermissions(const LLUUID & target, U32 permissions);
|
||||
|
||||
void endAnimationUpdateUI();
|
||||
void unpauseAnimation() { mPauseRequest = NULL; }
|
||||
BOOL getCustomAnim() const { return mCustomAnim; }
|
||||
|
||||
@@ -40,7 +40,8 @@
|
||||
|
||||
#include "llappviewerwin32.h"
|
||||
|
||||
#include "llwindowwin32.cpp" // *FIX: for setting gIconResource.
|
||||
#include "llwindowwin32.h" // *FIX: for setting gIconResource.
|
||||
#include "llgl.h"
|
||||
#include "res/resource.h" // *FIX: for setting gIconResource.
|
||||
|
||||
#include <fcntl.h> //_O_APPEND
|
||||
@@ -52,6 +53,11 @@
|
||||
#include "llviewercontrol.h"
|
||||
#include "lldxhardware.h"
|
||||
|
||||
#include "nvapi/nvapi.h"
|
||||
#include "nvapi/NvApiDriverSettings.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "llweb.h"
|
||||
#include "llsecondlifeurls.h"
|
||||
|
||||
@@ -79,6 +85,19 @@ extern "C" {
|
||||
|
||||
const std::string LLAppViewerWin32::sWindowClass = "Second Life";
|
||||
|
||||
/*
|
||||
This function is used to print to the command line a text message
|
||||
describing the nvapi error and quits
|
||||
*/
|
||||
void nvapi_error(NvAPI_Status status)
|
||||
{
|
||||
NvAPI_ShortString szDesc = {0};
|
||||
NvAPI_GetErrorMessage(status, szDesc);
|
||||
llwarns << szDesc << llendl;
|
||||
|
||||
//should always trigger when asserts are enabled
|
||||
//llassert(status == NVAPI_OK);
|
||||
}
|
||||
|
||||
// Create app mutex creates a unique global windows object.
|
||||
// If the object can be created it returns true, otherwise
|
||||
@@ -101,6 +120,79 @@ bool create_app_mutex()
|
||||
return result;
|
||||
}
|
||||
|
||||
void ll_nvapi_init(NvDRSSessionHandle hSession)
|
||||
{
|
||||
// (2) load all the system settings into the session
|
||||
NvAPI_Status status = NvAPI_DRS_LoadSettings(hSession);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
|
||||
NvAPI_UnicodeString profile_name;
|
||||
//std::string app_name = LLTrans::getString("APP_NAME");
|
||||
std::string app_name("Second Life"); // <alchemy/>
|
||||
llutf16string w_app_name = utf8str_to_utf16str(app_name);
|
||||
wsprintf(profile_name, L"%s", w_app_name.c_str());
|
||||
status = NvAPI_DRS_SetCurrentGlobalProfile(hSession, profile_name);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
|
||||
// (3) Obtain the current profile.
|
||||
NvDRSProfileHandle hProfile = 0;
|
||||
status = NvAPI_DRS_GetCurrentGlobalProfile(hSession, &hProfile);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
|
||||
// load settings for querying
|
||||
status = NvAPI_DRS_LoadSettings(hSession);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
|
||||
//get the preferred power management mode for Second Life
|
||||
NVDRS_SETTING drsSetting = {0};
|
||||
drsSetting.version = NVDRS_SETTING_VER;
|
||||
status = NvAPI_DRS_GetSetting(hSession, hProfile, PREFERRED_PSTATE_ID, &drsSetting);
|
||||
if (status == NVAPI_SETTING_NOT_FOUND)
|
||||
{ //only override if the user hasn't specifically set this setting
|
||||
// (4) Specify that we want the VSYNC disabled setting
|
||||
// first we fill the NVDRS_SETTING struct, then we call the function
|
||||
drsSetting.version = NVDRS_SETTING_VER;
|
||||
drsSetting.settingId = PREFERRED_PSTATE_ID;
|
||||
drsSetting.settingType = NVDRS_DWORD_TYPE;
|
||||
drsSetting.u32CurrentValue = PREFERRED_PSTATE_PREFER_MAX;
|
||||
status = NvAPI_DRS_SetSetting(hSession, hProfile, &drsSetting);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
|
||||
// (5) Now we apply (or save) our changes to the system
|
||||
status = NvAPI_DRS_SaveSettings(hSession);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//#define DEBUGGING_SEH_FILTER 1
|
||||
#if DEBUGGING_SEH_FILTER
|
||||
# define WINMAIN DebuggingWinMain
|
||||
@@ -157,6 +249,27 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
NvAPI_Status status;
|
||||
|
||||
// Initialize NVAPI
|
||||
status = NvAPI_Initialize();
|
||||
NvDRSSessionHandle hSession = 0;
|
||||
|
||||
if (status == NVAPI_OK)
|
||||
{
|
||||
// Create the session handle to access driver settings
|
||||
status = NvAPI_DRS_CreateSession(&hSession);
|
||||
if (status != NVAPI_OK)
|
||||
{
|
||||
nvapi_error(status);
|
||||
}
|
||||
else
|
||||
{
|
||||
//override driver setting as needed
|
||||
ll_nvapi_init(hSession);
|
||||
}
|
||||
}
|
||||
|
||||
// Have to wait until after logging is initialized to display LFH info
|
||||
if (num_heaps > 0)
|
||||
{
|
||||
@@ -224,6 +337,15 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
|
||||
LLAppViewer::sUpdaterInfo = NULL ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// (NVAPI) (6) We clean up. This is analogous to doing a free()
|
||||
if (hSession)
|
||||
{
|
||||
NvAPI_DRS_DestroySession(hSession);
|
||||
hSession = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,6 +68,12 @@ public:
|
||||
msg += ": " + content["message"].asString();
|
||||
}
|
||||
llinfos << msg << llendl;
|
||||
|
||||
if (content.has("report_id"))
|
||||
{
|
||||
gSavedSettings.setS32("CrashReportID", content["report_id"].asInteger());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
virtual AIHTTPTimeoutPolicy const& getHTTPTimeoutPolicy(void) const
|
||||
|
||||
@@ -626,6 +626,10 @@ void LLFeatureManager::applyBaseMasks()
|
||||
{
|
||||
maskFeatures("GeForceFX");
|
||||
}
|
||||
if (gGLManager.mIsIntel && gGLManager.mGLVersion<3.0f)
|
||||
{
|
||||
maskFeatures("IntelPre30");
|
||||
}
|
||||
if (gGLManager.mIsIntel)
|
||||
{
|
||||
maskFeatures("Intel");
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
#include "llfloaterfriends.h"
|
||||
|
||||
|
||||
#include "llsdutil_math.h"
|
||||
#include "llagent.h"
|
||||
#include "llavataractions.h"
|
||||
#include "llavatarnamecache.h"
|
||||
|
||||
@@ -1062,7 +1062,7 @@ void LLFolderViewItem::draw()
|
||||
&& root_is_loading
|
||||
&& mShowLoadStatus))
|
||||
{
|
||||
std::string load_string = " ( " + LLTrans::getString("LoadingData") + " ) ";
|
||||
static std::string const load_string = " ( " + LLTrans::getString("LoadingData") + " ) ";
|
||||
font->renderUTF8(load_string, 0, right_x, y, sSearchStatusColor,
|
||||
LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW,
|
||||
S32_MAX, S32_MAX, &right_x, FALSE);
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
//
|
||||
const char* DEFAULT_DESC = "(No Description)";
|
||||
const F32 DELAY_BEFORE_SHOW_TIP = 0.35f;
|
||||
const F32 DELAY_BEFORE_REFRESH_TIP = 0.50f;
|
||||
|
||||
//
|
||||
// Local globals
|
||||
@@ -113,6 +114,9 @@ LLHoverView::LLHoverView(const std::string& name, const LLRect& rect)
|
||||
mUseHover = TRUE;
|
||||
mTyping = FALSE;
|
||||
mHoverOffset.clearVec();
|
||||
//<singu>
|
||||
mLastTextHoverObject = NULL;
|
||||
//</singu>
|
||||
}
|
||||
|
||||
LLHoverView::~LLHoverView()
|
||||
@@ -139,6 +143,9 @@ void LLHoverView::updateHover(LLTool* current_tool)
|
||||
mStartHoverPickTimer = TRUE;
|
||||
// Clear the existing text so that we do not briefly show the wrong data.
|
||||
mText.clear();
|
||||
//<singu>
|
||||
mLastTextHoverObject = NULL;
|
||||
//</singu>
|
||||
}
|
||||
|
||||
if (mDoneHoverPick)
|
||||
@@ -222,6 +229,18 @@ void LLHoverView::updateText()
|
||||
LLViewerObject* hit_object = getLastHoverObject();
|
||||
std::string line;
|
||||
|
||||
//<singu>
|
||||
if (hit_object == mLastTextHoverObject &&
|
||||
!(mLastTextHoverObjectTimer.getStarted() && mLastTextHoverObjectTimer.hasExpired()))
|
||||
{
|
||||
// mText is already up to date.
|
||||
return;
|
||||
}
|
||||
mLastTextHoverObject = hit_object;
|
||||
mLastTextHoverObjectTimer.stop();
|
||||
bool retrieving_data = false;
|
||||
//</singu>
|
||||
|
||||
mText.clear();
|
||||
if ( hit_object )
|
||||
{
|
||||
@@ -403,6 +422,7 @@ void LLHoverView::updateText()
|
||||
else
|
||||
{
|
||||
line.append(LLTrans::getString("RetrievingData"));
|
||||
retrieving_data = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -417,12 +437,14 @@ void LLHoverView::updateText()
|
||||
else
|
||||
{
|
||||
line.append(LLTrans::getString("RetrievingData"));
|
||||
retrieving_data = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
line.append(LLTrans::getString("RetrievingData"));
|
||||
retrieving_data = true;
|
||||
}
|
||||
mText.push_back(line);
|
||||
|
||||
@@ -514,6 +536,7 @@ void LLHoverView::updateText()
|
||||
{
|
||||
LLStringUtil::format_map_t args;
|
||||
args["[MESSAGE]"] = LLTrans::getString("RetrievingData");
|
||||
retrieving_data = true;
|
||||
line.append(LLTrans::getString("TooltipForSaleMsg", args));
|
||||
}
|
||||
mText.push_back(line);
|
||||
@@ -604,6 +627,7 @@ void LLHoverView::updateText()
|
||||
else
|
||||
{
|
||||
line.append(LLTrans::getString("RetrievingData"));
|
||||
retrieving_data = true;
|
||||
}
|
||||
}
|
||||
else if(gCacheName->getFullName(owner, name))
|
||||
@@ -616,11 +640,13 @@ void LLHoverView::updateText()
|
||||
else
|
||||
{
|
||||
line.append(LLTrans::getString("RetrievingData"));
|
||||
retrieving_data = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
line.append(LLTrans::getString("RetrievingData"));
|
||||
retrieving_data = true;
|
||||
}
|
||||
mText.push_back(line);
|
||||
|
||||
@@ -699,8 +725,15 @@ void LLHoverView::updateText()
|
||||
mText.push_back(line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//<singu>
|
||||
if (retrieving_data)
|
||||
{
|
||||
// Keep doing this twice per second, until all data was retrieved.
|
||||
mLastTextHoverObjectTimer.start(DELAY_BEFORE_REFRESH_TIP);
|
||||
}
|
||||
//</singu>
|
||||
}
|
||||
|
||||
void LLHoverView::draw()
|
||||
{
|
||||
|
||||
@@ -105,6 +105,8 @@ protected:
|
||||
|
||||
// If not null and not dead, we're over an object.
|
||||
LLPointer<LLViewerObject> mLastHoverObject;
|
||||
LLViewerObject* mLastTextHoverObject; // Singu extension: the value of mLastHoverObject that corresponds to mText.
|
||||
LLFrameTimer mLastTextHoverObjectTimer; // Singu extension: times how long ago the text was updated (while retrieving data).
|
||||
LLPickInfo mLastPickInfo;
|
||||
|
||||
// If not LLVector3d::ZERO, we're over land.
|
||||
|
||||
@@ -1414,7 +1414,7 @@ void LLMeshUploadThread::preStart()
|
||||
|
||||
AIMeshUpload::AIMeshUpload(LLMeshUploadThread::instance_list& data, LLVector3& scale, bool upload_textures, bool upload_skin, bool upload_joints, std::string const& upload_url, bool do_upload,
|
||||
LLHandle<LLWholeModelFeeObserver> const& fee_observer, LLHandle<LLWholeModelUploadObserver> const& upload_observer) :
|
||||
#ifdef CWDEBUG
|
||||
#if defined(CWDEBUG) || defined(DEBUG_CURLIO)
|
||||
AIStateMachine(false),
|
||||
#endif
|
||||
mMeshUpload(new AIStateMachineThread<LLMeshUploadThread>(CWD_ONLY(false))), mWholeModelUploadURL(upload_url)
|
||||
|
||||
@@ -1038,8 +1038,10 @@ void LLPanelLogin::onSelectGrid(LLUICtrl *ctrl)
|
||||
{
|
||||
HippoGridInfo* info(new HippoGridInfo("")); // Start off with empty grid name, otherwise we don't know what to name
|
||||
info->setLoginUri(grid);
|
||||
if (info->retrieveGridInfo()) // There's info from this URI
|
||||
try
|
||||
{
|
||||
info->getGridInfo();
|
||||
|
||||
grid = info->getGridName();
|
||||
if (HippoGridInfo* nick_info = gHippoGridManager->getGrid(info->getGridNick())) // Grid of same nick exists
|
||||
{
|
||||
@@ -1051,8 +1053,23 @@ void LLPanelLogin::onSelectGrid(LLUICtrl *ctrl)
|
||||
gHippoGridManager->addGrid(info); // deletes info if not needed (existing or no name)
|
||||
}
|
||||
}
|
||||
else
|
||||
catch(AIAlert::ErrorCode const& error)
|
||||
{
|
||||
// Inform the user of the problem, but only if something was entered that at least looks like a Login URI.
|
||||
std::string::size_type pos1 = grid.find('.');
|
||||
std::string::size_type pos2 = grid.find_last_of(".:");
|
||||
if (grid.substr(0, 4) == "http" || (pos1 != std::string::npos && pos1 != pos2))
|
||||
{
|
||||
if (error.getCode() == HTTP_METHOD_NOT_ALLOWED || error.getCode() == HTTP_OK)
|
||||
{
|
||||
AIAlert::add("GridInfoError", error);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Append GridInfoErrorInstruction to error message.
|
||||
AIAlert::add("GridInfoError", AIAlert::Error(AIAlert::Prefix(), AIAlert::not_modal, error, "GridInfoErrorInstruction"));
|
||||
}
|
||||
}
|
||||
delete info;
|
||||
grid = gHippoGridManager->getCurrentGridName();
|
||||
}
|
||||
|
||||
@@ -45,7 +45,8 @@ typedef std::map<std::string, std::string> controller_map_t;
|
||||
typedef std::map<std::string, F32> default_controller_map_t;
|
||||
|
||||
#define MIN_REQUIRED_PIXEL_AREA_AVATAR_PHYSICS_MOTION 0.f
|
||||
#define TIME_ITERATION_STEP 0.1f
|
||||
#define TIME_ITERATION_STEP 0.05f
|
||||
#define MINIMUM_UPDATE_TIMESTEP 0.025f
|
||||
|
||||
inline F64 llsgn(const F64 a)
|
||||
{
|
||||
@@ -592,7 +593,7 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)
|
||||
const F32 time_delta = time - mLastTime;
|
||||
|
||||
// Don't update too frequently, to avoid precision errors from small time slices.
|
||||
if (time_delta <= .01)
|
||||
if (time_delta <= MINIMUM_UPDATE_TIMESTEP)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -889,4 +890,4 @@ void LLPhysicsMotion::reset()
|
||||
mCharacter->setVisualParamWeight((*iter).mParam,(*iter).mParam->getDefaultWeight());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "llagentcamera.h"
|
||||
#include "llbutton.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerkeyboard.h"
|
||||
#include "lldrawable.h"
|
||||
#include "llhoverview.h"
|
||||
#include "llhudmanager.h"
|
||||
@@ -312,9 +313,15 @@ BOOL LLToolCamera::handleMouseUp(S32 x, S32 y, MASK mask)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool right_hold_mouse_walk=false;
|
||||
|
||||
BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
if(right_hold_mouse_walk)
|
||||
{
|
||||
agent_push_forward(KEYSTATE_LEVEL);
|
||||
}
|
||||
|
||||
S32 dx = gViewerWindow->getCurrentMouseDX();
|
||||
S32 dy = gViewerWindow->getCurrentMouseDY();
|
||||
|
||||
@@ -449,8 +456,36 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL LLToolCamera::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
if(mMouseSteering)
|
||||
{
|
||||
agent_push_forward(KEYSTATE_DOWN);
|
||||
right_hold_mouse_walk = true;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLToolCamera::handleRightMouseUp(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
if(mMouseSteering || right_hold_mouse_walk)
|
||||
{
|
||||
agent_push_forward(KEYSTATE_UP);
|
||||
right_hold_mouse_walk = false;
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void LLToolCamera::onMouseCaptureLost()
|
||||
{
|
||||
releaseMouse();
|
||||
handleRightMouseUp(0,0,0);
|
||||
}
|
||||
|
||||
@@ -47,6 +47,8 @@ public:
|
||||
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleRightMouseUp(S32 x, S32 y, MASK mask);
|
||||
|
||||
virtual void onMouseCaptureLost();
|
||||
|
||||
|
||||
@@ -298,6 +298,11 @@ LLUserAuth::UserAuthcode LLUserAuth::authResponse()
|
||||
|
||||
// if curl was ok, parse the download area.
|
||||
CURLcode result = mResponder->result_code();
|
||||
if (is_internal_http_error(mResponder->http_status()))
|
||||
{
|
||||
// result can be a meaningless CURLE_OK in the case of an internal error.
|
||||
result = CURLE_FAILED_INIT; // Just some random error to get the default case below.
|
||||
}
|
||||
switch (result)
|
||||
{
|
||||
case CURLE_OK:
|
||||
|
||||
@@ -725,6 +725,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo
|
||||
|
||||
static LLCullResult result;
|
||||
LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD;
|
||||
LLPipeline::sUnderWaterRender = LLViewerCamera::getInstance()->cameraUnderWater() ? TRUE : FALSE;
|
||||
gPipeline.updateCull(*LLViewerCamera::getInstance(), result, water_clip);
|
||||
stop_glerror();
|
||||
|
||||
@@ -949,7 +950,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo
|
||||
{
|
||||
gGL.setColorMask(true, true);
|
||||
|
||||
if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)
|
||||
if (LLPipeline::sRenderDeferred)
|
||||
{
|
||||
gPipeline.mDeferredScreen.bindTarget();
|
||||
glClearColor(1,0,1,1);
|
||||
@@ -1035,7 +1036,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo
|
||||
}
|
||||
|
||||
gGL.setColorMask(true, false);
|
||||
if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)
|
||||
if (LLPipeline::sRenderDeferred)
|
||||
{
|
||||
gPipeline.renderGeomDeferred(*LLViewerCamera::getInstance());
|
||||
}
|
||||
@@ -1071,7 +1072,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo
|
||||
|
||||
if (to_texture)
|
||||
{
|
||||
if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)
|
||||
if (LLPipeline::sRenderDeferred)
|
||||
{
|
||||
gPipeline.mDeferredScreen.flush();
|
||||
if(gPipeline.mDeferredScreen.getFBO())
|
||||
@@ -1098,7 +1099,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot, boo
|
||||
}
|
||||
//gGL.flush();
|
||||
|
||||
if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)
|
||||
if (LLPipeline::sRenderDeferred)
|
||||
{
|
||||
gPipeline.renderDeferredLighting();
|
||||
}
|
||||
|
||||
@@ -94,4 +94,5 @@ protected:
|
||||
|
||||
extern LLViewerKeyboard gViewerKeyboard;
|
||||
extern bool isCrouch;
|
||||
void agent_push_forward(EKeystate s);
|
||||
#endif // LL_LLVIEWERKEYBOARD_H
|
||||
|
||||
@@ -4150,6 +4150,7 @@ void reset_view_final( BOOL proceed )
|
||||
}
|
||||
gAgentCamera.resetView(TRUE, TRUE);
|
||||
gAgentCamera.setLookAt(LOOKAT_TARGET_CLEAR);
|
||||
gSavedSettings.setBOOL("SinguMotionResetsCamera", true);
|
||||
|
||||
if(gAgentCamera.cameraCustomizeAvatar() && LLFloaterCustomize::instanceExists())
|
||||
LLFloaterCustomize::getInstance()->close();
|
||||
|
||||
@@ -1219,6 +1219,12 @@ S32 LLViewerTextureList::getMinVideoRamSetting()
|
||||
// Returns max setting for TextureMemory (in MB)
|
||||
S32 LLViewerTextureList::getMaxVideoRamSetting(bool get_recommended)
|
||||
{
|
||||
#if LL_LINUX
|
||||
if (gGLManager.mIsIntel && gGLManager.mGLVersion >= 3.f && !gGLManager.mVRAM)
|
||||
{
|
||||
gGLManager.mVRAM = 512;
|
||||
}
|
||||
#endif
|
||||
S32 max_texmem;
|
||||
if (gGLManager.mVRAM != 0)
|
||||
{
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
#include "llaudioengine.h" // mute on minimize
|
||||
#include "llassetstorage.h"
|
||||
#include "llfontgl.h"
|
||||
#include "llfontfreetype.h"
|
||||
#include "llmousehandler.h"
|
||||
#include "llrect.h"
|
||||
#include "llsky.h"
|
||||
@@ -2798,7 +2799,7 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
|
||||
case KEY_RIGHT:
|
||||
case KEY_UP:
|
||||
case KEY_DOWN:
|
||||
if (mask & MASK_CONTROL)
|
||||
if (mask == MASK_CONTROL)
|
||||
break;
|
||||
case KEY_PAGE_UP:
|
||||
case KEY_PAGE_DOWN:
|
||||
@@ -4231,7 +4232,7 @@ BOOL LLViewerWindow::mousePointOnLandGlobal(const S32 x, const S32 y, LLVector3d
|
||||
LLVector3 probe_point_region;
|
||||
|
||||
// walk forwards to find the point
|
||||
for (mouse_dir_scale = FIRST_PASS_STEP; mouse_dir_scale < gAgentCamera.mDrawDistance; mouse_dir_scale += FIRST_PASS_STEP)
|
||||
for (mouse_dir_scale = FIRST_PASS_STEP; mouse_dir_scale < gAgentCamera.mDrawDistance * 4; mouse_dir_scale += FIRST_PASS_STEP)
|
||||
{
|
||||
LLVector3d mouse_direction_global_d;
|
||||
mouse_direction_global_d.setVec(mouse_direction_global * mouse_dir_scale);
|
||||
|
||||
@@ -116,6 +116,7 @@
|
||||
#include "aifile.h"
|
||||
|
||||
#include "llavatarname.h"
|
||||
#include "../lscript/lscript_byteformat.h"
|
||||
|
||||
#include "hippogridmanager.h"
|
||||
|
||||
@@ -6606,14 +6607,8 @@ void LLVOAvatar::getOffObject()
|
||||
|
||||
if (sit_object && !sit_object->permYouOwner() && gSavedSettings.getBOOL("RevokePermsOnStandUp"))
|
||||
{
|
||||
gMessageSystem->newMessageFast(_PREHASH_RevokePermissions);
|
||||
gMessageSystem->nextBlockFast(_PREHASH_AgentData);
|
||||
gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
|
||||
gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
|
||||
gMessageSystem->nextBlockFast(_PREHASH_Data);
|
||||
gMessageSystem->addUUIDFast(_PREHASH_ObjectID, sit_object->getID());
|
||||
gMessageSystem->addU32Fast(_PREHASH_ObjectPermissions, 0xFFFFFFFF);
|
||||
gAgent.sendReliableMessage();
|
||||
U32 permissions = LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_TRIGGER_ANIMATION] | LSCRIPTRunTimePermissionBits[SCRIPT_PERMISSION_OVERRIDE_ANIMATIONS];
|
||||
gAgent.sendRevokePermissions(sit_object->getID(), permissions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ void XMLRPCResponder::completed_headers(U32 status, std::string const& reason, A
|
||||
|
||||
void XMLRPCResponder::completedRaw(U32 status, std::string const& reason, LLChannelDescriptors const& channels, buffer_ptr_t const& buffer)
|
||||
{
|
||||
if (mCode == CURLE_OK)
|
||||
if (mCode == CURLE_OK && !is_internal_http_error(status))
|
||||
{
|
||||
mBufferSize = buffer->count(channels.in());
|
||||
if (200 <= status && status < 400)
|
||||
|
||||
@@ -138,8 +138,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur"
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,8,4,5433
|
||||
PRODUCTVERSION 1,8,4,5433
|
||||
FILEVERSION ${vMAJOR},${vMINOR},${vPATCH},${vBUILD}
|
||||
PRODUCTVERSION ${vMAJOR},${vMINOR},${vPATCH},${vBUILD}
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@@ -156,12 +156,12 @@ BEGIN
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Siana Gearz"
|
||||
VALUE "FileDescription", "Singularity Viewer"
|
||||
VALUE "FileVersion", "1.8.4.5433"
|
||||
VALUE "FileVersion", "${vMAJOR}.${vMINOR}.${vPATCH}.${vBUILD}"
|
||||
VALUE "InternalName", "Second Life"
|
||||
VALUE "LegalCopyright", "Copyright © 2001-2010, Linden Research, Inc., Copyright 2010 Siana Gearz"
|
||||
VALUE "OriginalFilename", "SingularityViewer.exe"
|
||||
VALUE "ProductName", "Singularity Viewer"
|
||||
VALUE "ProductVersion", "1.8.4.5433"
|
||||
VALUE "ProductVersion", "${vMAJOR}.${vMINOR}.${vPATCH}.${vBUILD}"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
@@ -138,8 +138,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur"
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,8,4,5433
|
||||
PRODUCTVERSION 1,8,4,5433
|
||||
FILEVERSION ${vMAJOR},${vMINOR},${vPATCH},${vBUILD}
|
||||
PRODUCTVERSION ${vMAJOR},${vMINOR},${vPATCH},${vBUILD}
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
@@ -156,12 +156,12 @@ BEGIN
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Siana Gearz"
|
||||
VALUE "FileDescription", "Singularity Viewer"
|
||||
VALUE "FileVersion", "1.8.4.5433"
|
||||
VALUE "FileVersion", "${vMAJOR}.${vMINOR}.${vPATCH}.${vBUILD}"
|
||||
VALUE "InternalName", "Second Life"
|
||||
VALUE "LegalCopyright", "Copyright © 2001-2010, Linden Research, Inc., Copyright 2010 Siana Gearz"
|
||||
VALUE "OriginalFilename", "SingularityViewer.exe"
|
||||
VALUE "ProductName", "Singularity Viewer"
|
||||
VALUE "ProductVersion", "1.8.4.5433"
|
||||
VALUE "ProductVersion", "${vMAJOR}.${vMINOR}.${vPATCH}.${vBUILD}"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
@@ -2,13 +2,10 @@
|
||||
<floater name="floater_about" title="Über Singularity">
|
||||
<tab_container name="about_tab">
|
||||
<panel label="Info" name="support_panel">
|
||||
|
||||
<button label="In Zwischenablage kopieren" name="copy_btn"/>
|
||||
</panel>
|
||||
|
||||
|
||||
|
||||
|
||||
</tab_container>
|
||||
<panel label="Würdigung" name="credits_panel"/>
|
||||
<panel label="Lizenzen" name="licenses_panel"/>
|
||||
</tab_container>
|
||||
<string name="you_are_at">Sie befinden sich in [POSITION]</string>
|
||||
</floater>
|
||||
|
||||
@@ -237,7 +237,7 @@ Um direkt zu kaufen, klicken Sie auf dem betreffenden Land in der Titelleiste au
|
||||
|
||||
|
||||
|
||||
<button tooltip="Zurücksetzen" name="reset_btn"/>
|
||||
<button tool_tip="Zurücksetzen" name="reset_btn"/>
|
||||
<web_browser name="market_browser" trusted_content="true"/>
|
||||
|
||||
<string name="loading_text">Wird geladen...</string>
|
||||
|
||||
@@ -280,7 +280,7 @@ Um direkt zu kaufen, klicken Sie auf dem betreffenden Land in der Titelleiste au
|
||||
|
||||
|
||||
|
||||
<button tooltip="Zurücksetzen" name="reset_btn"/>
|
||||
<button tool_tip="Zurücksetzen" name="reset_btn"/>
|
||||
<web_browser name="market_browser" trusted_content="true"/>
|
||||
|
||||
<string name="loading_text">Wird geladen...</string>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
</menu>
|
||||
<menu label="Hilfe" name="Help">
|
||||
<menu_item_call label="Hilfe zu Snowglobe/Second Life" name="Second Life Help"/>
|
||||
<menu_item_call label="Über Snowglobe..." name="About Second Life..."/>
|
||||
<menu_item_call label="Über [APP_NAME]..." name="About Second Life..."/>
|
||||
</menu>
|
||||
</menu_bar>
|
||||
|
||||
@@ -257,7 +257,7 @@
|
||||
<menu_item_call label="Singularity Problem berichten..." name="Report Singularity Bug..."/>
|
||||
<menu_item_call label="Neue Funktionalität nachfragen..." name="Request New Feature..."/>
|
||||
</menu>
|
||||
<menu_item_call label="Über Snowglobe..." name="About Second Life..."/>
|
||||
<menu_item_call label="Über [APP_NAME]..." name="About Second Life..."/>
|
||||
</menu>
|
||||
<menu label="Singularity" name="Singularity">
|
||||
<menu_item_call label="Alle Dialoge schließen" name="Close All Dialogs"/>
|
||||
|
||||
@@ -1860,8 +1860,6 @@ Ein Grid mit dem gleichen Namen existiert bereits.</notification>
|
||||
|
||||
<notification name="GridInfoNoLoginUri">Eine Login URI wird benötigt um die Grid Informationen ab zu rufen.</notification>
|
||||
|
||||
<notification name="GridInfoError">Grid Info kann nicht vom Server abgerufen werden.</notification>
|
||||
|
||||
<notification name="HelpRenderCompat">Bauten mit erweiterten Hohlräumen oder erweiterten Lochgrößen werden auf anderen Viewern oft nicht korrekt gerendert. Bitte lassen Sie diese Option aktivuert, wenn Sie Ihren Bauten auch auf anderen Viewern korrekt anzeigen lassen wollen.</notification>
|
||||
|
||||
<notification name="ExportFailed">Fehlende Berechtigung zum Exportieren vom Objekt. Exportieren abgebrochen.</notification>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<string name="hippo_label_week">week</string>
|
||||
<string name="TeleportOfferMaturity">[NAME] is offering a TP to [DESTINATION]</string>
|
||||
<string name="TeleportLureMaturity">[NAME]'s teleport lure is to [DESTINATION]</string>
|
||||
<string name="GridInfoError">Grid Info kann nicht vom Server abgerufen werden:</string>
|
||||
|
||||
<!-- Default Args - these arguments will be replaced in all strings -->
|
||||
<string name="SECOND_LIFE">Second Life</string>
|
||||
|
||||
@@ -626,7 +626,7 @@ To buy direct, visit the land and click on the place name in the title bar.
|
||||
<button bottom="-30" follows="top|left" height="25" label="" left="10" name="back_btn" width="25" image_overlay="go-previous.png"/>
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" left_delta="27" name="forward_btn" width="25" image_overlay="go-next.png" />
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" left_delta="27" name="reload_btn" width="25" image_overlay="view-refresh-5.png"/>
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" tooltip="reset" left_delta="27" name="reset_btn" width="25" image_overlay="go-reload.png"/>
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" tool_tip="reset" left_delta="27" name="reset_btn" width="25" image_overlay="go-reload.png"/>
|
||||
<web_browser name="market_browser" trusted_content="true" bottom="25" follows="all" left="10" right="-10" top="-40"/>
|
||||
<text bottom="5" follows="bottom|left" left="10" height="16" name="status_text"/>
|
||||
<string name="loading_text">Loading...</string>
|
||||
|
||||
@@ -749,7 +749,7 @@ To buy direct, visit the land and click on the place name in the title bar.
|
||||
<button bottom="-30" follows="top|left" height="25" label="" left="10" name="back_btn" width="25" image_overlay="go-previous.png"/>
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" left_delta="27" name="forward_btn" width="25" image_overlay="go-next.png" />
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" left_delta="27" name="reload_btn" width="25" image_overlay="go-reload.png"/>
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" tooltip="reset" left_delta="27" name="reset_btn" width="25" image_overlay="go-home.png"/>
|
||||
<button bottom_delta="0" follows="top|left" height="25" label="" tool_tip="reset" left_delta="27" name="reset_btn" width="25" image_overlay="go-home.png"/>
|
||||
<web_browser name="market_browser" trusted_content="true" bottom="25" follows="all" left="10" right="-10" top="-40"/>
|
||||
<text bottom="5" follows="bottom|left" left="10" height="16" name="status_text"/>
|
||||
<string name="loading_text">Loading...</string>
|
||||
|
||||
@@ -60,7 +60,7 @@ Try saving image as 24 bit Targa (.tga).
|
||||
<check_box bottom="37" control_name="TemporaryUpload" enabled="true"
|
||||
follows="bottom|left" font="SansSerifSmall" height="16"
|
||||
initial_value="false" label="Temporary (Free)"
|
||||
left_delta="155" name="temp_check" width="280" tooltip="Sets the asset to be temporary, meaning its free, but in return, only good for a short time before it ceases to exist." />
|
||||
left_delta="155" name="temp_check" width="280" tool_tip="Sets the asset to be temporary, meaning its free, but in return, only good for a short time before it ceases to exist." />
|
||||
<button bottom="10" follows="bottom|right" height="20" label="Cancel" left="165"
|
||||
name="cancel_btn" width="125" />
|
||||
<button bottom="10" follows="bottom|left" height="20" label="Upload ([UPLOADFEE])"
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
can_resize="true" enabled="true" follows="left|top" height="550" left="306"
|
||||
min_height="271" min_width="290" mouse_opaque="true" name="script ed float"
|
||||
rect_control="FloaterOpenObjectRect" title="Script: New Script" width="500" border_drop_shadow_visible="false" border_visible="false" bevel_style="none" border_style="line" border_thickness="0">
|
||||
<button bottom="-545" enabled="true" follows="right|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Reset" label_selected="Reset" left="362"
|
||||
<button bottom="-538" enabled="true" follows="right|bottom" font="SansSerif"
|
||||
halign="center" height="20" label="Reset" label_selected="Reset" left="358"
|
||||
mouse_opaque="true" name="Reset" width="128" />
|
||||
<check_box bottom="-545" enabled="false" follows="left|bottom" font="SansSerif"
|
||||
<check_box bottom="-540" enabled="false" follows="left|bottom" font="SansSerif"
|
||||
height="18" initial_value="true" label="Running" left="12"
|
||||
mouse_opaque="true" name="running" radio_style="false" width="100" />
|
||||
<check_box bottom="-545" enabled="false" follows="left|bottom" font="SansSerif"
|
||||
<check_box bottom="-540" enabled="false" follows="left|bottom" font="SansSerif"
|
||||
height="18" hidden="false" initial_value="true" label="Mono" left="82"
|
||||
mouse_opaque="true" name="mono" radio_style="false" width="100" />
|
||||
<panel bottom="-524" enabled="true" follows="left|top|right|bottom" height="506"
|
||||
|
||||
@@ -1,46 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater bottom="-197" can_close="true" can_drag_on_left="false" can_minimize="false"
|
||||
can_resize="false" enabled="true" height="180" left="439" min_height="100"
|
||||
can_resize="false" enabled="true" height="158" left="439" min_height="100"
|
||||
min_width="100" mouse_opaque="true" name="Give Money"
|
||||
rect_control="FloaterPayRectB" title="" width="300">
|
||||
<button bottom="-74" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
<button bottom="-54" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="L$1" label_selected="L$1" left="108" mouse_opaque="true"
|
||||
name="fastpay 1" scale_image="true" width="80" />
|
||||
<button bottom="-74" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
<button bottom="-54" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="L$5" label_selected="L$5" left="203" mouse_opaque="true"
|
||||
name="fastpay 5" scale_image="true" width="80" />
|
||||
<button bottom="-98" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
<button bottom="-78" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="L$10" label_selected="L$10" left="108" mouse_opaque="true"
|
||||
name="fastpay 10" scale_image="true" width="80" />
|
||||
<button bottom="-98" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
<button bottom="-78" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="L$20" label_selected="L$20" left="203" mouse_opaque="true"
|
||||
name="fastpay 20" scale_image="true" width="80" />
|
||||
<button bottom="-162" enabled="false" font="SansSerif" halign="center" height="20"
|
||||
<button bottom="-142" enabled="false" font="SansSerif" halign="center" height="20"
|
||||
label="Pay" label_selected="Pay" left="140" mouse_opaque="true"
|
||||
name="pay btn" scale_image="true" width="70" />
|
||||
<button bottom="-162" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
<button bottom="-142" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
label="Cancel" label_selected="Cancel" left="213" mouse_opaque="true"
|
||||
name="cancel btn" scale_image="true" width="70" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-25" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="left" height="18" left="8"
|
||||
mouse_opaque="true" name="payee_label" v_pad="0" width="75">
|
||||
name="payee_label" v_pad="0" width="75">
|
||||
Pay resident:
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-25" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="left" height="18" left="85"
|
||||
mouse_opaque="true" name="payee_name" v_pad="0" width="210">
|
||||
name="payee_name" v_pad="0" width="210">
|
||||
[NAME]
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-72" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
bottom="-52" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="right" height="18" left="5"
|
||||
mouse_opaque="true" name="fastpay text" v_pad="0" width="95">
|
||||
name="fastpay text" v_pad="0" width="95">
|
||||
Fast Pay:
|
||||
</text>
|
||||
<text name="message text"
|
||||
bottom="-130" left="12" height="18" width="60"
|
||||
bottom="-110" left="12" height="18" width="60"
|
||||
follows="left|top" font="SansSerif">
|
||||
Message:
|
||||
</text>
|
||||
@@ -49,12 +49,12 @@
|
||||
bevel_style="in" border_style="line" border_thickness="1"
|
||||
follows="left|top|right" font="SansSerif" spell_check="true" />
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-162" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
bottom="-142" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="left" height="18" left="12"
|
||||
mouse_opaque="true" name="amount text" v_pad="0" width="75">
|
||||
name="amount text" v_pad="0" width="75">
|
||||
Amount:
|
||||
</text>
|
||||
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-160"
|
||||
<line_editor bevel_style="in" border_style="line" border_thickness="1" bottom="-140"
|
||||
enabled="true" follows="left|top|right" font="SansSerif"
|
||||
handle_edit_keys_directly="false" height="18" left="81" max_length="9"
|
||||
mouse_opaque="true" name="amount" select_all_on_focus_received="false"
|
||||
|
||||
@@ -1,48 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater bottom="-521" can_close="true" can_drag_on_left="false" can_minimize="false"
|
||||
can_resize="false" enabled="true" height="140" left="690" min_height="100"
|
||||
can_resize="false" enabled="true" height="148" left="690" min_height="100"
|
||||
min_width="100" mouse_opaque="true" name="Give Money"
|
||||
rect_control="FloaterPayRectB" title="" width="300">
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-25" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="right" height="18" left="5"
|
||||
mouse_opaque="true" name="payee_group" v_pad="0" width="75">
|
||||
name="payee_group" v_pad="0" width="75">
|
||||
Pay group:
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="0" drop_shadow_visible="true" enabled="true"
|
||||
follows="left|top" font="SansSerif" h_pad="0" halign="right" height="18"
|
||||
left="5" mouse_opaque="true" name="payee_resident" v_pad="0" width="75">
|
||||
left="5" name="payee_resident" v_pad="0" width="75">
|
||||
Pay resident:
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-25" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="left" height="18" left="85"
|
||||
mouse_opaque="true" name="payee_name" v_pad="0" width="210">
|
||||
name="payee_name" v_pad="0" width="210">
|
||||
[NAME]
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-50" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="right" height="18" left="5"
|
||||
mouse_opaque="true" name="object_name_label" v_pad="0" width="75">
|
||||
name="object_name_label" v_pad="0" width="75">
|
||||
Via object:
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-50" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="left" height="18" left="85"
|
||||
mouse_opaque="true" name="object_name_text" v_pad="0" width="210">
|
||||
name="object_name_text" v_pad="0" width="210">
|
||||
...
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-72" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="right" height="18" left="5"
|
||||
mouse_opaque="true" name="fastpay text" v_pad="0" width="75">
|
||||
name="fastpay text" v_pad="0" width="75">
|
||||
Fast Pay:
|
||||
</text>
|
||||
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-130" drop_shadow_visible="true" enabled="true" follows="left|top"
|
||||
font="SansSerif" h_pad="0" halign="right" height="18" left="5"
|
||||
mouse_opaque="true" name="amount text" v_pad="0" width="75">
|
||||
name="amount text" v_pad="0" width="75">
|
||||
Amount:
|
||||
</text>
|
||||
<button bottom="-74" enabled="true" font="SansSerif" halign="center" height="20"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
mouse_opaque="true" name="Second Life Help" shortcut="F1" width="166">
|
||||
<on_click function="ShowFloater" userdata="help f1" />
|
||||
</menu_item_call>
|
||||
<menu_item_call bottom="-48" enabled="true" height="19" label="About Singularity..." left="0"
|
||||
<menu_item_call bottom="-48" enabled="true" height="19" label="About [APP_NAME]..." left="0"
|
||||
mouse_opaque="true" name="About Second Life..." width="166">
|
||||
<on_click function="ShowFloater" userdata="about" />
|
||||
</menu_item_call>
|
||||
|
||||
@@ -981,7 +981,7 @@
|
||||
<on_click function="PromptShowURL" name="RequestFeature_url" userdata="WebLaunchSinguIssue,http://code.google.com/p/singularity-viewer/issues/entry?template=Feature%20request"/>
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu_item_call bottom="-313" enabled="true" height="19" label="About Singularity..." left="0"
|
||||
<menu_item_call bottom="-313" enabled="true" height="19" label="About [APP_NAME]..." left="0"
|
||||
mouse_opaque="true" name="About Second Life..." width="166">
|
||||
<on_click function="ShowFloater" userdata="about" />
|
||||
</menu_item_call>
|
||||
|
||||
@@ -5801,13 +5801,6 @@ A grid with the same nickname already exists.
|
||||
A login URI is required to retrieve the grid info.
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="GridInfoError"
|
||||
type="alertmodal">
|
||||
Cannot retrieve grid info from server.
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="alertmodal.tga"
|
||||
name="HelpRenderCompat"
|
||||
|
||||
@@ -13,6 +13,15 @@
|
||||
<string name="TeleportLureMaturity">
|
||||
[NAME]'s teleport lure is to [DESTINATION]
|
||||
</string>
|
||||
<string name="GridInfoError">Cannot retrieve grid info from server:</string>
|
||||
<!-- The following entry starts and ends with a ", this is to allow the newline at the beginning. It also requires to use \" for quotes within. -->
|
||||
<string name="GridInfoErrorInstruction">"
|
||||
Make sure you entered the correct Login URI. An example of a Login URI is: \"http://cool.grid.com:8002/\", this url can usually be found on the website of the grid."
|
||||
</string>
|
||||
<string name="GridInfoErrorNoLoginURI">A login URI is required to retrieve the Grid Info.</string>
|
||||
<string name="GridInfoErrorNotFound">404 Page not found</string>
|
||||
<string name="GridInfoErrorNotAllowed">This grid does not support retrieving 'Grid Info'</string>
|
||||
<string name="GridInfoParseError">XML Parse Error: [XML_ERROR]</string>
|
||||
|
||||
<!-- Default Args - these arguments will be replaced in all strings -->
|
||||
<string name="SECOND_LIFE">Second Life</string>
|
||||
@@ -4369,9 +4378,11 @@ Try enclosing path to the editor with double quotes.
|
||||
<string name="completed_from">Teleport completed from</string>
|
||||
|
||||
<!-- AIAlert messages -->
|
||||
<!-- These two do not need translation ;) -->
|
||||
<string name="AIError">"\"[ERROR]\""</string>
|
||||
<string name="AIPrefix">"[PREFIX]: "</string>
|
||||
|
||||
<!-- AIFile exception alerts -->
|
||||
<!-- AIFile exception alerts -->
|
||||
<string name="AIFile_mkdir_Failed_to_create_DIRNAME">Failed to create folder [DIRNAME]: [ERROR]</string>
|
||||
<string name="AIFile_rmdir_Failed_to_remove_DIRNAME">Failed to remove folder [DIRNAME]: [ERROR]</string>
|
||||
<string name="AIFile_fopen_Failed_to_open_FILENAME">Failed to open file "[FILENAME]": [ERROR]</string>
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_about" title="Acerca de Singularity Viewer">
|
||||
<tab_container name="about_tab">
|
||||
<panel label="Información" help_topic="about_support_tab" name="support_panel">
|
||||
<button label="Copiar al portapapeles" name="copy_btn"/>
|
||||
</panel>
|
||||
|
||||
<panel label="Créditos" help_topic="about_credits_tab" name="credits_panel"/>
|
||||
|
||||
<panel label="Licencias" name="licenses_panel"/>
|
||||
</tab_container>
|
||||
<string name="you_are_at">Estás en [POSITION]</string>
|
||||
<tab_container name="about_tab">
|
||||
<panel label="Información" name="support_panel">
|
||||
<button label="Copiar al portapapeles" name="copy_btn"/>
|
||||
</panel>
|
||||
<panel label="Créditos" name="credits_panel"/>
|
||||
<panel label="Licencias" name="licenses_panel"/>
|
||||
</tab_container>
|
||||
<string name="you_are_at">Estás en [POSITION]</string>
|
||||
</floater>
|
||||
|
||||
@@ -488,7 +488,7 @@ subasta. Para comprarlo directamente, visítalo y pulsa en el nombre del terreno
|
||||
<button label="" name="back_btn"/>
|
||||
<button label="" name="forward_btn"/>
|
||||
<button label="" name="reload_btn"/>
|
||||
<button label="" tooltip="restablecer" name="reset_btn"/>
|
||||
<button label="" tool_tip="restablecer" name="reset_btn"/>
|
||||
<web_browser name="market_browser"/>
|
||||
<text name="status_text"/>
|
||||
<string name="loading_text">Cargando...</string>
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
<button label="Activar" name="activate_btn"/>
|
||||
<text_editor name="voice_morphing_link">
|
||||
Suscríbete ahora
|
||||
</text>
|
||||
</text_editor>
|
||||
<scroll_list name="voice_effect_list" tool_tip="Graba una muestra de tu voz y pulsa en un efecto para ver cómo suena.">
|
||||
<scroll_list.columns label="Nombre de la voz" name="name"/>
|
||||
<scroll_list.columns label="Caduca" name="expires"/>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
</menu>
|
||||
<menu name="Help" label="Ayuda" >
|
||||
<menu_item_call name="Second Life Help" label="Ayuda de Second Life"/>
|
||||
<menu_item_call name="About Second Life..." label="Acerca de Singularity..."/>
|
||||
<menu_item_call name="About Second Life..." label="Acerca de [APP_NAME]..."/>
|
||||
</menu>
|
||||
</menu_bar>
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
<menu_item_call label="Informar Fallos de Singularity..." name="Report Singularity Bug..."/>
|
||||
<menu_item_call label="Solicitar Nueva Característica..." name="Request New Feature..."/>
|
||||
</menu>
|
||||
<menu_item_call label="Acerca de Singularity..." name="About Second Life..."/>
|
||||
<menu_item_call label="Acerca de [APP_NAME]..." name="About Second Life..."/>
|
||||
</menu>
|
||||
<!-- ============================= -->
|
||||
<menu label="Singularity" name="Singularity">
|
||||
|
||||
@@ -3262,11 +3262,7 @@ Ya existe un grid con el mismo nombre.
|
||||
<notification name="GridInfoNoLoginUri">
|
||||
Se requiere un URI de inicio de sesión para recuperar la información del grid.
|
||||
</notification>
|
||||
|
||||
<notification name="GridInfoError">
|
||||
No se puede recuperar la información del grid desde el servidor.
|
||||
</notification>
|
||||
|
||||
|
||||
<notification name="HelpRenderCompat">
|
||||
Las construcciones con huecos extendidos o tamaños de agujeros extendidos no se renderizarán adecuadamente en otros visores. Por favor, mantén esta opción marcada si quieres que tus construcciones se vean adecuadamente in otros visores.
|
||||
</notification>
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<string name="hippo_label_week">semana</string>
|
||||
<string name="TeleportOfferMaturity">[NAME] te ofrece un TP a [DESTINATION]</string>
|
||||
<string name="TeleportLureMaturity">[NAME] te ofrece una invitación de teleporte a [DESTINATION]</string>
|
||||
<string name="GridInfoError">No se puede recuperar la información del grid desde el servidor:</string>
|
||||
|
||||
<!-- Default Args - these arguments will be replaced in all strings -->
|
||||
<string name="SECOND_LIFE">Second Life</string>
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="floater_about" title="A propos de Singularity">
|
||||
<tab_container name="about_tab">
|
||||
<panel label="Info" help_topic="about_support_tab" name="support_panel">
|
||||
<button label="Copier dans le presse-papier" name="copy_btn"/>
|
||||
</panel>
|
||||
|
||||
<panel label="Credits" help_topic="about_credits_tab" name="credits_panel"/>
|
||||
|
||||
<panel label="Licenses" name="licenses_panel"/>
|
||||
</tab_container>
|
||||
<panel label="Remerciements" name="credits_panel"/>
|
||||
<panel label="Licenses" name="licenses_panel"/>
|
||||
</tab_container>
|
||||
<string name="you_are_at">You are at [POSITION]</string>
|
||||
</floater>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
Sauvegarder en Targa 24 bits (.tga).
|
||||
</text>
|
||||
<check_box label="Compression sans perte" name="lossless_check"/>
|
||||
<check_box label="Temporaire (Gratuit)" name="temp_check" tooltip="chargement gratuit mais qui disparaitra à votre deéconnection."/>
|
||||
<check_box label="Temporaire (Gratuit)" name="temp_check" tool_tip="chargement gratuit mais qui disparaitra à votre deéconnection."/>
|
||||
<button label="Annuler" name="cancel_btn"/>
|
||||
<button label="Charger ([UPLOADFEE])" name="ok_btn"/>
|
||||
</floater>
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
</flyout_button_item>
|
||||
</flyout_button>
|
||||
<button label="Annuler" name="discard_btn" left="133" width="72" />
|
||||
<check_box label="Image Temporaire (Gratuit)" name="temp_check" tooltip="Comme toute image temporaire elle disparaitra à votre deconnection."/>
|
||||
<check_box label="Image Temporaire (Gratuit)" name="temp_check" tool_tip="Comme toute image temporaire elle disparaitra à votre deconnection."/>
|
||||
<string name="unknown">
|
||||
inconnu
|
||||
</string>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user