diff --git a/.gitignore b/.gitignore
index a299c3d6c..dc5b9dab7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,10 +3,12 @@
*.aps
*.suo
*.vshost.exe
+*/.vs
/bin/
/bin-release/
/bin
/bin-release
+/indra/out/
/indra/viewer-*
/indra/newview/vivox-runtime/
/indra/newview/dbghelp.dll
diff --git a/autobuild.xml b/autobuild.xml
index c3841bd8b..31d81cd87 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -47,40 +47,6 @@
version
1.2.15
- abseil-cpp
-
apr_suite
copyright
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index ab77f9e96..6b5c80cf0 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -19,6 +19,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
include(Variables)
include(00-Common)
include(BuildVersion)
+include(CTest)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -28,9 +29,8 @@ if (NOT CMAKE_BUILD_TYPE)
"Build type. One of: Debug Release RelWithDebInfo" FORCE)
endif (NOT CMAKE_BUILD_TYPE)
-include(Abseil-CPP)
-# Dependencies
-add_subdirectory(${ABSEIL_SRC_DIR} ${ABSEIL_BIN_DIR})
+add_subdirectory(deps)
+
add_subdirectory(cmake)
add_subdirectory(${LIBS_OPEN_PREFIX}aistatemachine)
add_subdirectory(${LIBS_OPEN_PREFIX}llaudio)
diff --git a/indra/cmake/Abseil-CPP.cmake b/indra/cmake/Abseil-CPP.cmake
deleted file mode 100644
index c7bb0f763..000000000
--- a/indra/cmake/Abseil-CPP.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-# -*- cmake -*-
-include(Prebuilt)
-
-set(BUILD_TESTING OFF)
-use_prebuilt_binary(abseil-cpp)
-set(ABSEIL_SRC_DIR ${LIBS_PREBUILT_DIR}/abseil-cpp)
-set(ABSEIL_BIN_DIR ${CMAKE_BINARY_DIR}/abseil-cpp)
-
diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt
index 04ae8dc00..0431ff6bb 100644
--- a/indra/cmake/CMakeLists.txt
+++ b/indra/cmake/CMakeLists.txt
@@ -8,7 +8,6 @@ set(cmake_SOURCE_FILES
CMakeLists.txt
00-Common.cmake
- Abseil-CPP.cmake
AIStateMachine.cmake
APR.cmake
Audio.cmake
@@ -43,6 +42,7 @@ set(cmake_SOURCE_FILES
FindXmlRpcEpi.cmake
FMODSTUDIO.cmake
FreeType.cmake
+ GeneratePrecompiledHeader.cmake
GLOD.cmake
GStreamer010Plugin.cmake
Glui.cmake
diff --git a/indra/cmake/GeneratePrecompiledHeader.cmake b/indra/cmake/GeneratePrecompiledHeader.cmake
new file mode 100644
index 000000000..9ff2062ed
--- /dev/null
+++ b/indra/cmake/GeneratePrecompiledHeader.cmake
@@ -0,0 +1,116 @@
+# -*- cmake -*-
+
+# Distributed under the MIT Software License
+# Copyright (c) 2015-2017 Borislav Stanimirov
+# Modifications Copyright (c) 2019 Cinder Roxley. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy of
+# this software and associated documentation files (the "Software"), to deal in
+# the Software without restriction, including without limitation the rights to
+# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+# of the Software, and to permit persons to whom the Software is furnished to do
+# so, subject to the following conditions:
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+# target_precompiled_header
+#
+# Sets a precompiled header for a given target
+# Args:
+# TARGET_NAME - Name of the target. Only valid after add_library or add_executable
+# PRECOMPILED_HEADER - Header file to precompile
+# PRECOMPILED_SOURCE - MSVC specific source to do the actual precompilation. Ignored on other platforms
+#
+
+macro(target_precompiled_header TARGET_NAME PRECOMPILED_HEADER PRECOMPILED_SOURCE)
+ get_filename_component(PRECOMPILED_HEADER_NAME ${PRECOMPILED_HEADER} NAME)
+
+ if(MSVC)
+ get_filename_component(PRECOMPILED_SOURCE_NAME ${PRECOMPILED_SOURCE} NAME)
+ get_filename_component(PRECOMPILED_HEADER_PATH ${PRECOMPILED_HEADER} DIRECTORY)
+ target_include_directories(${TARGET_NAME} PRIVATE ${PRECOMPILED_HEADER_PATH}) # fixes occasional IntelliSense glitches
+
+ get_filename_component(PRECOMPILED_HEADER_WE ${PRECOMPILED_HEADER} NAME_WE)
+ if(GEN_IS_MULTI_CONFIG)
+ set(PRECOMPILED_BINARY "$(IntDir)/${PRECOMPILED_HEADER_WE}.pch")
+ else()
+ set(PRECOMPILED_BINARY "${CMAKE_CURRENT_BINARY_DIR}/${PRECOMPILED_HEADER_WE}.pch")
+ endif()
+
+ set_source_files_properties(${PRECOMPILED_SOURCE} PROPERTIES
+ COMPILE_OPTIONS "/Yc${PRECOMPILED_HEADER_NAME};/Fp${PRECOMPILED_BINARY}"
+ OBJECT_OUTPUTS "${PRECOMPILED_BINARY}")
+
+ get_target_property(TARGET_SOURCES ${TARGET_NAME} SOURCES)
+ foreach(src ${TARGET_SOURCES})
+ if(${src} MATCHES \\.\(cpp|cxx|cc\)$)
+ set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/${src}" PROPERTIES
+ COMPILE_OPTIONS "/Yu${PRECOMPILED_HEADER_NAME};/FI${PRECOMPILED_HEADER_NAME};/Fp${PRECOMPILED_BINARY}"
+ OBJECT_DEPENDS "${PRECOMPILED_BINARY}"
+ )
+ endif()
+ endforeach()
+ #set_target_properties(${TARGET_NAME} PROPERTIES
+ # COMPILE_OPTIONS "/Yu${PRECOMPILED_HEADER_NAME};/FI${PRECOMPILED_HEADER_NAME};/Fp${PRECOMPILED_BINARY}")
+
+ target_sources(${TARGET_NAME} PRIVATE ${PRECOMPILED_SOURCE} ${PRECOMPILED_HEADER})
+ elseif(CMAKE_GENERATOR STREQUAL Xcode)
+ set_target_properties(
+ ${TARGET_NAME}
+ PROPERTIES
+ XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${PRECOMPILED_HEADER}"
+ XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES"
+ )
+ elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ # Create and set output directory.
+ set(OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/${PRECOMPILED_HEADER_NAME}.gch")
+ make_directory(${OUTPUT_DIR})
+ set(OUTPUT_NAME "${OUTPUT_DIR}/${PRECOMPILED_HEADER_NAME}.gch")
+
+ # Export compiler flags via a generator to a response file
+ set(PCH_FLAGS_FILE "${OUTPUT_DIR}/${PRECOMPILED_HEADER_NAME}.rsp")
+ set(_include_directories "$")
+ set(_compile_definitions "$")
+ set(_compile_flags "$")
+ set(_compile_options "$")
+ set(_include_directories "$<$:-I$\n>")
+ set(_compile_definitions "$<$:-D$\n>")
+ set(_compile_flags "$<$:$\n>")
+ set(_compile_options "$<$:$\n>")
+ file(GENERATE OUTPUT "${PCH_FLAGS_FILE}" CONTENT "${_compile_definitions}${_include_directories}${_compile_flags}${_compile_options}\n")
+
+ # Gather global compiler options, definitions, etc.
+ string(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" CXX_FLAGS)
+ set(COMPILER_FLAGS "${${CXX_FLAGS}} ${CMAKE_CXX_FLAGS}")
+ separate_arguments(COMPILER_FLAGS)
+
+ # Add a custom target for building the precompiled header.
+ add_custom_command(
+ OUTPUT ${OUTPUT_NAME}
+ COMMAND ${CMAKE_CXX_COMPILER} @${PCH_FLAGS_FILE} ${COMPILER_FLAGS} -x c++-header -std=${CXX_STD} -o ${OUTPUT_NAME} ${PRECOMPILED_HEADER}
+ DEPENDS ${PRECOMPILED_HEADER})
+ add_custom_target(${TARGET_NAME}_gch DEPENDS ${OUTPUT_NAME})
+ add_dependencies(${TARGET_NAME} ${TARGET_NAME}_gch)
+
+ # set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_FLAGS "-include ${PRECOMPILED_HEADER_NAME} -Winvalid-pch")
+ get_target_property(SOURCE_FILES ${TARGET_NAME} SOURCES)
+ get_target_property(asdf ${TARGET_NAME} COMPILE_FLAGS)
+ foreach(SOURCE_FILE ${SOURCE_FILES})
+ if(SOURCE_FILE MATCHES \\.\(c|cc|cxx|cpp\)$)
+ set_source_files_properties(${SOURCE_FILE} PROPERTIES
+ COMPILE_FLAGS "-include ${OUTPUT_DIR}/${PRECOMPILED_HEADER_NAME} -Winvalid-pch"
+ )
+ endif()
+ endforeach()
+ else()
+ message(FATAL_ERROR "Unknown generator for target_precompiled_header. [${CMAKE_CXX_COMPILER_ID}]")
+ endif()
+endmacro(target_precompiled_header)
+
diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake
index 43ec796dd..2a8bf40dd 100644
--- a/indra/cmake/Linking.cmake
+++ b/indra/cmake/Linking.cmake
@@ -27,15 +27,15 @@ endif (WINDOWS)
# windows) and CMAKE_BUILD_TYPE on Makefile based generators (like linux). The reason for this is
# that CMAKE_BUILD_TYPE is essentially meaningless at configuration time for IDE generators and
# CMAKE_CFG_INTDIR is meaningless at build time for Makefile generators
-if(WINDOWS OR DARWIN)
+if(GEN_IS_MULTI_CONFIG)
# the cmake xcode and VS generators implicitly append ${CMAKE_CFG_INTDIR} to the library paths for us
# fortunately both windows and darwin are case insensitive filesystems so this works.
set(AUTOBUILD_LIBS_INSTALL_DIRS "${AUTOBUILD_INSTALL_DIR}/lib/")
-else(WINDOWS OR DARWIN)
+else()
# else block is for linux and any other makefile based generators
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
set(AUTOBUILD_LIBS_INSTALL_DIRS ${AUTOBUILD_INSTALL_DIR}/lib/${CMAKE_BUILD_TYPE_LOWER})
-endif(WINDOWS OR DARWIN)
+endif()
if (NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release")
# When we're building something other than Release, append the
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 119c4815b..189efe536 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -19,12 +19,17 @@ endif(NOT DEFINED COMMON_CMAKE_DIR)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+option(GEN_IS_MULTI_CONFIG "" ${_isMultiConfig})
+mark_as_advanced(GEN_IS_MULTI_CONFIG)
+
set(LIBS_CLOSED_PREFIX)
set(LIBS_OPEN_PREFIX)
set(SCRIPTS_PREFIX ../scripts)
set(VIEWER_PREFIX)
set(INTEGRATION_TESTS_PREFIX)
option(LL_TESTS "Build and run unit and integration tests (disable for build timing runs to reduce variation" OFF)
+option(BUILD_TESTING "Build test suite" OFF)
option(INCREMENTAL_LINK "Use incremental linking on win32 builds (enable for faster links on some machines)" OFF)
option(USE_PRECOMPILED_HEADERS "Enable use of precompiled header directives where supported." ON)
@@ -94,34 +99,32 @@ elseif (ADDRESS_SIZE EQUAL 64)
#message(STATUS "ADDRESS_SIZE is 64")
set(ARCH x86_64)
else (ADDRESS_SIZE EQUAL 32)
- #message(STATUS "ADDRESS_SIZE is UNRECOGNIZED: '${ADDRESS_SIZE}'")
- # Use Python's platform.machine() since uname -m isn't available everywhere.
- # Even if you can assume cygwin uname -m, the answer depends on whether
- # you're running 32-bit cygwin or 64-bit cygwin! But even 32-bit Python will
- # report a 64-bit processor.
- execute_process(COMMAND
- "${Python2_EXECUTABLE}" "-c"
- "import platform; print platform.machine()"
- OUTPUT_VARIABLE ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
- # We expect values of the form i386, i686, x86_64, AMD64.
- # In CMake, expressing ARCH.endswith('64') is awkward:
- string(LENGTH "${ARCH}" ARCH_LENGTH)
- math(EXPR ARCH_LEN_2 "${ARCH_LENGTH} - 2")
- string(SUBSTRING "${ARCH}" ${ARCH_LEN_2} 2 ARCH_LAST_2)
- if (ARCH_LAST_2 STREQUAL 64)
- #message(STATUS "ARCH is detected as 64; ARCH is ${ARCH}")
- set(ADDRESS_SIZE 64)
- else()
- #message(STATUS "ARCH is detected as 32; ARCH is ${ARCH}")
- set(ADDRESS_SIZE 32)
- endif ()
+ #message(STATUS "ADDRESS_SIZE is UNDEFINED")
+ if (CMAKE_SIZEOF_VOID_P EQUAL 8)
+ message(STATUS "Size of void pointer is detected as 8; ARCH is 64-bit")
+ set(ARCH x86_64)
+ set(ADDRESS_SIZE 64)
+ elseif (CMAKE_SIZEOF_VOID_P EQUAL 4)
+ message(STATUS "Size of void pointer is detected as 4; ARCH is 32-bit")
+ set(ADDRESS_SIZE 32)
+ set(ARCH i686)
+ else()
+ message(FATAL_ERROR "Unkown Architecture!")
+ endif()
endif (ADDRESS_SIZE EQUAL 32)
-if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(WINDOWS ON BOOL FORCE)
+ if (ADDRESS_SIZE EQUAL 64)
+ set(LL_ARCH ${ARCH}_win64)
+ set(LL_ARCH_DIR ${ARCH}-win64)
+ elseif (ADDRESS_SIZE EQUAL 32)
set(LL_ARCH ${ARCH}_win32)
set(LL_ARCH_DIR ${ARCH}-win32)
-endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ else()
+ message(FATAL_ERROR "Unkown Architecture!")
+ endif ()
+endif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(LINUX ON BOOL FORCE)
diff --git a/indra/deps/CMakeLists.txt b/indra/deps/CMakeLists.txt
new file mode 100644
index 000000000..3525203d6
--- /dev/null
+++ b/indra/deps/CMakeLists.txt
@@ -0,0 +1,44 @@
+project(deps)
+
+include(FetchContent)
+
+set(CMAKE_FOLDER "Third Party")
+
+FetchContent_Declare(
+ Catch2
+ GIT_REPOSITORY https://github.com/catchorg/Catch2.git
+ GIT_TAG v2.10.0
+ )
+FetchContent_Declare(
+ fmt
+ GIT_REPOSITORY https://github.com/fmtlib/fmt.git
+ GIT_TAG 7512a55aa3ae309587ca89668ef9ec4074a51a1f
+ )
+FetchContent_Declare(
+ absl
+ GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
+ GIT_TAG ab3552a18964e7063c8324f45b3896a6a20b08a8
+)
+
+# This is a hack because absl has dumb cmake
+set(OLD_BUILD_TEST ${BUILD_TESTING})
+set(BUILD_TESTING OFF)
+FetchContent_MakeAvailable(absl)
+set(BUILD_TESTING ${OLD_BUILD_TEST})
+
+# Supress warnings inside abseil under MSVC
+if(WINDOWS)
+ target_compile_options(absl_strings PRIVATE /wd4018)
+ target_compile_options(absl_str_format_internal PRIVATE /wd4018)
+ target_compile_options(absl_flags_usage_internal PRIVATE /wd4018)
+endif()
+
+
+if (BUILD_TESTING)
+ FetchContent_MakeAvailable(Catch2)
+endif()
+
+#Download the rest of the libraries
+#FetchContent_MakeAvailable(fmt)
+
+set(CMAKE_FOLDER "")
diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp
index dc12493b8..6de031c91 100644
--- a/indra/llappearance/llavatarappearance.cpp
+++ b/indra/llappearance/llavatarappearance.cpp
@@ -1565,6 +1565,21 @@ BOOL LLAvatarAppearance::teToColorParams( ETextureIndex te, U32 *param_name )
param_name[1] = 1072; //"tattoo_green";
param_name[2] = 1073; //"tattoo_blue";
break;
+ case TEX_HEAD_UNIVERSAL_TATTOO:
+ case TEX_UPPER_UNIVERSAL_TATTOO:
+ case TEX_LOWER_UNIVERSAL_TATTOO:
+ case TEX_SKIRT_TATTOO:
+ case TEX_HAIR_TATTOO:
+ case TEX_EYES_TATTOO:
+ case TEX_LEFT_ARM_TATTOO:
+ case TEX_LEFT_LEG_TATTOO:
+ case TEX_AUX1_TATTOO:
+ case TEX_AUX2_TATTOO:
+ case TEX_AUX3_TATTOO:
+ param_name[0] = 1238; //"tattoo_universal_red";
+ param_name[1] = 1239; //"tattoo_universal_green";
+ param_name[2] = 1240; //"tattoo_universal_blue";
+ break;
default:
llassert(0);
diff --git a/indra/llappearance/llavatarappearancedefines.cpp b/indra/llappearance/llavatarappearancedefines.cpp
index 4d1ad10e2..5f3c7cdaa 100644
--- a/indra/llappearance/llavatarappearancedefines.cpp
+++ b/indra/llappearance/llavatarappearancedefines.cpp
@@ -27,8 +27,11 @@
#include "linden_common.h"
#include "llavatarappearancedefines.h"
-const S32 LLAvatarAppearanceDefines::SCRATCH_TEX_WIDTH = 512;
-const S32 LLAvatarAppearanceDefines::SCRATCH_TEX_HEIGHT = 512;
+#include "indra_constants.h"
+#include
+
+const S32 LLAvatarAppearanceDefines::SCRATCH_TEX_WIDTH = 1024;
+const S32 LLAvatarAppearanceDefines::SCRATCH_TEX_HEIGHT = 1024;
const S32 LLAvatarAppearanceDefines::IMPOSTOR_PERIOD = 2;
using namespace LLAvatarAppearanceDefines;
@@ -65,12 +68,30 @@ LLAvatarAppearanceDictionary::Textures::Textures()
addEntry(TEX_UPPER_TATTOO, new TextureEntry("upper_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
addEntry(TEX_LOWER_TATTOO, new TextureEntry("lower_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_TATTOO));
+ addEntry(TEX_HEAD_UNIVERSAL_TATTOO, new TextureEntry("head_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_UPPER_UNIVERSAL_TATTOO, new TextureEntry("upper_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_LOWER_UNIVERSAL_TATTOO, new TextureEntry("lower_universal_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_SKIRT_TATTOO, new TextureEntry("skirt_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_HAIR_TATTOO, new TextureEntry("hair_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_EYES_TATTOO, new TextureEntry("eyes_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_LEFT_ARM_TATTOO, new TextureEntry("leftarm_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_LEFT_LEG_TATTOO, new TextureEntry("leftleg_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_AUX1_TATTOO, new TextureEntry("aux1_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_AUX2_TATTOO, new TextureEntry("aux2_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+ addEntry(TEX_AUX3_TATTOO, new TextureEntry("aux3_tattoo", TRUE, BAKED_NUM_INDICES, "", LLWearableType::WT_UNIVERSAL));
+
+
addEntry(TEX_HEAD_BAKED, new TextureEntry("head-baked", FALSE, BAKED_HEAD, "head"));
addEntry(TEX_UPPER_BAKED, new TextureEntry("upper-baked", FALSE, BAKED_UPPER, "upper"));
addEntry(TEX_LOWER_BAKED, new TextureEntry("lower-baked", FALSE, BAKED_LOWER, "lower"));
addEntry(TEX_EYES_BAKED, new TextureEntry("eyes-baked", FALSE, BAKED_EYES, "eyes"));
addEntry(TEX_HAIR_BAKED, new TextureEntry("hair-baked", FALSE, BAKED_HAIR, "hair"));
addEntry(TEX_SKIRT_BAKED, new TextureEntry("skirt-baked", FALSE, BAKED_SKIRT, "skirt"));
+ addEntry(TEX_LEFT_ARM_BAKED, new TextureEntry("leftarm-baked", FALSE, BAKED_LEFT_ARM, "leftarm"));
+ addEntry(TEX_LEFT_LEG_BAKED, new TextureEntry("leftleg-baked", FALSE, BAKED_LEFT_LEG, "leftleg"));
+ addEntry(TEX_AUX1_BAKED, new TextureEntry("aux1-baked", FALSE, BAKED_AUX1, "aux1"));
+ addEntry(TEX_AUX2_BAKED, new TextureEntry("aux2-baked", FALSE, BAKED_AUX2, "aux2"));
+ addEntry(TEX_AUX3_BAKED, new TextureEntry("aux3-baked", FALSE, BAKED_AUX3, "aux3"));
}
LLAvatarAppearanceDictionary::BakedTextures::BakedTextures()
@@ -78,35 +99,60 @@ LLAvatarAppearanceDictionary::BakedTextures::BakedTextures()
// Baked textures
addEntry(BAKED_HEAD, new BakedEntry(TEX_HEAD_BAKED,
"head", "a4b9dc38-e13b-4df9-b284-751efb0566ff",
- 3, TEX_HEAD_BODYPAINT, TEX_HEAD_TATTOO, TEX_HEAD_ALPHA,
- 5, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_HAIR, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
+ 4, TEX_HEAD_BODYPAINT, TEX_HEAD_TATTOO, TEX_HEAD_ALPHA, TEX_HEAD_UNIVERSAL_TATTOO,
+ 6, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_HAIR, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA, LLWearableType::WT_UNIVERSAL));
addEntry(BAKED_UPPER, new BakedEntry(TEX_UPPER_BAKED,
"upper_body", "5943ff64-d26c-4a90-a8c0-d61f56bd98d4",
- 7, TEX_UPPER_SHIRT,TEX_UPPER_BODYPAINT, TEX_UPPER_JACKET,
- TEX_UPPER_GLOVES, TEX_UPPER_UNDERSHIRT, TEX_UPPER_TATTOO, TEX_UPPER_ALPHA,
- 8, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_SHIRT, LLWearableType::WT_JACKET, LLWearableType::WT_GLOVES, LLWearableType::WT_UNDERSHIRT, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
+ 8, TEX_UPPER_SHIRT,TEX_UPPER_BODYPAINT, TEX_UPPER_JACKET,
+ TEX_UPPER_GLOVES, TEX_UPPER_UNDERSHIRT, TEX_UPPER_TATTOO, TEX_UPPER_ALPHA, TEX_UPPER_UNIVERSAL_TATTOO,
+ 9, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_SHIRT, LLWearableType::WT_JACKET, LLWearableType::WT_GLOVES, LLWearableType::WT_UNDERSHIRT, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA, LLWearableType::WT_UNIVERSAL));
addEntry(BAKED_LOWER, new BakedEntry(TEX_LOWER_BAKED,
"lower_body", "2944ee70-90a7-425d-a5fb-d749c782ed7d",
- 8, TEX_LOWER_PANTS,TEX_LOWER_BODYPAINT,TEX_LOWER_SHOES, TEX_LOWER_SOCKS,
- TEX_LOWER_JACKET, TEX_LOWER_UNDERPANTS, TEX_LOWER_TATTOO, TEX_LOWER_ALPHA,
- 9, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_PANTS, LLWearableType::WT_SHOES, LLWearableType::WT_SOCKS, LLWearableType::WT_JACKET, LLWearableType::WT_UNDERPANTS, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA));
+ 9, TEX_LOWER_PANTS,TEX_LOWER_BODYPAINT,TEX_LOWER_SHOES, TEX_LOWER_SOCKS,
+ TEX_LOWER_JACKET, TEX_LOWER_UNDERPANTS, TEX_LOWER_TATTOO, TEX_LOWER_ALPHA, TEX_LOWER_UNIVERSAL_TATTOO,
+ 10, LLWearableType::WT_SHAPE, LLWearableType::WT_SKIN, LLWearableType::WT_PANTS, LLWearableType::WT_SHOES, LLWearableType::WT_SOCKS, LLWearableType::WT_JACKET, LLWearableType::WT_UNDERPANTS, LLWearableType::WT_TATTOO, LLWearableType::WT_ALPHA, LLWearableType::WT_UNIVERSAL));
addEntry(BAKED_EYES, new BakedEntry(TEX_EYES_BAKED,
"eyes", "27b1bc0f-979f-4b13-95fe-b981c2ba9788",
- 2, TEX_EYES_IRIS, TEX_EYES_ALPHA,
- 2, LLWearableType::WT_EYES, LLWearableType::WT_ALPHA));
+ 3, TEX_EYES_IRIS, TEX_EYES_TATTOO, TEX_EYES_ALPHA,
+ 3, LLWearableType::WT_EYES, LLWearableType::WT_UNIVERSAL, LLWearableType::WT_ALPHA));
addEntry(BAKED_SKIRT, new BakedEntry(TEX_SKIRT_BAKED,
"skirt", "03e7e8cb-1368-483b-b6f3-74850838ba63",
- 1, TEX_SKIRT,
- 1, LLWearableType::WT_SKIRT));
+ 2, TEX_SKIRT, TEX_SKIRT_TATTOO,
+ 2, LLWearableType::WT_SKIRT, LLWearableType::WT_UNIVERSAL ));
addEntry(BAKED_HAIR, new BakedEntry(TEX_HAIR_BAKED,
"hair", "a60e85a9-74e8-48d8-8a2d-8129f28d9b61",
- 2, TEX_HAIR, TEX_HAIR_ALPHA,
- 2, LLWearableType::WT_HAIR, LLWearableType::WT_ALPHA));
+ 3, TEX_HAIR, TEX_HAIR_TATTOO, TEX_HAIR_ALPHA,
+ 3, LLWearableType::WT_HAIR, LLWearableType::WT_UNIVERSAL, LLWearableType::WT_ALPHA));
+
+ addEntry(BAKED_LEFT_ARM, new BakedEntry(TEX_LEFT_ARM_BAKED,
+ "leftarm", "9f39febf-22d7-0087-79d1-e9e8c6c9ed19",
+ 1, TEX_LEFT_ARM_TATTOO,
+ 1, LLWearableType::WT_UNIVERSAL));
+
+ addEntry(BAKED_LEFT_LEG, new BakedEntry(TEX_LEFT_LEG_BAKED,
+ "leftleg", "054a7a58-8ed5-6386-0add-3b636fb28b78",
+ 1, TEX_LEFT_LEG_TATTOO,
+ 1, LLWearableType::WT_UNIVERSAL));
+
+ addEntry(BAKED_AUX1, new BakedEntry(TEX_AUX1_BAKED,
+ "aux1", "790c11be-b25c-c17e-b4d2-6a4ad786b752",
+ 1, TEX_AUX1_TATTOO,
+ 1, LLWearableType::WT_UNIVERSAL));
+
+ addEntry(BAKED_AUX2, new BakedEntry(TEX_AUX2_BAKED,
+ "aux2", "d78c478f-48c7-5928-5864-8d99fb1f521e",
+ 1, TEX_AUX2_TATTOO,
+ 1, LLWearableType::WT_UNIVERSAL));
+
+ addEntry(BAKED_AUX3, new BakedEntry(TEX_AUX3_BAKED,
+ "aux3", "6a95dd53-edd9-aac8-f6d3-27ed99f3c3eb",
+ 1, TEX_AUX3_TATTOO,
+ 1, LLWearableType::WT_UNIVERSAL));
}
LLAvatarAppearanceDictionary::MeshEntries::MeshEntries()
@@ -267,3 +313,112 @@ LLWearableType::EType LLAvatarAppearanceDictionary::getTEWearableType(ETextureIn
return getInstance()->getTexture(index)->mWearableType;
}
+// static
+BOOL LLAvatarAppearanceDictionary::isBakedImageId(const LLUUID& id)
+{
+ if ((id == IMG_USE_BAKED_EYES) || (id == IMG_USE_BAKED_HAIR) || (id == IMG_USE_BAKED_HEAD) || (id == IMG_USE_BAKED_LOWER) || (id == IMG_USE_BAKED_SKIRT) || (id == IMG_USE_BAKED_UPPER)
+ || (id == IMG_USE_BAKED_LEFTARM) || (id == IMG_USE_BAKED_LEFTLEG) || (id == IMG_USE_BAKED_AUX1) || (id == IMG_USE_BAKED_AUX2) || (id == IMG_USE_BAKED_AUX3) )
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+// static
+EBakedTextureIndex LLAvatarAppearanceDictionary::assetIdToBakedTextureIndex(const LLUUID& id)
+{
+ if (id == IMG_USE_BAKED_EYES)
+ {
+ return BAKED_EYES;
+ }
+ else if (id == IMG_USE_BAKED_HAIR)
+ {
+ return BAKED_HAIR;
+ }
+ else if (id == IMG_USE_BAKED_HEAD)
+ {
+ return BAKED_HEAD;
+ }
+ else if (id == IMG_USE_BAKED_LOWER)
+ {
+ return BAKED_LOWER;
+ }
+ else if (id == IMG_USE_BAKED_SKIRT)
+ {
+ return BAKED_SKIRT;
+ }
+ else if (id == IMG_USE_BAKED_UPPER)
+ {
+ return BAKED_UPPER;
+ }
+ else if (id == IMG_USE_BAKED_LEFTARM)
+ {
+ return BAKED_LEFT_ARM;
+ }
+ else if (id == IMG_USE_BAKED_LEFTLEG)
+ {
+ return BAKED_LEFT_LEG;
+ }
+ else if (id == IMG_USE_BAKED_AUX1)
+ {
+ return BAKED_AUX1;
+ }
+ else if (id == IMG_USE_BAKED_AUX2)
+ {
+ return BAKED_AUX2;
+ }
+ else if (id == IMG_USE_BAKED_AUX3)
+ {
+ return BAKED_AUX3;
+ }
+
+ return BAKED_NUM_INDICES;
+}
+
+//static
+LLUUID LLAvatarAppearanceDictionary::localTextureIndexToMagicId(ETextureIndex t)
+{
+ LLUUID id = LLUUID::null;
+
+ switch (t)
+ {
+ case LLAvatarAppearanceDefines::TEX_HEAD_BAKED:
+ id = IMG_USE_BAKED_HEAD;
+ break;
+ case LLAvatarAppearanceDefines::TEX_UPPER_BAKED:
+ id = IMG_USE_BAKED_UPPER;
+ break;
+ case LLAvatarAppearanceDefines::TEX_LOWER_BAKED:
+ id = IMG_USE_BAKED_LOWER;
+ break;
+ case LLAvatarAppearanceDefines::TEX_EYES_BAKED:
+ id = IMG_USE_BAKED_EYES;
+ break;
+ case LLAvatarAppearanceDefines::TEX_SKIRT_BAKED:
+ id = IMG_USE_BAKED_SKIRT;
+ break;
+ case LLAvatarAppearanceDefines::TEX_HAIR_BAKED:
+ id = IMG_USE_BAKED_HAIR;
+ break;
+ case LLAvatarAppearanceDefines::TEX_LEFT_ARM_BAKED:
+ id = IMG_USE_BAKED_LEFTARM;
+ break;
+ case LLAvatarAppearanceDefines::TEX_LEFT_LEG_BAKED:
+ id = IMG_USE_BAKED_LEFTLEG;
+ break;
+ case LLAvatarAppearanceDefines::TEX_AUX1_BAKED:
+ id = IMG_USE_BAKED_AUX1;
+ break;
+ case LLAvatarAppearanceDefines::TEX_AUX2_BAKED:
+ id = IMG_USE_BAKED_AUX2;
+ break;
+ case LLAvatarAppearanceDefines::TEX_AUX3_BAKED:
+ id = IMG_USE_BAKED_AUX3;
+ break;
+ default:
+ break;
+ }
+
+ return id;
+}
diff --git a/indra/llappearance/llavatarappearancedefines.h b/indra/llappearance/llavatarappearancedefines.h
index 51d75dbb0..444af9c05 100644
--- a/indra/llappearance/llavatarappearancedefines.h
+++ b/indra/llappearance/llavatarappearancedefines.h
@@ -1,3 +1,4 @@
+
/**
* @file llavatarappearancedefines.h
* @brief Various LLAvatarAppearance related definitions
@@ -78,6 +79,22 @@ enum ETextureIndex
TEX_HEAD_TATTOO,
TEX_UPPER_TATTOO,
TEX_LOWER_TATTOO,
+ TEX_HEAD_UNIVERSAL_TATTOO,
+ TEX_UPPER_UNIVERSAL_TATTOO,
+ TEX_LOWER_UNIVERSAL_TATTOO,
+ TEX_SKIRT_TATTOO,
+ TEX_HAIR_TATTOO,
+ TEX_EYES_TATTOO,
+ TEX_LEFT_ARM_TATTOO,
+ TEX_LEFT_LEG_TATTOO,
+ TEX_AUX1_TATTOO,
+ TEX_AUX2_TATTOO,
+ TEX_AUX3_TATTOO,
+ TEX_LEFT_ARM_BAKED, // Pre-composited
+ TEX_LEFT_LEG_BAKED, // Pre-composited
+ TEX_AUX1_BAKED, // Pre-composited
+ TEX_AUX2_BAKED, // Pre-composited
+ TEX_AUX3_BAKED, // Pre-composited
TEX_NUM_INDICES
};
@@ -89,6 +106,11 @@ enum EBakedTextureIndex
BAKED_EYES,
BAKED_SKIRT,
BAKED_HAIR,
+ BAKED_LEFT_ARM,
+ BAKED_LEFT_LEG,
+ BAKED_AUX1,
+ BAKED_AUX2,
+ BAKED_AUX3,
BAKED_NUM_INDICES
};
@@ -224,6 +246,9 @@ public:
// Given a texture entry, determine which wearable type owns it.
static LLWearableType::EType getTEWearableType(ETextureIndex index);
+ static BOOL isBakedImageId(const LLUUID& id);
+ static EBakedTextureIndex assetIdToBakedTextureIndex(const LLUUID& id);
+ static LLUUID localTextureIndexToMagicId(ETextureIndex t);
}; // End LLAvatarAppearanceDictionary
} // End namespace LLAvatarAppearanceDefines
diff --git a/indra/llappearance/llwearable.cpp b/indra/llappearance/llwearable.cpp
index aa2363489..5761c3535 100644
--- a/indra/llappearance/llwearable.cpp
+++ b/indra/llappearance/llwearable.cpp
@@ -438,6 +438,12 @@ LLWearable::EImportResult LLWearable::importStream( std::istream& input_stream,
return LLWearable::FAILURE;
}
+ if (te >= ETextureIndex::TEX_NUM_INDICES) //createLayers() converts to ETextureIndex
+ {
+ LL_WARNS() << "Bad Wearable asset: bad texture index: " << te << LL_ENDL;
+ return LLWearable::FAILURE;
+ }
+
if( !LLUUID::validate( uuid_buffer ) )
{
LL_WARNS() << "Bad Wearable asset: bad texture uuid: "
diff --git a/indra/llappearance/llwearabletype.cpp b/indra/llappearance/llwearabletype.cpp
index ea783c968..b14107f9e 100644
--- a/indra/llappearance/llwearabletype.cpp
+++ b/indra/llappearance/llwearabletype.cpp
@@ -98,6 +98,7 @@ LLWearableDictionary::LLWearableDictionary()
addEntry(LLWearableType::WT_SKIRT, new WearableEntry("skirt", "New Skirt", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_SKIRT, FALSE, TRUE));
addEntry(LLWearableType::WT_ALPHA, new WearableEntry("alpha", "New Alpha", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_ALPHA, FALSE, TRUE));
addEntry(LLWearableType::WT_TATTOO, new WearableEntry("tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_TATTOO, FALSE, TRUE));
+ addEntry(LLWearableType::WT_UNIVERSAL, new WearableEntry("universal", "New Universal", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_UNIVERSAL, FALSE, TRUE));
// [SL:KB] - Patch: Appearance-Misc | Checked: 2011-05-29 (Catznip-2.6)
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry("physics", "New Physics", LLAssetType::AT_CLOTHING, LLInventoryType::ICONNAME_CLOTHING_PHYSICS, TRUE, FALSE));
diff --git a/indra/llappearance/llwearabletype.h b/indra/llappearance/llwearabletype.h
index a7887fa9a..6dec79fcb 100644
--- a/indra/llappearance/llwearabletype.h
+++ b/indra/llappearance/llwearabletype.h
@@ -54,10 +54,11 @@ public:
WT_ALPHA = 13,
WT_TATTOO = 14,
WT_PHYSICS = 15,
- WT_UNKNOWN = 16, // Singu note: used for corrupt wearables that do not have their type set in the inventory database.
+ WT_UNIVERSAL = 16,
+ WT_UNKNOWN = 17, // Singu note: used for corrupt wearables that do not have their type set in the inventory database.
// While all the above values are serialized and stored in the database, this value is local only:
- // When a new item with value 16 is added by upstream, just increase this value to 17 (and WT_COUNT to 18).
- WT_COUNT = 17,
+ // When a new item with value 17 is added by upstream, just increase this value to 18 (and WT_COUNT to 19).
+ WT_COUNT = 18,
WT_INVALID = 255,
WT_NONE = -1,
diff --git a/indra/llcommon/indra_constants.cpp b/indra/llcommon/indra_constants.cpp
index 64cbb1131..daef52756 100644
--- a/indra/llcommon/indra_constants.cpp
+++ b/indra/llcommon/indra_constants.cpp
@@ -45,3 +45,15 @@ const LLUUID GOVERNOR_LINDEN_ID("3d6181b0-6a4b-97ef-18d8-722652995cf1");
const LLUUID REALESTATE_LINDEN_ID("3d6181b0-6a4b-97ef-18d8-722652995cf1");
// Maintenance's group id.
const LLUUID MAINTENANCE_GROUP_ID("dc7b21cd-3c89-fcaa-31c8-25f9ffd224cd");
+
+const LLUUID IMG_USE_BAKED_HEAD ("5a9f4a74-30f2-821c-b88d-70499d3e7183");
+const LLUUID IMG_USE_BAKED_UPPER ("ae2de45c-d252-50b8-5c6e-19f39ce79317");
+const LLUUID IMG_USE_BAKED_LOWER ("24daea5f-0539-cfcf-047f-fbc40b2786ba");
+const LLUUID IMG_USE_BAKED_EYES ("52cc6bb6-2ee5-e632-d3ad-50197b1dcb8a");
+const LLUUID IMG_USE_BAKED_SKIRT ("43529ce8-7faa-ad92-165a-bc4078371687");
+const LLUUID IMG_USE_BAKED_HAIR ("09aac1fb-6bce-0bee-7d44-caac6dbb6c63");
+const LLUUID IMG_USE_BAKED_LEFTARM ("ff62763f-d60a-9855-890b-0c96f8f8cd98");
+const LLUUID IMG_USE_BAKED_LEFTLEG ("8e915e25-31d1-cc95-ae08-d58a47488251");
+const LLUUID IMG_USE_BAKED_AUX1 ("9742065b-19b5-297c-858a-29711d539043");
+const LLUUID IMG_USE_BAKED_AUX2 ("03642e83-2bd1-4eb9-34b4-4c47ed586d2d");
+const LLUUID IMG_USE_BAKED_AUX3 ("edd51b77-fc10-ce7a-4b3d-011dfc349e4f");
diff --git a/indra/llcommon/indra_constants.h b/indra/llcommon/indra_constants.h
index 9936dfd33..142f47e2a 100644
--- a/indra/llcommon/indra_constants.h
+++ b/indra/llcommon/indra_constants.h
@@ -1,3 +1,4 @@
+
/**
* @file indra_constants.h
* @brief some useful short term constants for Indra
@@ -294,6 +295,19 @@ const U32 START_LOCATION_ID_COUNT = 6;
// group constants
const U32 GROUP_MIN_SIZE = 2;
+
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_HEAD;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_UPPER;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_LOWER;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_EYES;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_SKIRT;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_HAIR;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_LEFTARM;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_LEFTLEG;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX1;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX2;
+LL_COMMON_API extern const LLUUID IMG_USE_BAKED_AUX3;
+
// radius within which a chat message is fully audible
const F32 CHAT_WHISPER_RADIUS = 10.f;
const F32 CHAT_NORMAL_RADIUS = 20.f;
diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp
index f843f3c96..1b73507a1 100644
--- a/indra/llcommon/llmemory.cpp
+++ b/indra/llcommon/llmemory.cpp
@@ -102,39 +102,47 @@ void LLMemory::initMaxHeapSizeGB(F32Gigabytes max_heap_size, BOOL prevent_heap_f
//static
void LLMemory::updateMemoryInfo()
{
-#if LL_WINDOWS
- HANDLE self = GetCurrentProcess();
- PROCESS_MEMORY_COUNTERS counters;
-
- if (!GetProcessMemoryInfo(self, &counters, sizeof(counters)))
+#if LL_WINDOWS
+ PROCESS_MEMORY_COUNTERS_EX counters;
+ counters.cb = sizeof(counters);
+
+ if (!GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS*) &counters, sizeof(counters)))
{
LL_WARNS() << "GetProcessMemoryInfo failed" << LL_ENDL;
- return ;
+ return;
}
- sAllocatedMemInKB = (U32Bytes)(counters.WorkingSetSize) ;
- sAllocatedPageSizeInKB = (U32Bytes)(counters.PagefileUsage) ;
+ sAllocatedMemInKB = U64Bytes(counters.WorkingSetSize);
+ sAllocatedPageSizeInKB = (counters.PagefileUsage != 0) ? U64Bytes(counters.PagefileUsage) : U64Bytes(counters.PrivateUsage);
- U32Kilobytes avail_phys, avail_virtual;
- LLMemoryInfo::getAvailableMemoryKB(avail_phys, avail_virtual) ;
- sMaxPhysicalMemInKB = llmin(avail_phys + sAllocatedMemInKB, sMaxHeapSizeInKB);
-
- if(sMaxPhysicalMemInKB > sAllocatedMemInKB)
+ MEMORYSTATUSEX memorystat;
+ memorystat.dwLength = sizeof(memorystat);
+ if (!GlobalMemoryStatusEx(&memorystat))
{
- sAvailPhysicalMemInKB = sMaxPhysicalMemInKB - sAllocatedMemInKB ;
+ LL_WARNS() << "GlobalMemoryStatusEx failed" << LL_ENDL;
+ return;
+ }
+#if (defined(_WIN64) || defined(__amd64__) || defined(__x86_64__))
+ sMaxPhysicalMemInKB = U64Bytes(memorystat.ullTotalPhys);
+ sAvailPhysicalMemInKB = U64Bytes(memorystat.ullAvailPhys);
+#else
+ sMaxPhysicalMemInKB = llmin(U32Kilobytes(U64Bytes(memorystat.ullTotalPhys)), sMaxHeapSizeInKB);
+ if (sMaxPhysicalMemInKB > sAllocatedMemInKB)
+ {
+ sAvailPhysicalMemInKB = U64Bytes(memorystat.ullAvailPhys);;
}
else
{
sAvailPhysicalMemInKB = U32Kilobytes(0);
}
-#else
- //not valid for other systems for now.
- sAllocatedMemInKB = (U32Bytes)LLMemory::getCurrentRSS();
- sMaxPhysicalMemInKB = (U32Bytes)U32_MAX ;
- sAvailPhysicalMemInKB = (U32Bytes)U32_MAX ;
#endif
- return ;
+#else
+ //not valid for other systems for now.
+ sAllocatedMemInKB = U64Bytes(LLMemory::getCurrentRSS());
+ sMaxPhysicalMemInKB = U64Bytes(U32_MAX);
+ sAvailPhysicalMemInKB = U64Bytes(U32_MAX);
+#endif
}
//
@@ -158,7 +166,7 @@ void* LLMemory::tryToAlloc(void* address, U32 size)
return address ;
#else
return (void*)0x01 ; //skip checking
-#endif
+#endif
}
//static
@@ -233,31 +241,31 @@ bool LLMemory::isMemoryPoolLow()
//static
U32Kilobytes LLMemory::getAvailableMemKB()
{
- return sAvailPhysicalMemInKB ;
+ return sAvailPhysicalMemInKB;
}
//static
U32Kilobytes LLMemory::getMaxMemKB()
{
- return sMaxPhysicalMemInKB ;
+ return sMaxPhysicalMemInKB;
}
//static
U32Kilobytes LLMemory::getAllocatedMemKB()
{
- return sAllocatedMemInKB ;
+ return sAllocatedMemInKB;
}
//----------------------------------------------------------------------------
#if defined(LL_WINDOWS)
+//static
U64 LLMemory::getCurrentRSS()
{
- HANDLE self = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS counters;
-
- if (!GetProcessMemoryInfo(self, &counters, sizeof(counters)))
+
+ if (!GetProcessMemoryInfo(GetCurrentProcess(), &counters, sizeof(counters)))
{
LL_WARNS() << "GetProcessMemoryInfo failed" << LL_ENDL;
return 0;
@@ -266,35 +274,7 @@ U64 LLMemory::getCurrentRSS()
return counters.WorkingSetSize;
}
-//static
-U32 LLMemory::getWorkingSetSize()
-{
- PROCESS_MEMORY_COUNTERS pmc ;
- U32 ret = 0 ;
-
- if (GetProcessMemoryInfo( GetCurrentProcess(), &pmc, sizeof(pmc)) )
- {
- ret = pmc.WorkingSetSize ;
- }
-
- return ret ;
-}
-
#elif defined(LL_DARWIN)
-
-/*
- The API used here is not capable of dealing with 64-bit memory sizes, but is available before 10.4.
-
- Once we start requiring 10.4, we can use the updated API, which looks like this:
-
- task_basic_info_64_data_t basicInfo;
- mach_msg_type_number_t basicInfoCount = TASK_BASIC_INFO_64_COUNT;
- if (task_info(mach_task_self(), TASK_BASIC_INFO_64, (task_info_t)&basicInfo, &basicInfoCount) == KERN_SUCCESS)
-
- Of course, this doesn't gain us anything unless we start building the viewer as a 64-bit executable, since that's the only way
- for our memory allocation to exceed 2^32.
-*/
-
// if (sysctl(ctl, 2, &page_size, &size, NULL, 0) == -1)
// {
// LL_WARNS() << "Couldn't get page size" << LL_ENDL;
@@ -307,16 +287,15 @@ U32 LLMemory::getWorkingSetSize()
U64 LLMemory::getCurrentRSS()
{
U64 residentSize = 0;
- task_basic_info_data_t basicInfo;
- mach_msg_type_number_t basicInfoCount = TASK_BASIC_INFO_COUNT;
- if (task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&basicInfo, &basicInfoCount) == KERN_SUCCESS)
+ mach_task_basic_info_data_t basicInfo;
+ mach_msg_type_number_t basicInfoCount = MACH_TASK_BASIC_INFO_COUNT;
+ if (task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t)&basicInfo, &basicInfoCount) == KERN_SUCCESS)
{
- residentSize = basicInfo.resident_size;
-
- // If we ever wanted it, the process virtual size is also available as:
- // virtualSize = basicInfo.virtual_size;
-
-// LL_INFOS() << "resident size is " << residentSize << LL_ENDL;
+// residentSize = basicInfo.resident_size;
+ // Although this method is defined to return the "resident set size,"
+ // in fact what callers want from it is the total virtual memory
+ // consumed by the application.
+ residentSize = basicInfo.virtual_size;
}
else
{
@@ -326,11 +305,6 @@ U64 LLMemory::getCurrentRSS()
return residentSize;
}
-U32 LLMemory::getWorkingSetSize()
-{
- return 0 ;
-}
-
#elif defined(LL_LINUX)
U64 LLMemory::getCurrentRSS()
@@ -342,7 +316,7 @@ U64 LLMemory::getCurrentRSS()
if (fp == NULL)
{
LL_WARNS() << "couldn't open " << statPath << LL_ENDL;
- goto bail;
+ return rss;
}
// Eee-yew! See Documentation/filesystems/proc.txt in your
@@ -361,49 +335,8 @@ U64 LLMemory::getCurrentRSS()
fclose(fp);
-bail:
return rss;
}
-
-U32 LLMemory::getWorkingSetSize()
-{
- return 0 ;
-}
-
-#elif LL_SOLARIS
-#include
-#include
-#include
-#define _STRUCTURED_PROC 1
-#include
-
-U64 LLMemory::getCurrentRSS()
-{
- char path [LL_MAX_PATH]; /* Flawfinder: ignore */
-
- sprintf(path, "/proc/%d/psinfo", (int)getpid());
- int proc_fd = -1;
- if((proc_fd = open(path, O_RDONLY)) == -1){
- LL_WARNS() << "LLmemory::getCurrentRSS() unable to open " << path << ". Returning 0 RSS!" << LL_ENDL;
- return 0;
- }
- psinfo_t proc_psinfo;
- if(read(proc_fd, &proc_psinfo, sizeof(psinfo_t)) != sizeof(psinfo_t)){
- LL_WARNS() << "LLmemory::getCurrentRSS() Unable to read from " << path << ". Returning 0 RSS!" << LL_ENDL;
- close(proc_fd);
- return 0;
- }
-
- close(proc_fd);
-
- return((U64)proc_psinfo.pr_rssize * 1024);
-}
-
-U32 LLMemory::getWorkingSetSize()
-{
- return 0 ;
-}
-
#else
U64 LLMemory::getCurrentRSS()
@@ -411,11 +344,6 @@ U64 LLMemory::getCurrentRSS()
return 0;
}
-U32 LLMemory::getWorkingSetSize()
-{
- return 0;
-}
-
#endif
//--------------------------------------------------------------------------------------------------
@@ -427,7 +355,7 @@ LLMemTracker* LLMemTracker::sInstance = NULL ;
LLMemTracker::LLMemTracker()
{
- mLastAllocatedMem = LLMemory::getWorkingSetSize() ;
+ mLastAllocatedMem = LLMemory::getCurrentRSS() ;
mCapacity = 128 ;
mCurIndex = 0 ;
mCounter = 0 ;
@@ -480,7 +408,7 @@ void LLMemTracker::track(const char* function, const int line)
return ;
}
- U32 allocated_mem = LLMemory::getWorkingSetSize() ;
+ U64 allocated_mem = LLMemory::getCurrentRSS() ;
LLMutexLock lock(mMutexp) ;
diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h
index efd61590a..18af01f65 100644
--- a/indra/llcommon/llmemory.h
+++ b/indra/llcommon/llmemory.h
@@ -133,11 +133,15 @@ template T* LL_NEXT_ALIGNED_ADDRESS_64(T* address)
#if defined(LL_WINDOWS)
return _aligned_malloc(size, align);
#else
+ char* aligned = NULL;
void* mem = malloc( size + (align - 1) + sizeof(void*) );
- char* aligned = ((char*)mem) + sizeof(void*);
- aligned += align - ((uintptr_t)aligned & (align - 1));
+ if (mem)
+ {
+ aligned = ((char*)mem) + sizeof(void*);
+ aligned += align - ((uintptr_t)aligned & (align - 1));
- ((void**)aligned)[-1] = mem;
+ ((void**)aligned)[-1] = mem;
+ }
return aligned;
#endif
}
@@ -365,7 +369,6 @@ public:
// Return the resident set size of the current process, in bytes.
// Return value is zero if not known.
static U64 getCurrentRSS();
- static U32 getWorkingSetSize();
static void* tryToAlloc(void* address, U32 size);
static void initMaxHeapSizeGB(F32Gigabytes max_heap_size, BOOL prevent_heap_failure);
static void updateMemoryInfo() ;
diff --git a/indra/llcommon/llstreamtools.cpp b/indra/llcommon/llstreamtools.cpp
index b7f27c8b6..b3c83dadc 100644
--- a/indra/llcommon/llstreamtools.cpp
+++ b/indra/llcommon/llstreamtools.cpp
@@ -139,7 +139,7 @@ bool skip_to_end_of_next_keyword(const char* keyword, std::istream& input_stream
}
else
{
- int key_index = 1;
+ size_t key_index = 1;
while ( key_index < key_length
&& keyword[key_index - 1] == c
&& input_stream.good())
diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp
index f01615cc2..baf0c028d 100644
--- a/indra/llcommon/llstring.cpp
+++ b/indra/llcommon/llstring.cpp
@@ -577,7 +577,7 @@ std::string utf8str_truncate(const std::string& utf8str, const S32 max_len)
}
// [RLVa:KB] - Checked: RLVa-2.1.0
-std::string utf8str_substr(const std::string& utf8str, const S32 index, const S32 max_len)
+std::string utf8str_substr(const std::string& utf8str, const size_t index, const size_t max_len)
{
if (0 == max_len)
{
@@ -589,7 +589,7 @@ std::string utf8str_substr(const std::string& utf8str, const S32 index, const S3
}
else
{
- S32 cur_char = max_len;
+ size_t cur_char = max_len;
// If we're ASCII, we don't need to do anything
if ((U8)utf8str[index + cur_char] > 0x7f)
@@ -648,7 +648,7 @@ void utf8str_split(std::list& split_list, const std::string& utf8st
}
// [/RLVa:KB]
-std::string utf8str_symbol_truncate(const std::string& utf8str, const S32 symbol_len)
+std::string utf8str_symbol_truncate(const std::string& utf8str, const size_t symbol_len)
{
if (0 == symbol_len)
{
@@ -660,7 +660,7 @@ std::string utf8str_symbol_truncate(const std::string& utf8str, const S32 symbol
}
else
{
- int len = 0, byteIndex = 0;
+ size_t len = 0, byteIndex = 0;
const char* aStr = utf8str.c_str();
size_t origSize = utf8str.size();
diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index c1249984f..ba69408a7 100644
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -702,28 +702,10 @@ LLMemoryInfo::LLMemoryInfo()
refresh();
}
-#if LL_WINDOWS
-static U32Kilobytes LLMemoryAdjustKBResult(U32Kilobytes inKB)
-{
- // Moved this here from llfloaterabout.cpp
-
- //! \bug
- // For some reason, the reported amount of memory is always wrong.
- // The original adjustment assumes it's always off by one meg, however
- // errors of as much as 2520 KB have been observed in the value
- // returned from the GetMemoryStatusEx function. Here we keep the
- // original adjustment from llfoaterabout.cpp until this can be
- // fixed somehow.
- inKB += U32Megabytes(1);
-
- return inKB;
-}
-#endif
-
U32Kilobytes LLMemoryInfo::getPhysicalMemoryKB() const
{
#if LL_WINDOWS
- return LLMemoryAdjustKBResult(U32Kilobytes(mStatsMap["Total Physical KB"].asInteger()));
+ return U32Kilobytes(mStatsMap["Total Physical KB"].asInteger());
#elif LL_DARWIN
// This might work on Linux as well. Someone check...
@@ -740,43 +722,22 @@ U32Kilobytes LLMemoryInfo::getPhysicalMemoryKB() const
phys = (U64)(getpagesize()) * (U64)(get_phys_pages());
return U64Bytes(phys);
-#elif LL_SOLARIS
- U64 phys = 0;
- phys = (U64)(getpagesize()) * (U64)(sysconf(_SC_PHYS_PAGES));
- return U64Bytes(phys);
-
#else
return 0;
#endif
}
-U32Bytes LLMemoryInfo::getPhysicalMemoryClamped() const
-{
- // Return the total physical memory in bytes, but clamp it
- // to no more than U32_MAX
-
- U32Kilobytes phys_kb = getPhysicalMemoryKB();
- if (phys_kb >= U32Gigabytes(4))
- {
- return U32Bytes(U32_MAX);
- }
- else
- {
- return phys_kb;
- }
-}
-
//static
void LLMemoryInfo::getAvailableMemoryKB(U32Kilobytes& avail_physical_mem_kb, U32Kilobytes& avail_virtual_mem_kb)
{
#if LL_WINDOWS
- // Sigh, this shouldn't be a static method, then we wouldn't have to
- // reload this data separately from refresh()
- LLSD statsMap(loadStatsMap());
+ MEMORYSTATUSEX state;
+ state.dwLength = sizeof(state);
+ GlobalMemoryStatusEx(&state);
- avail_physical_mem_kb = (U32Kilobytes)statsMap["Avail Physical KB"].asInteger();
- avail_virtual_mem_kb = (U32Kilobytes)statsMap["Avail Virtual KB"].asInteger();
+ avail_physical_mem_kb = U64Bytes(state.ullAvailPhys);
+ avail_virtual_mem_kb = U64Bytes(state.ullAvailVirtual);
#elif LL_DARWIN
// mStatsMap is derived from vm_stat, look for (e.g.) "kb free":
@@ -924,7 +885,7 @@ LLSD LLMemoryInfo::loadStatsMap()
DWORDLONG div = 1024;
- stats.add("Percent Memory use", state.dwMemoryLoad/div);
+ stats.add("Percent Memory use", state.dwMemoryLoad);
stats.add("Total Physical KB", state.ullTotalPhys/div);
stats.add("Avail Physical KB", state.ullAvailPhys/div);
stats.add("Total page KB", state.ullTotalPageFile/div);
@@ -973,27 +934,33 @@ LLSD LLMemoryInfo::loadStatsMap()
stats.add("PrivateUsage KB", pmem.PrivateUsage/div);
#elif LL_DARWIN
-
- const vm_size_t pagekb(vm_page_size / 1024);
+ vm_size_t page_size_kb;
+ if (host_page_size(mach_host_self(), &page_size_kb) != KERN_SUCCESS)
+ {
+ LL_WARNS() << "Unable to get host page size. Using default value." << LL_ENDL;
+ page_size_kb = 4096;
+ }
+ page_size_kb = page_size_kb / 1024;
+
//
// Collect the vm_stat's
//
{
- vm_statistics_data_t vmstat;
- mach_msg_type_number_t vmstatCount = HOST_VM_INFO_COUNT;
+ vm_statistics64_data_t vmstat;
+ mach_msg_type_number_t vmstatCount = HOST_VM_INFO64_COUNT;
- if (host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t) &vmstat, &vmstatCount) != KERN_SUCCESS)
+ if (host_statistics64(mach_host_self(), HOST_VM_INFO64, (host_info64_t) &vmstat, &vmstatCount) != KERN_SUCCESS)
{
LL_WARNS("LLMemoryInfo") << "Unable to collect memory information" << LL_ENDL;
}
else
{
- stats.add("Pages free KB", pagekb * vmstat.free_count);
- stats.add("Pages active KB", pagekb * vmstat.active_count);
- stats.add("Pages inactive KB", pagekb * vmstat.inactive_count);
- stats.add("Pages wired KB", pagekb * vmstat.wire_count);
+ stats.add("Pages free KB", page_size_kb * vmstat.free_count);
+ stats.add("Pages active KB", page_size_kb * vmstat.active_count);
+ stats.add("Pages inactive KB", page_size_kb * vmstat.inactive_count);
+ stats.add("Pages wired KB", page_size_kb * vmstat.wire_count);
stats.add("Pages zero fill", vmstat.zero_fill_count);
stats.add("Page reactivations", vmstat.reactivations);
@@ -1042,20 +1009,20 @@ LLSD LLMemoryInfo::loadStatsMap()
//
{
- task_basic_info_64_data_t taskinfo;
- unsigned taskinfoSize = sizeof(taskinfo);
-
- if (task_info(mach_task_self(), TASK_BASIC_INFO_64, (task_info_t) &taskinfo, &taskinfoSize) != KERN_SUCCESS)
+ mach_task_basic_info_data_t taskinfo;
+ mach_msg_type_number_t task_count = MACH_TASK_BASIC_INFO_COUNT;
+ if (task_info(mach_task_self(), MACH_TASK_BASIC_INFO, (task_info_t) &taskinfo, &task_count) != KERN_SUCCESS)
{
- LL_WARNS("LLMemoryInfo") << "Unable to collect task information" << LL_ENDL;
- }
- else
- {
- stats.add("Basic suspend count", taskinfo.suspend_count);
- stats.add("Basic virtual memory KB", taskinfo.virtual_size / 1024);
- stats.add("Basic resident memory KB", taskinfo.resident_size / 1024);
- stats.add("Basic new thread policy", taskinfo.policy);
- }
+ LL_WARNS("LLMemoryInfo") << "Unable to collect task information" << LL_ENDL;
+ }
+ else
+ {
+ stats.add("Basic virtual memory KB", taskinfo.virtual_size / 1024);
+ stats.add("Basic resident memory KB", taskinfo.resident_size / 1024);
+ stats.add("Basic max resident memory KB", taskinfo.resident_size_max / 1024);
+ stats.add("Basic new thread policy", taskinfo.policy);
+ stats.add("Basic suspend count", taskinfo.suspend_count);
+ }
}
#elif LL_SOLARIS
diff --git a/indra/llcommon/llsys.h b/indra/llcommon/llsys.h
index accdbb5d2..d96319941 100644
--- a/indra/llcommon/llsys.h
+++ b/indra/llcommon/llsys.h
@@ -114,11 +114,6 @@ public:
U32Kilobytes getPhysicalMemoryKB() const;
- /*! Memory size in bytes, if total memory is >= 4GB then U32_MAX will
- ** be returned.
- */
- U32Bytes getPhysicalMemoryClamped() const; ///< Memory size in clamped bytes
-
//get the available memory infomation in KiloBytes.
static void getAvailableMemoryKB(U32Kilobytes& avail_physical_mem_kb, U32Kilobytes& avail_virtual_mem_kb);
diff --git a/indra/llinventory/llinventorytype.h b/indra/llinventory/llinventorytype.h
index 2350867b4..a7aa1dfbf 100644
--- a/indra/llinventory/llinventorytype.h
+++ b/indra/llinventory/llinventorytype.h
@@ -100,6 +100,7 @@ public:
ICONNAME_CLOTHING_SKIRT,
ICONNAME_CLOTHING_ALPHA,
ICONNAME_CLOTHING_TATTOO,
+ ICONNAME_CLOTHING_UNIVERSAL,
ICONNAME_ANIMATION,
ICONNAME_GESTURE,
diff --git a/indra/llinventory/llsettingsdaycycle.cpp b/indra/llinventory/llsettingsdaycycle.cpp
index 25516ec6e..b170abfbc 100644
--- a/indra/llinventory/llsettingsdaycycle.cpp
+++ b/indra/llinventory/llsettingsdaycycle.cpp
@@ -608,7 +608,7 @@ LLSettingsDay::validation_list_t LLSettingsDay::validationList()
return validation;
}
-LLSettingsDay::CycleTrack_t& LLSettingsDay::getCycleTrack(S32 track)
+LLSettingsDay::CycleTrack_t& LLSettingsDay::getCycleTrack(size_t track)
{
static CycleTrack_t emptyTrack;
if (mDayTracks.size() <= track)
@@ -617,7 +617,7 @@ LLSettingsDay::CycleTrack_t& LLSettingsDay::getCycleTrack(S32 track)
return mDayTracks[track];
}
-const LLSettingsDay::CycleTrack_t& LLSettingsDay::getCycleTrackConst(S32 track) const
+const LLSettingsDay::CycleTrack_t& LLSettingsDay::getCycleTrackConst(size_t track) const
{
static CycleTrack_t emptyTrack;
if (mDayTracks.size() <= track)
diff --git a/indra/llinventory/llsettingsdaycycle.h b/indra/llinventory/llsettingsdaycycle.h
index 8776f6725..bc5f03fa1 100644
--- a/indra/llinventory/llsettingsdaycycle.h
+++ b/indra/llinventory/llsettingsdaycycle.h
@@ -118,8 +118,8 @@ public:
virtual LLSettingsWaterPtr_t buildWater(LLSD) const = 0;
void setInitialized(bool value = true) { mInitialized = value; }
- CycleTrack_t & getCycleTrack(S32 track);
- const CycleTrack_t & getCycleTrackConst(S32 track) const;
+ CycleTrack_t & getCycleTrack(size_t track);
+ const CycleTrack_t & getCycleTrackConst(size_t track) const;
bool clearCycleTrack(S32 track);
bool replaceCycleTrack(S32 track, const CycleTrack_t &source);
bool isTrackEmpty(S32 track) const;
diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp
index 744423a67..a97439044 100644
--- a/indra/llmath/llvolume.cpp
+++ b/indra/llmath/llvolume.cpp
@@ -6331,7 +6331,9 @@ void LLVolumeFace::allocateIndices(S32 num_indices, bool copy)
S32 new_size = ((num_indices * sizeof(U16)) + 0xF) & ~0xF;
if (copy && num_indices && mIndices && mNumIndices)
{
+#if !LL_USE_TCMALLOC
S32 old_size = ((mNumIndices * sizeof(U16)) + 0xF) & ~0xF;
+#endif
mIndices = (U16*)ll_aligned_realloc_16(mIndices, new_size, old_size);
diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt
index b00081882..11b8c800e 100644
--- a/indra/llui/CMakeLists.txt
+++ b/indra/llui/CMakeLists.txt
@@ -24,6 +24,7 @@ include_directories(
)
set(llui_SOURCE_FILES
+ lfidbearer.cpp
llaccordionctrl.cpp
llaccordionctrltab.cpp
llalertdialog.cpp
@@ -101,6 +102,7 @@ set(llui_HEADER_FILES
CMakeLists.txt
ailist.h
+ lfidbearer.h
llaccordionctrl.h
llaccordionctrltab.h
llalertdialog.h
diff --git a/indra/llui/lfidbearer.cpp b/indra/llui/lfidbearer.cpp
new file mode 100644
index 000000000..cc7a3f988
--- /dev/null
+++ b/indra/llui/lfidbearer.cpp
@@ -0,0 +1,33 @@
+/* Copyright (C) 2019 Liru Færs
+ *
+ * LFIDBearer is a class that holds an ID or IDs that menus can use
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA */
+
+#include "linden_common.h"
+#include "lfidbearer.h"
+#include "llmenugl.h"
+
+std::vector LFIDBearer::sMenus = {};
+LFIDBearer* LFIDBearer::sActive = nullptr;
+
+void LFIDBearer::showMenu(LLView* self, LLMenuGL* menu, S32 x, S32 y)
+{
+ sActive = this; // Menu listeners rely on this
+ menu->buildDrawLabels();
+ menu->updateParent(LLMenuGL::sMenuContainer);
+ LLMenuGL::showPopup(self, menu, x, y);
+}
diff --git a/indra/llui/lfidbearer.h b/indra/llui/lfidbearer.h
new file mode 100644
index 000000000..8b4c7684d
--- /dev/null
+++ b/indra/llui/lfidbearer.h
@@ -0,0 +1,45 @@
+/* Copyright (C) 2019 Liru Færs
+ *
+ * LFIDBearer is a class that holds an ID or IDs that menus can use
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA */
+
+#pragma once
+
+#include "lluuid.h"
+
+class LLMenuGL;
+class LLView;
+
+struct LFIDBearer
+{
+ virtual ~LFIDBearer() { if (sActive == this) sActive = nullptr; }
+ virtual LLUUID getStringUUIDSelectedItem() const = 0;
+ virtual uuid_vec_t getSelectedIDs() const = 0;
+ virtual S32 getNumSelected() const = 0;
+
+ template static T* getActive() { return static_cast(sActive); }
+ static LLUUID getActiveSelectedID() { return sActive->getStringUUIDSelectedItem(); }
+ static uuid_vec_t getActiveSelectedIDs() { return sActive->getSelectedIDs(); }
+ static S32 getActiveNumSelected() { return sActive->getNumSelected(); }
+
+ void showMenu(LLView* self, LLMenuGL* menu, S32 x, S32 y);
+ static void addCommonMenu(LLMenuGL* menu) { sMenus.push_back(menu); }
+
+protected:
+ static std::vector sMenus; // Menus that recur, such as general avatars or groups menus
+ static LFIDBearer* sActive;
+};
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index b6279a468..9916c9465 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -178,18 +178,9 @@ LLLineEditor::LLLineEditor(const std::string& name, const LLRect& rect,
sImage = LLUI::getUIImage("sm_rounded_corners_simple.tga");
}
mImage = sImage;
+
// make the popup menu available
- //LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu("menu_texteditor.xml", parent_view);
- LLMenuGL* menu = new LLMenuGL("wot");
- /*if (!menu)
- {
- menu = new LLMenuGL(LLStringUtil::null);
- }*/
- menu->addChild(new LLMenuItemCallGL("Cut", context_cut, NULL, this));
- menu->addChild(new LLMenuItemCallGL("Copy", context_copy, NULL, this));
- menu->addChild(new LLMenuItemCallGL("Paste", context_paste, NULL, this));
- menu->addChild(new LLMenuItemCallGL("Delete", context_delete, NULL, this));
- menu->addChild(new LLMenuItemCallGL("Select All", context_selectall, NULL, this));
+ LLMenuGL* menu = LLUICtrlFactory::getInstance()->buildMenu("menu_texteditor.xml", LLMenuGL::sMenuContainer);
menu->addSeparator();
//menu->setBackgroundColor(gColors.getColor("MenuPopupBgColor"));
menu->setCanTearOff(FALSE);
@@ -452,18 +443,6 @@ void LLLineEditor::deselect()
}
-void LLLineEditor::context_cut(void* data)
-{
- LLLineEditor* line = (LLLineEditor*)data;
- if(line)line->cut();
-}
-void LLLineEditor::context_copy(void* data)
-{
- LLLineEditor* line = (LLLineEditor*)data;
- if(line)line->copy();
-}
-
-
void LLLineEditor::spell_correct(void* data)
{
SpellMenuBind* tempBind = (SpellMenuBind*)data;
@@ -545,25 +524,6 @@ void LLLineEditor::spell_add(void* data)
}
}
-
-void LLLineEditor::context_paste(void* data)
-{
- LLLineEditor* line = (LLLineEditor*)data;
- if(line)line->paste();
-}
-
-void LLLineEditor::context_delete(void* data)
-{
- LLLineEditor* line = (LLLineEditor*)data;
- if(line)line->doDelete();
-}
-
-void LLLineEditor::context_selectall(void* data)
-{
- LLLineEditor* line = (LLLineEditor*)data;
- if(line)line->selectAll();
-}
-
void LLLineEditor::startSelection()
{
mIsSelecting = TRUE;
@@ -3113,7 +3073,6 @@ void LLLineEditor::showContextMenu(S32 x, S32 y)
tempStruct->wordPositionStart=wordStart;
LLMenuItemCallGL * suggMenuItem = new LLMenuItemCallGL(
tempStruct->word, spell_correct, NULL, tempStruct);
- //new LLMenuItemCallGL("Select All", context_selectall, NULL, this));
tempStruct->menuItem = suggMenuItem;
suggestionMenuItems.push_back(tempStruct);
menu->addChild(suggMenuItem);
diff --git a/indra/llui/lllineeditor.h b/indra/llui/lllineeditor.h
index 23cb6333a..c6712b7cf 100644
--- a/indra/llui/lllineeditor.h
+++ b/indra/llui/lllineeditor.h
@@ -137,11 +137,6 @@ public:
virtual void deselect();
virtual BOOL canDeselect() const;
- static void context_cut(void* data);
- static void context_copy(void* data);
- static void context_paste(void* data);
- static void context_delete(void* data);
- static void context_selectall(void* data);
static void spell_correct(void* data);
static void spell_show(void* data);
static void spell_add(void* data);
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 6f3006dd7..5ae3d36b2 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -2109,13 +2109,13 @@ LLXMLNodePtr LLMenuGL::getXML(bool save_children) const
return node;
}
-void LLMenuGL::parseChildXML(LLXMLNodePtr child, LLView *parent, LLUICtrlFactory *factory)
+void LLMenuGL::parseChildXML(LLXMLNodePtr child, LLView *parent)
{
std::string name(child->getName()->mString);
if (child->hasName(LL_MENU_GL_TAG))
{
// SUBMENU
- LLMenuGL *submenu = (LLMenuGL*)LLMenuGL::fromXML(child, parent, factory);
+ LLMenuGL *submenu = (LLMenuGL*)LLMenuGL::fromXML(child, parent, LLUICtrlFactory::getInstance());
appendMenu(submenu);
if (LLMenuGL::sMenuContainer != NULL)
{
@@ -2193,7 +2193,7 @@ void LLMenuGL::parseChildXML(LLXMLNodePtr child, LLView *parent, LLUICtrlFactory
{
mask |= MASK_SHIFT;
}
- S32 pipe_pos = shortcut.rfind("|");
+ S32 pipe_pos = shortcut.rfind('|');
std::string key_str = shortcut.substr(pipe_pos+1);
KEY key = KEY_NONE;
@@ -2471,63 +2471,80 @@ BOOL LLMenuGL::isOpen()
}
}
// static
-LLView* LLMenuGL::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
+LLView* LLMenuGL::fromXML(LLXMLNodePtr node, LLView* parent, LLUICtrlFactory* factory)
{
std::string name("menu");
node->getAttributeString("name", name);
- std::string label = name;
- node->getAttributeString("label", label);
+ LLMenuGL* menu = new LLMenuGL(name);
- LLStringUtil::format(label, LLTrans::getDefaultArgs());
-
- // parse jump key out of label
- std::string new_menu_label;
-
- typedef boost::tokenizer > tokenizer;
- boost::char_separator sep("_");
- tokenizer tokens(label, sep);
- tokenizer::iterator token_iter;
-
- KEY jump_key = KEY_NONE;
- S32 token_count = 0;
- for( token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter)
+ // Menus can be extended using filename
+ if (node->hasAttribute("filename"))
{
- new_menu_label += (*token_iter);
- if (token_count > 0)
+ std::string filename;
+ node->getAttributeString("filename", filename);
+ LLXMLNodePtr root;
+ LLUICtrlFactory::getLayeredXMLNode(filename, root);
+ menu->initMenuXML(root, parent);
+ }
+ menu->initMenuXML(node, parent);
+
+ return menu;
+}
+
+void LLMenuGL::initMenuXML(LLXMLNodePtr node, LLView* parent)
+{
+ std::string label;
+ if (node->getAttributeString("label", label))
+ {
+ LLStringUtil::format(label, LLTrans::getDefaultArgs());
+
+ // parse jump key out of label
+ std::string new_menu_label;
+
+ typedef boost::tokenizer> tokenizer;
+ boost::char_separator sep("_");
+
+ KEY jump_key = KEY_NONE;
+ S32 token_count = 0;
+ for (auto token : tokenizer(label, sep))
{
- jump_key = (*token_iter).c_str()[0];
+ new_menu_label += token;
+ if (token_count > 0)
+ {
+ jump_key = token.front();
+ }
+ ++token_count;
}
- ++token_count;
+
+ setLabel(new_menu_label);
+ setJumpKey(jump_key);
}
BOOL opaque = TRUE;
node->getAttributeBOOL("opaque", opaque);
- LLMenuGL *menu = new LLMenuGL(name, new_menu_label);
-
bool b(false);
node->getAttribute_bool("scrollable", b);
- menu->setScrollable(b);
+ setScrollable(b);
- menu->setJumpKey(jump_key);
BOOL tear_off = FALSE;
node->getAttributeBOOL("tear_off", tear_off);
- menu->setCanTearOff(tear_off);
+ setCanTearOff(tear_off);
if (node->hasAttribute("drop_shadow"))
{
BOOL drop_shadow = FALSE;
node->getAttributeBOOL("drop_shadow", drop_shadow);
- menu->setDropShadowed(drop_shadow);
+ setDropShadowed(drop_shadow);
}
- menu->setBackgroundVisible(opaque);
+ setBackgroundVisible(opaque);
LLColor4 color(0,0,0,1);
if (opaque && LLUICtrlFactory::getAttributeColor(node,"color", color))
{
- menu->setBackgroundColor(color);
+ setBackgroundColor(color);
}
BOOL create_jump_keys = FALSE;
@@ -2536,14 +2553,13 @@ LLView* LLMenuGL::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *fa
LLXMLNodePtr child;
for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling())
{
- menu->parseChildXML(child, parent, factory);
+ parseChildXML(child, parent);
}
if (create_jump_keys)
{
- menu->createJumpKeys();
+ createJumpKeys();
}
- return menu;
}
@@ -4776,7 +4792,7 @@ void LLContextMenu::initXML(LLXMLNodePtr node, LLView *context, LLUICtrlFactory
}
else
{
- parseChildXML(child, context, factory);
+ parseChildXML(child, context);
}
}
}
diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h
index 7c3626d35..153479852 100644
--- a/indra/llui/llmenugl.h
+++ b/indra/llui/llmenugl.h
@@ -458,8 +458,9 @@ public:
virtual ~LLMenuGL( void );
virtual LLXMLNodePtr getXML(bool save_children = true) const;
static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
+ void initMenuXML(LLXMLNodePtr node, LLView* parent);
- void parseChildXML(LLXMLNodePtr child, LLView *parent, LLUICtrlFactory *factory);
+ void parseChildXML(LLXMLNodePtr child, LLView *parent);
// LLView Functionality
/*virtual*/ BOOL handleUnicodeCharHere( llwchar uni_char );
@@ -580,15 +581,17 @@ public:
void resetScrollPositionOnShow(bool reset_scroll_pos) { mResetScrollPositionOnShow = reset_scroll_pos; }
bool isScrollPositionOnShowReset() { return mResetScrollPositionOnShow; }
protected:
- friend class LLTextEditor;
void createSpilloverBranch();
void cleanupSpilloverBranch();
+
+public:
// Add the menu item to this menu.
virtual BOOL append( LLMenuItemGL* item );
// add a menu - this will create a cascading menu
virtual BOOL appendMenu( LLMenuGL* menu );
+protected:
// TODO: create accessor methods for these?
typedef std::list< LLMenuItemGL* > item_list_t;
item_list_t mItems;
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index 2aa1b17ec..f46775f6f 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -59,8 +59,6 @@
static LLRegisterWidget r("scroll_list");
-std::vector LLScrollListCtrl::sMenus = {}; // List menus that recur, such as general avatars or groups menus
-
// local structures & classes.
struct SortScrollListItem
{
@@ -314,7 +312,7 @@ std::vector LLScrollListCtrl::getAllSelected() const
return ret;
}
-uuid_vec_t LLScrollListCtrl::getSelectedIDs()
+uuid_vec_t LLScrollListCtrl::getSelectedIDs() const
{
uuid_vec_t ids;
if (!getCanSelect()) return ids;
@@ -1813,10 +1811,7 @@ BOOL LLScrollListCtrl::handleRightMouseDown(S32 x, S32 y, MASK mask)
if (col->mHeader && col->mHeader->getRect().pointInRect(x,y)) // Right clicking a column header shouldn't bring up a menu
return FALSE;
}
- gFocusMgr.setKeyboardFocus(this); // Menu listeners rely on this
- mPopupMenu->buildDrawLabels();
- mPopupMenu->updateParent(LLMenuGL::sMenuContainer);
- LLMenuGL::showPopup(this, mPopupMenu, x, y);
+ showMenu(this, mPopupMenu, x, y);
return TRUE;
}
@@ -2749,10 +2744,11 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac
LLSD columns;
S32 index = 0;
const std::string nodename(std::string(node->getName()->mString) + '.');
- const std::string kidcolumn(nodename + "columns");
+ const std::string kidcolumns(nodename + "columns");
+ const std::string kidcolumn(nodename + "column");
for (LLXMLNodePtr child = node->getFirstChild(); child.notNull(); child = child->getNextSibling())
{
- if (child->hasName("column") || child->hasName(kidcolumn))
+ if (child->hasName("column") || child->hasName("columns") || child->hasName(kidcolumn) || child->hasName(kidcolumns))
{
std::string labelname("");
if (child->getAttributeString("label", labelname))
@@ -2832,9 +2828,10 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac
bool explicit_column = false;
for (LLXMLNodePtr row_child = child->getFirstChild(); row_child.notNull(); row_child = row_child->getNextSibling())
{
- if (row_child->hasName("column"))
+ if (row_child->hasName("column") || row_child->hasName("columns"))
{
std::string value = row_child->getTextContents();
+ row_child->getAttributeString("value", value);
row["columns"][column_idx]["value"] = value;
std::string columnname;
diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h
index e52f41ee9..c09af350a 100644
--- a/indra/llui/llscrolllistctrl.h
+++ b/indra/llui/llscrolllistctrl.h
@@ -32,6 +32,7 @@
#include
#include
+#include "lfidbearer.h"
#include "lluictrl.h"
#include "llctrlselectioninterface.h"
#include "llfontgl.h"
@@ -48,6 +49,7 @@ class LLMenuGL;
class LLScrollListCtrl : public LLUICtrl, public LLEditMenuHandler,
public LLCtrlListInterface, public LLCtrlScrollInterface
+, public LFIDBearer
{
public:
typedef boost::function callback_t;
@@ -194,13 +196,13 @@ public:
// "StringUUID" interface: use this when you're creating a list that contains non-unique strings each of which
// has an associated, unique UUID, and only one of which can be selected at a time.
LLScrollListItem* addStringUUIDItem(const std::string& item_text, const LLUUID& id, EAddPosition pos = ADD_BOTTOM, BOOL enabled = TRUE);
- LLUUID getStringUUIDSelectedItem() const;
+ LLUUID getStringUUIDSelectedItem() const override final;
LLScrollListItem* getFirstSelected() const;
virtual S32 getFirstSelectedIndex() const;
std::vector getAllSelected() const;
- uuid_vec_t getSelectedIDs(); //Helper. Much like getAllSelected, but just provides a LLUUID vec
- S32 getNumSelected() const;
+ uuid_vec_t getSelectedIDs() const override final; //Helper. Much like getAllSelected, but just provides a LLUUID vec
+ S32 getNumSelected() const override final;
LLScrollListItem* getLastSelectedItem() const { return mLastSelected; }
// iterate over all items
@@ -255,7 +257,6 @@ public:
// support right-click context menus for avatar/group lists
void setContextMenu(LLMenuGL* menu) { mPopupMenu = menu; }
void setContextMenu(S32 index) { mPopupMenu = sMenus[index]; }
- static void addCommonMenu(LLMenuGL* menu) { sMenus.push_back(menu); }
// Overridden from LLView
/*virtual*/ void draw();
@@ -468,8 +469,6 @@ private:
class LLViewBorder* mBorder;
LLMenuGL *mPopupMenu;
- static std::vector sMenus; // List menus that recur, such as general avatars or groups menus
-
LLView *mCommentTextView;
LLWString mSearchString;
diff --git a/indra/llui/lltextbox.h b/indra/llui/lltextbox.h
index 738ec3b06..27215a20c 100644
--- a/indra/llui/lltextbox.h
+++ b/indra/llui/lltextbox.h
@@ -113,6 +113,7 @@ private:
void setLineLengths();
void drawText(S32 x, S32 y, const LLColor4& color );
+protected:
LLUIString mText;
const LLFontGL* mFontGL;
LLColor4 mTextColor;
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 2e1c70baf..c4cdbbdf8 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -397,18 +397,20 @@ static LLTextEditor* get_focused_text_editor()
return te;
}
-class ContextText : public LLMemberListener
+class CopyRawText : public LLMemberListener
{
bool handleEvent(LLPointer, const LLSD& userdata) override
{
- auto text = get_focused_text_editor();
- const auto& op = userdata.asStringRef();
- if (op == "Cut") text->cut();
- else if (op == "Copy") text->copy();
- else if (op == "CopyRaw") text->copyRaw();
- else if (op == "Paste") text->paste();
- else if (op == "Delete") text->doDelete();
- else if (op == "SelectAll") text->selectAll();
+ get_focused_text_editor()->copyRaw();
+ return true;
+ }
+};
+
+class TextEditorVisible : public LLMemberListener
+{
+ bool handleEvent(LLPointer, const LLSD& userdata) override
+ {
+ LLMenuGL::sMenuContainer->findControl(userdata["control"].asString())->setValue(!!dynamic_cast(gFocusMgr.getKeyboardFocus()));
return true;
}
};
@@ -583,7 +585,8 @@ void LLTextEditor::spell_add(void* data)
//static
void LLTextEditor::addMenuListeners(ext_slurl_cb cb, ext_slurl_visible_cb vcb)
{
- (new ContextText)->registerListener(LLMenuGL::sMenuContainer, "Text");
+ (new CopyRawText)->registerListener(LLMenuGL::sMenuContainer, "CopyRawText");
+ (new TextEditorVisible)->registerListener(LLMenuGL::sMenuContainer, "TextEditorVisible");
(new ContextUrl)->registerListener(LLMenuGL::sMenuContainer, "Text.Url");
(new ContextUrlCopy)->registerListener(LLMenuGL::sMenuContainer, "Text.Url.CopyUUID");
(new ContextUrlExt(cb))->registerListener(LLMenuGL::sMenuContainer, "Text.Url.Ext");
@@ -4352,7 +4355,7 @@ void LLTextEditor::appendTextImpl(const std::string &new_text, const LLStyleSP s
if (mReadOnly && mParseHTML && !is_link) // Singu Note: Do not replace html if the user is going to edit it. (Like in profiles)
{
LL_RECORD_BLOCK_TIME(FTM_PARSE_HTML);
- S32 start=0,end=0;
+ size_t start=0, end=0;
LLUrlMatch match;
auto append_substr = [&](const size_t& pos, const size_t& count)
{
diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp
index e41a8082a..d753b40e1 100644
--- a/indra/llui/lluictrlfactory.cpp
+++ b/indra/llui/lluictrlfactory.cpp
@@ -406,16 +406,16 @@ LLMenuGL *LLUICtrlFactory::buildMenu(const std::string &filename, LLView* parent
LLXMLNodePtr root;
LLMenuGL* menu;
- if (!LLUICtrlFactory::getLayeredXMLNode(filename, root))
+ if (!getLayeredXMLNode(filename, root))
{
- return NULL;
+ return nullptr;
}
// root must be called panel
- if( !root->hasName( "menu_bar" ) && !root->hasName( "menu" ) && !root->hasName("context_menu"))
+ if (!root->hasName("menu_bar") && !root->hasName("menu") && !root->hasName("context_menu"))
{
- LL_WARNS() << "Root node should be named menu bar or menu in : " << filename << LL_ENDL;
- return NULL;
+ LL_WARNS() << "Root node should be named menu bar or menu in: " << filename << LL_ENDL;
+ return nullptr;
}
if (root->hasName("menu") || root->hasName("context_menu"))
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index ae9e02c43..6a3f51baf 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -14,6 +14,7 @@ include(BuildBranding)
include(CMakeCopyIfDifferent)
include(DBusGlib)
include(FMODSTUDIO)
+include(GeneratePrecompiledHeader)
include(GLOD)
include(Hunspell)
include(Json)
@@ -349,6 +350,7 @@ set(viewer_SOURCE_FILES
llnamebox.cpp
llnameeditor.cpp
llnamelistctrl.cpp
+ llnameui.cpp
llnetmap.cpp
llnotify.cpp
lloutfitobserver.cpp
@@ -886,6 +888,7 @@ set(viewer_HEADER_FILES
llnamebox.h
llnameeditor.h
llnamelistctrl.h
+ llnameui.h
llnetmap.h
llnotify.h
lloutfitobserver.h
@@ -1234,19 +1237,6 @@ if (WINDOWS)
endif (NVAPI)
set_source_files_properties(llappviewerwin32.cpp PROPERTIES COMPILE_FLAGS "${APPVWRW32_COMPILE_FLAGS}")
- # precompiled header configuration
- # llviewerprecompiledheaders.cpp generates
- # the .pch file.
- # All sources added to viewer_SOURCE_FILES
- # at this point use it.
- if(USE_PRECOMPILED_HEADERS)
- set_source_files_properties(llviewerprecompiledheaders.cpp
- PROPERTIES
- COMPILE_FLAGS "/Ycllviewerprecompiledheaders.h"
- )
- list(APPEND viewer_SOURCE_FILES llviewerprecompiledheaders.cpp)
- endif(USE_PRECOMPILED_HEADERS)
-
# Replace the icons with the appropriate ones for the channel
# ('test' is the default)
set(ICON_PATH "default")
@@ -1451,6 +1441,12 @@ add_executable(${VIEWER_BINARY_NAME}
${viewer_SOURCE_FILES}
)
+if(USE_PRECOMPILED_HEADERS)
+ target_precompiled_header(${VIEWER_BINARY_NAME}
+ ${CMAKE_CURRENT_SOURCE_DIR}/llviewerprecompiledheaders.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/llviewerprecompiledheaders.cpp)
+endif(USE_PRECOMPILED_HEADERS)
+
set(PACKAGE OFF CACHE BOOL
"Add a package target that builds an installer package.")
@@ -1465,15 +1461,17 @@ if (WINDOWS)
LINK_FLAGS_RELWITHDEBINFO "${release_flags} ${EXTRA_LINKER_FLAGS_RELEASE}"
)
- add_dependencies(${VIEWER_BINARY_NAME} generate_viewer_version)
+ if(GEN_IS_MULTI_CONFIG)
+ set(VIEWER_BUILD_DEST_DIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
+ set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES
+ VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}")
+ else()
+ set(VIEWER_BUILD_DEST_DIR "${CMAKE_CURRENT_BINARY_DIR}/package")
+ set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${VIEWER_BUILD_DEST_DIR}")
+ endif()
- if(USE_PRECOMPILED_HEADERS)
- set_target_properties(
- ${VIEWER_BINARY_NAME}
- PROPERTIES
- COMPILE_FLAGS "/Yullviewerprecompiledheaders.h"
- )
- endif(USE_PRECOMPILED_HEADERS)
+ add_dependencies(${VIEWER_BINARY_NAME} generate_viewer_version)
# If adding a file to viewer_manifest.py in the WindowsManifest.construct() method, be sure to add the dependency
# here.
@@ -1488,7 +1486,6 @@ if (WINDOWS)
set(GOOGLE_PERF_TOOLS_SOURCE
${SHARED_LIB_STAGING_DIR}/Release/libtcmalloc_minimal.dll
${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/libtcmalloc_minimal.dll
- ${SHARED_LIB_STAGING_DIR}/Debug/libtcmalloc_minimal-debug.dll
)
endif(NOT DISABLE_TCMALLOC)
@@ -1497,45 +1494,27 @@ if (WINDOWS)
#${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libtcmalloc_minimal.dll => None ... Skipping libtcmalloc_minimal.dll
${CMAKE_SOURCE_DIR}/../etc/message.xml
${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/llcommon.dll
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libapr-1.dll
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libaprutil-1.dll
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/libapriconv-1.dll
${SHARED_LIB_STAGING_DIR}/Release/glod.dll
${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/glod.dll
- ${SHARED_LIB_STAGING_DIR}/Debug/glod.dll
- ${SHARED_LIB_STAGING_DIR}/Release/openjpeg.dll
- ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/openjpeg.dll
- ${SHARED_LIB_STAGING_DIR}/Debug/openjpegd.dll
- ${SHARED_LIB_STAGING_DIR}/Release/libhunspell.dll
- ${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/libhunspell.dll
- ${SHARED_LIB_STAGING_DIR}/Debug/libhunspell.dll
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/SLVoice.exe
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxplatform.dll
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ca-bundle.crt
+ ${SHARED_LIB_STAGING_DIR}/Release/SLVoice.exe
+ ${SHARED_LIB_STAGING_DIR}/Release/vivoxplatform.dll
${GOOGLE_PERF_TOOLS_SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt
${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt
- ${CMAKE_CURRENT_SOURCE_DIR}/featuretable_xp.txt
- ${ARCH_PREBUILT_DIRS_RELEASE}/libeay32.dll
- ${ARCH_PREBUILT_DIRS_RELEASE}/ssleay32.dll
- ${ARCH_PREBUILT_DIRS_DEBUG}/libeay32.dll
- ${ARCH_PREBUILT_DIRS_DEBUG}/ssleay32.dll
SLPlugin
media_plugin_libvlc
media_plugin_cef
- windows-crash-logger
)
if (ADDRESS_SIZE EQUAL 64)
list(APPEND COPY_INPUT_DEPENDENCIES
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxsdk_x64.dll
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ortp_x64.dll
+ ${SHARED_LIB_STAGING_DIR}/Release/vivoxsdk_x64.dll
+ ${SHARED_LIB_STAGING_DIR}/Release/ortp_x64.dll
)
else (ADDRESS_SIZE EQUAL 64)
list(APPEND COPY_INPUT_DEPENDENCIES
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/vivoxsdk.dll
- ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/ortp.dll
+ ${SHARED_LIB_STAGING_DIR}/Release/vivoxsdk.dll
+ ${SHARED_LIB_STAGING_DIR}/Release/ortp.dll
)
endif (ADDRESS_SIZE EQUAL 64)
@@ -1550,13 +1529,18 @@ if (WINDOWS)
list(APPEND COPY_INPUT_DEPENDENCIES
${SHARED_LIB_STAGING_DIR}/Release/fmod.dll
${SHARED_LIB_STAGING_DIR}/RelWithDebInfo/fmod.dll
- ${SHARED_LIB_STAGING_DIR}/Debug/fmodL.dll
)
endif (WORD_SIZE EQUAL 64)
endif (FMODSTUDIO)
+ if(MSVC_IDE)
+ set(VIEWER_BUILD_DEST_DIR "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
+ else()
+ set(VIEWER_BUILD_DEST_DIR "${CMAKE_CURRENT_BINARY_DIR}/packaged")
+ endif()
+
add_custom_command(
- OUTPUT ${CMAKE_CFG_INTDIR}/copy_touched.bat
+ OUTPUT ${VIEWER_BUILD_DEST_DIR}/copy_touched.bat
COMMAND ${PYTHON_EXECUTABLE}
ARGS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@@ -1566,13 +1550,13 @@ if (WINDOWS)
--branding_id=${VIEWER_BRANDING_ID}
--build=${CMAKE_CURRENT_BINARY_DIR}
--buildtype=${CMAKE_BUILD_TYPE}
- --configuration=${CMAKE_CFG_INTDIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ --configuration=${VIEWER_BUILD_DEST_DIR}
+ --dest=${VIEWER_BUILD_DEST_DIR}
--grid=${GRID}
--channel=${VIEWER_CHANNEL}
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
--source=${CMAKE_CURRENT_SOURCE_DIR}
- --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/copy_touched.bat
+ --touch=${VIEWER_BUILD_DEST_DIR}/copy_touched.bat
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
generate_viewer_version
@@ -1582,7 +1566,7 @@ if (WINDOWS)
COMMENT "Performing viewer_manifest copy"
)
- add_custom_target(copy_w_viewer_manifest ALL DEPENDS ${CMAKE_CFG_INTDIR}/copy_touched.bat)
+ add_custom_target(copy_w_viewer_manifest ALL DEPENDS ${VIEWER_BUILD_DEST_DIR}/copy_touched.bat)
add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon copy_w_viewer_manifest)
@@ -1599,7 +1583,7 @@ if (WINDOWS)
if (PACKAGE)
add_custom_command(
- OUTPUT ${CMAKE_CFG_INTDIR}/touched.bat
+ OUTPUT ${VIEWER_BUILD_DEST_DIR}/touched.bat
COMMAND ${PYTHON_EXECUTABLE}
ARGS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@@ -1610,11 +1594,11 @@ if (WINDOWS)
--buildtype=${CMAKE_BUILD_TYPE}
--channel=${VIEWER_CHANNEL}
--versionfile=${CMAKE_CURRENT_BINARY_DIR}/viewer_version.txt
- --configuration=${CMAKE_CFG_INTDIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
+ --configuration=${VIEWER_BUILD_DEST_DIR}
+ --dest=${VIEWER_BUILD_DEST_DIR}
--grid=${GRID}
--source=${CMAKE_CURRENT_SOURCE_DIR}
- --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
+ --touch=${VIEWER_BUILD_DEST_DIR}/touched.bat
DEPENDS
${VIEWER_BINARY_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
@@ -1623,7 +1607,7 @@ if (WINDOWS)
)
add_custom_target(llpackage ALL DEPENDS
- ${CMAKE_CFG_INTDIR}/touched.bat
+ ${VIEWER_BUILD_DEST_DIR}/touched.bat
windows-setup-build-all
)
endif (PACKAGE)
@@ -1869,13 +1853,13 @@ if (PACKAGE)
endif (LINUX)
if(RELEASE_CRASH_REPORTING OR NON_RELEASE_CRASH_REPORTING)
- if(CMAKE_CFG_INTDIR STREQUAL ".")
+ if(GEN_IS_MULTI_CONFIG)
set(LLBUILD_CONFIG ${CMAKE_BUILD_TYPE})
- else(CMAKE_CFG_INTDIR STREQUAL ".")
+ else()
# set LLBUILD_CONFIG to be a shell variable evaluated at build time
# reflecting the configuration we are currently building.
set(LLBUILD_CONFIG ${CMAKE_CFG_INTDIR})
- endif(CMAKE_CFG_INTDIR STREQUAL ".")
+ endif()
add_custom_command(OUTPUT "${VIEWER_SYMBOL_FILE}"
COMMAND "${PYTHON_EXECUTABLE}"
ARGS
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index ea1506a5a..2b7e54597 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -12685,7 +12685,10 @@ This should be as low as possible, but too low may break functionality
AlwaysRenderFriends
Comment
- Always render friends regardless of max complexity, a value of 2 will only render friends
+ 0 - Render avatars with complexity below RenderAvatarMaxComplexity
+1 - Always renders friends, regardless of max complexity
+2 - Only renders friends
+3 - Only renders self
Persist
1
Type
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Absinthe%20Light%20.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Absinthe%20Light%20.xml
new file mode 100644
index 000000000..31eb39ac2
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Absinthe%20Light%20.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.0799999237060547
+ 0.98999994993209839
+ 0.77999997138977051
+ 1.0799999237060547
+
+ blue_density
+
+ 0.64736837148666382
+ 0.48414888978004456
+ 0.81999999284744263
+ 0.40999999642372131
+
+ blue_horizon
+
+ 0.5
+ 0.49548381567001343
+ 0.45999997854232788
+ 0.51999998092651367
+
+ cloud_color
+
+ 0.4100000062111997
+ 0.4100000062111997
+ 0.4100000062111997
+ 0.4100000062111997
+
+ cloud_pos_density1
+
+ 0.14000000059604645
+ 0.62000000476837158
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.35999998450279236
+ 0.56999999284744263
+ 0.12999999523162842
+ 1
+
+ cloud_scale
+
+ 0.35999998450279236
+ 0
+ 0
+ 1.0000000149011612
+
+ cloud_scroll_rate
+
+ 10.199999791580112
+ 10.010999679880427
+
+ cloud_shadow
+
+ 0.29999998211860657
+ 0
+ 0
+ 1.0000000149011612
+
+ density_multiplier
+
+ 7.9999997979030013e-005
+ 0
+ 0
+ 1.0000000149011612
+
+ distance_multiplier
+
+ 5.4000000953674316
+ 0
+ 0
+ 1.0000000149011612
+
+ east_angle
+ 1.0932743549346924
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.1699998378753662
+ 0
+ 0
+ 1.0000000149011612
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.55000001192092896
+ 1
+
+ haze_density
+
+ 0.31999999284744263
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17999999225139618
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.39627334475517273
+ 0.89494067430496216
+ -0.20505768060684204
+ 0
+
+ max_y
+
+ 805
+ 0
+ 0
+ 1.0000000149011612
+
+ preset_num
+ 28
+ star_brightness
+ 0.25999999046325684
+ sun_angle
+ 2.0332944393157959
+ sunlight_color
+
+ 0.69882339239120483
+ 0.8258824348449707
+ 1.0799999237060547
+ 0.35999998450279236
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Andi%20Light%20.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Andi%20Light%20.xml
new file mode 100644
index 000000000..654652b52
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Andi%20Light%20.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.99999994039535522
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 5.1599996368167922e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0.80000001192092896
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.091327428817749
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.69569998979568481
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -2.5
+ 1
+
+ haze_density
+
+ 3
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.59999996423721313
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.0098020657896995544
+ 0.9807855486869812
+ 0.1948426365852356
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.7671445608139038
+ sunlight_color
+
+ 1.5
+ 1.5
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Angles%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Angles%20Light%2001.xml
new file mode 100644
index 000000000..fbb2272ff
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Angles%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.8235294818878174
+ 1.2352941036224365
+ 1.5411765575408936
+ 0.60784316062927246
+
+ blue_density
+
+ 1.2000000476837158
+ 1.4039216041564941
+ 1.6392157077789307
+ 0.81960785388946533
+
+ blue_horizon
+
+ 1.2000000476837158
+ 1.4039216041564941
+ 1.6392157077789307
+ 0.81960785388946533
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.96579998731613159
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 1
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00020660000154748559
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.2000002861022949
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.29530972242355347
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.95649999380111694
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 2.059999942779541
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.5
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.268882155418396
+ 0.38268527388572693
+ -0.88388597965240479
+ 0
+
+ max_y
+
+ 788
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 2.7488915920257568
+ sunlight_color
+
+ 1.5
+ 1.5
+ 1.5
+ 0.5
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%20%2008.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%20%2008.xml
new file mode 100644
index 000000000..268ea125f
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%20%2008.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.76829999685287476
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.059000000357627869
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00025079998886212707
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 14
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.19477875530719757
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 16.80000114440918
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 1.1499999761581421
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17000000178813934
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.14745019376277924
+ 0.64778679609298706
+ 0.74741601943969727
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 1.7856996059417725
+ sun_angle
+ 0.70467567443847656
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2001.xml
new file mode 100644
index 000000000..268ea125f
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.76829999685287476
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.059000000357627869
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00025079998886212707
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 14
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.19477875530719757
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 16.80000114440918
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 1.1499999761581421
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17000000178813934
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.14745019376277924
+ 0.64778679609298706
+ 0.74741601943969727
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 1.7856996059417725
+ sun_angle
+ 0.70467567443847656
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2002.xml
new file mode 100644
index 000000000..130571e2a
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.76829999685287476
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.059000000357627869
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00025079998886212707
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 14
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.19477875530719757
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 3.3912999629974365
+ 0
+ 0
+ 1
+
+ glow
+
+ 16.80000114440918
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 1.1499999761581421
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17000000178813934
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.14745019376277924
+ 0.64778679609298706
+ 0.74741601943969727
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 1.7856996059417725
+ sun_angle
+ 0.70467567443847656
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2003.xml
new file mode 100644
index 000000000..676f1a780
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.15000000596046448
+ 0.15000000596046448
+ 0.15000000596046448
+ 0.05000000074505806
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 0.93999999761581421
+ 0.22999998927116394
+ 0.38409999012947083
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 0.50999999046325684
+ 1
+ 1
+
+ cloud_scale
+
+ 0.31279999017715454
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.43999999761581421
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 7.3799994424916804e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 13.199999809265137
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 1.3999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.26999998092651367
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.51655691862106323
+ 0.83146905899047852
+ -0.20451940596103668
+ 0
+
+ max_y
+
+ 242
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2004.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2004.xml
new file mode 100644
index 000000000..fa71d78f4
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2004.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 0.22615529217625469
+ 0.22615529217625469
+ 0.22615529217625469
+ 0.99999702096404042
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.88000003558816353
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.0003761999832931906
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 31.80000114440918
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.3999996185302734
+ 0.0010000000474974513
+ -0.74999994039535522
+ 1
+
+ haze_density
+
+ 3.6292644654378239
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.017144030545153739
+ 0.19915600403562983
+ 0.19915600403562983
+ 1
+
+ lightnorm
+
+ 0
+ 0.29445916414260864
+ -0.95566403865814209
+ 0
+
+ max_y
+
+ 869.42607640502217
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 1.7856996059417725
+ sun_angle
+ 2.842703104019165
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2005.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2005.xml
new file mode 100644
index 000000000..df9427703
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2005.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.1875
+ 0.1875
+ 0.1875
+ 0.0625
+
+ blue_density
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.44999998807907104
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00013000000035390258
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 21.700000762939453
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.20999999344348907
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.51655691862106323
+ 0.83146905899047852
+ -0.20451940596103668
+ 0
+
+ max_y
+
+ 242
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2006.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2006.xml
new file mode 100644
index 000000000..d0ba4bb02
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2006.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.1875
+ 0.1875
+ 0.1875
+ 0.0625
+
+ blue_density
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.99409997463226318
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.49579998850822449
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.70001220703125
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.29999998211860657
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00015750000602565706
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 4.5999999046325684
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 1.7400000095367432
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.070000000298023224
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.51655691862106323
+ 0.83146905899047852
+ -0.20451940596103668
+ 0
+
+ max_y
+
+ 11
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2007.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2007.xml
new file mode 100644
index 000000000..f62fe8cd0
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2007.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.76829999685287476
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.00039999998989515007
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.19999998807907104
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.0010865998920053244
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 1000
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.5016813278198242
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.17999999225139618
+ 0
+ 0
+ 1
+
+ glow
+
+ 40
+ 0.0010000000474974513
+ -10
+ 1
+
+ haze_density
+
+ 5
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 5
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.97396135330200195
+ 0.21645671129226685
+ -0.067422725260257721
+ 0
+
+ max_y
+
+ 2077
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.9234089851379395
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2008.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2008.xml
new file mode 100644
index 000000000..4ecf8c2a6
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2008.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0.39999997615814209
+ 0.39999997615814209
+ 0.39999997615814209
+ 0.19999998807907104
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 0.22617273092134837
+ 0.2261830306064212
+ 0.22618354559006093
+ 1
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.12499716758729562
+ 1
+
+ cloud_scale
+
+ 0.22999998927116394
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.499370784775238
+ 10.011009025563908
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00089999998454004526
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 100
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ 0
+ 1
+
+ haze_density
+
+ 0.5
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.32999998331069946
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 1
+ -4.3711388286737929e-008
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 0
+ sun_angle
+ 1.5707963705062866
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2009.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2009.xml
new file mode 100644
index 000000000..1a9ebda49
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2009.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1.5
+ 1.5
+ 1.5
+ 0.75
+
+ blue_horizon
+
+ 1.5
+ 1.5
+ 1.5
+ 0.75
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.95999997854232788
+ 0.31000000238418579
+ 0.34149998426437378
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.026399999856948853
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.29999998211860657
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00018439999257680029
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 9.3000001907348633
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.78539818525314331
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 15.799999237060547
+ 0.0010000000474974513
+ -0.74999994039535522
+ 1
+
+ haze_density
+
+ 1.5299999713897705
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.12999999523162842
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.64968371391296387
+ 0.39474311470985413
+ 0.64968371391296387
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 2
+ sun_angle
+ 0.40578824281692505
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2010.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2010.xml
new file mode 100644
index 000000000..0dac49355
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2010.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.76829999685287476
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.00039999998989515007
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.18999999761581421
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.001574800000526011
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 1083.300048828125
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.5016813278198242
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.20999999344348907
+ 0
+ 0
+ 1
+
+ glow
+
+ 100
+ 0.0010000000474974513
+ -25
+ 1
+
+ haze_density
+
+ 1.0070000886917114
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 5.0410003662109375
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.97396135330200195
+ 0.21645671129226685
+ -0.067422725260257721
+ 0
+
+ max_y
+
+ 100000
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.9234089851379395
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2011.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2011.xml
new file mode 100644
index 000000000..491a9eeb6
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2011.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00036219999310560524
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 9.3000001907348633
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.1599998474121094
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 1.3799999952316284
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.11999999731779099
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 1
+ -4.3711388286737929e-008
+ 0
+
+ max_y
+
+ 45
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.5707963705062866
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2012.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2012.xml
new file mode 100644
index 000000000..4e10ae8a9
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2012.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00074019999010488391
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 10.199999809265137
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 10
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.64999938011169434
+ 1
+
+ haze_density
+
+ 1.4499999284744263
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.11999999731779099
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.81158280372619629
+ -0.58423745632171631
+ 0
+
+ max_y
+
+ 1846
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 2.1947364807128906
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2013.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2013.xml
new file mode 100644
index 000000000..655502438
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20B%2FW%20Light%2013.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.1983799934387207
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00074799999129027128
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 163.80000305175781
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.5016813278198242
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.17999999225139618
+ 0
+ 0
+ 1
+
+ glow
+
+ 100
+ 0.0010000000474974513
+ -25
+ 1
+
+ haze_density
+
+ 0.33600002527236938
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 5.0370001792907715
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.97396135330200195
+ 0.21645671129226685
+ -0.067422725260257721
+ 0
+
+ max_y
+
+ 100000
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.9234089851379395
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Boken%20Lines%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Boken%20Lines%20Light%2001.xml
new file mode 100644
index 000000000..8b1a001b1
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Boken%20Lines%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.34000000357627869
+ 1
+
+ cloud_scale
+
+ 0
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ -0.485443115234375
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 3.9400001696776599e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 10000
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.19477875530719757
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 9.25
+ 0
+ 0
+ 1
+
+ glow
+
+ 16.80000114440918
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.14745019376277924
+ 0.64778679609298706
+ 0.74741601943969727
+ 0
+
+ max_y
+
+ 4
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 0.70467567443847656
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Breakwave%20Building%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Breakwave%20Building%20Light.xml
new file mode 100644
index 000000000..0fadd9c75
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Breakwave%20Building%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.37000000476837158
+ 0.79999995231628418
+ 0.12429999560117722
+ 1
+
+ cloud_pos_density2
+
+ 0.97999995946884155
+ 0.70999997854232788
+ 0.049999997019767761
+ 1
+
+ cloud_scale
+
+ 0.17359998822212219
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.47300004959106445
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 9.4499999249819666e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 39.400001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 5.4852209091186523
+ enable_cloud_scroll
+
+ 0
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.070000000298023224
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17999999225139618
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.47905999422073364
+ 0.74313849210739136
+ 0.46716883778572083
+ 0
+
+ max_y
+
+ 3615
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.83774858713150024
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20002%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20002%20Light.xml
new file mode 100644
index 000000000..de207f503
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20002%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.15000000596046448
+ 0.15000000596046448
+ 0.15000000596046448
+ 0.05000000074505806
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.75
+ 0.75
+ 0.75
+ 0.75
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.0473451614379883
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.4199999570846558
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ 2.4000000953674316
+ 1
+
+ haze_density
+
+ 5
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 5
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.083091713488101959
+ 0.46948650479316711
+ 0.87902116775512695
+ 0
+
+ max_y
+
+ 6538
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 2.6528835296630859
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20003%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20003%20Light.xml
new file mode 100644
index 000000000..5f4bc38dd
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20003%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 0.45819997787475586
+ 0.51910001039505005
+ 0.70179998874664307
+ 0.35089999437332153
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.78999996185302734
+ 0.85999995470046997
+ 0.76330000162124634
+ 1
+
+ cloud_pos_density2
+
+ 0.97999995946884155
+ 0.70999997854232788
+ 0
+ 1
+
+ cloud_scale
+
+ 0.39659997820854187
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.43999999761581421
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 9.4499999249819666e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 39.400001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.670353889465332
+ enable_cloud_scroll
+
+ 0
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.070000000298023224
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17999999225139618
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.30378204584121704
+ 0.74313849210739136
+ -0.59620606899261475
+ 0
+
+ max_y
+
+ 3615
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.83774858713150024
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20005%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20005%20Light.xml
new file mode 100644
index 000000000..7d1102346
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20005%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.2899999618530273
+ 1.2899999618530273
+ 1.2899999618530273
+ 0.43000000715255737
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.75
+ 0.75
+ 0.75
+ 0.75
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.60946899652481079
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ 2.4000000953674316
+ 1
+
+ haze_density
+
+ 5
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 5
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.36985558271408081
+ 0.76324218511581421
+ -0.5297812819480896
+ 0
+
+ max_y
+
+ 6538
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 2.2732763290405273
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20007%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20007%20Light.xml
new file mode 100644
index 000000000..06034997f
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Build%20007%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.17999999225139618
+ 0.17999999225139618
+ 0.17999999225139618
+ 0.059999998658895493
+
+ blue_density
+
+ 1.5
+ 1.5
+ 1.5
+ 0.75
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 0.93999999761581421
+ 0.22999998927116394
+ 0.38409999012947083
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 0.50999999046325684
+ 1
+ 1
+
+ cloud_scale
+
+ 0.31279999017715454
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 4.3416814804077148
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 2.6099998950958252
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.6760907769203186
+ 0.68836575746536255
+ 0.26278114318847656
+ 0
+
+ max_y
+
+ 242
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 2.3823590278625488
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cafe%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cafe%20Light%2001.xml
new file mode 100644
index 000000000..7c10c0df4
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cafe%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0.12089811412885521
+ 0.33770671695460663
+ 0.67541757891583387
+ 0.76708334654569654
+
+ blue_horizon
+
+ 0.13497034943045882
+ 0.26690842067701936
+ 0.4016666400432598
+ 0.74541666984558219
+
+ cloud_color
+
+ 0.625
+ 0.625
+ 0.875
+ 0.875
+
+ cloud_pos_density1
+
+ 0.47999998927116394
+ 0.97999995946884155
+ 0.14630000293254852
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0.070000000298023224
+ 1
+
+ cloud_scale
+
+ 0.22280000150203705
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.5
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.3874998847643383
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.51583333298563971
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.13833333183079954
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.28709480166435242
+ 0.6259227991104126
+ -0.72511875629425049
+ 0
+
+ max_y
+
+ 685.18749099969864
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 0.67631423473358154
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Calima%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Calima%20Light%2001.xml
new file mode 100644
index 000000000..8cdc45ec0
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Calima%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.21000000834465027
+ 0.21000000834465027
+ 0.21000000834465027
+ 0.070000000298023224
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 0.28666070103645325
+ 0.28666070103645325
+ 0.28666070103645325
+ 0.28666070103645325
+
+ cloud_pos_density1
+
+ 0.17999999225139618
+ 0.50999999046325684
+ 0.91949393667753065
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 1.437999963760376
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.400862650389627
+ 10.01099967956543
+
+ cloud_shadow
+
+ -0.27299976348876953
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.011666699312627316
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0.10000000149011612
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 10
+ 0
+ 0
+ 1
+
+ glow
+
+ 22.000003814697266
+ 0.0010000000474974513
+ -7.5
+ 1
+
+ haze_density
+
+ 0.33600002527236938
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 11.530000686645508
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.35022372007369995
+ -0.93666607141494751
+ 0
+
+ max_y
+
+ 0
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 0
+ sun_angle
+ 2.7837827205657959
+ sunlight_color
+
+ 0.32999998331069946
+ 0.32999998331069946
+ 0.32999998331069946
+ 0.10999999940395355
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Charolotte%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Charolotte%20Light.xml
new file mode 100644
index 000000000..623c258f5
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Charolotte%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.0006399999838322401
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 100
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.6515045166015625
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3042999505996704
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -2.5
+ 1
+
+ haze_density
+
+ 4
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 1
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.063475340604782104
+ 0.99086576700210571
+ -0.11897877603769302
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.4355322122573853
+ sunlight_color
+
+ 3
+ 0
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cloud%20Credit%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cloud%20Credit%20Light.xml
new file mode 100644
index 000000000..baab0d39e
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cloud%20Credit%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 3
+ 3
+ 3
+ 1
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.95999997854232788
+ 0.17999999225139618
+ 0.12429999560117722
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 0.5899999737739563
+ 0
+ 1
+
+ cloud_scale
+
+ 0.074400000274181366
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 76.100006103515625
+ 10.70001220703125
+
+ cloud_shadow
+
+ 0.29999998211860657
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 7.8399996757507324
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ 0.64999997615814209
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.8508676290512085
+ -0.52538013458251953
+ 0
+
+ max_y
+
+ 0
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 2.1239581108093262
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cloud%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cloud%20Light%2001.xml
new file mode 100644
index 000000000..d0456f444
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Cloud%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.95999997854232788
+ 0.31000000238418579
+ 3
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0.71999996900558472
+ 1
+
+ cloud_scale
+
+ 0.2231999933719635
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 18.5
+ -3
+
+ cloud_shadow
+
+ 0.15999999642372131
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 3.299999889350147e-006
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.1855752468109131
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 15.799999237060547
+ 0.0010000000474974513
+ -0.74999994039535522
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 4.8899998664855957
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.040397927165031433
+ 0.39473667740821838
+ -0.91790574789047241
+ 0
+
+ max_y
+
+ 385
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 500
+ sun_angle
+ 0.40578123927116394
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dead%20End%20Sky%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dead%20End%20Sky%2001.xml
new file mode 100644
index 000000000..53a9cad03
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dead%20End%20Sky%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.83636385202407837
+ 1.0036364793777466
+ 1.3799998760223389
+ 0.45999997854232788
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 2
+ 0
+ 0
+ 1
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999523162842
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.0099999997764825821
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.510000228881836
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00018999999156221747
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 56.700000762939453
+ 0
+ 0
+ 1
+
+ east_angle
+ 4.7123889923095703
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.1499999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.11999999731779099
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.25
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.98078560829162598
+ 0.19508861005306244
+ 1.1695751034324076e-008
+ 1
+
+ max_y
+
+ 906
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 3.3379404544830322
+ sunlight_color
+
+ 0.59999996423721313
+ 0.59999996423721313
+ 1.1399999856948853
+ 1.1399999856948853
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dorm%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dorm%20Light%2001.xml
new file mode 100644
index 000000000..f4a22b8a2
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dorm%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.26250001788139343
+ 0.3031250536441803
+ 0.75
+ 0.25
+
+ blue_density
+
+ 1
+ 0.5
+ 0
+ 0.5
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.23999999463558197
+ 0.4699999988079071
+ 0.31999999284744263
+ 0.4699999988079071
+
+ cloud_pos_density1
+
+ 0.48999997973442078
+ 0.50999999046325684
+ 0.74000000953674316
+ 1
+
+ cloud_pos_density2
+
+ 0.44999998807907104
+ 0.5
+ 0.14000000059604645
+ 1
+
+ cloud_scale
+
+ 0.32999998331069946
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.37999999523162842
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 7.3799994424916804e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 41.100002288818359
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.4064600467681885
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 3.2173998355865479
+ 0
+ 0
+ 1
+
+ glow
+
+ 12
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 1.3500000238418579
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.15999999642372131
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.67022424936294556
+ 0.037081710994243622
+ 0.74123167991638184
+ 0
+
+ max_y
+
+ 0
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 1.0099999904632568
+ sun_angle
+ 3.1045024394989014
+ sunlight_color
+
+ 2.5799999237060547
+ 2.4411697387695313
+ 2.4411697387695313
+ 0.86000001430511475
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2001.xml
new file mode 100644
index 000000000..278ce095d
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.031499996781349182
+ 0.15789999067783356
+ 0.26850000023841858
+ 0.089500002562999725
+
+ blue_density
+
+ 0
+ 1.3200000524520874
+ 1.3199996948242188
+ 0.6600000262260437
+
+ blue_horizon
+
+ 0
+ 0.79687511920928955
+ 0.79687494039535522
+ 0.39843755960464478
+
+ cloud_color
+
+ 0.2481999397277832
+ 0.60211998224258423
+ 0.91180002689361572
+ 0.91180002689361572
+
+ cloud_pos_density1
+
+ 0.69999998807907104
+ 0.19999998807907104
+ 1.2249000072479248
+ 1
+
+ cloud_pos_density2
+
+ 0.70999997854232788
+ 0.84999996423721313
+ 0.35999998450279236
+ 1
+
+ cloud_scale
+
+ 0.29760000109672546
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 11.70001220703125
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00014170000213198364
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 0
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 32.599998474121094
+ 0.0010000000474974513
+ -5.0500001907348633
+ 1
+
+ haze_density
+
+ 1.5999999046325684
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.38999998569488525
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 1
+ -4.8876205482883961e-007
+ 1
+
+ max_y
+
+ 2769
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 4.7123894691467285
+ sunlight_color
+
+ 0.34876692295074463
+ 0.35574248433113098
+ 0.65999996662139893
+ 0.2199999988079071
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2002.xml
new file mode 100644
index 000000000..d0ef3494c
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.99101096746882478
+ 0.90569759047448506
+ 0.94676920768410944
+ 0.33033699762952112
+
+ blue_density
+
+ 0.15949166061381881
+ 0.44534921175553777
+ 0.78703662568265287
+ 0.78703662568265287
+
+ blue_horizon
+
+ 0.45808683258190275
+ 0.46276614028103857
+ 0.64592672496531911
+ 0.38195237578970165
+
+ cloud_color
+
+ 0.33464740594394182
+ 0.33464740594394182
+ 0.33464740594394182
+ 0.52483933184657472
+
+ cloud_pos_density1
+
+ 0.17999999225139618
+ 0.50999999046325684
+ 0.97050554401449818
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999997879515621
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.273588712934393
+ 10.010999679568112
+
+ cloud_shadow
+
+ 0.34000000357627869
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028814651401716849
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 16.30000114440918
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0002455048624084
+ 0.001
+ -0.4800002433233434
+ 1
+
+ haze_density
+
+ 0.6606740078475033
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.18262636689842734
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.99904829263687134
+ -0.043617993593215942
+ 0
+
+ max_y
+
+ 1348.8893615007401
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 0
+ sun_angle
+ 1.6144281625747681
+ sunlight_color
+
+ 1.1362672142439687
+ 1.1719930547447106
+ 1.2613076522878659
+ 0.42043587660352916
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2003.xml
new file mode 100644
index 000000000..d484dbf8f
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.0298734564795637
+ 0.88898782567135015
+ 0.88898782567135015
+ 0.79949215426478126
+
+ blue_density
+
+ 0.17798297054824247
+ 0.41603360580930904
+ 0.78683667783050026
+ 0.79594799064391797
+
+ blue_horizon
+
+ 0.23530982264376704
+ 0.30629670960041322
+ 0.37835530224478614
+ 0.77620100618916932
+
+ cloud_color
+
+ 0.2866606875510479
+ 0.2866606875510479
+ 0.2866606875510479
+ 0.80582145952723883
+
+ cloud_pos_density1
+
+ 0.17999999225139618
+ 0.50999999046325684
+ 0.91949393667753065
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697698
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.400862650389627
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.34000000357627869
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00036784747657809082
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0.93417677079577877
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.16987348178519687
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.30417308211326599
+ -0.95261681079864502
+ 0
+
+ max_y
+
+ 905.60360267758369
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 0
+ sun_angle
+ 2.8325223922729492
+ sunlight_color
+
+ 2.1459913660813905
+ 2.1615810746477075
+ 2.2005553460635001
+ 0.76961867816836427
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2004.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2004.xml
new file mode 100644
index 000000000..2de71161f
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Dream%20Book%20Light%2004.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.99101096746882478
+ 0.90569759047448506
+ 0.94676920768410944
+ 0.33033699762952112
+
+ blue_density
+
+ 0.15949166061381881
+ 0.44534921175553777
+ 0.78703662568265287
+ 0.78703662568265287
+
+ blue_horizon
+
+ 0.45808683258190275
+ 0.46276614028103857
+ 0.64592672496531911
+ 0.38195237578970165
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.17999999225139618
+ 0.50999999046325684
+ 0.97050554401449818
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999997879515621
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.273588712934393
+ 10.010999679568112
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00033999999868683517
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 31
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0002455711364746
+ 0.0010000000474974513
+ -0.74999994039535522
+ 1
+
+ haze_density
+
+ 1.059999942779541
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.42999997735023499
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.99904829263687134
+ -0.043617993593215942
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 0
+ sun_angle
+ 1.6144281625747681
+ sunlight_color
+
+ 1.1362672142439687
+ 1.1719930547447106
+ 1.2613076522878659
+ 0.42043587660352916
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Epi%20Vintage%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Epi%20Vintage%20Light.xml
new file mode 100644
index 000000000..1bb93ec23
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Epi%20Vintage%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.29999998211860657
+ 0.17999999225139618
+ 0
+ 0.099999994039535522
+
+ blue_density
+
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.48999997973442078
+
+ blue_horizon
+
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.15999999642372131
+
+ cloud_color
+
+ 0.50999999046325684
+ 0.50999999046325684
+ 0.50999999046325684
+ 1
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.079999998211860657
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.25999999046325684
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00031000000308267772
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 40.299999237060547
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.33000001311302185
+ 1
+
+ haze_density
+
+ 2.2100000381469727
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.56999999284744263
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.36227512359619141
+ -0.93207120895385742
+ 0
+
+ max_y
+
+ 752
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.7708849906921387
+ sunlight_color
+
+ 1.3799998760223389
+ 1.3799998760223389
+ 1.3799998760223389
+ 0.45999997854232788
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Fashion%20Path%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Fashion%20Path%20Light%2001.xml
new file mode 100644
index 000000000..14d6ab9b3
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Fashion%20Path%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.5
+ 1.5
+ 3
+ 1
+
+ blue_density
+
+ 2
+ 2
+ 1
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.18000000715255737
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 62.700000762939453
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.42999997735023499
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.28709480166435242
+ 0.6259227991104126
+ -0.72511875629425049
+ 0
+
+ max_y
+
+ 0
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.67631423473358154
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Got%20It%20Light%20.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Got%20It%20Light%20.xml
new file mode 100644
index 000000000..718bd1ab5
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Got%20It%20Light%20.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.56099998950958252
+ 0.37620007991790771
+ 0.099000021815299988
+ 0.18699999153614044
+
+ blue_density
+
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.48999997973442078
+
+ blue_horizon
+
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.15999999642372131
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.12459999322891235
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.0004881999921053648
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 3.9000000953674316
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.2870795726776123
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3042999505996704
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.04999995231628418
+ 1
+
+ haze_density
+
+ 3.4800000190734863
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.37000000476837158
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.70532232522964478
+ 0.35430732369422913
+ 0.61399251222610474
+ 0
+
+ max_y
+
+ 385
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.7794194221496582
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light%2001.xml
new file mode 100644
index 000000000..8b6adaae2
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1.7200000286102295
+ 1.3424379825592041
+ 0.83542799949645996
+ 0.86000001430511475
+
+ blue_horizon
+
+ 1.4582855701446533
+ 1.3041387796401978
+ 1.0971424579620361
+ 0.72914278507232666
+
+ cloud_color
+
+ 0
+ 0.39843800663948059
+ 0.39843699336051941
+ 0.39843800663948059
+
+ cloud_pos_density1
+
+ 0.47999998927116394
+ 0.87000000476837158
+ 1.4378999471664429
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87000000476837158
+ 1
+
+ cloud_scale
+
+ 0.37199997901916504
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.55000001192092896
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00058270001318305731
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 63
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -10
+ 1
+
+ haze_density
+
+ 0.039999999105930328
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.52999997138977051
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.28709480166435242
+ 0.6259227991104126
+ -0.72511875629425049
+ 0
+
+ max_y
+
+ 5615
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.67631423473358154
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light%2002.xml
new file mode 100644
index 000000000..0fadd9c75
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.37000000476837158
+ 0.79999995231628418
+ 0.12429999560117722
+ 1
+
+ cloud_pos_density2
+
+ 0.97999995946884155
+ 0.70999997854232788
+ 0.049999997019767761
+ 1
+
+ cloud_scale
+
+ 0.17359998822212219
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.47300004959106445
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 9.4499999249819666e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 39.400001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 5.4852209091186523
+ enable_cloud_scroll
+
+ 0
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.070000000298023224
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17999999225139618
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.47905999422073364
+ 0.74313849210739136
+ 0.46716883778572083
+ 0
+
+ max_y
+
+ 3615
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.83774858713150024
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light.xml
new file mode 100644
index 000000000..0fadd9c75
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Horizon%20Building%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.37000000476837158
+ 0.79999995231628418
+ 0.12429999560117722
+ 1
+
+ cloud_pos_density2
+
+ 0.97999995946884155
+ 0.70999997854232788
+ 0.049999997019767761
+ 1
+
+ cloud_scale
+
+ 0.17359998822212219
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.47300004959106445
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 9.4499999249819666e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 39.400001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 5.4852209091186523
+ enable_cloud_scroll
+
+ 0
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.070000000298023224
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17999999225139618
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.47905999422073364
+ 0.74313849210739136
+ 0.46716883778572083
+ 0
+
+ max_y
+
+ 3615
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.83774858713150024
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hospital%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hospital%20Light%2001.xml
new file mode 100644
index 000000000..e615890c9
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hospital%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.84000003337860107
+ 0.84000003337860107
+ 0.84000003337860107
+ 0.2800000011920929
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.17999999225139618
+ 0.50999999046325684
+ 0.97050554401449818
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999997879515621
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.273588712934393
+ 10.010999679568112
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00017699999443721026
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 26.399999618530273
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9163715839385986
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0002455711364746
+ 0.0010000000474974513
+ -0.94999998807907104
+ 1
+
+ haze_density
+
+ 0.96999996900558472
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.37999999523162842
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.88343405723571777
+ 0.34407094120979309
+ 0.3180558979511261
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 0
+ sun_angle
+ 2.7903435230255127
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2001.xml
new file mode 100644
index 000000000..c5b090d13
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.56250005960464478
+ 0.26250001788139343
+ 0.75
+ 0.25
+
+ blue_density
+
+ 0
+ 0.40999585390090942
+ 0.81999999284744263
+ 0.85999995470046997
+
+ blue_horizon
+
+ 0.43999999761581421
+ 0.22910800576210022
+ 0.26829266548156738
+ 0.2199999988079071
+
+ cloud_color
+
+ 0.23999999463558197
+ 0.4699999988079071
+ 0.31999999284744263
+ 0.4699999988079071
+
+ cloud_pos_density1
+
+ 0.48999997973442078
+ 0.50999999046325684
+ 0.74000000953674316
+ 1
+
+ cloud_pos_density2
+
+ 0.44999998807907104
+ 0.5
+ 0.14000000059604645
+ 1
+
+ cloud_scale
+
+ 0.32999998331069946
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.37999999523162842
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00035999997635371983
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 2
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.12566371262073517
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 2.0299999713897705
+ 0
+ 0
+ 1
+
+ glow
+
+ 12
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 0.77999997138977051
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.15999999642372131
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.12524418532848358
+ 0.037689968943595886
+ -0.9914097785949707
+ 0
+
+ max_y
+
+ 591
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 1.0099999904632568
+ sun_angle
+ 3.1038937568664551
+ sunlight_color
+
+ 2.5799999237060547
+ 2.4411697387695313
+ 2.4411697387695313
+ 0.85999995470046997
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2002.xml
new file mode 100644
index 000000000..aaff835eb
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.26250001788139343
+ 0.3031250536441803
+ 0.75
+ 0.25
+
+ blue_density
+
+ 1
+ 0.5
+ 0
+ 0.5
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.23999999463558197
+ 0.4699999988079071
+ 0.31999999284744263
+ 0.4699999988079071
+
+ cloud_pos_density1
+
+ 0.48999997973442078
+ 0.50999999046325684
+ 0.74000000953674316
+ 1
+
+ cloud_pos_density2
+
+ 0.44999998807907104
+ 0.5
+ 0.14000000059604645
+ 1
+
+ cloud_scale
+
+ 0.32999998331069946
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.37999999523162842
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00031719999969936907
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 39.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.4064600467681885
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 2.4347999095916748
+ 0
+ 0
+ 1
+
+ glow
+
+ 12
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 1.559999942779541
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.15999999642372131
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.67022424936294556
+ 0.037081710994243622
+ 0.74123167991638184
+ 0
+
+ max_y
+
+ 0
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 1.0099999904632568
+ sun_angle
+ 3.1045024394989014
+ sunlight_color
+
+ 2.5799999237060547
+ 2.4411697387695313
+ 2.4411697387695313
+ 0.86000001430511475
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2003.xml
new file mode 100644
index 000000000..82c876696
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Hufflepuff%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.56250005960464478
+ 0.26250001788139343
+ 0.75
+ 0.25
+
+ blue_density
+
+ 0
+ 0.40999585390090942
+ 0.81999999284744263
+ 0.85999995470046997
+
+ blue_horizon
+
+ 0.43999999761581421
+ 0.22910800576210022
+ 0.26829266548156738
+ 0.2199999988079071
+
+ cloud_color
+
+ 0.23999999463558197
+ 0.4699999988079071
+ 0.31999999284744263
+ 0.4699999988079071
+
+ cloud_pos_density1
+
+ 0.48999997973442078
+ 0.50999999046325684
+ 0.74000000953674316
+ 1
+
+ cloud_pos_density2
+
+ 0.44999998807907104
+ 0.5
+ 0.14000000059604645
+ 1
+
+ cloud_scale
+
+ 0.32999998331069946
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.37999999523162842
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00049000000581145287
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 35.700000762939453
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.12566371262073517
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 2.0299999713897705
+ 0
+ 0
+ 1
+
+ glow
+
+ 12
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 1.5899999141693115
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.15999999642372131
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.12524418532848358
+ 0.037689968943595886
+ -0.9914097785949707
+ 0
+
+ max_y
+
+ 591
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 1.0099999904632568
+ sun_angle
+ 3.1038937568664551
+ sunlight_color
+
+ 2.5799999237060547
+ 2.4411697387695313
+ 2.4411697387695313
+ 0.85999995470046997
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2001.xml
new file mode 100644
index 000000000..768f4f7a8
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.0499999523162842
+ 1.0499999523162842
+ 1.0499999523162842
+ 0.34999999403953552
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0.6171875
+ 0.6171875
+ 0.6171875
+ 0.30859375
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00017999998817685992
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 70.900001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.1999998092651367
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.18999999761581421
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 1
+ -4.3711388286737929e-008
+ 0
+
+ max_y
+
+ 1605
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.5707963705062866
+ sunlight_color
+
+ 0.7342105507850647
+ 0.78157901763916016
+ 0.90000003576278687
+ 0.30000001192092896
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2002.xml
new file mode 100644
index 000000000..c75320eea
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.0499999523162842
+ 1.0499999523162842
+ 1.0499999523162842
+ 0.34999999403953552
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0.6171875
+ 0.6171875
+ 0.6171875
+ 0.30859375
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00017999998817685992
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 70.599998474121094
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.1999998092651367
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.18999999761581421
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 1
+ -4.3711388286737929e-008
+ 0
+
+ max_y
+
+ 2923
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.5707963705062866
+ sunlight_color
+
+ 0.7342105507850647
+ 0.78157901763916016
+ 0.90000003576278687
+ 0.30000001192092896
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2003.xml
new file mode 100644
index 000000000..638439837
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.62999999523162842
+ 0.62999999523162842
+ 0.62999999523162842
+ 0.20999999344348907
+
+ blue_density
+
+ 1.5
+ 1.5
+ 1.5
+ 0.75
+
+ blue_horizon
+
+ 0.6171875
+ 0.6171875
+ 0.6171875
+ 0.30859375
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00012599999899975955
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 70.599998474121094
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.1999998092651367
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.98999994993209839
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 1
+ -4.3711388286737929e-008
+ 0
+
+ max_y
+
+ 2923
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.5707963705062866
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2004.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2004.xml
new file mode 100644
index 000000000..fcec7085f
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jessica%20Light%2004.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.62999999523162842
+ 0.62999999523162842
+ 0.62999999523162842
+ 0.20999999344348907
+
+ blue_density
+
+ 1.5
+ 1.5
+ 1.5
+ 0.75
+
+ blue_horizon
+
+ 0.6171875
+ 0.6171875
+ 0.6171875
+ 0.30859375
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 4.7199999244185165e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 70.900001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 27.200000762939453
+ 0.0010000000474974513
+ -7.3500003814697266
+ 1
+
+ haze_density
+
+ 1.1699999570846558
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.81999999284744263
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 1
+ -4.3711388286737929e-008
+ 0
+
+ max_y
+
+ 10000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.5707963705062866
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jim%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jim%20Light%2001.xml
new file mode 100644
index 000000000..57538798b
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jim%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.18000000715255737
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.3874998847643383
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.8274335861206055
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.51583333298563971
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.13833333183079954
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.30801057815551758
+ 0.080633237957954407
+ -0.94795984029769897
+ 0
+
+ max_y
+
+ 685.18749099969864
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.080720871686935425
+ sunlight_color
+
+ 0
+ 3
+ 1.5
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jim%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jim%20Light%2002.xml
new file mode 100644
index 000000000..11772b4f0
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Jim%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.18000000715255737
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.3874998847643383
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.6515045166015625
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.4347999095916748
+ 0
+ 0
+ 1
+
+ glow
+
+ 20
+ 0.0010000000474974513
+ -0
+ 1
+
+ haze_density
+
+ 0.51583333298563971
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.13833333183079954
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.46225041151046753
+ 0.18866632878780365
+ -0.86644649505615234
+ 0
+
+ max_y
+
+ 685.18749099969864
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.18980391323566437
+ sunlight_color
+
+ 0
+ 3
+ 1.5
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2001.xml
new file mode 100644
index 000000000..88205d15c
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.0448951721191406
+ 1.0375124216079712
+ 1.0410666465759277
+ 0.34829840064048767
+
+ blue_density
+
+ 0.15995600819587708
+ 0.44843131303787231
+ 0.76233971118927002
+ 0.38116985559463501
+
+ blue_horizon
+
+ 0.53291136026382446
+ 0.47850862145423889
+ 0.69532060623168945
+ 0.34766030311584473
+
+ cloud_color
+
+ 0.36694067716598511
+ 0.36694067716598511
+ 0.36694067716598511
+ 0.36694067716598511
+
+ cloud_pos_density1
+
+ 0.59999996423721313
+ 0.4699999988079071
+ 0.99744760127569754
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999997638634312
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.206368064503224
+ 10.010999679565662
+
+ cloud_shadow
+
+ 0.48999997973442078
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00018935874525381486
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0.84041139239945806
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.32672566175460815
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0000211801171162
+ 0.0010000000474974277
+ -0.48000001234523038
+ 1
+
+ haze_density
+
+ 0.69659684739417083
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.1893618953990921
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.27510377764701843
+ 0.51503080129623413
+ 0.81182581186294556
+ 0
+
+ max_y
+
+ 1582.8367459774017
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.54104357957839966
+ sunlight_color
+
+ 0.76900362968444824
+ 0.8153645396232605
+ 0.93126672506332397
+ 0.31042224168777466
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2002.xml
new file mode 100644
index 000000000..d385af566
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.45899999141693115
+ 0.3078000545501709
+ 0.081000030040740967
+ 0.15299999713897705
+
+ blue_density
+
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.48999997973442078
+
+ blue_horizon
+
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.15999999642372131
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.12459999322891235
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00040939997415989637
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 3.9000000953674316
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.2870795726776123
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3042999505996704
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.04999995231628418
+ 1
+
+ haze_density
+
+ 2.869999885559082
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.5
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.71421909332275391
+ 0.32145592570304871
+ 0.62173730134963989
+ 0
+
+ max_y
+
+ 385
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.8143260478973389
+ sunlight_color
+
+ 2.0099999904632568
+ 2.0099999904632568
+ 2.0099999904632568
+ 0.67000001668930054
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2003.xml
new file mode 100644
index 000000000..40ffdc4cd
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20July%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.56099998950958252
+ 0.37620007991790771
+ 0.099000021815299988
+ 0.18699999153614044
+
+ blue_density
+
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.48999997973442078
+
+ blue_horizon
+
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.15999999642372131
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.12459999322891235
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.0004881999921053648
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 3.9000000953674316
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.2556638717651367
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3042999505996704
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.04999995231628418
+ 1
+
+ haze_density
+
+ 3.4800000190734863
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.37000000476837158
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.72426009178161621
+ 0.35430732369422913
+ 0.59153497219085693
+ 0
+
+ max_y
+
+ 385
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.7794194221496582
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Landar%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Landar%20Light%2001.xml
new file mode 100644
index 000000000..30cdcd0a5
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Landar%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1.5
+ 1.5
+ 1.5
+ 0.75
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.95999997854232788
+ 0.31000000238418579
+ 0.34149998426437378
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.049599997699260712
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 93.100006103515625
+ -25.899993896484375
+
+ cloud_shadow
+
+ 0.25999999046325684
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00018439999257680029
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 2.2000000476837158
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.1855752468109131
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 15.799999237060547
+ 0.0010000000474974513
+ -0.74999994039535522
+ 1
+
+ haze_density
+
+ 0.66999995708465576
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.12999999523162842
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.040397927165031433
+ 0.39473667740821838
+ -0.91790574789047241
+ 0
+
+ max_y
+
+ 2231
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 500
+ sun_angle
+ 0.40578123927116394
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20%20Gun%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20%20Gun%20Light.xml
new file mode 100644
index 000000000..add735967
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20%20Gun%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.5
+ 1.8999999761581421
+ 3
+ 1
+
+ blue_density
+
+ 1.4579999446868896
+ 0
+ 0.82620006799697876
+ 0.72899997234344482
+
+ blue_horizon
+
+ 1.4579999446868896
+ 0
+ 0.7047005295753479
+ 0.72899997234344482
+
+ cloud_color
+
+ 0.37840613487830987
+ 0.37840613487830987
+ 0.37840613487830987
+ 0.37840613487830987
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.99999998870089368
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999997841284203
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999837455794
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.48999997973442078
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 3.6899997212458402e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 75.200004577636719
+ 0
+ 0
+ 1
+
+ east_angle
+ 6.2266373634338379
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0434999465942383
+ 0
+ 0
+ 1
+
+ glow
+
+ 4.9999999435054558
+ 0.0010000000474974513
+ -0.4799999902127477
+ 1
+
+ haze_density
+
+ 0.34999999403953552
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 1
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.045796267688274384
+ 0.58601820468902588
+ 0.80900269746780396
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.62613606452941895
+ sunlight_color
+
+ 1.4099999666213989
+ 1.4099999666213989
+ 1.4099999666213989
+ 0.4699999988079071
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2001.xml
new file mode 100644
index 000000000..2a395d8bb
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.0006399999838322401
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 100
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.1415927410125732
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.0199999809265137
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -2.5
+ 1
+
+ haze_density
+
+ 4
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 1
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 4.8569567923095747e-008
+ 0.83146905899047852
+ -0.55557107925415039
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 1.5
+ 1.5
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2002.xml
new file mode 100644
index 000000000..dbb840506
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 3
+ 3
+ 3
+ 1
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.29999998211860657
+ 0.93999999761581421
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 0.44999998807907104
+ 0.35999998450279236
+ 0.019999999552965164
+ 1
+
+ cloud_scale
+
+ 0.45999997854232788
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 20
+ 20
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00089999998454004526
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 6.2831854820251465
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 1.0099999904632568
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -2.5
+ 1
+
+ haze_density
+
+ 4
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 1
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 6.3370464431500295e-008
+ 0.93200832605361938
+ -0.36243680119514465
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 24
+ star_brightness
+ 2
+ sun_angle
+ 1.941677451133728
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2003.xml
new file mode 100644
index 000000000..3b32f8dcf
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.41796875
+ 1.41796875
+ 1.41796875
+ 0.47265625
+
+ blue_density
+
+ 0.12089811412885521
+ 0.33770671695460663
+ 0.67541757891583387
+ 0.76708334654569654
+
+ blue_horizon
+
+ 0.13497034943045882
+ 0.26690842067701936
+ 0.4016666400432598
+ 0.74541666984558219
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.15000000596046448
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.12999999523162842
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.3874998847643383
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.51583333298563971
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.13833333183079954
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.28709480166435242
+ 0.6259227991104126
+ -0.72511875629425049
+ 0
+
+ max_y
+
+ 685.18749099969864
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.67631423473358154
+ sunlight_color
+
+ 2.44921875
+ 2.44921875
+ 2.44921875
+ 0.81640625
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2004.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2004.xml
new file mode 100644
index 000000000..21cf058bf
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2004.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.41796875
+ 1.41796875
+ 1.41796875
+ 0.47265625
+
+ blue_density
+
+ 0.12089811412885521
+ 0.33770671695460663
+ 0.67541757891583387
+ 0.76708334654569654
+
+ blue_horizon
+
+ 0.13497034943045882
+ 0.26690842067701936
+ 0.4016666400432598
+ 0.74541666984558219
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.15000000596046448
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.12999999523162842
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.3874998847643383
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.51583333298563971
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.13833333183079954
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.28709480166435242
+ 0.6259227991104126
+ -0.72511875629425049
+ 0
+
+ max_y
+
+ 685.18749099969864
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.67631423473358154
+ sunlight_color
+
+ 1.078125
+ 1.078125
+ 1.078125
+ 0.359375
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2005.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2005.xml
new file mode 100644
index 000000000..bb863523a
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Light%2005.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00089999998454004526
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 22.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.1415927410125732
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.0199999809265137
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -2.5
+ 1
+
+ haze_density
+
+ 1.8199999332427979
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 1
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 4.8569567923095747e-008
+ 0.83146905899047852
+ -0.55557107925415039
+ 0
+
+ max_y
+
+ 3533
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 1.5
+ 1.5
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Moves%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Moves%20Light.xml
new file mode 100644
index 000000000..38ca17aa6
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Moves%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0.39999997615814209
+ 0.39999997615814209
+ 0.39999997615814209
+ 0.19999998807907104
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 1
+ 0.5
+ 0
+ 1
+
+ cloud_pos_density1
+
+ 1
+ 0.65999996662139893
+ 0.31099998950958252
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.042800001800060272
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 15.309999465942383
+ 14.079999923706055
+
+ cloud_shadow
+
+ 0.40999999642372131
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 100
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.7824780941009521
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.26089999079704285
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.59999942779541016
+ 0.0010000000474974513
+ -1.75
+ 1
+
+ haze_density
+
+ 4
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 1
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.065092690289020538
+ 0.99405622482299805
+ -0.087264858186244965
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 2
+ sun_angle
+ 1.4617122411727905
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Music%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Music%20Light%2001.xml
new file mode 100644
index 000000000..db2ba2d16
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Lo%20Music%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.15000000596046448
+ 0.15000000596046448
+ 0.15000000596046448
+ 0.05000000074505806
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.15999999642372131
+ 0.50999999046325684
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 0.50999999046325684
+ 1
+ 1
+
+ cloud_scale
+
+ 0.059000000357627869
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 14.409999847412109
+ 4.7999997138977051
+
+ cloud_shadow
+
+ 0.18999999761581421
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 51.200000762939453
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.69569998979568481
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -2.5
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.26999998092651367
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.62063354253768921
+ 0.74460232257843018
+ -0.24572627246379852
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 0.83993887901306152
+ sunlight_color
+
+ 1.5
+ 1.5
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2001.xml
new file mode 100644
index 000000000..ecae12925
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.1875
+ 0.1875
+ 0.1875
+ 0.0625
+
+ blue_density
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.70001220703125
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.44999998807907104
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00014170000213198364
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 7.9000000953674316
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.66999995708465576
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.51655691862106323
+ 0.83146905899047852
+ -0.20451940596103668
+ 0
+
+ max_y
+
+ 21
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2002.xml
new file mode 100644
index 000000000..d0ba4bb02
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.1875
+ 0.1875
+ 0.1875
+ 0.0625
+
+ blue_density
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.99409997463226318
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.49579998850822449
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.70001220703125
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.29999998211860657
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00015750000602565706
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 4.5999999046325684
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 1.7400000095367432
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.070000000298023224
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.51655691862106323
+ 0.83146905899047852
+ -0.20451940596103668
+ 0
+
+ max_y
+
+ 11
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2003.xml
new file mode 100644
index 000000000..ecae12925
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Mavi%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.1875
+ 0.1875
+ 0.1875
+ 0.0625
+
+ blue_density
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.70001220703125
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.44999998807907104
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00014170000213198364
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 7.9000000953674316
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.66999995708465576
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.51655691862106323
+ 0.83146905899047852
+ -0.20451940596103668
+ 0
+
+ max_y
+
+ 21
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Me%20Love%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Me%20Love%20Light.xml
new file mode 100644
index 000000000..838e394cb
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Me%20Love%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0.39999997615814209
+ 0.39999997615814209
+ 0.39999997615814209
+ 0.19999998807907104
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 1
+ 0.5
+ 0
+ 1
+
+ cloud_pos_density1
+
+ 0.2800000011920929
+ 0.31999999284744263
+ 0.14019998908042908
+ 1
+
+ cloud_pos_density2
+
+ 0.019999999552965164
+ 0.45999997854232788
+ 0
+ 1
+
+ cloud_scale
+
+ 0.018199998885393143
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 15.309999465942383
+ 14.079999923706055
+
+ cloud_shadow
+
+ 1
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 100
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.7824780941009521
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.69569993019104
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.59999942779541016
+ 0.0010000000474974513
+ -1.75
+ 1
+
+ haze_density
+
+ 4
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 1
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.032595228403806686
+ 0.99851292371749878
+ -0.043697964400053024
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 2
+ sun_angle
+ 1.5162535905838013
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Me%20Mine%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Me%20Mine%20Light.xml
new file mode 100644
index 000000000..155a8b9e4
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Me%20Mine%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.0799999237060547
+ 0.98999994993209839
+ 0.77999997138977051
+ 1.0799999237060547
+
+ blue_density
+
+ 0.64736837148666382
+ 0.48414888978004456
+ 0.81999999284744263
+ 0.40999999642372131
+
+ blue_horizon
+
+ 0.5
+ 0.49548381567001343
+ 0.45999997854232788
+ 0.51999998092651367
+
+ cloud_color
+
+ 0.4100000062111997
+ 0.4100000062111997
+ 0.4100000062111997
+ 0.4100000062111997
+
+ cloud_pos_density1
+
+ 0.14000000059604645
+ 0.62000000476837158
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.35999998450279236
+ 0.56999999284744263
+ 0.12999999523162842
+ 1
+
+ cloud_scale
+
+ 0.35999998450279236
+ 0
+ 0
+ 1.0000000149011612
+
+ cloud_scroll_rate
+
+ 10.199999791580112
+ 10.010999679880427
+
+ cloud_shadow
+
+ 0.29999998211860657
+ 0
+ 0
+ 1.0000000149011612
+
+ density_multiplier
+
+ 7.9999997979030013e-005
+ 0
+ 0
+ 1.0000000149011612
+
+ distance_multiplier
+
+ 5.4000000953674316
+ 0
+ 0
+ 1.0000000149011612
+
+ east_angle
+ 1.0932743549346924
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.1699998378753662
+ 0
+ 0
+ 1.0000000149011612
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.55000001192092896
+ 1
+
+ haze_density
+
+ 0.31999999284744263
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17999999225139618
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.39627334475517273
+ 0.89494067430496216
+ -0.20505768060684204
+ 0
+
+ max_y
+
+ 805
+ 0
+ 0
+ 1.0000000149011612
+
+ preset_num
+ 28
+ star_brightness
+ 0.25999999046325684
+ sun_angle
+ 2.0332944393157959
+ sunlight_color
+
+ 3
+ 0
+ 0
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Meni%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Meni%20Light%2001.xml
new file mode 100644
index 000000000..f308d292e
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Meni%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.28464806749374816
+ 0.45923502031814678
+ 0.7409173846244812
+ 0.7409173846244812
+
+ blue_density
+
+ 0.25613615825332658
+ 0.41819368084009056
+ 0.6726322016895665
+ 1
+
+ blue_horizon
+
+ 2
+ 1
+ 0
+ 1
+
+ cloud_color
+
+ 0.52756190160579308
+ 0.52756190160579308
+ 0.52756190160579308
+ 1
+
+ cloud_pos_density1
+
+ 0.72999995946884155
+ 0.34000000357627869
+ 0.32999998331069946
+ 1
+
+ cloud_pos_density2
+
+ 0.28999999165534973
+ 0.84999996423721313
+ 0.019999999552965164
+ 1
+
+ cloud_scale
+
+ 0.32999998058761548
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.499399946934318
+ 10.010999746491507
+
+ cloud_shadow
+
+ 0.37000000476837158
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 2.9999999242136255e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 100
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.9530971050262451
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 3.0199999809265137
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.79999923706054688
+ 0.0010000000474974513
+ -1.1999999284744263
+ 1
+
+ haze_density
+
+ 2.1499998569488525
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.23999999463558197
+ 0.19915598630905151
+ 0.19915598630905151
+ 1
+
+ lightnorm
+
+ 0.12659277021884918
+ 0.7372782826423645
+ 0.66362255811691284
+ 0
+
+ max_y
+
+ 711.42973550362512
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 0
+ sun_angle
+ 2.3125598430633545
+ sunlight_color
+
+ 0.62994743245872087
+ 0.69737775977682759
+ 0.86806544391379248
+ 0.28935515608276319
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Miaa%20light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Miaa%20light%2001.xml
new file mode 100644
index 000000000..eedc74c88
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Miaa%20light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 1
+ 1
+ 1
+ 0.5
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.76829999685287476
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.059000000357627869
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00025079998886212707
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 77.400001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.19477875530719757
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.5699999332427979
+ 0
+ 0
+ 1
+
+ glow
+
+ 16.80000114440918
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 1.1190000772476196
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.17000000178813934
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.14745019376277924
+ 0.64778679609298706
+ 0.74741601943969727
+ 0
+
+ max_y
+
+ 2353
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 1.7856996059417725
+ sun_angle
+ 0.70467567443847656
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2001.xml
new file mode 100644
index 000000000..e7fa44c7e
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.20632287859916687
+ 0.24516719579696655
+ 0.33367714285850525
+ 0.11122571676969528
+
+ blue_density
+
+ 0.44999827251961821
+ 0.44999970758411817
+ 0.45000196070835302
+ 1
+
+ blue_horizon
+
+ 0.23999924952063895
+ 0.23999984552653461
+ 0.24000005119478959
+ 1
+
+ cloud_color
+
+ 0.22615400012094211
+ 0.22615400012094211
+ 0.22615400012094211
+ 1
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999801324269
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.0099999997764825821
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.499400180710069
+ 10.01099976217745
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 8.9999994088429958e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 41.100002288818359
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.5707963705062866
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0000000000004476
+ 0.0010000000424271499
+ -0.47999998973471036
+ 1
+
+ haze_density
+
+ 0.20999999344348907
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.20999999344348907
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.83147060871124268
+ 0.55556869506835938
+ -3.6344733445048405e-008
+ 1
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 1.9999886751174927
+ sun_angle
+ 3.7306394577026367
+ sunlight_color
+
+ 0.45637205243110657
+ 0.46549969911575317
+ 0.86362791061401367
+ 0.28787598013877869
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2002.xml
new file mode 100644
index 000000000..99d59e510
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.20405027270317078
+ 0.24246673285961151
+ 0.32999998331069946
+ 0.10999999940395355
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.12999999523162842
+ 0.31999999284744263
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.74000000953674316
+ 0.17999999225139618
+ 1
+
+ cloud_scale
+
+ 0.99999994039535522
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 16.869998931884766
+ 16.760000228881836
+
+ cloud_shadow
+
+ 0.2199999988079071
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00032459996873512864
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 85.300003051757813
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.0807079076766968
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.1999998092651367
+ 0.0010000000474974513
+ -0.39999997615814209
+ 1
+
+ haze_density
+
+ 4
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.019999999552965164
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.79044967889785767
+ 0.44424447417259216
+ -0.42170625925064087
+ 1
+
+ max_y
+
+ 303
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 5.8228545188903809
+ sunlight_color
+
+ 1.390916109085083
+ 1.4052181243896484
+ 2.0290837287902832
+ 0.67636126279830933
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2003.xml
new file mode 100644
index 000000000..f6b4ddab8
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.38972097635269165
+ 0.46309363842010498
+ 0.63027900457382202
+ 0.21009300649166107
+
+ blue_density
+
+ 0.44999827251961821
+ 0.44999970758411817
+ 0.45000196070835302
+ 1
+
+ blue_horizon
+
+ 0.23999924952063895
+ 0.23999984552653461
+ 0.24000005119478959
+ 1
+
+ cloud_color
+
+ 0.22615400012094211
+ 0.22615400012094211
+ 0.22615400012094211
+ 1
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999801324269
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 3
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.499400180710069
+ 10.01099976217745
+
+ cloud_shadow
+
+ 0.22999998927116394
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 8.9999994088429958e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 41.100002288818359
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.8588495254516602
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0000000000004476
+ 0.0010000000424271499
+ -0.47999998973471036
+ 1
+
+ haze_density
+
+ 0.20999999344348907
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.20999999344348907
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.23529607057571411
+ 0.53731352090835571
+ 0.80989503860473633
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 2.5743441581726074
+ sunlight_color
+
+ 0.5808371901512146
+ 0.59245419502258301
+ 1.0991628170013428
+ 0.36638760566711426
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2004.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2004.xml
new file mode 100644
index 000000000..76c2aed13
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2004.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.20405027270317078
+ 0.24246673285961151
+ 0.32999998331069946
+ 0.10999999940395355
+
+ blue_density
+
+ 0.23251199722290039
+ 0.23716199398040771
+ 0.43999999761581421
+ 0.2199999988079071
+
+ blue_horizon
+
+ 0.23999999463558197
+ 0.23999999463558197
+ 0.23999999463558197
+ 1
+
+ cloud_color
+
+ 0.625
+ 0.625
+ 0.875
+ 0.875
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999523162842
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.17359998822212219
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.11999999731779099
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00033069998607970774
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 70.900001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9666372537612915
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 1.5999999046325684
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.019999999552965164
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.41169273853302002
+ 0.89493530988693237
+ 0.17204611003398895
+ 1
+
+ max_y
+
+ 308
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 5.1748991012573242
+ sunlight_color
+
+ 0.93348866701126099
+ 0.95215761661529541
+ 1.7665112018585205
+ 0.58883708715438843
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2005.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2005.xml
new file mode 100644
index 000000000..496ab40eb
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2005.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.20405027270317078
+ 0.24246673285961151
+ 0.32999998331069946
+ 0.10999999940395355
+
+ blue_density
+
+ 0.23251199722290039
+ 0.23716199398040771
+ 0.43999999761581421
+ 0.2199999988079071
+
+ blue_horizon
+
+ 0.23999999463558197
+ 0.23999999463558197
+ 0.23999999463558197
+ 1
+
+ cloud_color
+
+ 0.625
+ 0.625
+ 0.875
+ 0.875
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999523162842
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.17359998822212219
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.11999999731779099
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00033069998607970774
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 70.900001525878906
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.3499114513397217
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.0899999141693115
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 1.5999999046325684
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.019999999552965164
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.37705510854721069
+ 0.84804928302764893
+ 0.37234652042388916
+ 1
+
+ max_y
+
+ 308
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 5.2708921432495117
+ sunlight_color
+
+ 0.34876799583435059
+ 0.50438410043716431
+ 0.65999996662139893
+ 0.2199999988079071
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2006.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2006.xml
new file mode 100644
index 000000000..715252787
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2006.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.20632287859916687
+ 0.24516719579696655
+ 0.33367714285850525
+ 0.11122571676969528
+
+ blue_density
+
+ 0
+ 0
+ 1
+ 0.5
+
+ blue_horizon
+
+ 1
+ 0.5
+ 0
+ 0.5
+
+ cloud_color
+
+ 0.22615400012094211
+ 0.22615400012094211
+ 0.22615400012094211
+ 1
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999801324269
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.0099999997764825821
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.499400180710069
+ 10.01099976217745
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00013000000035390258
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 20.200000762939453
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.5707963705062866
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 2.0199999809265137
+ 0
+ 0
+ 1
+
+ glow
+
+ 6.8000006675720215
+ 0.0010000000474974513
+ -0.69999998807907104
+ 1
+
+ haze_density
+
+ 1
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.48999997973442078
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.85491305589675903
+ 0.51877129077911377
+ -3.7369435545997476e-008
+ 1
+
+ max_y
+
+ 1333
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 3.6870057582855225
+ sunlight_color
+
+ 0.45637205243110657
+ 0.46549969911575317
+ 0.86362791061401367
+ 0.28787598013877869
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2007.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2007.xml
new file mode 100644
index 000000000..739c63c99
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2007.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.32094669342041016
+ 0.38137125968933105
+ 0.51905333995819092
+ 0.17301777005195618
+
+ blue_density
+
+ 0.44999827251961821
+ 0.44999970758411817
+ 0.45000196070835302
+ 1
+
+ blue_horizon
+
+ 0.23999924952063895
+ 0.23999984552653461
+ 0.24000005119478959
+ 1
+
+ cloud_color
+
+ 0.22615400012094211
+ 0.22615400012094211
+ 0.22615400012094211
+ 1
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999801324269
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 3
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.20001220703125
+ 10.01099976217745
+
+ cloud_shadow
+
+ 0.15999999642372131
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 8.9999994088429958e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 41.100002288818359
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.7646017074584961
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0000000000004476
+ 0.0010000000424271499
+ -0.47999998973471036
+ 1
+
+ haze_density
+
+ 0.20999999344348907
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.20999999344348907
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.31046971678733826
+ 0.53731352090835571
+ 0.78415733575820923
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 2.5743441581726074
+ sunlight_color
+
+ 0.6015813946723938
+ 0.61361336708068848
+ 1.1384185552597046
+ 0.37947285175323486
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2008.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2008.xml
new file mode 100644
index 000000000..b0fad0999
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Moon%20Light%2008.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.32094669342041016
+ 0.38137125968933105
+ 0.51905333995819092
+ 0.17301777005195618
+
+ blue_density
+
+ 0.44999827251961821
+ 0.44999970758411817
+ 0.45000196070835302
+ 1
+
+ blue_horizon
+
+ 0.23999924952063895
+ 0.23999984552653461
+ 0.24000005119478959
+ 1
+
+ cloud_color
+
+ 0.22615400012094211
+ 0.22615400012094211
+ 0.22615400012094211
+ 1
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.87999999801324269
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 3
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.20001220703125
+ 10.01099976217745
+
+ cloud_shadow
+
+ 0.15999999642372131
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 8.9999994088429958e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 41.100002288818359
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.8588495254516602
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 5.0000000000004476
+ 0.0010000000424271499
+ -0.47999998973471036
+ 1
+
+ haze_density
+
+ 0.20999999344348907
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.20999999344348907
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.23529607057571411
+ 0.53731352090835571
+ 0.80989503860473633
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 2.5743441581726074
+ sunlight_color
+
+ 0.6015813946723938
+ 0.6136133074760437
+ 1.1384185552597046
+ 0.37947285175323486
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Never%20Night%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Never%20Night%20Light.xml
new file mode 100644
index 000000000..cc3e25245
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Never%20Night%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0.30000001192092896
+ 0.10000000149011612
+
+ blue_density
+
+ 0.12089811412885521
+ 0.33770671695460663
+ 0.67541757891583387
+ 0.76708334654569654
+
+ blue_horizon
+
+ 0.13497034943045882
+ 0.26690842067701936
+ 0.4016666400432598
+ 0.74541666984558219
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.18000000715255737
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 1
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.3874998847643383
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.12999999523162842
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.51583333298563971
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.13833333183079954
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.28709480166435242
+ 0.6259227991104126
+ -0.72511875629425049
+ 0
+
+ max_y
+
+ 685.18749099969864
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.67631423473358154
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20No%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20No%20Light.xml
new file mode 100644
index 000000000..2ca2ef77b
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20No%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0.12089811412885521
+ 0.33770671695460663
+ 0.67541757891583387
+ 0.76708334654569654
+
+ blue_horizon
+
+ 0.13497034943045882
+ 0.26690842067701936
+ 0.4016666400432598
+ 0.74541666984558219
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.18000000715255737
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00028125001798306321
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.3874998847643383
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 9.4000005722045898
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.51583333298563971
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.13833333183079954
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.28709480166435242
+ 0.6259227991104126
+ -0.72511875629425049
+ 0
+
+ max_y
+
+ 685.18749099969864
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0.1029166579246521
+ sun_angle
+ 0.67631423473358154
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Owlery%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Owlery%20Light.xml
new file mode 100644
index 000000000..dca43b27f
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Owlery%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.56250005960464478
+ 0.26250001788139343
+ 0.75
+ 0.25
+
+ blue_density
+
+ 0
+ 0.40999585390090942
+ 0.81999999284744263
+ 0.85999995470046997
+
+ blue_horizon
+
+ 0.43999999761581421
+ 0.22910800576210022
+ 0.26829266548156738
+ 0.2199999988079071
+
+ cloud_color
+
+ 0.23999999463558197
+ 0.4699999988079071
+ 0.31999999284744263
+ 0.4699999988079071
+
+ cloud_pos_density1
+
+ 0.48999997973442078
+ 0.50999999046325684
+ 0.74000000953674316
+ 1
+
+ cloud_pos_density2
+
+ 0.44999998807907104
+ 0.5
+ 0.14000000059604645
+ 1
+
+ cloud_scale
+
+ 0.0835999995470047
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00035999997635371983
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 2
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.3257522583007813
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 2.0299999713897705
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.39999961853027344
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 0.77999997138977051
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.15999999642372131
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.9694594144821167
+ 0.037081710994243622
+ -0.24243222177028656
+ 0
+
+ max_y
+
+ 591
+ 0
+ 0
+ 1
+
+ preset_num
+ 18
+ star_brightness
+ 1.0099999904632568
+ sun_angle
+ 3.1045024394989014
+ sunlight_color
+
+ 2.5799999237060547
+ 2.4411697387695313
+ 2.4411697387695313
+ 0.85999995470046997
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Puppy%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Puppy%20Light.xml
new file mode 100644
index 000000000..19151d34b
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Puppy%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0.75
+ 1.5
+ 0.5
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0
+ 0.79687601327896118
+ 0.79687398672103882
+ 0.39843800663948059
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 31.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 6.0507078170776367
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.4900000095367432
+ 0
+ 0
+ 1
+
+ glow
+
+ 4.8000001907348633
+ 0.0010000000474974513
+ -4.1499996185302734
+ 1
+
+ haze_density
+
+ 0.42999997735023499
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.70999997854232788
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.15858890116214752
+ 0.72537636756896973
+ -0.66983485221862793
+ 1
+
+ max_y
+
+ 0
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 5.4716043472290039
+ sunlight_color
+
+ 0
+ 1.5058825016021729
+ 1.5058825016021729
+ 0.50196081399917603
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Queen%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Queen%20Light%2001.xml
new file mode 100644
index 000000000..6db5852e7
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Queen%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.1875
+ 0.1875
+ 0.1875
+ 0.0625
+
+ blue_density
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ blue_horizon
+
+ 1.7999999523162842
+ 1.7999999523162842
+ 1.7999999523162842
+ 0.89999997615814209
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.70001220703125
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.44999998807907104
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00014170000213198364
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 7.9000000953674316
+ 0
+ 0
+ 1
+
+ east_angle
+ 1.9477875232696533
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.20999999344348907
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.51655691862106323
+ 0.83146905899047852
+ -0.20451940596103668
+ 0
+
+ max_y
+
+ 77
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.98174667358398438
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Quidditch%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Quidditch%20Light.xml
new file mode 100644
index 000000000..1e756c8f5
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Quidditch%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.35999998450279236
+ 0.21600005030632019
+ 0
+ 0.11999999731779099
+
+ blue_density
+
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.48999997973442078
+
+ blue_horizon
+
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.15999999642372131
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.12459999322891235
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.23999999463558197
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00031000000308267772
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 6.8000001907348633
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3042999505996704
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.33000001311302185
+ 1
+
+ haze_density
+
+ 1.8899999856948853
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.23999999463558197
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.36227512359619141
+ -0.93207120895385742
+ 0
+
+ max_y
+
+ 752
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.7708849906921387
+ sunlight_color
+
+ 1.3499999046325684
+ 1.3499999046325684
+ 1.3499999046325684
+ 0.44999998807907104
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Save%20Me%20Light%20.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Save%20Me%20Light%20.xml
new file mode 100644
index 000000000..50fd94c0c
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Save%20Me%20Light%20.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.95999997854232788
+ 0.31000000238418579
+ 3
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0.5
+ 1
+
+ cloud_scale
+
+ 0.79339998960494995
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 18.5
+ -3
+
+ cloud_shadow
+
+ 0.15999999642372131
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 3.299999889350147e-006
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.1855752468109131
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1
+ 0
+ 0
+ 1
+
+ glow
+
+ 15.799999237060547
+ 0.0010000000474974513
+ -0.74999994039535522
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 4.8899998664855957
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.040397927165031433
+ 0.39473667740821838
+ -0.91790574789047241
+ 0
+
+ max_y
+
+ 385
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 500
+ sun_angle
+ 0.40578123927116394
+ sunlight_color
+
+ 0
+ 0
+ 0
+ 0
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Shadow%20Testing%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Shadow%20Testing%20Light.xml
new file mode 100644
index 000000000..5b10b3dbe
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Shadow%20Testing%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0.24475815892219543
+ 0.44872328639030457
+ 0.75999999046325684
+ 0.37999999523162842
+
+ blue_horizon
+
+ 0.49548381567001343
+ 0.49548381567001343
+ 0.63999998569488525
+ 0.31999999284744263
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00017999998817685992
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0.80000001192092896
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.1415927410125732
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.3912999629974365
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.69999998807907104
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.18999999761581421
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 7.923197387071923e-008
+ 0.42261755466461182
+ -0.90630811452865601
+ 0
+
+ max_y
+
+ 1605
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 0.43633154034614563
+ sunlight_color
+
+ 0
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Still%20Life.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Still%20Life.xml
new file mode 100644
index 000000000..f6d948d24
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Still%20Life.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.21000000834465027
+ 0.21000000834465027
+ 0.21000000834465027
+ 0.070000000298023224
+
+ blue_density
+
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.48999997973442078
+
+ blue_horizon
+
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.15999999642372131
+
+ cloud_color
+
+ 0.13600000739097595
+ 0.17000001668930054
+ 0.20399999618530273
+ 0.20399999618530273
+
+ cloud_pos_density1
+
+ 0.42999997735023499
+ 0.55000001192092896
+ 0.83429998159408569
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.14000000059604645
+ 1
+
+ cloud_scale
+
+ 0.052799999713897705
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.21725988388061523
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00011869999434566125
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 25.700000762939453
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 0
+ 0
+
+ gamma
+
+ 2.2999999523162842
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ 0.39999961853027344
+ 1
+
+ haze_density
+
+ 0.1120000034570694
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.44800001382827759
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.54830676317214966
+ -0.8362773060798645
+ 0
+
+ max_y
+
+ 813
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.5612545013427734
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Thalia%20Light%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Thalia%20Light%2001.xml
new file mode 100644
index 000000000..099c6d4a1
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Thalia%20Light%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 1
+ 0.5
+
+ blue_horizon
+
+ 2
+ 2
+ 2
+ 1
+
+ cloud_color
+
+ 0.5
+ 0.5
+ 0.5
+ 0.5
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 0.76829999685287476
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.059000000357627869
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940033104544
+ 10.011000058908452
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00020469998707994819
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 2.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.060884952545166
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 4.4000000953674316
+ 0
+ 0
+ 1
+
+ glow
+
+ 16.80000114440918
+ 0.0010000000474974513
+ -0.59999996423721313
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.81999999284744263
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.77900981903076172
+ 0.46948650479316711
+ 0.41560328006744385
+ 0
+
+ max_y
+
+ 2538
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 1.7856996059417725
+ sun_angle
+ 2.6528835296630859
+ sunlight_color
+
+ 3
+ 3
+ 3
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Thalia%20Light%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Thalia%20Light%2002.xml
new file mode 100644
index 000000000..9e05253dd
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Thalia%20Light%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.54000002145767212
+ 0.54000002145767212
+ 0.54000002145767212
+ 0.18000000715255737
+
+ blue_density
+
+ 0.24475815892219543
+ 0.44872328639030457
+ 0.75999999046325684
+ 0.37999999523162842
+
+ blue_horizon
+
+ 0.49548381567001343
+ 0.49548381567001343
+ 0.63999998569488525
+ 0.31999999284744263
+
+ cloud_color
+
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+ 0.40999999642372131
+
+ cloud_pos_density1
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.41999998688697815
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.199999809265137
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.26999998092651367
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00014999999257270247
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 0.9424777626991272
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 5.6700000762939453
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ -0.47999998927116394
+ 1
+
+ haze_density
+
+ 0.28999999165534973
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.20999999344348907
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.67267239093780518
+ 0.55557155609130859
+ -0.48872512578964233
+ 0
+
+ max_y
+
+ 1605
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 2.5525424480438232
+ sunlight_color
+
+ 0.81000006198883057
+ 0.81000006198883057
+ 0.81000006198883057
+ 0.27000001072883606
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Trilogy%20Rain%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Trilogy%20Rain%2001.xml
new file mode 100644
index 000000000..cd6911207
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Trilogy%20Rain%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0.13497035205364227
+ 0.26690840721130371
+ 0.40166664123535156
+ 0.20083332061767578
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.99999994039535522
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0.59999996423721313
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00011999999696854502
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 20.899999618530273
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.2400000095367432
+ 0
+ 0
+ 1
+
+ glow
+
+ 1.399998664855957
+ 0.0010000000474974513
+ -0.44999998807907104
+ 1
+
+ haze_density
+
+ 0.84999996423721313
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.40999999642372131
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.071817018091678619
+ 0.9807855486869812
+ 0.18138909339904785
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.7671444416046143
+ sunlight_color
+
+ 0.014999985694885254
+ 1.0545001029968262
+ 2.9850001335144043
+ 0.99500000476837158
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Trilogy%20Rain%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Trilogy%20Rain%2002.xml
new file mode 100644
index 000000000..9b3f6d522
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Trilogy%20Rain%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_horizon
+
+ 0.13497035205364227
+ 0.26690840721130371
+ 0.40166664123535156
+ 0.20083332061767578
+
+ cloud_color
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.99999994039535522
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00014999999257270247
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 14
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.2400000095367432
+ 0
+ 0
+ 1
+
+ glow
+
+ 1.399998664855957
+ 0.0010000000474974513
+ -2.2999999523162842
+ 1
+
+ haze_density
+
+ 3.6499998569488525
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.75999999046325684
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.071817018091678619
+ 0.9807855486869812
+ 0.18138909339904785
+ 0
+
+ max_y
+
+ 4000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 0
+ sun_angle
+ 1.7671444416046143
+ sunlight_color
+
+ 0.014999985694885254
+ 1.0545001029968262
+ 2.9850001335144043
+ 0.99500000476837158
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2001.xml
new file mode 100644
index 000000000..df2feee22
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.38999998569488525
+ 0.38999998569488525
+ 0.38999998569488525
+ 0.12999999523162842
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.78999996185302734
+ 0.90999996662139893
+ 0.11589999496936798
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.026499999687075615
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 17.770000457763672
+ 4.4699997901916504
+
+ cloud_shadow
+
+ 1
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00033199999597854912
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.7457520961761475
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.057900000363588333
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.14999999105930328
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.18987095355987549
+ 0.87035512924194336
+ -0.45434671640396118
+ 0
+
+ max_y
+
+ 2758
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 1.0559231042861938
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2002.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2002.xml
new file mode 100644
index 000000000..85dd15757
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2002.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.38999998569488525
+ 0.38999998569488525
+ 0.38999998569488525
+ 0.12999999523162842
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.78999996185302734
+ 0.90999996662139893
+ 0.23999999463558197
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.4681999683380127
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 17.770000457763672
+ 4.4699997901916504
+
+ cloud_shadow
+
+ 0.75
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00033199999597854912
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 0
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.7457520961761475
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.057900000363588333
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.14999999105930328
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.18987095355987549
+ 0.87035512924194336
+ -0.45434671640396118
+ 0
+
+ max_y
+
+ 2758
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 2
+ sun_angle
+ 1.0559231042861938
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2003.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2003.xml
new file mode 100644
index 000000000..9dbfd2a7d
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20White%20Fire%20Sky%2003.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 1.4399999380111694
+ 1.4399999380111694
+ 1.4399999380111694
+ 0.47999998927116394
+
+ blue_density
+
+ 2
+ 2
+ 2
+ 1
+
+ blue_horizon
+
+ 0
+ 0
+ 0
+ 0
+
+ cloud_color
+
+ 1
+ 1
+ 1
+ 1
+
+ cloud_pos_density1
+
+ 0.78999996185302734
+ 0.90999996662139893
+ 0.11589999496936798
+ 1
+
+ cloud_pos_density2
+
+ 1
+ 1
+ 0
+ 1
+
+ cloud_scale
+
+ 0.024799998849630356
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 17.770000457763672
+ 4.4699997901916504
+
+ cloud_shadow
+
+ 1
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00033069998607970774
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 31.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 2.7457520961761475
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 0.18999999761581421
+ 0
+ 0
+ 1
+
+ glow
+
+ 0.19999980926513672
+ 0.0010000000474974513
+ -0.14999999105930328
+ 1
+
+ haze_density
+
+ 0
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ -0.18987095355987549
+ 0.87035512924194336
+ -0.45434671640396118
+ 0
+
+ max_y
+
+ 3000
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 1.0559231042861938
+ sunlight_color
+
+ 2.6999998092651367
+ 2.6999998092651367
+ 2.6999998092651367
+ 0.89999997615814209
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20Yellow%20Stars%2001.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Yellow%20Stars%2001.xml
new file mode 100644
index 000000000..778c1c58b
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20Yellow%20Stars%2001.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0
+ 0
+ 0
+ 0
+
+ blue_density
+
+ 1
+ 1
+ 2
+ 1
+
+ blue_horizon
+
+ 1.2800000905990601
+ 1.2799999713897705
+ 0
+ 0.64000004529953003
+
+ cloud_color
+
+ 0.43948723673439005
+ 0.49764935046544778
+ 0.50246442938400904
+ 1
+
+ cloud_pos_density1
+
+ 0.57999998331069946
+ 0.87000000476837158
+ 0.75
+ 1
+
+ cloud_pos_density2
+
+ 1.6884100437164307
+ 0.52609699964523315
+ 0.073541670078411725
+ 1
+
+ cloud_scale
+
+ 0.18000000715255737
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.088005410620646
+ 10.010458310484864
+
+ cloud_shadow
+
+ 0
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 0.00033069998607970774
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ -13761.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 3.5185837745666504
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 1.0900000333786011
+ 0
+ 0
+ 1
+
+ glow
+
+ 3.0000019073486328
+ 0.0010000000474974513
+ 10
+ 1
+
+ haze_density
+
+ 4.7799997329711914
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.34999999403953552
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0.26703047752380371
+ 0.68834781646728516
+ -0.67444199323654175
+ 0
+
+ max_y
+
+ 5691
+ 0
+ 0
+ 1
+
+ preset_num
+ 22
+ star_brightness
+ 500
+ sun_angle
+ 0.75920891761779785
+ sunlight_color
+
+ 3
+ 3
+ 1.5
+ 1
+
+
+
diff --git a/indra/newview/app_settings/windlight/skies/Phototools%2D%20rara%20Fall%20Home%20Light.xml b/indra/newview/app_settings/windlight/skies/Phototools%2D%20rara%20Fall%20Home%20Light.xml
new file mode 100644
index 000000000..466de5aae
--- /dev/null
+++ b/indra/newview/app_settings/windlight/skies/Phototools%2D%20rara%20Fall%20Home%20Light.xml
@@ -0,0 +1,141 @@
+
+
+ ambient
+
+ 0.42000001668930054
+ 0.42000001668930054
+ 0.42000001668930054
+ 0.14000000059604645
+
+ blue_density
+
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.97999995946884155
+ 0.48999997973442078
+
+ blue_horizon
+
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.31999999284744263
+ 0.15999999642372131
+
+ cloud_color
+
+ 0.50999999046325684
+ 0.50999999046325684
+ 0.50999999046325684
+ 1
+
+ cloud_pos_density1
+
+ 0.5
+ 0.5
+ 1
+ 1
+
+ cloud_pos_density2
+
+ 0.5
+ 0.5
+ 0.125
+ 1
+
+ cloud_scale
+
+ 0.079999998211860657
+ 0
+ 0
+ 1
+
+ cloud_scroll_rate
+
+ 10.49940013885498
+ 10.01099967956543
+
+ cloud_shadow
+
+ 0.25999999046325684
+ 0
+ 0
+ 1
+
+ density_multiplier
+
+ 7.8699995356146246e-005
+ 0
+ 0
+ 1
+
+ distance_multiplier
+
+ 79.5
+ 0
+ 0
+ 1
+
+ east_angle
+ 0
+ enable_cloud_scroll
+
+ 1
+ 1
+
+ gamma
+
+ 3.809999942779541
+ 0
+ 0
+ 1
+
+ glow
+
+ 5
+ 0.0010000000474974513
+ 0.39999961853027344
+ 1
+
+ haze_density
+
+ 0.22400000691413879
+ 0
+ 0
+ 1
+
+ haze_horizon
+
+ 0.67200005054473877
+ 0.19915600121021271
+ 0.19915600121021271
+ 1
+
+ lightnorm
+
+ 0
+ 0.17796146869659424
+ -0.98403745889663696
+ 0
+
+ max_y
+
+ 813
+ 0
+ 0
+ 1
+
+ preset_num
+ 21
+ star_brightness
+ 0
+ sun_angle
+ 2.9626781940460205
+ sunlight_color
+
+ 1.3799998760223389
+ 1.3799998760223389
+ 1.3799998760223389
+ 0.45999997854232788
+
+
+
diff --git a/indra/newview/app_settings/windlight/water/Phototools%2D%20Black%20Default%20.xml b/indra/newview/app_settings/windlight/water/Phototools%2D%20Black%20Default%20.xml
new file mode 100644
index 000000000..31cc98580
--- /dev/null
+++ b/indra/newview/app_settings/windlight/water/Phototools%2D%20Black%20Default%20.xml
@@ -0,0 +1,43 @@
+
+
+ blurMultiplier
+ 0.060000002384185791
+ fresnelOffset
+ 0.56000000238418579
+ fresnelScale
+ 1
+ normScale
+
+ 10
+ 10
+ 10
+
+ normalMap
+ 822ded49-9a6c-f61c-cb89-6df54f42cdf4
+ scaleAbove
+ 0.029999999329447746
+ scaleBelow
+ 0.20000000298023224
+ underWaterFogMod
+ 0.25
+ waterFogColor
+
+ 0
+ 0
+ 0
+ 1
+
+ waterFogDensity
+ 16
+ wave1Dir
+
+ 1.0499997138977051
+ -0.42000007629394531
+
+ wave2Dir
+
+ 1.1099996566772461
+ -1.1600000858306885
+
+
+
diff --git a/indra/newview/app_settings/windlight/water/Phototools%2D%20Breakwave%20Building%20Water.xml b/indra/newview/app_settings/windlight/water/Phototools%2D%20Breakwave%20Building%20Water.xml
new file mode 100644
index 000000000..2c5596edb
--- /dev/null
+++ b/indra/newview/app_settings/windlight/water/Phototools%2D%20Breakwave%20Building%20Water.xml
@@ -0,0 +1,43 @@
+
+
+ blurMultiplier
+ 0.040000002831220627
+ fresnelOffset
+ 0.5
+ fresnelScale
+ 0.39999997615814209
+ normScale
+
+ 2
+ 2
+ 2
+
+ normalMap
+ 822ded49-9a6c-f61c-cb89-6df54f42cdf4
+ scaleAbove
+ 0.029999999329447746
+ scaleBelow
+ 0.20000000298023224
+ underWaterFogMod
+ 0.25
+ waterFogColor
+
+ 0
+ 0
+ 0
+ 1
+
+ waterFogDensity
+ 16
+ wave1Dir
+
+ 1.0499997138977051
+ -0.42000007629394531
+
+ wave2Dir
+
+ 1.1099996566772461
+ -1.1600000858306885
+
+
+
diff --git a/indra/newview/app_settings/windlight/water/Phototools%2D%20Chandra%20Sea.xml b/indra/newview/app_settings/windlight/water/Phototools%2D%20Chandra%20Sea.xml
new file mode 100644
index 000000000..93989f25b
--- /dev/null
+++ b/indra/newview/app_settings/windlight/water/Phototools%2D%20Chandra%20Sea.xml
@@ -0,0 +1,43 @@
+
+
+ blurMultiplier
+ 0.040000002831220627
+ fresnelOffset
+ 0.55000001192092896
+ fresnelScale
+ 0.62999999523162842
+ normScale
+
+ 0
+ 0.60000002384185791
+ 4.7000002861022949
+
+ normalMap
+ 822ded49-9a6c-f61c-cb89-6df54f42cdf4
+ scaleAbove
+ 0
+ scaleBelow
+ 0
+ underWaterFogMod
+ 0.5
+ waterFogColor
+
+ 0.19140625
+ 0.19140625
+ 0.19140625
+ 1
+
+ waterFogDensity
+ 6.9644041061401367
+ wave1Dir
+
+ -0.34000015258789063
+ -0.19000005722045898
+
+ wave2Dir
+
+ -1.4000000953674316
+ -0.98000001907348633
+
+
+
diff --git a/indra/newview/app_settings/windlight/water/Phototools%2D%20Gallery%20Water%2001.xml b/indra/newview/app_settings/windlight/water/Phototools%2D%20Gallery%20Water%2001.xml
new file mode 100644
index 000000000..d3cf6f6d8
--- /dev/null
+++ b/indra/newview/app_settings/windlight/water/Phototools%2D%20Gallery%20Water%2001.xml
@@ -0,0 +1,43 @@
+
+
+ blurMultiplier
+ 0.040000002831220627
+ fresnelOffset
+ 0.5
+ fresnelScale
+ 0.39999997615814209
+ normScale
+
+ 2
+ 2
+ 2
+
+ normalMap
+ 822ded49-9a6c-f61c-cb89-6df54f42cdf4
+ scaleAbove
+ 0.029999999329447746
+ scaleBelow
+ 0.20000000298023224
+ underWaterFogMod
+ 0.25
+ waterFogColor
+
+ 0
+ 0
+ 0
+ 1
+
+ waterFogDensity
+ 16
+ wave1Dir
+
+ 0.529998779296875
+ -0.21000099182128906
+
+ wave2Dir
+
+ 0.55999946594238281
+ -0.57999992370605469
+
+
+
diff --git a/indra/newview/app_settings/windlight/water/Phototools%2D%20Ship%20Light.xml b/indra/newview/app_settings/windlight/water/Phototools%2D%20Ship%20Light.xml
new file mode 100644
index 000000000..6a4708dac
--- /dev/null
+++ b/indra/newview/app_settings/windlight/water/Phototools%2D%20Ship%20Light.xml
@@ -0,0 +1,43 @@
+
+
+ blurMultiplier
+ 0.040000002831220627
+ fresnelOffset
+ 0.5899999737739563
+ fresnelScale
+ 0.22999998927116394
+ normScale
+
+ 1.3000000715255737
+ 5.0999999046325684
+ 2.2999999523162842
+
+ normalMap
+ 822ded49-9a6c-f61c-cb89-6df54f42cdf4
+ scaleAbove
+ 0
+ scaleBelow
+ 0
+ underWaterFogMod
+ 0.5
+ waterFogColor
+
+ 0
+ 0
+ 0
+ 1
+
+ waterFogDensity
+ 6.9644041061401367
+ wave1Dir
+
+ -0.34000015258789063
+ -0.19000005722045898
+
+ wave2Dir
+
+ -1.4000000953674316
+ -0.98000001907348633
+
+
+
diff --git a/indra/newview/character/aux_base.tga b/indra/newview/character/aux_base.tga
new file mode 100644
index 000000000..dbcaaaf2b
Binary files /dev/null and b/indra/newview/character/aux_base.tga differ
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index dea786773..47422d038 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -6885,7 +6885,7 @@
+ pos="-0.01 0.01 -0.02"/>
@@ -8949,6 +8949,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -10024,6 +10085,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -10198,6 +10319,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -12410,9 +12708,451 @@
domain="0" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -15926,8 +16666,278 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/character/checkerboard.tga b/indra/newview/character/checkerboard.tga
new file mode 100644
index 000000000..1950d7403
Binary files /dev/null and b/indra/newview/character/checkerboard.tga differ
diff --git a/indra/newview/character/invisible_head.tga b/indra/newview/character/invisible_head.tga
new file mode 100644
index 000000000..2673a237d
Binary files /dev/null and b/indra/newview/character/invisible_head.tga differ
diff --git a/indra/newview/floaterlocalassetbrowse.cpp b/indra/newview/floaterlocalassetbrowse.cpp
index 5ee0445a2..15746590b 100644
--- a/indra/newview/floaterlocalassetbrowse.cpp
+++ b/indra/newview/floaterlocalassetbrowse.cpp
@@ -639,6 +639,7 @@ void LocalAssetBrowser::UpdateTextureCtrlList(LLScrollListCtrl* ctrl)
for (const auto& bitmap : loaded_bitmaps)
{
auto row = LLScrollListItem::Params();
+ row.value(bitmap.id);
row.columns.add(LLScrollListCell::Params()
.column("unit_name")
.type("text")
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index de298c752..30a86d723 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -80,6 +80,24 @@ using namespace LLAvatarAppearanceDefines;
///////////////////////////////////////////////////////////////////////////////
+void set_default_permissions(LLViewerInventoryItem* item)
+{
+ llassert(item);
+ LLPermissions perm = item->getPermissions();
+ if (perm.getMaskNextOwner() != LLFloaterPerms::getNextOwnerPerms("Wearables")
+ || perm.getMaskEveryone() != LLFloaterPerms::getEveryonePerms("Wearables")
+ || perm.getMaskGroup() != LLFloaterPerms::getGroupPerms("Wearables"))
+ {
+ perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
+ perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
+ perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
+
+ item->setPermissions(perm);
+
+ item->updateServer(FALSE);
+ }
+}
+
// Callback to wear and start editing an item that has just been created.
void wear_and_edit_cb(const LLUUID& inv_item)
{
@@ -88,13 +106,9 @@ void wear_and_edit_cb(const LLUUID& inv_item)
LLViewerInventoryItem* item = gInventory.getItem(inv_item);
if (!item) return;
- LLPermissions perm = item->getPermissions();
- perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
- perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
- perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
- item->setPermissions(perm);
+ set_default_permissions(item);
- item->updateServer(FALSE);
+ // item was just created, update even if permissions did not changed
gInventory.updateItem(item);
gInventory.notifyObservers();
@@ -112,13 +126,8 @@ void wear_cb(const LLUUID& inv_item)
LLViewerInventoryItem* item = gInventory.getItem(inv_item);
if (item)
{
- LLPermissions perm = item->getPermissions();
- perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
- perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
- perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
- item->setPermissions(perm);
+ set_default_permissions(item);
- item->updateServer(FALSE);
gInventory.updateItem(item);
gInventory.notifyObservers();
}
@@ -184,7 +193,7 @@ void LLAgentWearables::dump()
struct LLAgentDumper
{
LLAgentDumper(std::string name):
- mName(name)
+ mName(std::move(name))
{
LL_INFOS() << LL_ENDL;
LL_INFOS() << "LLAgentDumper " << mName << LL_ENDL;
@@ -259,7 +268,7 @@ LLAgentWearables::AddWearableToAgentInventoryCallback::AddWearableToAgentInvento
mIndex(index),
mWearable(wearable),
mTodo(todo),
- mCB(cb),
+ mCB(std::move(cb)),
mDescription(description)
{
LL_INFOS() << "constructor" << LL_ENDL;
@@ -1647,6 +1656,12 @@ void LLAgentWearables::createWearable(LLWearableType::EType type, bool wear, con
{
if (type == LLWearableType::WT_INVALID || type == LLWearableType::WT_NONE) return;
+ if (type == LLWearableType::WT_UNIVERSAL && !gAgent.getRegion()->bakesOnMeshEnabled())
+ {
+ LL_WARNS("Inventory") << "Can't create WT_UNIVERSAL type " << LL_ENDL;
+ return;
+ }
+
LLViewerWearable* wearable = LLWearableList::instance().createNewWearable(type, gAgentAvatarp);
LLAssetType::EType asset_type = wearable->getAssetType();
LLInventoryType::EType inv_type = LLInventoryType::IT_WEARABLE;
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 34a86f70b..c91eccafd 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -51,7 +51,6 @@
#include "llviewerstats.h"
#include "llmarketplacefunctions.h"
#include "llmarketplacenotifications.h"
-#include "llmd5.h"
#include "llmeshrepository.h"
#include "llmodaldialog.h"
#include "llpumpio.h"
@@ -63,7 +62,6 @@
#include "llares.h"
#include "llcurl.h"
#include "llcalc.h"
-#include "lltexturestats.h"
#include "llviewerwindow.h"
#include "llviewerdisplay.h"
#include "llviewermedia.h"
@@ -138,8 +136,6 @@
#include "llassetstorage.h"
#include "llpolymesh.h"
#include "llaudioengine.h"
-#include "llstreamingaudio.h"
-#include "llviewermenu.h"
#include "llselectmgr.h"
#include "lltrans.h"
#include "lltracker.h"
@@ -147,7 +143,6 @@
#include "llworldmapview.h"
#include "llpostprocess.h"
#include "llwlparammanager.h"
-#include "llwaterparammanager.h"
#include "lldebugview.h"
#include "llconsole.h"
@@ -166,9 +161,7 @@
#include "llbutton.h"
#include "llcombobox.h"
#include "floaterlocalassetbrowse.h"
-#include "llstatusbar.h"
#include "llsurface.h"
-#include "llvosky.h"
#include "llvotree.h"
#include "llfolderview.h"
#include "lltoolbar.h"
@@ -216,6 +209,8 @@
// llviewernetwork.h
#include "llviewernetwork.h"
+#include
+
////// Windows-specific includes to the bottom - nasty defines in these pollute the preprocessor
//
@@ -468,6 +463,7 @@ static void settings_to_globals()
MENU_BAR_HEIGHT = gSavedSettings.getS32("MenuBarHeight");
MENU_BAR_WIDTH = gSavedSettings.getS32("MenuBarWidth");
+ extern S32 STATUS_BAR_HEIGHT;
STATUS_BAR_HEIGHT = gSavedSettings.getS32("StatusBarHeight");
LLCOMBOBOX_HEIGHT = BTN_HEIGHT - 2;
@@ -862,7 +858,7 @@ bool LLAppViewer::init()
#endif
LLMIMETypes::parseMIMETypes( mime_types_name );
- // Copy settings to globals. *TODO: Remove or move to appropriage class initializers
+ // Copy settings to globals. *TODO: Remove or move to appropriate class initializers
settings_to_globals();
// Setup settings listeners
settings_setup_listeners();
@@ -990,7 +986,7 @@ bool LLAppViewer::init()
minSpecs += "\n";
unsupported = true;
}
- if(gSysMemory.getPhysicalMemoryClamped() < minRAM)
+ if(gSysMemory.getPhysicalMemoryKB() < minRAM)
{
minSpecs += LLNotificationTemplates::instance().getGlobalString("UnsupportedRAM");
minSpecs += "\n";
@@ -1577,7 +1573,7 @@ bool LLAppViewer::cleanup()
*/
//
-
+ void cleanup_menus();
cleanup_menus();
// Wait for any pending VFS IO
@@ -2692,8 +2688,8 @@ void LLAppViewer::writeSystemInfo()
gDebugInfo["CPUInfo"]["CPUSSE"] = gSysCPU.hasSSE();
gDebugInfo["CPUInfo"]["CPUSSE2"] = gSysCPU.hasSSE2();
- gDebugInfo["RAMInfo"]["Physical"] = (LLSD::Integer)(gSysMemory.getPhysicalMemoryKB().value());
- gDebugInfo["RAMInfo"]["Allocated"] = (LLSD::Integer)(gMemoryAllocated.valueInUnits());
+ gDebugInfo["RAMInfo"]["Physical"] = LLSD::Integer(gSysMemory.getPhysicalMemoryKB().value());
+ gDebugInfo["RAMInfo"]["Allocated"] = LLSD::Integer(gMemoryAllocated.valueInUnits());
gDebugInfo["OSInfo"] = getOSInfo().getOSStringSimple();
// The user is not logged on yet, but record the current grid choice login url
@@ -3341,8 +3337,14 @@ bool LLAppViewer::initCache()
//
}
- LLSplashScreen::update(LLTrans::getString("StartupInitializingTextureCache"));
-
+ {
+ std::random_device rnddev;
+ std::mt19937 rng(rnddev());
+ std::uniform_int_distribution<> dist(0, 4);
+ LLSplashScreen::update(LLTrans::getString(
+ llformat("StartupInitializingTextureCache%d", dist(rng))));
+ }
+
// Init the texture cache
// Allocate 80% of the cache size for textures
const U64Bytes MIN_CACHE_SIZE = U32Megabytes(64);
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 71e1b6a8c..3ed58db98 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -736,7 +736,7 @@ void LLFavoritesBarCtrl::updateButtons()
}
const child_list_t* childs = getChildList();
child_list_const_iter_t child_it = childs->begin();
- int first_changed_item_index = 0;
+ size_t first_changed_item_index = 0;
int rightest_point = getRect().mRight - mMoreTextBox->getRect().getWidth();
//lets find first changed button
while (child_it != childs->end() && first_changed_item_index < mItems.size())
@@ -798,7 +798,7 @@ void LLFavoritesBarCtrl::updateButtons()
}
//last_right_edge is saving coordinates
LLButton* last_new_button = NULL;
- int j = first_changed_item_index;
+ size_t j = first_changed_item_index;
for (; j < mItems.size(); j++)
{
last_new_button = createButton(mItems[j], button_params, last_right_edge);
@@ -982,7 +982,7 @@ void LLFavoritesBarCtrl::updateMenuItems(LLMenuGL* menu)
U32 widest_item = 0;
- for (S32 i = mFirstDropDownItem; i < mItems.size(); i++)
+ for (size_t i = mFirstDropDownItem; i < mItems.size(); i++)
{
LLViewerInventoryItem* item = mItems.at(i);
const std::string& item_name = item->getName();
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index 48f26624f..7d6008a02 100644
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -101,8 +101,8 @@ protected:
LLUUID mFavoriteFolderId;
const LLFontGL *mFont;
- S32 mFirstDropDownItem;
- S32 mDropDownItemsCount;
+ size_t mFirstDropDownItem;
+ U32 mDropDownItemsCount;
bool mUpdateDropDownItems;
bool mRestoreOverflowMenu;
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index 096df5cde..8ecf9f8c6 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -679,7 +679,7 @@ void LLFeatureManager::applyBaseMasks()
maskFeatures(gpustr);
// now mask cpu type ones
- if (gSysMemory.getPhysicalMemoryClamped() <= U32Megabytes(256))
+ if (gSysMemory.getPhysicalMemoryKB() <= U32Megabytes(256))
{
maskFeatures("RAM256MB");
}
diff --git a/indra/newview/llfloateravatarlist.cpp b/indra/newview/llfloateravatarlist.cpp
index 51122e51b..9d6264f3c 100644
--- a/indra/newview/llfloateravatarlist.cpp
+++ b/indra/newview/llfloateravatarlist.cpp
@@ -378,7 +378,7 @@ namespace
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLFloaterAvatarList::setFocusAvatar(get_focused_list_id_selected());
+ LLFloaterAvatarList::setFocusAvatar(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -405,7 +405,7 @@ namespace
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- teleport_to(get_focused_list_id_selected());
+ teleport_to(LFIDBearer::getActiveSelectedID());
return true;
}
};
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp
index a890cba38..080a74a48 100644
--- a/indra/newview/llfloaterbuyland.cpp
+++ b/indra/newview/llfloaterbuyland.cpp
@@ -176,7 +176,7 @@ public:
void updateFloaterCovenantText(const std::string& string, const LLUUID &asset_id);
void updateFloaterEstateName(const std::string& name);
void updateFloaterLastModified(const std::string& text);
- void updateFloaterEstateOwnerName(const std::string& name);
+ void updateFloaterEstateOwnerID(const LLUUID& id);
void updateWebSiteInfo();
void finishWebSiteInfo();
@@ -263,12 +263,12 @@ void LLFloaterBuyLand::updateLastModified(const std::string& text)
}
// static
-void LLFloaterBuyLand::updateEstateOwnerName(const std::string& name)
+void LLFloaterBuyLand::updateEstateOwnerID(const LLUUID& id)
{
- LLFloaterBuyLandUI* floater = LLFloaterBuyLandUI::instanceExists() ? LLFloaterBuyLandUI::getInstance() : NULL;
+ LLFloaterBuyLandUI* floater = LLFloaterBuyLandUI::instanceExists() ? LLFloaterBuyLandUI::getInstance() : nullptr;
if (floater)
{
- floater->updateFloaterEstateOwnerName(name);
+ floater->updateFloaterEstateOwnerID(id);
}
}
@@ -629,10 +629,10 @@ void LLFloaterBuyLandUI::updateFloaterLastModified(const std::string& text)
if (editor) editor->setText(text);
}
-void LLFloaterBuyLandUI::updateFloaterEstateOwnerName(const std::string& name)
+void LLFloaterBuyLandUI::updateFloaterEstateOwnerID(const LLUUID& id)
{
LLTextBox* box = getChild("estate_owner_text");
- if (box) box->setText(name);
+ if (box) box->setValue(id);
}
void LLFloaterBuyLandUI::updateWebSiteInfo()
diff --git a/indra/newview/llfloaterbuyland.h b/indra/newview/llfloaterbuyland.h
index 0d90130a0..8bb98e0c2 100644
--- a/indra/newview/llfloaterbuyland.h
+++ b/indra/newview/llfloaterbuyland.h
@@ -46,7 +46,7 @@ public:
static void updateCovenantText(const std::string& string, const LLUUID& asset_id);
static void updateEstateName(const std::string& name);
static void updateLastModified(const std::string& text);
- static void updateEstateOwnerName(const std::string& name);
+ static void updateEstateOwnerID(const LLUUID& id);
};
#endif
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 59f2b5049..df031e4d8 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -368,7 +368,6 @@ LLPanelLandGeneral::LLPanelLandGeneral(LLParcelSelectionHandle& parcel)
, mBtnDeedToGroup(nullptr)
, mBtnSetGroup(nullptr)
, mTextOwner(nullptr)
- , mBtnProfile(nullptr)
, mContentRating(nullptr)
, mLandType(nullptr)
, mTextGroup(nullptr)
@@ -414,19 +413,13 @@ BOOL LLPanelLandGeneral::postBuild()
mContentRating = getChild("ContentRatingText");
mLandType = getChild("LandTypeText");
-
- mBtnProfile = getChild("Profile...");
- mBtnProfile->setClickedCallback(boost::bind(&LLPanelLandGeneral::onClickProfile, this));
-
mTextGroup = getChild("GroupText");
mBtnSetGroup = getChild("Set...");
mBtnSetGroup->setCommitCallback(boost::bind(&LLPanelLandGeneral::onClickSetGroup, this));
- getChild("group_profile")->setClickedCallback(onClickInfoGroup, this);
-
mCheckDeedToGroup = getChild( "check deed");
childSetCommitCallback("check deed", onCommitAny, this);
@@ -564,14 +557,12 @@ void LLPanelLandGeneral::refresh()
mCheckContributeWithDeed->set(FALSE);
mCheckContributeWithDeed->setEnabled(FALSE);
- mTextOwner->setText(LLStringUtil::null);
+ mTextOwner->setValue(LLUUID::null);
mContentRating->setText(LLStringUtil::null);
mLandType->setText(LLStringUtil::null);
- mBtnProfile->setLabel(getString("profile_text"));
- mBtnProfile->setEnabled(FALSE);
mTextClaimDate->setText(LLStringUtil::null);
- mTextGroup->setText(LLStringUtil::null);
+ mTextGroup->setValue(LLUUID::null);
mTextPrice->setText(LLStringUtil::null);
mSaleInfoForSale1->setVisible(FALSE);
@@ -626,16 +617,19 @@ void LLPanelLandGeneral::refresh()
BOOL can_be_sold = owner_sellable || estate_manager_sellable;
const LLUUID &owner_id = parcel->getOwnerID();
+ const LLUUID& group_id = parcel->getGroupID();
BOOL is_public = parcel->isPublic();
+ bool group_owned = parcel->getIsGroupOwned();
// Is it owned?
+ mTextOwner->setValue(is_public ? LLSD(LLUUID::null) : LLSD().with("id", owner_id).with("group", group_owned));
+ mTextGroup->setValue(is_public ? LLUUID::null : group_id);
if (is_public)
{
mTextSalePending->setText(LLStringUtil::null);
mTextSalePending->setEnabled(FALSE);
mTextOwner->setText(getString("public_text"));
mTextOwner->setEnabled(FALSE);
- mBtnProfile->setEnabled(FALSE);
mTextClaimDate->setText(LLStringUtil::null);
mTextClaimDate->setEnabled(FALSE);
mTextGroup->setText(getString("none_text"));
@@ -665,21 +659,13 @@ void LLPanelLandGeneral::refresh()
mTextOwner->setEnabled(TRUE);
// We support both group and personal profiles
- mBtnProfile->setEnabled(TRUE);
-
- if (parcel->getGroupID().isNull())
+ if (group_id.isNull())
{
- // Not group owned, so "Profile"
- mBtnProfile->setLabel(getString("profile_text"));
-
mTextGroup->setText(getString("none_text"));
mTextGroup->setEnabled(FALSE);
}
else
{
- // Group owned, so "Info"
- mBtnProfile->setLabel(getString("info_text"));
-
//mTextGroup->setText("HIPPOS!");//parcel->getGroupName());
mTextGroup->setEnabled(TRUE);
}
@@ -702,9 +688,7 @@ void LLPanelLandGeneral::refresh()
mEditDesc->setEnabled(can_edit_identity);
BOOL can_edit_agent_only = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_NO_POWERS);
- mBtnSetGroup->setEnabled(can_edit_agent_only && !parcel->getIsGroupOwned());
-
- const LLUUID& group_id = parcel->getGroupID();
+ mBtnSetGroup->setEnabled(can_edit_agent_only && !group_owned);
// Can only allow deeding if you own it and it's got a group.
BOOL enable_deed = (owner_id == gAgent.getID()
@@ -723,7 +707,7 @@ void LLPanelLandGeneral::refresh()
mBtnDeedToGroup->setEnabled( parcel->getAllowDeedToGroup()
&& group_id.notNull()
&& can_deed
- && !parcel->getIsGroupOwned()
+ && !group_owned
);
mEditName->setText( parcel->getName() );
@@ -838,34 +822,24 @@ void LLPanelLandGeneral::refreshNames()
LLParcel *parcel = mParcel->getParcel();
if (!parcel)
{
- mTextOwner->setText(LLStringUtil::null);
- mTextGroup->setText(LLStringUtil::null);
+ mTextOwner->setValue(LLUUID::null);
+ mTextGroup->setValue(LLUUID::null);
return;
}
- std::string owner;
- if (parcel->getIsGroupOwned())
+ bool group_owned = parcel->getIsGroupOwned();
+ mTextOwner->setValue(LLSD().with("id", parcel->getOwnerID()).with("group", group_owned));
+ if (group_owned)
{
- owner = getString("group_owned_text");
- }
- else
- {
- // Figure out the owner's name
- gCacheName->getFullName(parcel->getOwnerID(), owner);
+ mTextOwner->setText(getString("group_owned_text"));
}
if(LLParcel::OS_LEASE_PENDING == parcel->getOwnershipStatus())
{
- owner += getString("sale_pending_text");
+ mTextOwner->setText(mTextOwner->getText() + getString("sale_pending_text"));
}
- mTextOwner->setText(owner);
- std::string group;
- if (!parcel->getGroupID().isNull())
- {
- gCacheName->getGroupName(parcel->getGroupID(), group);
- }
- mTextGroup->setText(group);
+ mTextGroup->setValue(parcel->getGroupID());
if (parcel->getForSale())
{
@@ -883,13 +857,6 @@ void LLPanelLandGeneral::refreshNames()
}
}
-
-// virtual
-void LLPanelLandGeneral::draw()
-{
- LLPanel::draw();
-}
-
void LLPanelLandGeneral::onClickSetGroup()
{
LLFloater* parent_floater = gFloaterView->getParentFloater(this);
@@ -907,32 +874,6 @@ void LLPanelLandGeneral::onClickSetGroup()
}
}
-// static
-void LLPanelLandGeneral::onClickInfoGroup(void* userdata)
-{
- LLPanelLandGeneral* panelp = (LLPanelLandGeneral*)userdata;
- LLParcel* parcel = panelp->mParcel->getParcel();
- if (!parcel) return;
- LLGroupActions::show(parcel->getGroupID());
-}
-
-void LLPanelLandGeneral::onClickProfile()
-{
- LLParcel* parcel = mParcel->getParcel();
- if (!parcel) return;
-
- if (parcel->getIsGroupOwned())
- {
- const LLUUID& group_id = parcel->getGroupID();
- LLGroupActions::show(group_id);
- }
- else
- {
- const LLUUID& avatar_id = parcel->getOwnerID();
- LLAvatarActions::showProfile(avatar_id);
- }
-}
-
// public
void LLPanelLandGeneral::setGroup(const LLUUID& group_id)
{
@@ -942,7 +883,6 @@ void LLPanelLandGeneral::setGroup(const LLUUID& group_id)
// Set parcel properties and send message
parcel->setGroupID(group_id);
//parcel->setGroupName(group_name);
- //mTextGroup->setText(group_name);
// Send update
LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate(parcel);
@@ -1197,7 +1137,6 @@ BOOL LLPanelLandObjects::postBuild()
mOwnerList = getChild("owner list");
mOwnerList->sortByColumnIndex(3, FALSE);
mOwnerList->setCommitCallback(boost::bind(&LLPanelLandObjects::onCommitList,this));
- mOwnerList->setDoubleClickCallback(boost::bind(&LLPanelLandObjects::onDoubleClickOwner, this));
return TRUE;
}
@@ -1209,35 +1148,6 @@ BOOL LLPanelLandObjects::postBuild()
LLPanelLandObjects::~LLPanelLandObjects()
{ }
-// static
-void LLPanelLandObjects::onDoubleClickOwner(void *userdata)
-{
- LLPanelLandObjects *self = (LLPanelLandObjects *)userdata;
-
- LLScrollListItem* item = self->mOwnerList->getFirstSelected();
- if (item)
- {
- LLUUID owner_id = item->getUUID();
- // Look up the selected name, for future dialog box use.
- const LLScrollListCell* cell;
- cell = item->getColumn(1);
- if (!cell)
- {
- return;
- }
- // Is this a group?
- BOOL is_group = cell->getValue().asString() == OWNER_GROUP;
- if (is_group)
- {
- LLGroupActions::show(owner_id);
- }
- else
- {
- LLAvatarActions::showProfile(owner_id);
- }
- }
-}
-
// public
void LLPanelLandObjects::refresh()
{
@@ -1351,12 +1261,6 @@ void LLPanelLandObjects::refresh()
}
}
-// virtual
-void LLPanelLandObjects::draw()
-{
- LLPanel::draw();
-}
-
void send_other_clean_time_message(S32 parcel_local_id, S32 other_clean_time)
{
LLMessageSystem *msg = gMessageSystem;
@@ -3145,13 +3049,12 @@ void LLPanelLandCovenant::updateLastModified(const std::string& text)
}
// static
-void LLPanelLandCovenant::updateEstateOwnerName(const std::string& name)
+void LLPanelLandCovenant::updateEstateOwnerID(const LLUUID& id)
{
LLPanelLandCovenant* self = LLFloaterLand::getCurrentPanelLandCovenant();
if (self)
{
- LLTextBox* editor = self->getChild("estate_owner_text");
- if (editor) editor->setText(name);
+ self->getChildView("estate_owner_text")->setValue(id);
}
}
diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h
index eb0cefd7f..9bc8011bf 100644
--- a/indra/newview/llfloaterland.h
+++ b/indra/newview/llfloaterland.h
@@ -145,12 +145,9 @@ public:
virtual ~LLPanelLandGeneral();
/*virtual*/ void refresh();
void refreshNames();
- virtual void draw();
void setGroup(const LLUUID& group_id);
- void onClickProfile();
void onClickSetGroup();
- static void onClickInfoGroup(void*);
static void onClickDeed(void*);
static void onClickBuyLand(void* data);
static void onClickScriptLimits(void* data);
@@ -191,8 +188,7 @@ protected:
LLButton* mBtnSetGroup;
LLTextBox* mTextOwner;
- LLButton* mBtnProfile;
-
+
LLTextBox* mContentRating;
LLTextBox* mLandType;
@@ -246,7 +242,6 @@ public:
LLPanelLandObjects(LLSafeHandle& parcelp);
virtual ~LLPanelLandObjects();
/*virtual*/ void refresh();
- virtual void draw();
bool callbackReturnOwnerObjects(const LLSD& notification, const LLSD& response);
bool callbackReturnGroupObjects(const LLSD& notification, const LLSD& response);
@@ -264,8 +259,6 @@ public:
static void onClickReturnOwnerList(void*);
static void onClickRefresh(void*);
- static void onDoubleClickOwner(void*);
-
void onCommitList();
static void onLostFocus(LLFocusableElement* caller, void* user_data);
static void onCommitClean(LLUICtrl* caller, void* user_data);
@@ -406,7 +399,7 @@ public:
static void updateCovenantText(const std::string& string);
static void updateEstateName(const std::string& name);
static void updateLastModified(const std::string& text);
- static void updateEstateOwnerName(const std::string& name);
+ static void updateEstateOwnerID(const LLUUID& id);
protected:
LLSafeHandle& mParcel;
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index e7821fe63..095d01e40 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -2021,7 +2021,7 @@ void LLModelPreview::loadModelCallback(S32 loaded_lod)
}
//add current model to current LoD's model list (LLModel::mLocalID makes a good vector index)
- S32 idx = list_iter->mModel->mLocalID;
+ size_t idx = list_iter->mModel->mLocalID;
if (mModel[lod].size() <= idx)
{ //stretch model list to fit model at given index
diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp
index 2f80d004d..9a32f4011 100644
--- a/indra/newview/llfloaterproperties.cpp
+++ b/indra/newview/llfloaterproperties.cpp
@@ -168,12 +168,6 @@ BOOL LLFloaterProperties::postBuild()
getChild("LabelItemName")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitName,this));
getChild("LabelItemDesc")->setPrevalidate(&LLLineEditor::prevalidatePrintableNotPipe);
getChild("LabelItemDesc")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitDescription,this));
- // Creator information
- getChild("BtnCreator")->setCommitCallback(boost::bind(&LLFloaterProperties::onClickCreator,this));
- // owner information
- getChild("BtnOwner")->setCommitCallback(boost::bind(&LLFloaterProperties::onClickOwner,this));
- // last owner information
- getChild("BtnLastOwner")->setCommitCallback(boost::bind(&LLFloaterProperties::onClickLastOwner,this));
// acquired date
// owner permissions
// Permissions debug text
@@ -226,11 +220,8 @@ void LLFloaterProperties::refresh()
"LabelItemName",
"LabelItemDesc",
"LabelCreatorName",
- "BtnCreator",
"LabelOwnerName",
- "BtnOwner",
"LabelLastOwnerName",
- "BtnLastOwner",
"CheckOwnerModify",
"CheckOwnerCopy",
"CheckOwnerTransfer",
@@ -328,72 +319,46 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
if(!gCacheName) return;
if(!gAgent.getRegion()) return;
+ getChild("LabelCreatorName")->setValue(item->getCreatorUUID());
if (item->getCreatorUUID().notNull())
{
- std::string name;
- gCacheName->getFullName(item->getCreatorUUID(), name);
- getChildView("BtnCreator")->setEnabled(TRUE);
getChildView("LabelCreatorTitle")->setEnabled(TRUE);
getChildView("LabelCreatorName")->setEnabled(TRUE);
- getChild("LabelCreatorName")->setValue(name);
}
else
{
- getChildView("BtnCreator")->setEnabled(FALSE);
getChildView("LabelCreatorTitle")->setEnabled(FALSE);
getChildView("LabelCreatorName")->setEnabled(FALSE);
- getChild("LabelCreatorName")->setValue(getString("unknown"));
+ getChild("LabelCreatorName")->setText(getString("unknown"));
}
+ getChild("LabelLastOwnerName")->setValue(perm.getLastOwner());
if (perm.getLastOwner().notNull())
{
- std::string name;
- gCacheName->getFullName(perm.getLastOwner(), name);
getChildView("LabelLastOwnerTitle")->setEnabled(true);
getChildView("LabelLastOwnerName")->setEnabled(true);
- getChild("LabelLastOwnerName")->setValue(name);
}
else
{
getChildView("LabelLastOwnerTitle")->setEnabled(false);
getChildView("LabelLastOwnerName")->setEnabled(false);
- getChild("LabelLastOwnerName")->setValue(getString("unknown"));
+ getChild("LabelLastOwnerName")->setText(getString("unknown"));
}
////////////////
// OWNER NAME //
////////////////
+ getChild("LabelOwnerName")->setValue(perm.getOwner());
if(perm.isOwned())
{
- std::string name;
- if (perm.isGroupOwned())
- {
- gCacheName->getGroupName(perm.getGroup(), name);
- }
- else
- {
- gCacheName->getFullName(perm.getOwner(), name);
-// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
- if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
- {
- name = RlvStrings::getAnonym(name);
- }
-// [/RLVa:KB]
- }
- getChildView("BtnOwner")->setEnabled(TRUE);
-// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-1.0.0e
- getChildView("BtnOwner")->setEnabled(!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES));
-// [/RLVa:KB]
getChildView("LabelOwnerTitle")->setEnabled(TRUE);
getChildView("LabelOwnerName")->setEnabled(TRUE);
- getChild("LabelOwnerName")->setValue(name);
}
else
{
- getChildView("BtnOwner")->setEnabled(FALSE);
getChildView("LabelOwnerTitle")->setEnabled(FALSE);
getChildView("LabelOwnerName")->setEnabled(FALSE);
- getChild("LabelOwnerName")->setValue(getString("public"));
+ getChild("LabelOwnerName")->setText(getString("public"));
}
//////////////////
@@ -609,38 +574,6 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
}
}
-void LLFloaterProperties::onClickCreator()
-{
- LLInventoryItem* item = findItem();
- if(!item) return;
- LLAvatarActions::showProfile(item->getCreatorUUID());
-}
-
-// static
-void LLFloaterProperties::onClickOwner()
-{
- LLInventoryItem* item = findItem();
- if(!item) return;
- if(item->getPermissions().isGroupOwned())
- {
- LLGroupActions::show(item->getPermissions().getGroup());
- }
- else
- {
-// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
- if (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
-// [/RLVa:KB]
- {
- LLAvatarActions::showProfile(item->getPermissions().getOwner());
- }
- }
-}
-
-void LLFloaterProperties::onClickLastOwner()
-{
- if (const LLInventoryItem* item = findItem()) LLAvatarActions::showProfile(item->getPermissions().getLastOwner());
-}
-
// static
void LLFloaterProperties::onCommitName()
{
diff --git a/indra/newview/llfloaterproperties.h b/indra/newview/llfloaterproperties.h
index d2640f07d..5d90fea0c 100644
--- a/indra/newview/llfloaterproperties.h
+++ b/indra/newview/llfloaterproperties.h
@@ -74,9 +74,6 @@ public:
protected:
// ui callbacks
- void onClickCreator();
- void onClickOwner();
- void onClickLastOwner();
void onCommitName();
void onCommitDescription();
void onCommitPermissions();
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index fc4818e32..9f08b1295 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -1676,12 +1676,12 @@ struct LLEstateAccessChangeInfo
};
// static
-void LLPanelEstateInfo::updateEstateOwnerName(const std::string& name)
+void LLPanelEstateInfo::updateEstateOwnerID(const LLUUID& id)
{
LLPanelEstateInfo* panelp = LLFloaterRegionInfo::getPanelEstate();
if (panelp)
{
- panelp->setOwnerName(name);
+ panelp->getChild("estate_owner")->setValue(id);
}
}
@@ -1800,7 +1800,7 @@ void LLPanelEstateInfo::refreshFromEstate()
const LLEstateInfoModel& estate_info = LLEstateInfoModel::instance();
getChild("estate_name")->setValue(estate_info.getName());
- LLAvatarNameCache::get(estate_info.getOwnerID(), boost::bind(&LLPanelEstateInfo::setOwnerName, this, boost::bind(&LLAvatarName::getNSName, _2, main_name_system())));
+ getChild("estate_owner")->setValue(estate_info.getOwnerID());
getChild("externally_visible_check")->setValue(estate_info.getIsExternallyVisible());
getChild("voice_chat_check")->setValue(estate_info.getAllowVoiceChat());
@@ -1924,12 +1924,7 @@ void LLPanelEstateInfo::getEstateOwner()
const std::string LLPanelEstateInfo::getOwnerName() const
{
- return getChild("estate_owner")->getValue().asString();
-}
-
-void LLPanelEstateInfo::setOwnerName(const std::string& name)
-{
- getChild("estate_owner")->setValue(LLSD(name));
+ return getChild("estate_owner")->getText();
}
// static
@@ -2294,12 +2289,12 @@ void LLPanelEstateCovenant::updateLastModified(const std::string& text)
}
// static
-void LLPanelEstateCovenant::updateEstateOwnerName(const std::string& name)
+void LLPanelEstateCovenant::updateEstateOwnerID(const LLUUID& id)
{
LLPanelEstateCovenant* panelp = LLFloaterRegionInfo::getPanelCovenant();
if( panelp )
{
- panelp->mEstateOwnerText->setText(name);
+ panelp->mEstateOwnerText->setValue(id);
}
}
@@ -2308,11 +2303,6 @@ std::string LLPanelEstateCovenant::getOwnerName() const
return mEstateOwnerText->getText();
}
-void LLPanelEstateCovenant::setOwnerName(const std::string& name)
-{
- mEstateOwnerText->setText(name);
-}
-
void LLPanelEstateCovenant::setCovenantTextEditor(const std::string& text)
{
mEditor->setText(text, false);
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index 58141e930..96daf580a 100644
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
@@ -292,7 +292,7 @@ public:
void updateControls(LLViewerRegion* region);
static void updateEstateName(const std::string& name);
- static void updateEstateOwnerName(const std::string& name);
+ static void updateEstateOwnerID(const LLUUID& id);
virtual bool refreshFromRegion(LLViewerRegion* region);
virtual bool estateUpdate(LLMessageSystem* msg);
@@ -307,7 +307,6 @@ public:
static bool isLindenEstate();
const std::string getOwnerName() const;
- void setOwnerName(const std::string& name);
protected:
virtual BOOL sendUpdate();
@@ -355,14 +354,13 @@ public:
static void updateCovenantText(const std::string& string, const LLUUID& asset_id);
static void updateEstateName(const std::string& name);
static void updateLastModified(const std::string& text);
- static void updateEstateOwnerName(const std::string& name);
+ static void updateEstateOwnerID(const LLUUID& id);
const LLUUID& getCovenantID() const { return mCovenantID; }
void setCovenantID(const LLUUID& id) { mCovenantID = id; }
std::string getEstateName() const;
void setEstateName(const std::string& name);
std::string getOwnerName() const;
- void setOwnerName(const std::string& name);
void setCovenantTextEditor(const std::string& text);
typedef enum e_asset_status
diff --git a/indra/newview/llfloaterwindlight.cpp b/indra/newview/llfloaterwindlight.cpp
index 7e9eb6a1f..211e3620c 100644
--- a/indra/newview/llfloaterwindlight.cpp
+++ b/indra/newview/llfloaterwindlight.cpp
@@ -302,6 +302,10 @@ void LLFloaterWindLight::syncMenu()
// blue horizon
param_mgr->mBlueHorizon = cur_params.getVector(param_mgr->mBlueHorizon.mName, err);
//setColorSwatch("WLBlueHorizon", param_mgr->mBlueHorizon, WL_BLUE_HORIZON_DENSITY_SCALE);
+ childSetValue("WLBlueHorizonR", param_mgr->mBlueHorizon.r);
+ childSetValue("WLBlueHorizonG", param_mgr->mBlueHorizon.g);
+ childSetValue("WLBlueHorizonB", param_mgr->mBlueHorizon.b);
+ childSetValue("WLBlueHorizonI", param_mgr->mBlueHorizon.i);
// haze density, horizon, mult, and altitude
param_mgr->mHazeDensity = cur_params.getFloat(param_mgr->mHazeDensity.mName, err);
@@ -316,12 +320,20 @@ void LLFloaterWindLight::syncMenu()
// blue density
param_mgr->mBlueDensity = cur_params.getVector(param_mgr->mBlueDensity.mName, err);
//setColorSwatch("WLBlueDensity", param_mgr->mBlueDensity, WL_BLUE_HORIZON_DENSITY_SCALE);
+ childSetValue("WLBlueDensityR", param_mgr->mBlueDensity.r);
+ childSetValue("WLBlueDensityG", param_mgr->mBlueDensity.g);
+ childSetValue("WLBlueDensityB", param_mgr->mBlueDensity.b);
+ childSetValue("WLBlueDensityI", param_mgr->mBlueDensity.i);
// Lighting
// sunlight
param_mgr->mSunlight = cur_params.getVector(param_mgr->mSunlight.mName, err);
//setColorSwatch("WLSunlight", param_mgr->mSunlight, WL_SUN_AMBIENT_SLIDER_SCALE);
+ childSetValue("WLSunlightR", param_mgr->mSunlight.r);
+ childSetValue("WLSunlightG", param_mgr->mSunlight.g);
+ childSetValue("WLSunlightB", param_mgr->mSunlight.b);
+ childSetValue("WLSunlightI", param_mgr->mSunlight.i);
// glow
param_mgr->mGlow = cur_params.getVector(param_mgr->mGlow.mName, err);
@@ -331,6 +343,10 @@ void LLFloaterWindLight::syncMenu()
// ambient
param_mgr->mAmbient = cur_params.getVector(param_mgr->mAmbient.mName, err);
//setColorSwatch("WLAmbient", param_mgr->mAmbient, WL_SUN_AMBIENT_SLIDER_SCALE);
+ childSetValue("WLAmbientR", param_mgr->mAmbient.r);
+ childSetValue("WLAmbientG", param_mgr->mAmbient.g);
+ childSetValue("WLAmbientB", param_mgr->mAmbient.b);
+ childSetValue("WLAmbientI", param_mgr->mAmbient.i);
childSetValue("WLSunAngle", param_mgr->mCurParams.getFloat("sun_angle",err) / F_TWO_PI);
childSetValue("WLEastAngle", param_mgr->mCurParams.getFloat("east_angle",err) / F_TWO_PI);
@@ -340,6 +356,10 @@ void LLFloaterWindLight::syncMenu()
// Cloud Color
param_mgr->mCloudColor = cur_params.getVector(param_mgr->mCloudColor.mName, err);
//setColorSwatch("WLCloudColor", param_mgr->mCloudColor, WL_CLOUD_SLIDER_SCALE);
+ childSetValue("WLCloudColorR", param_mgr->mCloudColor.r);
+ childSetValue("WLCloudColorG", param_mgr->mCloudColor.g);
+ childSetValue("WLCloudColorB", param_mgr->mCloudColor.b);
+ childSetValue("WLCloudColorI", param_mgr->mCloudColor.i);
// Cloud
param_mgr->mCloudMain = cur_params.getVector(param_mgr->mCloudMain.mName, err);
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index 7a2349d05..7d1dedbda 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -329,7 +329,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(
case IM_SESSION_GROUP_START:
case IM_SESSION_INVITE:
case IM_SESSION_CONFERENCE_START:
- mCommitCallbackRegistrar.add("FlipDing", boost::bind(boost::lambda::_1 = !boost::lambda::_1, boost::ref(mDing)));
+ mCommitCallbackRegistrar.add("FlipDing", [=](LLUICtrl*, const LLSD&) { mDing = !mDing; });
// determine whether it is group or conference session
if (gAgent.isInGroup(mSessionUUID))
{
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 61b16c729..bbd5224d2 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -5994,9 +5994,6 @@ void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attach
return;
}
- LL_DEBUGS("Avatar") << "ATT add rez request for " << item->getName() << " id " << item_id << LL_ENDL;
- gAgentAvatarp->addAttachmentRequest(item_id);
-
S32 attach_pt = 0;
if (isAgentAvatarValid() && attachment)
{
diff --git a/indra/newview/llinventoryicon.cpp b/indra/newview/llinventoryicon.cpp
index c7c4f9144..65b21fa7c 100644
--- a/indra/newview/llinventoryicon.cpp
+++ b/indra/newview/llinventoryicon.cpp
@@ -79,6 +79,7 @@ LLIconDictionary::LLIconDictionary()
addEntry(LLInventoryType::ICONNAME_CLOTHING_SKIRT, new IconEntry("inv_item_skirt.tga"));
addEntry(LLInventoryType::ICONNAME_CLOTHING_ALPHA, new IconEntry("inv_item_alpha.tga"));
addEntry(LLInventoryType::ICONNAME_CLOTHING_TATTOO, new IconEntry("inv_item_tattoo.tga"));
+ addEntry(LLInventoryType::ICONNAME_CLOTHING_UNIVERSAL, new IconEntry("Inv_Universal.png"));
addEntry(LLInventoryType::ICONNAME_ANIMATION, new IconEntry("inv_item_animation.tga"));
addEntry(LLInventoryType::ICONNAME_GESTURE, new IconEntry("inv_item_gesture.tga"));
diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp
index 28381301d..f09bf0e63 100644
--- a/indra/newview/llnamebox.cpp
+++ b/indra/newview/llnamebox.cpp
@@ -34,106 +34,46 @@
#include "llnamebox.h"
-#include "llerror.h"
-#include "llfontgl.h"
-#include "llui.h"
-#include "llviewercontrol.h"
-#include "lluuid.h"
-
-#include "llcachename.h"
-#include "llagent.h"
-
-// statics
-std::set LLNameBox::sInstances;
-
static LLRegisterWidget r("name_box");
-
LLNameBox::LLNameBox(const std::string& name)
-: LLTextBox(name, LLRect(), "" , NULL, TRUE)
+: LLNameUI()
+, LLTextBox(name, LLRect(), LLStringUtil::null, nullptr, TRUE)
{
- mNameID = LLUUID::null;
- mLink = false;
- //mParseHTML = mLink; // STORM-215
- mInitialValue = "(retrieving)";
- LLNameBox::sInstances.insert(this);
- setText(LLStringUtil::null);
+ setClickedCallback(boost::bind(&LLNameUI::showProfile, this));
}
-LLNameBox::~LLNameBox()
+void LLNameBox::displayAsLink(bool link)
{
- LLNameBox::sInstances.erase(this);
+ static const LLUICachedControl color("HTMLAgentColor");
+ setColor(link ? color : LLUI::sColorsGroup->getColor("LabelTextColor"));
+ setDisabledColor(link ? color : LLUI::sColorsGroup->getColor("LabelDisabledColor"));
}
-void LLNameBox::setNameID(const LLUUID& name_id, BOOL is_group)
+// virtual
+BOOL LLNameBox::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
- mNameID = name_id;
-
- std::string name;
- BOOL got_name = FALSE;
-
- if (!is_group)
+ auto handled = LLTextBox::handleRightMouseDown(x, y, mask);
+ if (mAllowInteract && !handled)
{
- got_name = gCacheName->getFullName(name_id, name);
- }
- else
- {
- got_name = gCacheName->getGroupName(name_id, name);
- }
-
- // Got the name already? Set it.
- // Otherwise it will be set later in refresh().
- if (got_name)
- setName(name, is_group);
- else
- setText(mInitialValue);
-}
-
-void LLNameBox::refresh(const LLUUID& id, const std::string& full_name, bool is_group)
-{
- if (id == mNameID)
- {
- setName(full_name, is_group);
- }
-}
-
-void LLNameBox::refreshAll(const LLUUID& id, const std::string& full_name, bool is_group)
-{
- std::set::iterator it;
- for (it = LLNameBox::sInstances.begin();
- it != LLNameBox::sInstances.end();
- ++it)
- {
- LLNameBox* box = *it;
- box->refresh(id, full_name, is_group);
- }
-}
-
-void LLNameBox::setName(const std::string& name, BOOL is_group)
-{
- if (mLink)
- {
- std::string url;
-
- if (is_group)
- url = "[secondlife:///app/group/" + mNameID.asString() + "/about " + name + "]";
- else
- url = "[secondlife:///app/agent/" + mNameID.asString() + "/about " + name + "]";
-
- setText(url);
- }
- else
- {
- setText(name);
+ // Singu TODO: Generic menus for groups
+ if (!mIsGroup && mNameID.notNull())
+ {
+ showMenu(this, sMenus[0], x, y);
+ handled = true;
+ }
}
+ return handled;
}
// virtual
void LLNameBox::initFromXML(LLXMLNodePtr node, LLView* parent)
{
LLTextBox::initFromXML(node, parent);
- node->getAttributeBOOL("link", mLink);
node->getAttributeString("initial_value", mInitialValue);
+ setText(mInitialValue);
+ node->getAttribute_bool("rlv_sensitive", mRLVSensitive);
+ node->getAttribute_bool("is_group", mIsGroup);
}
// static
@@ -143,4 +83,3 @@ LLView* LLNameBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *f
name_box->initFromXML(node,parent);
return name_box;
}
-
diff --git a/indra/newview/llnamebox.h b/indra/newview/llnamebox.h
index 0d5ec6a83..8d0005c75 100644
--- a/indra/newview/llnamebox.h
+++ b/indra/newview/llnamebox.h
@@ -33,42 +33,28 @@
#ifndef LL_LLNAMEBOX_H
#define LL_LLNAMEBOX_H
-#include
-
-#include "llview.h"
-#include "llstring.h"
-#include "llfontgl.h"
+#include "llnameui.h"
#include "lltextbox.h"
class LLNameBox
: public LLTextBox
+, public LLNameUI
{
public:
virtual void initFromXML(LLXMLNodePtr node, LLView* parent);
static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
- virtual ~LLNameBox();
+ void displayAsLink(bool link) override final;
+ void setText(const std::string& text) override final { LLTextBox::setText(text); }
+ void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
+ LLSD getValue() const override final { return LLNameUI::getValue(); }
- void setNameID(const LLUUID& name_id, BOOL is_group);
-
- void refresh(const LLUUID& id, const std::string& full_name, bool is_group);
-
- static void refreshAll(const LLUUID& id, const std::string& full_name, bool is_group);
+ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask) override final;
protected:
- LLNameBox (const std::string& name);
+ LLNameBox(const std::string& name);
friend class LLUICtrlFactory;
-private:
- void setName(const std::string& name, BOOL is_group);
-
- static std::set sInstances;
-
-private:
- LLUUID mNameID;
- BOOL mLink;
- std::string mInitialValue;
-
};
#endif
diff --git a/indra/newview/llnameeditor.cpp b/indra/newview/llnameeditor.cpp
index d7c948d36..a88cd5f05 100644
--- a/indra/newview/llnameeditor.cpp
+++ b/indra/newview/llnameeditor.cpp
@@ -33,91 +33,73 @@
#include "llviewerprecompiledheaders.h"
#include "llnameeditor.h"
-#include "llcachename.h"
-#include "llagent.h"
-#include "llfontgl.h"
-
-#include "lluuid.h"
-#include "llrect.h"
-#include "llstring.h"
-#include "llui.h"
+#include "llmenugl.h"
+#include "lluictrlfactory.h"
static LLRegisterWidget r("name_editor");
-// statics
-std::set LLNameEditor::sInstances;
-
LLNameEditor::LLNameEditor(const std::string& name, const LLRect& rect,
- const LLUUID& name_id,
- BOOL is_group,
+ const LLUUID& name_id,
+ bool is_group,
+ const std::string& loading,
+ bool rlv_sensitive,
+ bool click_for_profile,
const LLFontGL* glfont,
S32 max_text_length)
-: LLLineEditor(name, rect,
- std::string("(retrieving)"),
- glfont,
- max_text_length),
- mNameID(name_id)
+: LLNameUI(loading, rlv_sensitive, name_id, is_group)
+, LLLineEditor(name, rect, LLStringUtil::null, glfont, max_text_length)
+, mClickForProfile(click_for_profile)
{
- LLNameEditor::sInstances.insert(this);
- if(!name_id.isNull())
+ if (!name_id.isNull())
{
setNameID(name_id, is_group);
}
+ else setText(mInitialValue);
}
-
-LLNameEditor::~LLNameEditor()
+// virtual
+BOOL LLNameEditor::handleMouseDown(S32 x, S32 y, MASK mask)
{
- LLNameEditor::sInstances.erase(this);
-}
-
-void LLNameEditor::setNameID(const LLUUID& name_id, BOOL is_group)
-{
- mNameID = name_id;
-
- std::string name;
-
- if (!is_group)
+ if (mClickForProfile && mAllowInteract)
{
- gCacheName->getFullName(name_id, name);
+ showProfile();
+ return true;
}
- else
+ else return LLLineEditor::handleMouseDown(x, y, mask);
+}
+
+// virtual
+BOOL LLNameEditor::handleRightMouseDown(S32 x, S32 y, MASK mask)
+{
+ bool simple_menu = mContextMenuHandle.get()->getName() == "rclickmenu";
+ std::string new_menu;
+ // Singu TODO: Generic menus for groups
+ bool needs_simple = mIsGroup || !mAllowInteract || mNameID.isNull(); // Need simple if no ID or blocking interaction
+ if (!simple_menu && needs_simple) // Switch to simple menu
{
- gCacheName->getGroupName(name_id, name);
+ new_menu = "menu_texteditor.xml";
}
-
- setText(name);
-}
-
-void LLNameEditor::refresh(const LLUUID& id, const std::string& full_name, bool is_group)
-{
- if (id == mNameID)
+ else if (!needs_simple && simple_menu)
{
- setText(full_name);
+ new_menu = "menu_nameeditor_avatar.xml";
}
+ if (!new_menu.empty()) setContextMenu(LLUICtrlFactory::instance().buildMenu(new_menu, LLMenuGL::sMenuContainer));
+ sActive = this;
+
+ return LLLineEditor::handleRightMouseDown(x, y, mask);
}
-void LLNameEditor::refreshAll(const LLUUID& id, const std::string& full_name, bool is_group)
+void LLNameEditor::displayAsLink(bool link)
{
- std::set::iterator it;
- for (it = LLNameEditor::sInstances.begin();
- it != LLNameEditor::sInstances.end();
- ++it)
- {
- LLNameEditor* box = *it;
- box->refresh(id, full_name, is_group);
- }
+ static const LLUICachedControl color("HTMLAgentColor");
+ setReadOnlyFgColor(link ? color : LLUI::sColorsGroup->getColor("TextFgReadOnlyColor"));
}
-void LLNameEditor::setValue( const LLSD& value )
+void LLNameEditor::setText(const std::string& text)
{
- setNameID(value.asUUID(), FALSE);
-}
-
-LLSD LLNameEditor::getValue() const
-{
- return LLSD(mNameID);
+ setToolTip(text);
+ LLLineEditor::setText(text);
}
// virtual
@@ -135,22 +117,26 @@ LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory
LLRect rect;
createRect(node, rect, parent, LLRect());
- S32 max_text_length = 128;
+ S32 max_text_length = 1024;
node->getAttributeS32("max_length", max_text_length);
-
- LLFontGL* font = LLView::selectFont(node);
+ bool is_group = false;
+ node->getAttribute_bool("is_group", is_group);
+ LLUUID id;
+ node->getAttributeUUID("id", id);
+ std::string loading;
+ node->getAttributeString("label", loading);
+ bool rlv_sensitive = false;
+ node->getAttribute_bool("rlv_sensitive", rlv_sensitive);
+ bool click_for_profile = true;
+ node->getAttribute_bool("click_for_profile", click_for_profile);
LLNameEditor* line_editor = new LLNameEditor("name_editor",
- rect,
- LLUUID::null, FALSE,
- font,
+ rect,
+ id, is_group, loading, rlv_sensitive,
+ click_for_profile,
+ LLView::selectFont(node),
max_text_length);
- std::string label;
- if(node->getAttributeString("label", label))
- {
- line_editor->setLabel(label);
- }
line_editor->setColorParameters(node);
line_editor->initFromXML(node, parent);
diff --git a/indra/newview/llnameeditor.h b/indra/newview/llnameeditor.h
index 6ac6e4538..abb8bdfda 100644
--- a/indra/newview/llnameeditor.h
+++ b/indra/newview/llnameeditor.h
@@ -33,50 +33,35 @@
#ifndef LL_LLNAMEEDITOR_H
#define LL_LLNAMEEDITOR_H
-#include
-
-#include "llview.h"
-#include "v4color.h"
-#include "llstring.h"
-#include "llfontgl.h"
#include "lllineeditor.h"
-
+#include "llnameui.h"
class LLNameEditor
: public LLLineEditor
+, public LLNameUI
{
+ bool mClickForProfile;
public:
LLNameEditor(const std::string& name, const LLRect& rect,
const LLUUID& name_id = LLUUID::null,
- BOOL is_group = FALSE,
- const LLFontGL* glfont = NULL,
+ bool is_group = false,
+ const std::string& loading = LLStringUtil::null,
+ bool rlv_sensitive = false,
+ bool click_for_profile = true,
+ const LLFontGL* glfont = nullptr,
S32 max_text_length = 254);
- // By default, follows top and left and is mouse-opaque.
- // If no text, text = name.
- // If no font, uses default system font.
- virtual ~LLNameEditor();
+ BOOL handleMouseDown(S32 x, S32 y, MASK mask) override final;
+ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask) override final;
- virtual LLXMLNodePtr getXML(bool save_children = true) const;
+ LLXMLNodePtr getXML(bool save_children = true) const override final;
static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
- void setNameID(const LLUUID& name_id, BOOL is_group);
-
- void refresh(const LLUUID& id, const std::string& full_name, bool is_group);
-
- static void refreshAll(const LLUUID& id, const std::string& full_name, bool is_group);
-
-
- // Take/return agent UUIDs
- virtual void setValue( const LLSD& value );
- virtual LLSD getValue() const;
-
-private:
- static std::set sInstances;
-
-private:
- LLUUID mNameID;
+ void setValue(const LLSD& value) override final { LLNameUI::setValue(value); }
+ LLSD getValue() const override final { return LLNameUI::getValue(); }
+ void displayAsLink(bool link) override final;
+ void setText(const std::string& text) override final;
};
#endif
diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index 1e5b950ce..cf9e47390 100644
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
@@ -217,7 +217,8 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(
LLAvatarName av_name;
if (id.isNull())
{
- fullname = LLTrans::getString("AvatarNameNobody");
+ static const auto nobody = LLTrans::getString("AvatarNameNobody");
+ fullname = nobody;
}
else if (LLAvatarNameCache::get(id, &av_name))
{
diff --git a/indra/newview/llnameui.cpp b/indra/newview/llnameui.cpp
new file mode 100644
index 000000000..3c3a50a14
--- /dev/null
+++ b/indra/newview/llnameui.cpp
@@ -0,0 +1,141 @@
+/**
+ * @file llnameui.cpp
+ * @brief Name UI refreshes a name and bears a menu for interacting with it
+ *
+ * $LicenseInfo:firstyear=2003&license=viewergpl$
+ *
+ * Copyright (c) 2003-2009, Linden Research, Inc. 2019, Liru Frs
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llnameui.h"
+
+#include "llagentdata.h"
+#include "llavataractions.h"
+#include "llavatarnamecache.h"
+#include "llgroupactions.h"
+#include "lltrans.h"
+
+#include "rlvhandler.h"
+
+// statics
+std::set LLNameUI::sInstances;
+
+LLNameUI::LLNameUI(const std::string& loading, bool rlv_sensitive, const LLUUID& id, bool is_group)
+: mNameID(id), mRLVSensitive(rlv_sensitive), mIsGroup(is_group), mAllowInteract(false)
+, mInitialValue(!loading.empty() ? loading : LLTrans::getString("LoadingData"))
+{
+ if (mIsGroup) sInstances.insert(this);
+}
+
+void LLNameUI::setNameID(const LLUUID& name_id, bool is_group)
+{
+ mNameID = name_id;
+ mConnection.disconnect();
+
+ if (mIsGroup != is_group)
+ {
+ if (is_group)
+ sInstances.insert(this);
+ else
+ sInstances.erase(this);
+ }
+ mIsGroup = is_group;
+
+ if (mAllowInteract = mNameID.notNull())
+ {
+ setNameText();
+ }
+ else
+ {
+ setText(LLTrans::getString(mIsGroup ? "GroupNameNone" : "AvatarNameNobody"));
+ displayAsLink(false);
+ }
+}
+
+void LLNameUI::setNameText()
+{
+ std::string name;
+ bool got_name = false;
+
+ if (mIsGroup)
+ {
+ got_name = gCacheName->getGroupName(mNameID, name);
+ }
+ else
+ {
+ LLAvatarName av_name;
+ if (got_name = LLAvatarNameCache::get(mNameID, &av_name))
+ name = mShowCompleteName ? av_name.getCompleteName() : av_name.getNSName();
+ else
+ mConnection = LLAvatarNameCache::get(mNameID, boost::bind(&LLNameUI::setNameText, this));
+ }
+
+ if (!mIsGroup && got_name && mRLVSensitive) // Filter if needed
+ {
+ if ((gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES) || gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS))
+ && mNameID != gAgentID && RlvUtil::isNearbyAgent(mNameID))
+ {
+ mAllowInteract = false;
+ name = RlvStrings::getAnonym(name);
+ }
+ else mAllowInteract = true;
+ }
+
+ displayAsLink(mAllowInteract);
+
+ // Got the name already? Set it.
+ // Otherwise it will be set later in refresh().
+ setText(got_name ? name : mInitialValue);
+}
+
+void LLNameUI::refresh(const LLUUID& id, const std::string& full_name, bool is_group)
+{
+ if (id == mNameID)
+ {
+ setNameText();
+ }
+}
+
+void LLNameUI::refreshAll(const LLUUID& id, const std::string& full_name, bool is_group)
+{
+ if (!is_group) return;
+ for (auto box : sInstances)
+ {
+ box->refresh(id, full_name, is_group);
+ }
+}
+
+void LLNameUI::showProfile()
+{
+ if (!mAllowInteract) return;
+
+ if (mIsGroup)
+ LLGroupActions::show(mNameID);
+ else
+ LLAvatarActions::showProfile(mNameID);
+}
\ No newline at end of file
diff --git a/indra/newview/llnameui.h b/indra/newview/llnameui.h
new file mode 100644
index 000000000..3d392675c
--- /dev/null
+++ b/indra/newview/llnameui.h
@@ -0,0 +1,87 @@
+/**
+ * @file llnameui.h
+ * @brief display and refresh a name from the name cache
+ *
+ * $LicenseInfo:firstyear=2003&license=viewergpl$
+ *
+ * Copyright (c) 2003-2009, Linden Research, Inc. 2019, Liru Frs
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ */
+
+#pragma once
+
+#include
+
+#include "lfidbearer.h"
+
+struct LLNameUI : public LFIDBearer
+{
+ LLNameUI(const std::string& loading = LLStringUtil::null, bool rlv_sensitive = false, const LLUUID& id = LLUUID::null, bool is_group = false);
+ virtual ~LLNameUI()
+ {
+ if (mIsGroup)
+ sInstances.erase(this);
+ else
+ mConnection.disconnect();
+ }
+
+ LLUUID getStringUUIDSelectedItem() const override final { return mNameID; }
+ uuid_vec_t getSelectedIDs() const override final { return { mNameID }; }
+ S32 getNumSelected() const override final { return 1; }
+
+ void setNameID(const LLUUID& name_id, bool is_group);
+ void setNameText(); // Sets the name to whatever the name cache has at the moment
+ void refresh(const LLUUID& id, const std::string& full_name, bool is_group);
+ static void refreshAll(const LLUUID& id, const std::string& full_name, bool is_group);
+
+ void setShowCompleteName(bool show) { mShowCompleteName = show; }
+ void showProfile();
+
+ virtual void displayAsLink(bool link) = 0; // Override to make the name display as a link
+ virtual void setText(const std::string& text) = 0;
+
+ // Take either UUID or a map of "id" to UUID and "group" to boolean
+ virtual void setValue(const LLSD& value)
+ {
+ if (value.has("id"))
+ setNameID(value["id"].asUUID(), value["group"].asBoolean());
+ else
+ setNameID(value.asUUID(), mIsGroup);
+ }
+ // Return agent UUIDs
+ virtual LLSD getValue() const { return LLSD(mNameID); }
+
+private:
+ static std::set sInstances;
+ boost::signals2::connection mConnection;
+ bool mShowCompleteName = false;
+
+protected:
+ LLUUID mNameID;
+ bool mRLVSensitive; // Whether or not we're doing RLV filtering
+ bool mIsGroup;
+ bool mAllowInteract;
+ std::string mInitialValue;
+};
\ No newline at end of file
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index c1820c5bd..df6b342d3 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -141,7 +141,6 @@ LLPanelAvatarSecondLife::LLPanelAvatarSecondLife(const std::string& name,
LLPanelAvatarSecondLife::~LLPanelAvatarSecondLife()
{
- mCacheConnection.disconnect();
LLMuteList::instance().removeObserver(this);
}
@@ -149,12 +148,6 @@ void LLPanelAvatarSecondLife::refresh()
{
}
-void LLPanelAvatarSecondLife::updatePartnerName(const LLAvatarName& name)
-{
- mCacheConnection.disconnect();
- childSetTextArg("partner_edit", "[NAME]", name.getNSName());
-}
-
//-----------------------------------------------------------------------------
// clearControls()
// Empty the data out of the controls, since we have to wait for new
@@ -167,7 +160,7 @@ void LLPanelAvatarSecondLife::clearControls()
childSetValue("born", LLStringUtil::null);
childSetValue("acct", LLStringUtil::null);
- childSetTextArg("partner_edit", "[NAME]", LLStringUtil::null);
+ childSetValue("partner_edit", LLUUID::null);
mPartnerID = LLUUID::null;
getChild("groups")->deleteAllItems();
@@ -214,13 +207,8 @@ void LLPanelAvatarSecondLife::processProperties(void* data, EAvatarProcessorType
bool allow_publish = (pAvatarData->flags & AVATAR_ALLOW_PUBLISH);
childSetValue("allow_publish", allow_publish);
- setPartnerID(pAvatarData->partner_id);
- if (mPartnerID.notNull())
- {
- mCacheConnection.disconnect();
- mCacheConnection = LLAvatarNameCache::get(mPartnerID, boost::bind(&LLPanelAvatarSecondLife::updatePartnerName, this, _2));
- childSetEnabled("partner_info", TRUE);
- }
+ mPartnerID = pAvatarData->partner_id;
+ getChildView("partner_edit")->setValue(mPartnerID);
}
}
else if (type == APT_GROUPS)
@@ -359,11 +347,6 @@ BOOL LLPanelAvatarSecondLife::postBuild()
childSetEnabled("born", FALSE);
childSetEnabled("partner_edit", FALSE);
getChild("partner_help")->setCommitCallback(boost::bind(show_partner_help));
- if (LLUICtrl* ctrl = getChild("partner_info"))
- {
- ctrl->setCommitCallback(boost::bind(LLAvatarActions::showProfile, boost::ref(mPartnerID), false));
- ctrl->setEnabled(mPartnerID.notNull());
- }
childSetAction("?", boost::bind(LLNotificationsUtil::add, "ClickPublishHelpAvatar"));
LLPanelAvatar* pa = getPanelAvatar();
@@ -399,7 +382,7 @@ BOOL LLPanelAvatarSecondLife::postBuild()
ctrl->setFallbackImageName("default_profile_picture.j2c");
auto show_pic = [&]
{
- show_picture(getChild("img")->getImageAssetID(), profile_picture_title(getChildView("dnname")->getValue()));
+ show_picture(getChild("img")->getImageAssetID(), profile_picture_title(getChild("dnname")->getText()));
};
auto show_pic_if_not_self = [=] { if (!ctrl->canChange()) show_pic(); };
@@ -1249,25 +1232,19 @@ void LLPanelAvatar::setOnlineStatus(EOnlineStatus online_status)
}
}
-void LLPanelAvatar::onAvatarNameResponse(const LLUUID& agent_id, const LLAvatarName& av_name)
-{
- mCacheConnection.disconnect();
- getChild("dnname")->setText(gSavedSettings.getBOOL("SinguCompleteNameProfiles") ? av_name.getCompleteName() : av_name.getNSName());
-}
-
void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id)
{
- if (avatar_id.isNull()) return;
-
- //BOOL avatar_changed = FALSE;
+ auto dnname = getChild("dnname");
if (avatar_id != mAvatarID)
{
- //avatar_changed = TRUE;
if (mAvatarID.notNull())
LLAvatarPropertiesProcessor::getInstance()->removeObserver(mAvatarID, this);
mAvatarID = avatar_id;
+ dnname->setNameID(avatar_id, false);
}
+ if (avatar_id.isNull()) return;
+
LLAvatarPropertiesProcessor::getInstance()->addObserver(mAvatarID, this);
// Determine if we have their calling card.
@@ -1292,12 +1269,10 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id)
if (LLDropTarget* drop_target = findChild("drop_target_rect"))
drop_target->setEntityID(mAvatarID);
- mCacheConnection.disconnect();
- mCacheConnection = LLAvatarNameCache::get(avatar_id, boost::bind(&LLPanelAvatar::onAvatarNameResponse, this, _1, _2));
+ dnname->setShowCompleteName(gSavedSettings.getBOOL("SinguCompleteNameProfiles"));
- LLNameEditor* key_edit = getChild("avatar_key");
- if (key_edit)
- key_edit->setText(mAvatarID.asString());
+ if (auto key_edit = getChildView("avatar_key"))
+ key_edit->setValue(mAvatarID.asString());
// While we're waiting for data off the network, clear out the old data.
if (mPanelSecondLife)
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index cc6e10b51..a1faffb9e 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -119,13 +119,9 @@ public:
void clearControls();
void enableControls(BOOL own_avatar);
void updateOnlineText(BOOL online, BOOL have_calling_card);
- void updatePartnerName(const LLAvatarName& name);
- void setPartnerID(LLUUID id) { mPartnerID = id; }
-
private:
LLUUID mPartnerID;
- boost::signals2::connection mCacheConnection;
};
@@ -282,8 +278,6 @@ public:
void setAvatar(LLViewerObject *avatarp);
- void onAvatarNameResponse(const LLUUID& agent_id, const LLAvatarName& av_name);
-
// Fill in the avatar ID and handle some field fill-in, as well as
// button enablement.
void setAvatarID(const LLUUID &avatar_id);
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index d5f2c7a29..2cc567483 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -103,6 +103,7 @@ enum ESubpart
SUBPART_SKIRT,
SUBPART_ALPHA,
SUBPART_TATTOO,
+ SUBPART_UNIVERSAL,
SUBPART_PHYSICS_BREASTS_UPDOWN,
SUBPART_PHYSICS_BREASTS_INOUT,
SUBPART_PHYSICS_BREASTS_LEFTRIGHT,
@@ -245,6 +246,7 @@ LLEditWearableDictionary::Wearables::Wearables()
addEntry(LLWearableType::WT_SKIRT, new WearableEntry(LLWearableType::WT_SKIRT,"edit_skirt_title",1,1,1, TEX_SKIRT, TEX_SKIRT, SUBPART_SKIRT));
addEntry(LLWearableType::WT_ALPHA, new WearableEntry(LLWearableType::WT_ALPHA,"edit_alpha_title",0,5,1, TEX_LOWER_ALPHA, TEX_UPPER_ALPHA, TEX_HEAD_ALPHA, TEX_EYES_ALPHA, TEX_HAIR_ALPHA, SUBPART_ALPHA));
addEntry(LLWearableType::WT_TATTOO, new WearableEntry(LLWearableType::WT_TATTOO,"edit_tattoo_title",1,3,1, TEX_HEAD_TATTOO, TEX_LOWER_TATTOO, TEX_UPPER_TATTOO, TEX_HEAD_TATTOO, SUBPART_TATTOO));
+ addEntry(LLWearableType::WT_UNIVERSAL, new WearableEntry(LLWearableType::WT_UNIVERSAL, "edit_universal_title", 1, 11, 1, TEX_HEAD_UNIVERSAL_TATTOO, TEX_HEAD_UNIVERSAL_TATTOO, TEX_UPPER_UNIVERSAL_TATTOO, TEX_LOWER_UNIVERSAL_TATTOO, TEX_SKIRT_TATTOO, TEX_HAIR_TATTOO, TEX_EYES_TATTOO, TEX_LEFT_ARM_TATTOO, TEX_LEFT_LEG_TATTOO, TEX_AUX1_TATTOO, TEX_AUX2_TATTOO, TEX_AUX3_TATTOO, SUBPART_UNIVERSAL));
addEntry(LLWearableType::WT_PHYSICS, new WearableEntry(LLWearableType::WT_PHYSICS,"edit_physics_title",0,0,7, SUBPART_PHYSICS_BREASTS_UPDOWN, SUBPART_PHYSICS_BREASTS_INOUT, SUBPART_PHYSICS_BREASTS_LEFTRIGHT, SUBPART_PHYSICS_BELLY_UPDOWN, SUBPART_PHYSICS_BUTT_UPDOWN, SUBPART_PHYSICS_BUTT_LEFTRIGHT, SUBPART_PHYSICS_ADVANCED));
}
@@ -315,6 +317,8 @@ LLEditWearableDictionary::Subparts::Subparts()
addEntry(SUBPART_UNDERPANTS, new SubpartEntry(SUBPART_UNDERPANTS, "mPelvis", "underpants",LLStringUtil::null, LLVector3d(0.f, 0.f, -0.5f), LLVector3d(-1.6f, 0.15f, -0.5f), SEX_BOTH));
addEntry(SUBPART_ALPHA, new SubpartEntry(SUBPART_ALPHA, "mPelvis", "alpha",LLStringUtil::null, LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f), SEX_BOTH));
addEntry(SUBPART_TATTOO, new SubpartEntry(SUBPART_TATTOO, "mPelvis", "tattoo", LLStringUtil::null, LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f),SEX_BOTH));
+ addEntry(SUBPART_UNIVERSAL, new SubpartEntry(SUBPART_UNIVERSAL, "mPelvis", "universal", LLStringUtil::null, LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-2.5f, 0.5f, 0.8f), SEX_BOTH));
+
addEntry(SUBPART_PHYSICS_BREASTS_UPDOWN, new SubpartEntry(SUBPART_PHYSICS_BREASTS_UPDOWN, "mTorso", "physics_breasts_updown", "Breast Bounce", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-0.8f, 0.15f, 0.38),SEX_FEMALE));
addEntry(SUBPART_PHYSICS_BREASTS_INOUT, new SubpartEntry(SUBPART_PHYSICS_BREASTS_INOUT, "mTorso", "physics_breasts_inout", "Breast Cleavage", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-0.8f, 0.15f, 0.38f),SEX_FEMALE));
addEntry(SUBPART_PHYSICS_BREASTS_LEFTRIGHT, new SubpartEntry(SUBPART_PHYSICS_BREASTS_LEFTRIGHT, "mTorso", "physics_breasts_leftright", "Breast Sway", LLVector3d(0.f, 0.f, 0.1f), LLVector3d(-0.8f, 0.15f, 0.38f),SEX_FEMALE));
@@ -354,6 +358,7 @@ LLEditWearableDictionary::ColorSwatchCtrls::ColorSwatchCtrls()
addEntry ( TEX_UPPER_UNDERSHIRT, new PickerControlEntry (TEX_UPPER_UNDERSHIRT, "Color/Tint" ));
addEntry ( TEX_LOWER_UNDERPANTS, new PickerControlEntry (TEX_LOWER_UNDERPANTS, "Color/Tint" ));
addEntry ( TEX_HEAD_TATTOO, new PickerControlEntry(TEX_HEAD_TATTOO, "Color/Tint" ));
+ addEntry (TEX_HEAD_UNIVERSAL_TATTOO, new PickerControlEntry(TEX_HEAD_UNIVERSAL_TATTOO, "Color/Tint"));
}
LLEditWearableDictionary::TextureCtrls::TextureCtrls()
@@ -381,6 +386,17 @@ LLEditWearableDictionary::TextureCtrls::TextureCtrls()
addEntry ( TEX_LOWER_TATTOO, new PickerControlEntry (TEX_LOWER_TATTOO, "Lower Tattoo", LLUUID::null, TRUE ));
addEntry ( TEX_UPPER_TATTOO, new PickerControlEntry (TEX_UPPER_TATTOO, "Upper Tattoo", LLUUID::null, TRUE ));
addEntry ( TEX_HEAD_TATTOO, new PickerControlEntry (TEX_HEAD_TATTOO, "Head Tattoo", LLUUID::null, TRUE ));
+ addEntry ( TEX_LOWER_UNIVERSAL_TATTOO, new PickerControlEntry( TEX_LOWER_UNIVERSAL_TATTOO, "Lower Universal Tattoo", LLUUID::null, TRUE));
+ addEntry ( TEX_UPPER_UNIVERSAL_TATTOO, new PickerControlEntry( TEX_UPPER_UNIVERSAL_TATTOO, "Upper Universal Tattoo", LLUUID::null, TRUE));
+ addEntry ( TEX_HEAD_UNIVERSAL_TATTOO, new PickerControlEntry( TEX_HEAD_UNIVERSAL_TATTOO, "Head Universal Tattoo", LLUUID::null, TRUE));
+ addEntry ( TEX_SKIRT_TATTOO, new PickerControlEntry(TEX_SKIRT_TATTOO, "Skirt Tattoo", LLUUID::null, TRUE));
+ addEntry ( TEX_HAIR_TATTOO, new PickerControlEntry(TEX_HAIR_TATTOO, "Hair Tattoo", LLUUID::null, TRUE));
+ addEntry ( TEX_EYES_TATTOO, new PickerControlEntry(TEX_EYES_TATTOO, "Eyes Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_LEFT_ARM_TATTOO, new PickerControlEntry(TEX_LEFT_ARM_TATTOO, "Left Arm Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_LEFT_LEG_TATTOO, new PickerControlEntry(TEX_LEFT_LEG_TATTOO, "Left Leg Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_AUX1_TATTOO, new PickerControlEntry(TEX_AUX1_TATTOO, "Aux1 Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_AUX2_TATTOO, new PickerControlEntry(TEX_AUX2_TATTOO, "Aux2 Tattoo", LLUUID::null, TRUE));
+ addEntry (TEX_AUX3_TATTOO, new PickerControlEntry(TEX_AUX3_TATTOO, "Aux3 Tattoo", LLUUID::null, TRUE));
}
LLEditWearableDictionary::PickerControlEntry::PickerControlEntry(ETextureIndex tex_index,
@@ -407,9 +423,9 @@ get_pickers_indexes(const LLEditWearableDictionary::WearableEntry *wearable_entr
// Specializations of this template function return picker control entry for particular control type.
template
const LLEditWearableDictionary::PickerControlEntry*
-get_picker_entry (const ETextureIndex index) { return NULL; }
+get_picker_entry (const ETextureIndex index) { return nullptr; }
-typedef boost::function function_t;
+typedef std::function function_t;
typedef struct PickerControlEntryNamePredicate
{
@@ -473,16 +489,13 @@ find_picker_ctrl_entry_if(LLWearableType::EType type, const Predicate pred)
if (!wearable_entry)
{
LL_WARNS() << "could not get wearable dictionary entry for wearable of type: " << type << LL_ENDL;
- return NULL;
+ return nullptr;
}
const texture_vec_t& indexes = get_pickers_indexes(wearable_entry);
- for (texture_vec_t::const_iterator
- iter = indexes.begin(),
- iter_end = indexes.end();
- iter != iter_end; ++iter)
+ for (auto te : indexes)
{
- const ETextureIndex te = *iter;
- const LLEditWearableDictionary::PickerControlEntry* entry = get_picker_entry(te);
+ const LLEditWearableDictionary::PickerControlEntry* entry
+ = get_picker_entry(te);
if (!entry)
{
LL_WARNS() << "could not get picker dictionary entry (" << te << ") for wearable of type: " << type << LL_ENDL;
@@ -493,7 +506,7 @@ find_picker_ctrl_entry_if(LLWearableType::EType type, const Predicate pred)
return entry;
}
}
- return NULL;
+ return nullptr;
}
template
@@ -699,19 +712,28 @@ BOOL LLPanelEditWearable::postBuild()
mCreateNew = getChild("Create New");
mCreateNew->setCommitCallback(boost::bind(&LLPanelEditWearable::onBtnCreateNew, this));
- mCreateNewLayer = getChild("New Layer");
- mCreateNewLayer->setCommitCallback(boost::bind(&LLPanelEditWearable::onBtnCreateNew, this));
+ if (mCreateNewLayer = findChild("New Layer"))
+ {
+ mCreateNewLayer->setCommitCallback(boost::bind(&LLPanelEditWearable::onBtnCreateNew, this));
+ }
- mTakeOff = getChild("Take Off");
- // If PG, can't take off underclothing or shirt
- mCanTakeOff = !(gAgent.isTeen() && (mType == LLWearableType::WT_UNDERSHIRT || mType == LLWearableType::WT_UNDERPANTS) );
- mTakeOff->setVisible(mCanTakeOff);
- mTakeOff->setCommitCallback(boost::bind(&LLPanelEditWearable::onBtnTakeOff, this));
+ if (mTakeOff = findChild("Take Off"))
+ {
+ // If PG, can't take off underclothing or shirt
+ mCanTakeOff = !(gAgent.isTeen() && (mType == LLWearableType::WT_UNDERSHIRT || mType == LLWearableType::WT_UNDERPANTS) );
+ mTakeOff->setVisible(mCanTakeOff);
+ mTakeOff->setCommitCallback(boost::bind(&LLPanelEditWearable::onBtnTakeOff, this));
+ }
- mArrowLeft = getChild("Arrow Left");
- mArrowLeft->setCommitCallback(boost::bind(&LLPanelEditWearable::onMoveToLayer, this, true));
- mArrowRight = getChild("Arrow Right");
- mArrowRight->setCommitCallback(boost::bind(&LLPanelEditWearable::onMoveToLayer, this, false));
+ if (mArrowLeft = findChild("Arrow Left"))
+ {
+ mArrowLeft->setCommitCallback(boost::bind(&LLPanelEditWearable::onMoveToLayer, this, true));
+ }
+
+ if (mArrowRight = findChild("Arrow Right"))
+ {
+ mArrowRight->setCommitCallback(boost::bind(&LLPanelEditWearable::onMoveToLayer, this, false));
+ }
if (mSexRadio = findChild("sex radio"))
@@ -751,9 +773,9 @@ BOOL LLPanelEditWearable::postBuild()
{
LL_WARNS() << "could not get wearable dictionary entry for wearable of type: " << mType << LL_ENDL;
}
- U8 num_subparts = (U8) wearable_entry->mSubparts.size();
+ const U8 num_subparts = (U8) wearable_entry->mSubparts.size();
- for (U8 index = 0; index < num_subparts; ++index)
+ for (U8 index = 0; num_subparts > 1 && index < num_subparts; ++index)
{
// dive into data structures to get the panel we need
ESubpart subpart_e = wearable_entry->mSubparts[index];
@@ -768,7 +790,7 @@ BOOL LLPanelEditWearable::postBuild()
if (!subpart_entry->mButtonName.empty())
{
- LL_INFOS() << "Finding button " << subpart_entry->mButtonName << LL_ENDL;
+ //LL_INFOS() << "Finding button " << subpart_entry->mButtonName << LL_ENDL;
LLButton* btn(findChild(subpart_entry->mButtonName));
llassert_always(btn);
mSubpartBtns.push_back(btn);
@@ -857,9 +879,9 @@ void LLPanelEditWearable::draw()
const LLEditWearableDictionary::WearableEntry *wearable_entry = LLEditWearableDictionary::getInstance()->getWearable(mType);
if (wearable_entry)
{
- U8 num_subparts = (U8) wearable_entry->mSubparts.size();
+ const U8 num_subparts = (U8) wearable_entry->mSubparts.size();
- for (U8 index = 0; index < num_subparts; ++index)
+ for (U8 index = 0; num_subparts > 1 && index < num_subparts; ++index)
{
// dive into data structures to get the panel we need
ESubpart subpart_e = wearable_entry->mSubparts[index];
@@ -1484,13 +1506,25 @@ void LLPanelEditWearable::updateScrollingPanelUI()
bool max_layers = gAgentWearables.getClothingLayerCount() == LLAgentWearables::MAX_CLOTHING_LAYERS;
bool show_create_new = !has_wearable && !max_layers;
- mTakeOff->setEnabled(has_wearable);
- if (mCanTakeOff) mTakeOff->setVisible(has_wearable);
- mCreateNewLayer->setVisible(has_wearable && !max_layers);
- mArrowLeft->setEnabled(has_wearable && gAgentWearables.getBottomWearable(mType) != wearable);
- mArrowLeft->setVisible(has_wearable);
- mArrowRight->setEnabled(has_wearable && gAgentWearables.getTopWearable(mType) != wearable);
- mArrowRight->setVisible(has_wearable);
+ if (mTakeOff)
+ {
+ mTakeOff->setEnabled(has_wearable);
+ if (mCanTakeOff) mTakeOff->setVisible(has_wearable);
+ }
+ if (mCreateNewLayer)
+ {
+ mCreateNewLayer->setVisible(has_wearable && !max_layers);
+ }
+ if (mArrowLeft)
+ {
+ mArrowLeft->setEnabled(has_wearable && gAgentWearables.getBottomWearable(mType) != wearable);
+ mArrowLeft->setVisible(has_wearable);
+ }
+ if (mArrowRight)
+ {
+ mArrowRight->setEnabled(has_wearable && gAgentWearables.getTopWearable(mType) != wearable);
+ mArrowRight->setVisible(has_wearable);
+ }
mCreateNew->setVisible(show_create_new);
mNotWornI->setVisible(show_create_new);
mNotWornT->setVisible(show_create_new);
@@ -1501,8 +1535,8 @@ void LLPanelEditWearable::updateScrollingPanelUI()
// do nothing else if we don't have a valid wearable we're editing
if (!wearable) return;
- LL_INFOS() << llformat("%#.8lX", wearable) << LL_ENDL;
- LL_INFOS() << "cur_wearable->isDirty()=" << wearable->isDirty() << LL_ENDL;
+ //LL_INFOS() << llformat("%#.8lX", wearable) << LL_ENDL;
+ //LL_INFOS() << "cur_wearable->isDirty()=" << wearable->isDirty() << LL_ENDL;
refreshWearables(false);
}
diff --git a/indra/newview/llpanelevent.cpp b/indra/newview/llpanelevent.cpp
index 66644c803..5eb6fe51d 100644
--- a/indra/newview/llpanelevent.cpp
+++ b/indra/newview/llpanelevent.cpp
@@ -139,9 +139,8 @@ void LLPanelEvent::processEventInfoReply(LLMessageSystem *msg, void **)
msg->getU32("EventData", "EventID", event_id);
// look up all panels which have this avatar
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
+ for (auto& self : sAllPanels)
{
- LLPanelEvent* self = *iter;
// Skip updating panels which aren't for this event
if (self->mEventID != event_id)
{
@@ -152,6 +151,7 @@ void LLPanelEvent::processEventInfoReply(LLMessageSystem *msg, void **)
self->mTBCategory->setText(self->mEventInfo.mCategoryStr);
self->mTBDate->setText(self->mEventInfo.mTimeStr);
self->mTBDesc->setText(self->mEventInfo.mDesc, false);
+ self->mTBRunBy->setValue(self->mEventInfo.mRunByID);
self->mTBDuration->setText(llformat("%d:%.2d", self->mEventInfo.mDuration / 60, self->mEventInfo.mDuration % 60));
@@ -205,17 +205,6 @@ void LLPanelEvent::processEventInfoReply(LLMessageSystem *msg, void **)
}
}
-
-void LLPanelEvent::draw()
-{
- std::string name;
- gCacheName->getFullName(mEventInfo.mRunByID, name);
-
- mTBRunBy->setText(name);
-
- LLPanel::draw();
-}
-
void LLPanelEvent::resetInfo()
{
// Clear all of the text fields.
diff --git a/indra/newview/llpanelevent.h b/indra/newview/llpanelevent.h
index 90c08bde0..353b66fd1 100644
--- a/indra/newview/llpanelevent.h
+++ b/indra/newview/llpanelevent.h
@@ -51,7 +51,6 @@ public:
/*virtual*/ ~LLPanelEvent();
/*virtual*/ BOOL postBuild();
- /*virtual*/ void draw();
void setEventID(const U32 event_id);
void sendEventInfoRequest();
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 4a5c25d79..857028c33 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -2164,6 +2164,15 @@ void LLPanelFace::LLSelectedTE::getTexId(LLUUID& id, bool& identical)
{
LLUUID get(LLViewerObject* object, S32 te_index)
{
+ LLTextureEntry *te = object->getTE(te_index);
+ if (te)
+ {
+ if ((te->getID() == IMG_USE_BAKED_EYES) || (te->getID() == IMG_USE_BAKED_HAIR) || (te->getID() == IMG_USE_BAKED_HEAD) || (te->getID() == IMG_USE_BAKED_LOWER) || (te->getID() == IMG_USE_BAKED_SKIRT) || (te->getID() == IMG_USE_BAKED_UPPER)
+ || (te->getID() == IMG_USE_BAKED_LEFTARM) || (te->getID() == IMG_USE_BAKED_LEFTLEG) || (te->getID() == IMG_USE_BAKED_AUX1) || (te->getID() == IMG_USE_BAKED_AUX2) || (te->getID() == IMG_USE_BAKED_AUX3))
+ {
+ return te->getID();
+ }
+ }
LLUUID id;
LLViewerTexture* image = object->getTEImage(te_index);
if (image)
@@ -2173,7 +2182,6 @@ void LLPanelFace::LLSelectedTE::getTexId(LLUUID& id, bool& identical)
if (!id.isNull() && LLViewerMedia::textureHasMedia(id))
{
- LLTextureEntry *te = object->getTE(te_index);
if (te)
{
LLViewerTexture* tex = te->getID().notNull() ? gTextureList.findImage(te->getID()) : NULL;
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 4379ff3e1..86b6054e4 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -83,7 +83,6 @@ LLPanelGroupGeneral::LLPanelGroupGeneral(const std::string& name,
mGroupNameEditor(NULL),
mFounderName(NULL),
mInsignia(NULL),
- mGroupName(NULL),
mEditCharter(NULL),
mBtnJoinGroup(NULL),
mListVisibleMembers(NULL),
@@ -121,8 +120,7 @@ BOOL LLPanelGroupGeneral::postBuild()
// General info
mGroupNameEditor = getChild("group_name_editor", recurse);
- mGroupName = getChild("group_name", recurse);
-
+
mInsignia = getChild("insignia", recurse);
if (mInsignia)
{
@@ -263,7 +261,7 @@ BOOL LLPanelGroupGeneral::postBuild()
mBtnJoinGroup->setVisible(FALSE);
mBtnInfo->setVisible(FALSE);
- mGroupName->setVisible(FALSE);
+ getChildView("group_name")->setVisible(FALSE);
}
std::string member_count(LLTrans::getString("LoadingData"));
@@ -731,15 +729,14 @@ void LLPanelGroupGeneral::update(LLGroupChange gc)
if (mInsignia) mInsignia->setEnabled(can_change_ident);
if (mEditCharter) mEditCharter->setEnabled(can_change_ident);
-
- if (mGroupName) mGroupName->setText(gdatap->mName);
- if (mGroupNameEditor) mGroupNameEditor->setVisible(FALSE);
- if (mFounderName) mFounderName->setNameID(gdatap->mFounderID,FALSE);
- LLNameEditor* key_edit = getChild("group_key");
- if(key_edit)
+ getChildView("group_name")->setValue(mGroupID);
+ if (mGroupNameEditor) mGroupNameEditor->setVisible(FALSE);
+ if (mFounderName) mFounderName->setValue(gdatap->mFounderID);
+
+ if (auto key_edit = getChildView("group_key"))
{
- key_edit->setText(gdatap->getID().asString());
+ key_edit->setValue(gdatap->getID().asString());
}
if (mInsignia)
@@ -908,7 +905,6 @@ void LLPanelGroupGeneral::updateChanged()
LLUICtrl *check_list[] =
{
mGroupNameEditor,
- mGroupName,
mFounderName,
mInsignia,
mEditCharter,
diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h
index a0a1fd5fb..aa54e83b7 100644
--- a/indra/newview/llpanelgroupgeneral.h
+++ b/indra/newview/llpanelgroupgeneral.h
@@ -91,7 +91,6 @@ private:
// Group information (include any updates in updateChanged)
LLLineEditor *mGroupNameEditor;
- LLTextBox *mGroupName;
LLNameBox *mFounderName;
LLTextureCtrl *mInsignia;
LLTextEditor *mEditCharter;
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index d881f1b16..fa040727d 100644
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -69,10 +69,6 @@
-// [RLVa:KB]
-#include "rlvhandler.h"
-// [/RLVa:KB]
-
// base and own must have EXPORT, next owner must be UNRESTRICTED
bool can_set_export(const U32& base, const U32& own, const U32& next)
{
@@ -117,13 +113,7 @@ BOOL LLPanelPermissions::postBuild()
childSetCommitCallback("Object Description",LLPanelPermissions::onCommitDesc,this);
getChild("Object Description")->setPrevalidate(&LLLineEditor::prevalidatePrintableNotPipe);
-
- getChild("button owner profile")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickOwner,this));
- getChild("button last owner profile")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickLastOwner,this));
- getChild("button creator profile")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickCreator,this));
-
getChild("button set group")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickGroup,this));
- getChild("button open group")->setCommitCallback(boost::bind(LLPanelPermissions::onClickOpenGroup));
childSetCommitCallback("checkbox share with group",LLPanelPermissions::onCommitGroupShare,this);
@@ -182,25 +172,33 @@ void LLPanelPermissions::disableAll()
getChild("pathfinding_attributes_value")->setValue(LLStringUtil::null);
getChildView("Creator:")->setEnabled(FALSE);
- getChild("Creator Name")->setValue(LLStringUtil::null);
- getChildView("Creator Name")->setEnabled(FALSE);
- getChildView("button creator profile")->setEnabled(FALSE);
+ if (auto view = getChildView("Creator Name"))
+ {
+ view->setValue(LLUUID::null);
+ view->setEnabled(FALSE);
+ }
getChildView("Owner:")->setEnabled(FALSE);
- getChild("Owner Name")->setValue(LLStringUtil::null);
- getChildView("Owner Name")->setEnabled(FALSE);
- getChildView("button owner profile")->setEnabled(FALSE);
+ if (auto view = getChildView("Owner Name"))
+ {
+ view->setValue(LLUUID::null);
+ view->setEnabled(FALSE);
+ }
getChildView("Last Owner:")->setEnabled(FALSE);
- getChild("Last Owner Name")->setValue(LLStringUtil::null);
- getChildView("Last Owner Name")->setEnabled(FALSE);
- getChildView("button last owner profile")->setEnabled(FALSE);
-
+ if (auto view = getChildView("Last Owner Name"))
+ {
+ view->setValue(LLUUID::null);
+ view->setEnabled(FALSE);
+ }
+
getChildView("Group:")->setEnabled(FALSE);
- getChild("Group Name Proxy")->setValue(LLStringUtil::null);
- getChildView("Group Name Proxy")->setEnabled(FALSE);
+ if (auto view = getChildView("Group Name Proxy"))
+ {
+ view->setValue(LLUUID::null);
+ view->setEnabled(FALSE);
+ }
getChildView("button set group")->setEnabled(FALSE);
- getChildView("button open group")->setEnabled(FALSE);
LLLineEditor* ed = getChild("Object Name");
ed->setValue(LLStringUtil::null);
@@ -329,7 +327,7 @@ void LLPanelPermissions::refresh()
const LLFocusableElement* keyboard_focus_view = gFocusMgr.getKeyboardFocus();
S32 string_index = 0;
- std::string MODIFY_INFO_STRINGS[] =
+ static std::string MODIFY_INFO_STRINGS[] =
{
getString("text modify info 1"),
getString("text modify info 2"),
@@ -385,18 +383,6 @@ void LLPanelPermissions::refresh()
// Update creator text field
getChildView("Creator:")->setEnabled(TRUE);
-// [RLVa:KB] - Checked: 2010-11-02 (RLVa-1.2.2a) | Modified: RLVa-1.2.2a
- BOOL creators_identical = FALSE;
-// [/RLVa:KB]
- std::string creator_name;
-// [RLVa:KB] - Checked: 2010-11-02 (RLVa-1.2.2a) | Modified: RLVa-1.2.2a
- creators_identical = LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_name);
-// [/RLVa:KB]
-// LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, creator_name);
-
-// getChild("Creator Name")->setValue(creator_name);
-// getChildView("Creator Name")->setEnabled(TRUE);
-// [RLVa:KB] - Moved further down to avoid an annoying flicker when the text is set twice in a row
// Update owner text field
getChildView("Owner:")->setEnabled(TRUE);
@@ -404,101 +390,52 @@ void LLPanelPermissions::refresh()
// Update last owner text field
getChildView("Last Owner:")->setEnabled(TRUE);
- std::string owner_name;
- const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_name);
-
-// LL_INFOS() << "owners_identical " << (owners_identical ? "TRUE": "FALSE") << LL_ENDL;
- std::string last_owner_name;
- LLSelectMgr::getInstance()->selectGetLastOwner(mLastOwnerID, last_owner_name);
-
- if (mOwnerID.isNull())
+ std::string owner_app_link;
+ if (auto view = getChild("Creator Name"))
{
- if(LLSelectMgr::getInstance()->selectIsGroupOwned())
+ if (LLSelectMgr::getInstance()->selectGetCreator(mCreatorID, owner_app_link))
{
- // Group owned already displayed by selectGetOwner
+ view->setValue(mCreatorID);
}
else
{
- // Display last owner if public
- std::string last_owner_name;
- LLSelectMgr::getInstance()->selectGetLastOwner(mLastOwnerID, last_owner_name);
-
- // It should never happen that the last owner is null and the owner
- // is null, but it seems to be a bug in the simulator right now. JC
- if (!mLastOwnerID.isNull() && !last_owner_name.empty())
- {
- owner_name.append(", last ");
- owner_name.append( last_owner_name );
- }
+ view->setValue(LLUUID::null);
+ view->setText(owner_app_link);
}
+ view->setEnabled(true);
}
-// getChild("Owner Name")->setValue(owner_name);
-// getChildView("Owner Name")->setEnabled(TRUE);
-// [RLVa:KB] - Moved further down to avoid an annoying flicker when the text is set twice in a row
-// [RLVa:KB] - Checked: 2010-11-02 (RLVa-1.2.2a) | Modified: RLVa-1.2.2a
- bool fRlvEnableOwner = true;
- bool fRlvEnableCreator = true;
- bool fRlvEnableLastOwner = true;
- if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
+ const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_app_link);
+ if (auto view = getChild("Owner Name"))
{
- // Only anonymize the creator if all of the selection was created by the same avie who's also the owner or they're a nearby avie
- if ( (creators_identical) && (mCreatorID != gAgent.getID()) && ((mCreatorID == mOwnerID) || (RlvUtil::isNearbyAgent(mCreatorID))) )
+ if (owners_identical)
{
- creator_name = RlvStrings::getAnonym(creator_name);
- fRlvEnableCreator = false;
+ view->setValue(mOwnerID);
}
-
- // Only anonymize the owner name if all of the selection is owned by the same avie and isn't group owned
- if ( (owners_identical) && (!LLSelectMgr::getInstance()->selectIsGroupOwned()) && (mOwnerID != gAgent.getID()) )
+ else
{
- owner_name = RlvStrings::getAnonym(owner_name);
- fRlvEnableOwner = false;
- }
-
- if (RlvUtil::isNearbyAgent(mLastOwnerID))
- {
- last_owner_name = RlvStrings::getAnonym(last_owner_name);
- fRlvEnableLastOwner = false;
+ view->setValue(LLUUID::null);
+ view->setText(owner_app_link);
}
+ view->setEnabled(true);
}
- else if ((objectp->isAttachment() || objectp->isAvatar()) && gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS) && mOwnerID != gAgentID)
+
+ if (auto view = getChild("Last Owner Name"))
{
- owner_name = RlvStrings::getAnonym(owner_name);
- fRlvEnableOwner = false;
-
- if (mOwnerID == mCreatorID)
+ if (LLSelectMgr::getInstance()->selectGetLastOwner(mLastOwnerID, owner_app_link))
{
- creator_name = RlvStrings::getAnonym(creator_name);
- fRlvEnableCreator = false;
+ view->setValue(mLastOwnerID);
}
-
- if (mOwnerID == mLastOwnerID)
+ else
{
- last_owner_name = RlvStrings::getAnonym(last_owner_name);
- fRlvEnableLastOwner = false;
+ view->setValue(LLUUID::null);
+ view->setText(owner_app_link);
}
+ view->setEnabled(true);
}
-// [/RLVa:KB]
- getChild("Creator Name")->setValue(creator_name);
- getChildView("Creator Name")->setEnabled(TRUE);
-
- getChild("Owner Name")->setValue(owner_name);
- getChildView("Owner Name")->setEnabled(TRUE);
-// childSetEnabled("button owner profile",owners_identical && (mOwnerID.notNull() || LLSelectMgr::getInstance()->selectIsGroupOwned()));
-// getChildView("button last owner profile")->setEnabled(owners_identical && mLastOwnerID.notNull());
-// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
- getChildView("button owner profile")->setEnabled(fRlvEnableOwner && owners_identical && (mOwnerID.notNull() || LLSelectMgr::getInstance()->selectIsGroupOwned()));
- getChildView("button creator profile")->setEnabled(fRlvEnableCreator && creators_identical && mCreatorID.notNull());
- getChildView("button last owner profile")->setEnabled(fRlvEnableLastOwner && owners_identical && mLastOwnerID.notNull());
-// [/RLVa:KB]
-
- getChild("Last Owner Name")->setValue(last_owner_name);
- getChildView("Last Owner Name")->setEnabled(TRUE);
// update group text field
getChildView("Group:")->setEnabled(TRUE);
- //getChild("Group Name")->setValue(LLStringUtil::null);
LLUUID group_id;
BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
if (groups_identical)
@@ -520,7 +457,6 @@ void LLPanelPermissions::refresh()
}
getChildView("button set group")->setEnabled(root_selected && owners_identical && (mOwnerID == gAgent.getID()) && is_nonpermanent_enforced);
- getChildView("button open group")->setEnabled(group_id.notNull());
getChildView("Name:")->setEnabled(TRUE);
LLLineEditor* LineEditorObjectName = getChild("Object Name");
@@ -1049,36 +985,6 @@ void LLPanelPermissions::onClickRelease(void*)
LLSelectMgr::getInstance()->sendOwner(LLUUID::null, LLUUID::null);
}
-void LLPanelPermissions::onClickCreator()
-{
- LLAvatarActions::showProfile(mCreatorID);
-}
-
-void LLPanelPermissions::onClickOwner()
-{
- if (LLSelectMgr::getInstance()->selectIsGroupOwned())
- {
- LLUUID group_id;
- LLSelectMgr::getInstance()->selectGetGroup(group_id);
- LLGroupActions::show(group_id);
- }
- else
- {
-// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e)
- if (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
- {
- LLAvatarActions::showProfile(mOwnerID);
- }
-// [/RLVa:KB]
-// LLAvatarActions::showProfile(mOwnerID);
- }
-}
-
-void LLPanelPermissions::onClickLastOwner()
-{
- LLAvatarActions::showProfile(mLastOwnerID);
-}
-
void LLPanelPermissions::onClickGroup()
{
LLUUID owner_id;
@@ -1103,13 +1009,6 @@ void LLPanelPermissions::onClickGroup()
}
}
-void LLPanelPermissions::onClickOpenGroup()
-{
- LLUUID group_id;
- LLSelectMgr::getInstance()->selectGetGroup(group_id);
- LLGroupActions::show(group_id);
-}
-
void LLPanelPermissions::cbGroupID(LLUUID group_id)
{
if(mLabelGroupName)
diff --git a/indra/newview/llpanelpermissions.h b/indra/newview/llpanelpermissions.h
index 58b6dbac9..87868108b 100644
--- a/indra/newview/llpanelpermissions.h
+++ b/indra/newview/llpanelpermissions.h
@@ -58,11 +58,7 @@ protected:
// statics
static void onClickClaim(void*);
static void onClickRelease(void*);
- void onClickCreator();
- void onClickOwner();
- void onClickLastOwner();
void onClickGroup();
- static void onClickOpenGroup();
void cbGroupID(LLUUID group_id);
static void onClickDeedToGroup(void*);
static void onClickCopyObjKey();
diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp
index f521a6cca..42459df94 100644
--- a/indra/newview/llpanelvolume.cpp
+++ b/indra/newview/llpanelvolume.cpp
@@ -379,6 +379,28 @@ void LLPanelVolume::getState( )
}
getChildView("Animated Mesh Checkbox Ctrl")->setEnabled(enabled_animated_object_box);
+ //refresh any bakes
+ if (root_volobjp)
+ {
+ root_volobjp->refreshBakeTexture();
+
+ LLViewerObject::const_child_list_t& child_list = root_volobjp->getChildren();
+ for (const auto& iter : child_list)
+ {
+ LLViewerObject* objectp = iter;
+ if (objectp)
+ {
+ objectp->refreshBakeTexture();
+ }
+ }
+
+ if (gAgentAvatarp)
+ {
+ gAgentAvatarp->updateMeshVisibility();
+ }
+ }
+
+
// Flexible properties
BOOL is_flexible = volobjp && volobjp->isFlexible();
getChild("Flexible1D Checkbox Ctrl")->setValue(is_flexible);
@@ -825,6 +847,27 @@ void LLPanelVolume::onCommitAnimatedMeshCheckbox(LLUICtrl *, void*)
{
volobjp->setExtendedMeshFlags(new_flags);
}
+
+ //refresh any bakes
+ if (volobjp)
+ {
+ volobjp->refreshBakeTexture();
+
+ LLViewerObject::const_child_list_t& child_list = volobjp->getChildren();
+ for (const auto& iter : child_list)
+ {
+ LLViewerObject* objectp = iter;
+ if (objectp)
+ {
+ objectp->refreshBakeTexture();
+ }
+ }
+
+ if (gAgentAvatarp)
+ {
+ gAgentAvatarp->updateMeshVisibility();
+ }
+ }
}
void LLPanelVolume::onCommitIsFlexible(LLUICtrl *, void*)
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 1b4c0b8f8..2f6ba27e4 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -30,8 +30,7 @@
#include "llagent.h"
#include "llmutelist.h"
#include "llparticipantlist.h"
-#include "llscrolllistctrl.h"
-#include "llscrolllistitem.h"
+#include "llnamelistctrl.h"
#include "llspeakers.h"
#include "lluictrlfactory.h" // Edit: For menu duality
#include "llviewermenu.h" // Edit: For menu duality
@@ -45,7 +44,7 @@
LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source,
bool show_text_chatters) :
mSpeakerMgr(data_source),
- mAvatarList(NULL),
+ mAvatarList(nullptr),
mShowTextChatters(show_text_chatters),
mValidateSpeakerCallback(NULL)
{
@@ -84,7 +83,7 @@ void LLParticipantList::setupContextMenu()
BOOL LLParticipantList::postBuild()
{
- mAvatarList = getChild("speakers_list");
+ mAvatarList = getChild("speakers_list");
mAvatarList->sortByColumn(gSavedSettings.getString("FloaterActiveSpeakersSortColumn"), gSavedSettings.getBOOL("FloaterActiveSpeakersSortAscending"));
mAvatarList->setDoubleClickCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this));
@@ -263,14 +262,14 @@ void LLParticipantList::refreshSpeakers()
mSpeakerMgr->update(resort_ok);
bool re_sort = false;
- int start_pos = llmax(0, scroll_pos - 20);
- int end_pos = scroll_pos + mAvatarList->getLinesPerPage() + 20;
+ size_t start_pos = llmax(0, scroll_pos - 20);
+ size_t end_pos = scroll_pos + mAvatarList->getLinesPerPage() + 20;
std::vector items = mAvatarList->getAllData();
if (start_pos >= items.size())
{
return;
}
- int count = 0;
+ size_t count = 0;
for (std::vector::iterator item_it = items.begin(); item_it != items.end(); ++item_it)
{
@@ -322,13 +321,15 @@ void LLParticipantList::refreshSpeakers()
{
//
bool found = mShowTextChatters || speakerp->mID == gAgentID;
- const LLWorld::region_list_t& regions = LLWorld::getInstance()->getRegionList();
- for (LLWorld::region_list_t::const_iterator iter = regions.begin(); !found && iter != regions.end(); ++iter)
+ if (!found)
+ for (const LLViewerRegion* regionp : LLWorld::getInstance()->getRegionList())
{
// Are they in this sim?
- if (const LLViewerRegion* regionp = *iter)
- if (std::find(regionp->mMapAvatarIDs.begin(), regionp->mMapAvatarIDs.end(), speakerp->mID) != regionp->mMapAvatarIDs.end())
- found = true;
+ if (std::find(regionp->mMapAvatarIDs.begin(), regionp->mMapAvatarIDs.end(), speakerp->mID) != regionp->mMapAvatarIDs.end())
+ {
+ found = true;
+ break;
+ }
}
if (!found)
{
@@ -349,7 +350,7 @@ void LLParticipantList::refreshSpeakers()
{
std::string speaker_name = speakerp->mDisplayName.empty() ? LLCacheName::getDefaultName() : speakerp->mDisplayName;
if (speakerp->mIsModerator)
- speaker_name += " " + getString("moderator_label");
+ speaker_name += ' ' + getString("moderator_label");
if (name_cell->getValue().asString() != speaker_name)
{
re_sort = true;
@@ -486,22 +487,16 @@ void LLParticipantList::adjustParticipant(const LLUUID& speaker_id)
LLPointer speakerp = mSpeakerMgr->findSpeaker(speaker_id);
if (speakerp.isNull()) return;
- LLSD row;
- row["id"] = speaker_id;
- LLSD& columns = row["columns"];
- columns[0]["column"] = "icon_speaking_status";
- columns[0]["type"] = "icon";
- columns[0]["value"] = "icn_active-speakers-dot-lvl0.tga";
-
+ LLNameListItem::Params name_item;
+ name_item.value = speaker_id;
+ name_item.columns.add(LLScrollListCell::Params().column("icon_speaking_status").type("icon").value("icn_active-speakers-dot-lvl0.tga"));
const std::string& display_name = LLVoiceClient::getInstance()->getDisplayName(speaker_id);
- columns[1]["column"] = "speaker_name";
- columns[1]["type"] = "text";
- columns[1]["value"] = display_name.empty() ? LLCacheName::getDefaultName() : display_name;
+ name_item.name = display_name;
+ name_item.columns.add(LLScrollListCell::Params().column("speaker_name").type("text").value(display_name));
+ name_item.columns.add(LLScrollListCell::Params().column("speaking_status").type("text")
+ .value(llformat("%010d", speakerp->mSortIndex))); // print speaking ordinal in a text-sorting friendly manner
- columns[2]["column"] = "speaking_status";
- columns[2]["type"] = "text";
- columns[2]["value"] = llformat("%010d", speakerp->mSortIndex); // print speaking ordinal in a text-sorting friendly manner
- mAvatarList->addElement(row);
+ mAvatarList->addNameItemRow(name_item);
// add listener to process moderation changes
speakerp->addListener(mSpeakerMuteListener);
diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h
index 29772cf25..091753d5d 100644
--- a/indra/newview/llparticipantlist.h
+++ b/indra/newview/llparticipantlist.h
@@ -30,7 +30,7 @@
#include "lllayoutstack.h"
class LLSpeakerMgr;
-class LLScrollListCtrl;
+class LLNameListCtrl;
class LLUICtrl;
class LLParticipantList : public LLLayoutPanel
@@ -219,7 +219,7 @@ private:
void onVolumeChange(const LLSD& param);
LLSpeakerMgr* mSpeakerMgr;
- LLScrollListCtrl* mAvatarList;
+ LLNameListCtrl* mAvatarList;
bool mShowTextChatters;
LLFrameTimer mUpdateTimer;
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index d0f011998..b8f714298 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -439,7 +439,7 @@ bool LLScriptEdCore::loadScriptText(const std::string& filename)
// read in the whole file
fseek(file, 0L, SEEK_END);
- long file_length = ftell(file);
+ size_t file_length = ftell(file);
fseek(file, 0L, SEEK_SET);
if (file_length > 0)
{
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 462302873..add23140c 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -204,8 +204,7 @@
#include "llweb.h"
#include "llvoiceclient.h"
#include "llnamelistctrl.h"
-#include "llnamebox.h"
-#include "llnameeditor.h"
+#include "llnameui.h"
#include "llwlparammanager.h"
#include "llwaterparammanager.h"
#include "llagentlanguage.h"
@@ -320,8 +319,7 @@ void transition_back_to_login_panel(const std::string& emsg);
void callback_cache_name(const LLUUID& id, const std::string& full_name, bool is_group)
{
- LLNameBox::refreshAll(id, full_name, is_group);
- LLNameEditor::refreshAll(id, full_name, is_group);
+ LLNameUI::refreshAll(id, full_name, is_group);
// TODO: Actually be intelligent about the refresh.
// For now, just brute force refresh the dialogs.
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index a64125b1d..3d62acf8c 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -60,19 +60,22 @@
#include "llscrollcontainer.h"
#include "lltoolmgr.h"
#include "lltoolpipette.h"
-
-#include "lltool.h"
+#include "llglheaders.h"
+#include "llselectmgr.h"
+#include "lltrans.h"
+#include "lluictrlfactory.h"
#include "llviewerwindow.h"
#include "llviewerobject.h"
#include "llviewercontrol.h"
-#include "llglheaders.h"
-#include "lluictrlfactory.h"
-#include "lltrans.h"
+
+#include "llavatarappearancedefines.h"
+
//
#include "llmenugl.h"
//
// tag: vaa emerald local_asset_browser [begin]
+//#include
#include "floaterlocalassetbrowse.h"
#include "llscrolllistctrl.h"
#define LOCALLIST_COL_ID 1
@@ -177,6 +180,7 @@ public:
void onSelectionChange(const std::deque &items, BOOL user_action);
static void onShowFolders(LLUICtrl* ctrl, void* userdata);
static void onApplyImmediateCheck(LLUICtrl* ctrl, void* userdata);
+ void onBakeTextureSelect(const LLSD& val);
void onFilterEdit(const std::string& filter_string );
void onTextureSelect( const LLTextureEntry& te );
@@ -285,22 +289,43 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id)
mNoCopyTextureSelected = FALSE;
mIsDirty = TRUE;
mImageAssetID = image_id;
- LLUUID item_id = findItemID(mImageAssetID, FALSE);
- if (item_id.isNull())
+
+ std::string tab;
+ if (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(mImageAssetID))
{
- mInventoryPanel->getRootFolder()->clearSelection();
+ tab = "bake";
+ getChild("l_bake_use_texture_combo_box")->selectByID(mImageAssetID);
}
+ /* TODO: Figure out how to select local asset if in use?
+ // tag: vaa emerald local_asset_browser [begin]
+ else if (boost::algorithm::any_of_equal(mLocalScrollCtrl->getAllIDs(), mImageAssetID))
+ {
+ tab = "local_tab";
+ mLocalScrollCtrl->selectByID(mImageAssetID);
+ }
+ // tag: vaa emerald local_asset_browser [end]
+ */
else
{
- LLInventoryItem* itemp = gInventory.getItem(image_id);
- if (itemp && !itemp->getPermissions().allowCopyBy(gAgent.getID()))
+ LLUUID item_id = findItemID(mImageAssetID, FALSE);
+ if (item_id.isNull())
{
- // no copy texture
- getChild("apply_immediate_check")->setValue(FALSE);
- mNoCopyTextureSelected = TRUE;
+ mInventoryPanel->getRootFolder()->clearSelection();
+ }
+ else
+ {
+ tab = "server_tab";
+ LLInventoryItem* itemp = gInventory.getItem(image_id);
+ if (itemp && !itemp->getPermissions().allowCopyBy(gAgent.getID()))
+ {
+ // no copy texture
+ getChild("apply_immediate_check")->setValue(FALSE);
+ mNoCopyTextureSelected = TRUE;
+ }
+ mInventoryPanel->setSelection(item_id, TAKE_FOCUS_NO);
}
- mInventoryPanel->setSelection(item_id, TAKE_FOCUS_NO);
}
+ if (!tab.empty()) getChild("actions_tab_container")->selectTabByName(tab);
}
}
@@ -557,6 +582,8 @@ BOOL LLFloaterTexturePicker::postBuild()
// update permission filter once UI is fully initialized
updateFilterPermMask();
LLToolPipette::getInstance()->setToolSelectCallback(boost::bind(&LLFloaterTexturePicker::onTextureSelect, this, _1));
+
+ getChild("l_bake_use_texture_combo_box")->setCommitCallback(boost::bind(&LLFloaterTexturePicker::onBakeTextureSelect, this, _2));
return TRUE;
}
@@ -623,10 +650,28 @@ void LLFloaterTexturePicker::draw()
//BOOL allow_copy = FALSE;
if( mOwner )
{
- mTexturep = NULL;
+ mTexturep = nullptr;
if(mImageAssetID.notNull())
{
- mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, FTT_DEFAULT, MIPMAP_YES, LLGLTexture::BOOST_PREVIEW);
+ LLPointer texture = NULL;
+
+ if (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(mImageAssetID))
+ {
+ LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
+ if (obj)
+ {
+ LLViewerTexture* viewerTexture = obj->getBakedTextureForMagicId(mImageAssetID);
+ texture = viewerTexture ? dynamic_cast(viewerTexture) : NULL;
+ }
+ }
+
+ if (texture.isNull())
+ {
+ texture = LLViewerTextureManager::getFetchedTexture(mImageAssetID);
+ }
+
+ mTexturep = texture;
+ mTexturep->setBoostLevel(LLGLTexture::BOOST_PREVIEW);
}
else if (!mFallbackImageName.empty())
{
@@ -1030,6 +1075,19 @@ void LLFloaterTexturePicker::onApplyImmediateCheck(LLUICtrl* ctrl, void *user_da
picker->commitIfImmediateSet();
}
+void LLFloaterTexturePicker::onBakeTextureSelect(const LLSD& val)
+{
+ LLUUID imageID = val.asUUID();
+
+ setImageID(imageID);
+
+ if (mCanPreview)
+ {
+ // only commit intentional selections, not implicit ones
+ commitIfImmediateSet();
+ }
+}
+
void LLFloaterTexturePicker::updateFilterPermMask()
{
//mInventoryPanel->setFilterPermMask( getFilterPermMask() ); Commented out due to no-copy texture loss.
@@ -1581,12 +1639,31 @@ void LLTextureCtrl::draw()
if (!mValid)
{
- mTexturep = NULL;
+ mTexturep = nullptr;
}
else if (!mImageAssetID.isNull())
{
- mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, FTT_DEFAULT, MIPMAP_YES,LLGLTexture::BOOST_PREVIEW, LLViewerTexture::LOD_TEXTURE);
- mTexturep->forceToSaveRawImage(0) ;
+ LLPointer texture = NULL;
+
+ if (LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(mImageAssetID))
+ {
+ LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getFirstObject();
+ if (obj)
+ {
+ LLViewerTexture* viewerTexture = obj->getBakedTextureForMagicId(mImageAssetID);
+ texture = viewerTexture ? dynamic_cast(viewerTexture) : NULL;
+ }
+ }
+
+ if (texture.isNull())
+ {
+ texture = LLViewerTextureManager::getFetchedTexture(mImageAssetID, FTT_DEFAULT, MIPMAP_YES, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ }
+
+ texture->setBoostLevel(LLGLTexture::BOOST_PREVIEW);
+ texture->forceToSaveRawImage(0) ;
+
+ mTexturep = texture;
}
else if (!mFallbackImageName.empty())
{
@@ -1595,7 +1672,7 @@ void LLTextureCtrl::draw()
}
else // mImageAssetID == LLUUID::null
{
- mTexturep = NULL;
+ mTexturep = nullptr;
}
// Border
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 5aa8239d4..6d694ca3b 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -238,9 +238,9 @@ void display_stats()
F32 mem_log_freq = gSavedSettings.getF32("MemoryLogFrequency");
if (mem_log_freq > 0.f && gRecentMemoryTime.getElapsedTimeF32() >= mem_log_freq)
{
- gMemoryAllocated = (U64Bytes)LLMemory::getCurrentRSS();
+ gMemoryAllocated = U64Bytes(LLMemory::getCurrentRSS());
U32Megabytes memory = gMemoryAllocated;
- LL_INFOS() << llformat("MEMORY: %d MB", memory.value()) << LL_ENDL;
+ LL_INFOS() << "MEMORY: " << memory << LL_ENDL;
LL_INFOS() << "THREADS: "<< LLThread::getCount() << LL_ENDL;
LL_INFOS() << "MALLOC: " << SGMemStat::getPrintableStat() <addChild(gLoginMenuBarView);
// Singu Note: Initialize common ScrollListMenus here
- LLScrollListCtrl::addCommonMenu(LLUICtrlFactory::getInstance()->buildMenu("menu_avs_list.xml", gMenuHolder)); // 0
- //LLScrollListCtrl::addCommonMenu(LLUICtrlFactory::getInstance()->buildMenu("menu_groups_list.xml")); // 1 // Singu TODO
+ LFIDBearer::addCommonMenu(LLUICtrlFactory::getInstance()->buildMenu("menu_avs_list.xml", gMenuHolder)); // 0
+ //LFIDBearer::addCommonMenu(LLUICtrlFactory::getInstance()->buildMenu("menu_groups_list.xml")); // 1 // Singu TODO
LLView* ins = gMenuBarView->getChildView("insert_world", true, false);
ins->setVisible(false);
@@ -9051,27 +9052,6 @@ template T* get_focused()
return t;
}
-S32 get_focused_list_num_selected()
-{
- if (auto list = get_focused())
- return list->getNumSelected();
- return 0;
-}
-
-const LLUUID get_focused_list_id_selected()
-{
- if (auto list = get_focused())
- return list->getStringUUIDSelectedItem();
- return LLUUID::null;
-}
-
-const uuid_vec_t get_focused_list_ids_selected()
-{
- if (auto list = get_focused())
- return list->getSelectedIDs();
- return uuid_vec_t();
-}
-
const LLWString get_slurl_for(const LLUUID& id, bool group)
{
std::string str("secondlife:///app/");
@@ -9088,7 +9068,7 @@ class ListEnableAnySelected : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected());
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(LFIDBearer::getActiveNumSelected());
return true;
}
};
@@ -9097,7 +9077,7 @@ class ListEnableMultipleSelected : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected() > 1);
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(LFIDBearer::getActiveNumSelected() > 1);
return true;
}
};
@@ -9106,7 +9086,7 @@ class ListEnableSingleSelected : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected() == 1);
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(LFIDBearer::getActiveNumSelected() == 1);
return true;
}
};
@@ -9115,8 +9095,6 @@ class ListEnableCall : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- auto list = get_focused();
- if (!list) return false;
gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::canCall());
return true;
}
@@ -9126,7 +9104,7 @@ class ListEnableIsFriend : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::isFriend(get_focused_list_id_selected()));
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::isFriend(LFIDBearer::getActiveSelectedID()));
return true;
}
};
@@ -9135,7 +9113,7 @@ class ListEnableIsNotFriend : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(!LLAvatarActions::isFriend(get_focused_list_id_selected()));
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(!LLAvatarActions::isFriend(LFIDBearer::getActiveSelectedID()));
return true;
}
};
@@ -9144,7 +9122,7 @@ class ListEnableMute : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- const uuid_vec_t& ids = get_focused_list_ids_selected();
+ const uuid_vec_t& ids = LFIDBearer::getActiveSelectedIDs();
bool can_block = true;
for (uuid_vec_t::const_iterator it = ids.begin(); can_block && it != ids.end(); ++it)
can_block = LLAvatarActions::canBlock(*it);
@@ -9157,7 +9135,7 @@ class ListEnableOfferTeleport : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::canOfferTeleport(get_focused_list_ids_selected()));
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(LLAvatarActions::canOfferTeleport(LFIDBearer::getActiveSelectedIDs()));
return true;
}
};
@@ -9166,7 +9144,7 @@ class ListVisibleWebProfile : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(get_focused_list_num_selected() && !(gSavedSettings.getBOOL("UseWebProfiles") || gSavedSettings.getString("WebProfileURL").empty()));
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(LFIDBearer::getActiveNumSelected() && !(gSavedSettings.getBOOL("UseWebProfiles") || gSavedSettings.getString("WebProfileURL").empty()));
return true;
}
};
@@ -9176,7 +9154,7 @@ class ListBanFromGroup : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- ban_from_group(get_focused_list_ids_selected());
+ ban_from_group(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9185,7 +9163,7 @@ class ListCopySLURL : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- copy_profile_uri(get_focused_list_id_selected(), false);
+ copy_profile_uri(LFIDBearer::getActiveSelectedID(), false);
return true;
}
};
@@ -9194,7 +9172,7 @@ class ListCopyUUIDs : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::copyUUIDs(get_focused_list_ids_selected());
+ LLAvatarActions::copyUUIDs(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9203,7 +9181,7 @@ class ListInviteToGroup : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::inviteToGroup(get_focused_list_ids_selected());
+ LLAvatarActions::inviteToGroup(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9212,7 +9190,7 @@ class ListOfferTeleport : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::offerTeleport(get_focused_list_ids_selected());
+ LLAvatarActions::offerTeleport(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9221,7 +9199,7 @@ class ListPay : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::pay(get_focused_list_id_selected());
+ LLAvatarActions::pay(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9230,7 +9208,7 @@ class ListRemoveFriend : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::removeFriendDialog(get_focused_list_id_selected());
+ LLAvatarActions::removeFriendDialog(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9239,7 +9217,7 @@ class ListRequestFriendship : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::requestFriendshipDialog(get_focused_list_id_selected());
+ LLAvatarActions::requestFriendshipDialog(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9248,7 +9226,7 @@ class ListRequestTeleport : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::teleportRequest(get_focused_list_id_selected());
+ LLAvatarActions::teleportRequest(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9257,7 +9235,7 @@ class ListShare : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::share(get_focused_list_id_selected());
+ LLAvatarActions::share(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9272,7 +9250,7 @@ class ListShowLog : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- for (const LLUUID& id : get_focused_list_ids_selected())
+ for (const LLUUID& id : LFIDBearer::getActiveSelectedIDs())
show_log_browser(id);
return true;
}
@@ -9282,7 +9260,7 @@ class ListShowProfile : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::showProfiles(get_focused_list_ids_selected());
+ LLAvatarActions::showProfiles(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9291,7 +9269,7 @@ class ListShowWebProfile : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::showProfiles(get_focused_list_ids_selected(), true);
+ LLAvatarActions::showProfiles(LFIDBearer::getActiveSelectedIDs(), true);
return true;
}
};
@@ -9300,7 +9278,7 @@ class ListStartAdhocCall : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::startAdhocCall(get_focused_list_ids_selected());
+ LLAvatarActions::startAdhocCall(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9309,7 +9287,7 @@ class ListStartCall : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::startCall(get_focused_list_id_selected());
+ LLAvatarActions::startCall(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9318,7 +9296,7 @@ class ListStartConference : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::startConference(get_focused_list_ids_selected());
+ LLAvatarActions::startConference(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9327,7 +9305,7 @@ class ListStartIM : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLAvatarActions::startIM(get_focused_list_id_selected());
+ LLAvatarActions::startIM(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9336,7 +9314,7 @@ class ListAbuseReport : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- LLFloaterReporter::showFromObject(get_focused_list_id_selected());
+ LLFloaterReporter::showFromObject(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9364,7 +9342,7 @@ class ListIsNearby : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- gMenuHolder->findControl(userdata["control"].asString())->setValue(is_nearby(get_focused_list_id_selected()));
+ gMenuHolder->findControl(userdata["control"].asString())->setValue(is_nearby(LFIDBearer::getActiveSelectedID()));
return true;
}
};
@@ -9374,7 +9352,7 @@ class ListTrack : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- track_av(get_focused_list_id_selected());
+ track_av(LFIDBearer::getActiveSelectedID());
return true;
}
};
@@ -9388,7 +9366,7 @@ class ListEject : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- confirm_eject(get_focused_list_ids_selected());
+ confirm_eject(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9402,7 +9380,7 @@ class ListFreeze : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- confirm_freeze(get_focused_list_ids_selected());
+ confirm_freeze(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9441,7 +9419,7 @@ class ListEstateBan : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- confirm_estate_ban(get_focused_list_ids_selected());
+ confirm_estate_ban(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9454,7 +9432,7 @@ class ListEstateEject : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- confirm_estate_kick(get_focused_list_ids_selected());
+ confirm_estate_kick(LFIDBearer::getActiveSelectedIDs());
return true;
}
};
@@ -9463,9 +9441,9 @@ class ListToggleMute : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- const uuid_vec_t& ids = get_focused_list_ids_selected();
- for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
- LLAvatarActions::toggleBlock(*it);
+ const uuid_vec_t& ids = LFIDBearer::getActiveSelectedIDs();
+ for (const auto& id : ids)
+ LLAvatarActions::toggleBlock(id);
return true;
}
};
diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h
index b3f2cda7b..29d46def8 100644
--- a/indra/newview/llviewermenu.h
+++ b/indra/newview/llviewermenu.h
@@ -142,8 +142,6 @@ bool handle_go_to();
// Export to XML or Collada
void handle_export_selected( void * );
-const LLUUID get_focused_list_id_selected();
-
class LLViewerMenuHolderGL : public LLMenuHolderGL
{
public:
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 6c0499ffc..f2d83efa2 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -168,7 +168,6 @@ extern bool gShiftFrame;
// function prototypes
bool check_offer_throttle(const std::string& from_name, bool check_only);
bool check_asset_previewable(const LLAssetType::EType asset_type);
-void callbackCacheEstateOwnerName(const LLUUID& id, const LLAvatarName& av_name);
static void process_money_balance_reply_extended(LLMessageSystem* msg);
//inventory offer throttle globals
@@ -8595,7 +8594,10 @@ void process_covenant_reply(LLMessageSystem* msg, void**)
LLPanelEstateInfo::updateEstateName(estate_name);
LLFloaterBuyLand::updateEstateName(estate_name);
- LLAvatarNameCache::get(estate_owner_id, boost::bind(&callbackCacheEstateOwnerName, _1, _2));
+ LLPanelEstateCovenant::updateEstateOwnerID(estate_owner_id);
+ LLPanelLandCovenant::updateEstateOwnerID(estate_owner_id);
+ LLPanelEstateInfo::updateEstateOwnerID(estate_owner_id);
+ LLFloaterBuyLand::updateEstateOwnerID(estate_owner_id);
// standard message, not from system
std::string last_modified;
@@ -8605,7 +8607,7 @@ void process_covenant_reply(LLMessageSystem* msg, void**)
}
else
{
- last_modified = LLTrans::getString("covenant_modified") + " " + formatted_time((time_t)covenant_timestamp);
+ last_modified = LLTrans::getString("covenant_modified") + ' ' + formatted_time((time_t)covenant_timestamp);
}
LLPanelEstateCovenant::updateLastModified(last_modified);
@@ -8644,15 +8646,6 @@ void process_covenant_reply(LLMessageSystem* msg, void**)
}
}
-void callbackCacheEstateOwnerName(const LLUUID& id, const LLAvatarName& av_name)
-{
- const std::string name(av_name.getNSName());
- LLPanelEstateCovenant::updateEstateOwnerName(name);
- LLPanelLandCovenant::updateEstateOwnerName(name);
- LLPanelEstateInfo::updateEstateOwnerName(name);
- LLFloaterBuyLand::updateEstateOwnerName(name);
-}
-
void onCovenantLoadComplete(LLVFS *vfs,
const LLUUID& asset_uuid,
LLAssetType::EType type,
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 8b41996c6..8ba388e6e 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -4765,12 +4765,75 @@ void LLViewerObject::sendTEUpdate() const
msg->sendReliable( regionp->getHost() );
}
+LLViewerTexture* LLViewerObject::getBakedTextureForMagicId(const LLUUID& id)
+{
+ if (!LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(id))
+ {
+ return NULL;
+ }
+
+ LLViewerObject *root = getRootEdit();
+ if (root && root->isAnimatedObject())
+ {
+ return LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ }
+
+ LLVOAvatar* avatar = getAvatar();
+ if (avatar)
+ {
+ LLAvatarAppearanceDefines::EBakedTextureIndex texIndex = LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::assetIdToBakedTextureIndex(id);
+ LLViewerTexture* bakedTexture = avatar->getBakedTexture(texIndex);
+ if (bakedTexture == NULL || bakedTexture->isMissingAsset())
+ {
+ return LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ }
+ else
+ {
+ return bakedTexture;
+ }
+ }
+ else
+ {
+ return LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ }
+
+}
+
+void LLViewerObject::updateAvatarMeshVisibility(const LLUUID& id, const LLUUID& old_id)
+{
+ if (id == old_id)
+ {
+ return;
+ }
+
+ if (!LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(old_id) && !LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(id))
+ {
+ return;
+ }
+
+ LLVOAvatar* avatar = getAvatar();
+ if (avatar)
+ {
+ avatar->updateMeshVisibility();
+ }
+}
+
void LLViewerObject::setTE(const U8 te, const LLTextureEntry &texture_entry)
{
+ LLUUID old_image_id;
+ if (getTE(te))
+ {
+ old_image_id = getTE(te)->getID();
+ }
+
LLPrimitive::setTE(te, texture_entry);
const LLUUID& image_id = getTE(te)->getID();
- mTEImages[te] = LLViewerTextureManager::getFetchedTexture(image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ LLViewerTexture* bakedTexture = getBakedTextureForMagicId(image_id);
+ mTEImages[te] = bakedTexture ? bakedTexture : LLViewerTextureManager::getFetchedTexture(image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+
+
+ updateAvatarMeshVisibility(image_id,old_image_id);
if (getTE(te)->getMaterialParams().notNull())
{
@@ -4782,12 +4845,31 @@ void LLViewerObject::setTE(const U8 te, const LLTextureEntry &texture_entry)
}
}
+void LLViewerObject::refreshBakeTexture()
+{
+ for (int face_index = 0; face_index < getNumTEs(); face_index++)
+ {
+ LLTextureEntry* tex_entry = getTE(face_index);
+ if (tex_entry && LLAvatarAppearanceDefines::LLAvatarAppearanceDictionary::isBakedImageId(tex_entry->getID()))
+ {
+ const LLUUID& image_id = tex_entry->getID();
+ LLViewerTexture* bakedTexture = getBakedTextureForMagicId(image_id);
+ changeTEImage(face_index, bakedTexture);
+ }
+ }
+}
+
void LLViewerObject::setTEImage(const U8 te, LLViewerTexture *imagep)
{
if (mTEImages[te] != imagep)
{
- mTEImages[te] = imagep;
+ LLUUID old_image_id = getTE(te) ? getTE(te)->getID() : LLUUID::null;
+
LLPrimitive::setTETexture(te, imagep->getID());
+
+ LLViewerTexture* baked_texture = getBakedTextureForMagicId(imagep->getID());
+ mTEImages[te] = baked_texture ? baked_texture : imagep;
+ updateAvatarMeshVisibility(imagep->getID(), old_image_id);
setChanged(TEXTURE);
if (mDrawable.notNull())
{
@@ -4798,13 +4880,18 @@ void LLViewerObject::setTEImage(const U8 te, LLViewerTexture *imagep)
S32 LLViewerObject::setTETextureCore(const U8 te, LLViewerTexture *image)
{
+ if (!image)
+ return 0;
+ LLUUID old_image_id = getTE(te)->getID();
const LLUUID& uuid = image->getID();
S32 retval = 0;
if (uuid != getTE(te)->getID() ||
uuid == LLUUID::null)
{
retval = LLPrimitive::setTETexture(te, uuid);
- mTEImages[te] = image;
+ LLViewerTexture* baked_texture = getBakedTextureForMagicId(uuid);
+ mTEImages[te] = baked_texture ? baked_texture : image;
+ updateAvatarMeshVisibility(uuid,old_image_id);
setChanged(TEXTURE);
if (mDrawable.notNull())
{
diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h
index a7fc3e140..fb4b812c6 100644
--- a/indra/newview/llviewerobject.h
+++ b/indra/newview/llviewerobject.h
@@ -614,6 +614,10 @@ public:
friend class LLViewerObjectList;
friend class LLViewerMediaList;
+public:
+ LLViewerTexture* getBakedTextureForMagicId(const LLUUID& id);
+ void updateAvatarMeshVisibility(const LLUUID& id, const LLUUID& old_id);
+ void refreshBakeTexture();
public:
static void unpackVector3(LLDataPackerBinaryBuffer* dp, LLVector3& value, std::string name);
static void unpackUUID(LLDataPackerBinaryBuffer* dp, LLUUID& value, std::string name);
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 53047ceee..cda753441 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1543,7 +1543,7 @@ bool LLViewerRegion::simulatorFeaturesReceived() const
return mSimulatorFeaturesReceived;
}
-void LLViewerRegion::getSimulatorFeatures(LLSD& sim_features)
+void LLViewerRegion::getSimulatorFeatures(LLSD& sim_features) const
{
sim_features = mSimulatorFeatures;
}
@@ -2367,6 +2367,12 @@ bool LLViewerRegion::meshUploadEnabled() const
}
}
+bool LLViewerRegion::bakesOnMeshEnabled() const
+{
+ return (mSimulatorFeatures.has("BakesOnMeshEnabled") &&
+ mSimulatorFeatures["BakesOnMeshEnabled"].asBoolean());
+}
+
bool LLViewerRegion::meshRezEnabled() const
{
if (!capabilitiesReceived())
diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h
index d02ab5a53..fc23d6cd0 100644
--- a/indra/newview/llviewerregion.h
+++ b/indra/newview/llviewerregion.h
@@ -327,13 +327,15 @@ public:
bool meshRezEnabled() const;
bool meshUploadEnabled() const;
+ bool bakesOnMeshEnabled() const;
+
// has region received its simulator features list? Requires an additional query after caps received.
void requestSimulatorFeatures();
void setSimulatorFeaturesReceived(bool);
bool simulatorFeaturesReceived() const;
boost::signals2::connection setSimulatorFeaturesReceivedCallback(const caps_received_signal_t::slot_type& cb);
- void getSimulatorFeatures(LLSD& info);
+ void getSimulatorFeatures(LLSD& info) const;
void setSimulatorFeatures(const LLSD& info);
@@ -372,7 +374,8 @@ public:
friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion);
/// implements LLCapabilityProvider
- virtual std::string getDescription() const;
+ virtual std::string getDescription() const override;
+
std::string getViewerAssetUrl() const { return mViewerAssetUrl; }
LLSpatialPartition* getSpatialPartition(U32 type);
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 7266df346..de4c6fd2a 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -1301,7 +1301,7 @@ LLPointer LLViewerTextureList::convertToUploadFile(LLPointer S32Megabytes(1500)) ? S32Megabytes(64) : gMinVideoRam ;
}
@@ -1331,15 +1331,15 @@ S32Megabytes LLViewerTextureList::getMaxVideoRamSetting(bool get_recommended, fl
{
if (!get_recommended)
{
- max_texmem = (S32Megabytes)512;
+ max_texmem = S32Megabytes(512);
}
else if (gSavedSettings.getBOOL("NoHardwareProbe")) //did not do hardware detection at startup
{
- max_texmem = (S32Megabytes)512;
+ max_texmem = S32Megabytes(512);
}
else
{
- max_texmem = (S32Megabytes)128;
+ max_texmem = S32Megabytes(128);
}
LL_WARNS() << "VRAM amount not detected, defaulting to " << max_texmem << " MB" << LL_ENDL;
diff --git a/indra/newview/llviewerwearable.cpp b/indra/newview/llviewerwearable.cpp
index 16cff6ba1..1297ca9de 100644
--- a/indra/newview/llviewerwearable.cpp
+++ b/indra/newview/llviewerwearable.cpp
@@ -130,7 +130,7 @@ LLWearable::EImportResult LLViewerWearable::importStream( std::istream& input_st
LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture( textureid );
if(gSavedSettings.getBOOL("DebugAvatarLocalTexLoadedTime"))
{
- image->setLoadedCallback(LLVOAvatarSelf::debugOnTimingLocalTexLoaded,0,TRUE,FALSE, new LLVOAvatarSelf::LLAvatarTexData(textureid, (LLAvatarAppearanceDefines::ETextureIndex)te), NULL);
+ image->setLoadedCallback(LLVOAvatarSelf::debugOnTimingLocalTexLoaded,0,TRUE,FALSE, new LLVOAvatarSelf::LLAvatarTexData(textureid, (LLAvatarAppearanceDefines::ETextureIndex)te), nullptr);
}
}
@@ -235,7 +235,6 @@ BOOL LLViewerWearable::isDirty() const
U8 a = F32_to_U8( saved_weight, param->getMinWeight(), param->getMaxWeight() );
U8 b = F32_to_U8( current_weight, param->getMinWeight(), param->getMaxWeight() );
-
if( a != b )
{
//LL_WARNS() << "param ID " << param->getID() << " was changed." << LL_ENDL;
@@ -317,8 +316,8 @@ void LLViewerWearable::setTexturesToDefaults()
const LLUUID LLViewerWearable::getDefaultTextureImageID(ETextureIndex index) const
{
const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index);
- const std::string &default_image_name = texture_dict->mDefaultImageName;
- if (default_image_name == "")
+ const std::string &default_image_name = texture_dict ? texture_dict->mDefaultImageName : "";
+ if (default_image_name.empty())
{
return IMG_DEFAULT_AVATAR;
}
@@ -336,15 +335,9 @@ void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)
if (!avatarp || !avatarp->isSelf() || !avatarp->isValid()) return;
LLVOAvatarSelf* viewer_avatar = static_cast(avatarp);
-#if 0
- // FIXME DRANO - kludgy way to avoid overwriting avatar state from wearables.
- // Ideally would avoid calling this func in the first place.
- if (viewer_avatar->isUsingServerBakes() &&
- !viewer_avatar->isUsingLocalAppearance())
- {
- return;
- }
-#endif
+ if (!avatarp || !viewer_avatar) return;
+
+ if (!viewer_avatar->isValid()) return;
ESex old_sex = avatarp->getSex();
@@ -456,7 +449,7 @@ void LLViewerWearable::copyDataFrom(const LLViewerWearable* src)
{
te_map_t::const_iterator iter = src->mTEMap.find(te);
LLUUID image_id;
- LLViewerFetchedTexture *image = NULL;
+ LLViewerFetchedTexture *image = nullptr;
if(iter != src->mTEMap.end())
{
image = dynamic_cast (src->getLocalTextureObject(te)->getImage());
@@ -489,13 +482,6 @@ void LLViewerWearable::setItemID(const LLUUID& item_id)
void LLViewerWearable::revertValues()
{
-#if 0
- // DRANO avoid overwrite when not in local appearance
- if (isAgentAvatarValid() && gAgentAvatarp->isUsingServerBakes() && !gAgentAvatarp->isUsingLocalAppearance())
- {
- return;
- }
-#endif
LLWearable::revertValues();
@@ -611,28 +597,29 @@ void LLViewerWearable::saveNewAsset() const
// save it out to database
if( gAssetStorage )
{
- /*
- std::string url = gAgent.getRegion()->getCapability("NewAgentInventory");
+#if 0
+ const std::string url = gAgent.getRegion()->getCapability("NewFileAgentInventory");
if (!url.empty())
{
LL_INFOS() << "Update Agent Inventory via capability" << LL_ENDL;
LLSD body;
- body["folder_id"] = gInventory.findCategoryUUIDForType(LLFolderType::assetToFolderType(getAssetType()));
+ body["folder_id"] = gInventory.findCategoryUUIDForType(LLFolderType::assetTypeToFolderType(getAssetType()));
body["asset_type"] = LLAssetType::lookup(getAssetType());
body["inventory_type"] = LLInventoryType::lookup(LLInventoryType::IT_WEARABLE);
body["name"] = getName();
body["description"] = getDescription();
- LLHTTPClient::post(url, body, new LLNewAgentInventoryResponder(body, filename));
+ LLHTTPClient::post(url, body, new LLNewAgentInventoryResponder(body, filename,
+ getAssetType()));
}
else
+#endif // 0
{
- }
- */
- LLWearableSaveData* data = new LLWearableSaveData;
- data->mType = mType;
- gAssetStorage->storeAssetData(filename, mTransactionID, getAssetType(),
+ LLWearableSaveData* data = new LLWearableSaveData;
+ data->mType = mType;
+ gAssetStorage->storeAssetData(filename, mTransactionID, getAssetType(),
&LLViewerWearable::onSaveNewAssetComplete,
(void*)data);
+ }
}
}
@@ -673,21 +660,19 @@ std::ostream& operator<<(std::ostream &s, const LLViewerWearable &w)
//w.mSaleInfo
s << " Params:" << "\n";
- for (LLViewerWearable::visual_param_index_map_t::const_iterator iter = w.mVisualParamIndexMap.begin();
- iter != w.mVisualParamIndexMap.end(); ++iter)
+ for (const auto& iter : w.mVisualParamIndexMap)
{
- S32 param_id = iter->first;
- LLVisualParam *wearable_param = iter->second;
+ S32 param_id = iter.first;
+ LLVisualParam *wearable_param = iter.second;
F32 param_weight = wearable_param->getWeight();
s << " " << param_id << " " << param_weight << "\n";
}
s << " Textures:" << "\n";
- for (LLViewerWearable::te_map_t::const_iterator iter = w.mTEMap.begin();
- iter != w.mTEMap.end(); ++iter)
+ for (const auto& iter : w.mTEMap)
{
- S32 te = iter->first;
- const LLUUID& image_id = iter->second->getID();
+ S32 te = iter.first;
+ const LLUUID& image_id = iter.second->getID();
s << " " << te << " " << image_id << "\n";
}
return s;
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 5854038ab..608a4529a 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -385,7 +385,7 @@ public:
static const LLCachedControl debug_show_memory("DebugShowMemory");
if (debug_show_memory)
{
- addText(xpos, ypos, llformat("Memory: %d (KB)", LLMemory::getWorkingSetSize() / 1024));
+ addText(xpos, ypos, llformat("Memory: %d (KB)", LLMemory::getCurrentRSS() / 1024));
ypos += y_inc;
}
#endif
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index d42592976..5356a3338 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -1298,7 +1298,8 @@ BOOL LLVOAvatar::isFullyBaked()
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
if (!isTextureDefined(mBakedTextureDatas[i].mTextureIndex)
- && ( (i != BAKED_SKIRT) || isWearingWearableType(LLWearableType::WT_SKIRT) ) )
+ && ( (i != BAKED_SKIRT) || isWearingWearableType(LLWearableType::WT_SKIRT) )
+ && (i != BAKED_LEFT_ARM) && (i != BAKED_LEFT_LEG) && (i != BAKED_AUX1) && (i != BAKED_AUX2) && (i != BAKED_AUX3) )
{
return FALSE;
}
@@ -1808,11 +1809,11 @@ void LLVOAvatar::calculateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax)
for (polymesh_map_t::iterator i = mPolyMeshes.begin(); i != mPolyMeshes.end(); ++i)
{
LLPolyMesh* mesh = i->second;
- for (S32 joint_num = 0; joint_num < mesh->mJointRenderData.size(); joint_num++)
+ for (const auto& joint : mesh->mJointRenderData)
{
static const LLVector4Logical mask = _mm_load_ps((F32*)&S_V4LOGICAL_MASK_TABLE[3 * 4]);
LLVector4a trans;
- trans.setSelectWithMask(mask, _mm_setzero_ps(), mesh->mJointRenderData[joint_num]->mWorldMatrix->getRow<3>());
+ trans.setSelectWithMask(mask, _mm_setzero_ps(), joint->mWorldMatrix->getRow<3>());
update_min_max(newMin, newMax, trans);
}
}
@@ -7772,6 +7773,21 @@ const LLViewerJointAttachment *LLVOAvatar::attachObject(LLViewerObject *viewer_o
LLSelectMgr::getInstance()->updatePointAt();
}
+ viewer_object->refreshBakeTexture();
+
+
+ LLViewerObject::const_child_list_t& child_list = viewer_object->getChildren();
+ for (const auto& iter : child_list)
+ {
+ LLViewerObject* objectp = iter;
+ if (objectp)
+ {
+ objectp->refreshBakeTexture();
+ }
+ }
+
+ updateMeshVisibility();
+
return attachment;
}
@@ -7988,6 +8004,20 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object)
{
updateAttachmentOverrides();
}
+ viewer_object->refreshBakeTexture();
+
+ LLViewerObject::const_child_list_t& child_list = viewer_object->getChildren();
+ for (const auto& iter1 : child_list)
+ {
+ LLViewerObject* objectp = iter1;
+ if (objectp)
+ {
+ objectp->refreshBakeTexture();
+ }
+ }
+
+ updateMeshVisibility();
+
LL_DEBUGS() << "Detaching object " << viewer_object->mID << " from " << attachment->getName() << LL_ENDL;
return TRUE;
}
@@ -8630,11 +8660,11 @@ bool LLVOAvatar::isTooComplex() const
{
static const LLCachedControl always_render_friends("AlwaysRenderFriends", 0);
bool too_complex;
- if (isSelf() || (always_render_friends && LLAvatarTracker::instance().isBuddy(getID())))
+ if (isSelf() || (always_render_friends && always_render_friends != 3 && LLAvatarTracker::instance().isBuddy(getID())))
{
too_complex = false;
}
- else if (always_render_friends == 2)
+ else if (always_render_friends >= 2)
{
too_complex = true;
}
@@ -8684,6 +8714,109 @@ void LLVOAvatar::debugColorizeSubMeshes(U32 i, const LLColor4& color)
}
}
+
+//-----------------------------------------------------------------------------
+// updateMeshVisibility()
+// Hide the mesh joints if attachments are using baked textures
+//-----------------------------------------------------------------------------
+void LLVOAvatar::updateMeshVisibility()
+{
+ bool bake_flag[BAKED_NUM_INDICES];
+ memset(bake_flag, 0, BAKED_NUM_INDICES*sizeof(bool));
+
+ for (auto& attachment_point : mAttachmentPoints)
+ {
+ LLViewerJointAttachment* attachment = attachment_point.second;
+ if (attachment)
+ {
+ for (auto objectp : attachment->mAttachedObjects)
+ {
+ if (objectp)
+ {
+ for (int face_index = 0; face_index < objectp->getNumTEs(); face_index++)
+ {
+ LLTextureEntry* tex_entry = objectp->getTE(face_index);
+ bake_flag[BAKED_HEAD] |= (tex_entry->getID() == IMG_USE_BAKED_HEAD);
+ bake_flag[BAKED_EYES] |= (tex_entry->getID() == IMG_USE_BAKED_EYES);
+ bake_flag[BAKED_HAIR] |= (tex_entry->getID() == IMG_USE_BAKED_HAIR);
+ bake_flag[BAKED_LOWER] |= (tex_entry->getID() == IMG_USE_BAKED_LOWER);
+ bake_flag[BAKED_UPPER] |= (tex_entry->getID() == IMG_USE_BAKED_UPPER);
+ bake_flag[BAKED_SKIRT] |= (tex_entry->getID() == IMG_USE_BAKED_SKIRT);
+ bake_flag[BAKED_LEFT_ARM] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTARM);
+ bake_flag[BAKED_LEFT_LEG] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTLEG);
+ bake_flag[BAKED_AUX1] |= (tex_entry->getID() == IMG_USE_BAKED_AUX1);
+ bake_flag[BAKED_AUX2] |= (tex_entry->getID() == IMG_USE_BAKED_AUX2);
+ bake_flag[BAKED_AUX3] |= (tex_entry->getID() == IMG_USE_BAKED_AUX3);
+ }
+ }
+
+ LLViewerObject::const_child_list_t& child_list = objectp->getChildren();
+ for (const auto& iter1 : child_list)
+ {
+ LLViewerObject* objectchild = iter1;
+ if (objectchild)
+ {
+ for (int face_index = 0; face_index < objectchild->getNumTEs(); face_index++)
+ {
+ LLTextureEntry* tex_entry = objectchild->getTE(face_index);
+ bake_flag[BAKED_HEAD] |= (tex_entry->getID() == IMG_USE_BAKED_HEAD);
+ bake_flag[BAKED_EYES] |= (tex_entry->getID() == IMG_USE_BAKED_EYES);
+ bake_flag[BAKED_HAIR] |= (tex_entry->getID() == IMG_USE_BAKED_HAIR);
+ bake_flag[BAKED_LOWER] |= (tex_entry->getID() == IMG_USE_BAKED_LOWER);
+ bake_flag[BAKED_UPPER] |= (tex_entry->getID() == IMG_USE_BAKED_UPPER);
+ bake_flag[BAKED_SKIRT] |= (tex_entry->getID() == IMG_USE_BAKED_SKIRT);
+ bake_flag[BAKED_LEFT_ARM] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTARM);
+ bake_flag[BAKED_LEFT_LEG] |= (tex_entry->getID() == IMG_USE_BAKED_LEFTLEG);
+ bake_flag[BAKED_AUX1] |= (tex_entry->getID() == IMG_USE_BAKED_AUX1);
+ bake_flag[BAKED_AUX2] |= (tex_entry->getID() == IMG_USE_BAKED_AUX2);
+ bake_flag[BAKED_AUX3] |= (tex_entry->getID() == IMG_USE_BAKED_AUX3);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ //LL_INFOS() << "head " << bake_flag[BAKED_HEAD] << "eyes " << bake_flag[BAKED_EYES] << "hair " << bake_flag[BAKED_HAIR] << "lower " << bake_flag[BAKED_LOWER] << "upper " << bake_flag[BAKED_UPPER] << "skirt " << bake_flag[BAKED_SKIRT] << LL_ENDL;
+
+ for (size_t i = 0; i < mMeshLOD.size(); i++)
+ {
+ LLAvatarJoint* joint = mMeshLOD[i];
+ if (i == MESH_ID_HAIR)
+ {
+ joint->setVisible(!bake_flag[BAKED_HAIR], TRUE);
+ }
+ else if (i == MESH_ID_HEAD)
+ {
+ joint->setVisible(!bake_flag[BAKED_HEAD], TRUE);
+ }
+ else if (i == MESH_ID_SKIRT)
+ {
+ joint->setVisible(!bake_flag[BAKED_SKIRT], TRUE);
+ }
+ else if (i == MESH_ID_UPPER_BODY)
+ {
+ joint->setVisible(!bake_flag[BAKED_UPPER], TRUE);
+ }
+ else if (i == MESH_ID_LOWER_BODY)
+ {
+ joint->setVisible(!bake_flag[BAKED_LOWER], TRUE);
+ }
+ else if (i == MESH_ID_EYEBALL_LEFT)
+ {
+ joint->setVisible(!bake_flag[BAKED_EYES], TRUE);
+ }
+ else if (i == MESH_ID_EYEBALL_RIGHT)
+ {
+ joint->setVisible(!bake_flag[BAKED_EYES], TRUE);
+ }
+ else if (i == MESH_ID_EYELASH)
+ {
+ joint->setVisible(!bake_flag[BAKED_HEAD], TRUE);
+ }
+ }
+}
+
//-----------------------------------------------------------------------------
// updateMeshTextures()
// Uses the current TE values to set the meshes' and layersets' textures.
@@ -8925,6 +9058,30 @@ void LLVOAvatar::updateMeshTextures()
removeMissingBakedTextures(); // May call back into this function if anything is removed
call_remove_missing = true;
}
+
+ //refresh bakes on any attached objects
+ for (auto& attachment_point : mAttachmentPoints)
+ {
+ LLViewerJointAttachment* attachment = attachment_point.second;
+
+ for (auto attached_object : attachment->mAttachedObjects)
+ {
+ if (attached_object && !attached_object->isDead())
+ {
+ attached_object->refreshBakeTexture();
+
+ LLViewerObject::const_child_list_t& child_list = attached_object->getChildren();
+ for (const auto& iter : child_list)
+ {
+ LLViewerObject* objectp = iter;
+ if (objectp && !objectp->isDead())
+ {
+ objectp->refreshBakeTexture();
+ }
+ }
+ }
+ }
+ }
}
// virtual
@@ -9315,7 +9472,7 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
apr_file_printf(file, "\n\n");
LLVisualParam* param = getFirstVisualParam();
- for (S32 i = 0; i < params_for_dump.size(); i++)
+ for (const auto& param_for_dump : params_for_dump)
{
while( param && ((param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) &&
(param->getGroup() != VISUAL_PARAM_GROUP_TRANSMIT_NOT_TWEAKABLE)) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
@@ -9323,7 +9480,7 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
param = getNextVisualParam();
}
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
- F32 value = params_for_dump[i];
+ F32 value = param_for_dump;
dump_visual_param(file, viewer_param, value);
param = getNextVisualParam();
}
@@ -9588,7 +9745,7 @@ void LLVOAvatar::applyParsedAppearanceMessage(LLAppearanceMessageContents& conte
{
if (!isTextureDefined(mBakedTextureDatas[baked_index].mTextureIndex)
&& mBakedTextureDatas[baked_index].mLastTextureID != IMG_DEFAULT
- && baked_index != BAKED_SKIRT)
+ && baked_index != BAKED_SKIRT && baked_index != BAKED_LEFT_ARM && baked_index != BAKED_LEFT_LEG && baked_index != BAKED_AUX1 && baked_index != BAKED_AUX2 && baked_index != BAKED_AUX3)
{
LL_DEBUGS("Avatar") << avString() << " baked_index " << (S32) baked_index << " using mLastTextureID " << mBakedTextureDatas[baked_index].mLastTextureID << LL_ENDL;
setTEImage(mBakedTextureDatas[baked_index].mTextureIndex,
@@ -9727,6 +9884,36 @@ void LLVOAvatar::applyParsedAppearanceMessage(LLAppearanceMessageContents& conte
updateMeshTextures();
//if (enable_verbose_dumps) dumpArchetypeXML(dump_prefix + "process_end");
+ updateMeshVisibility();
+}
+
+LLViewerTexture* LLVOAvatar::getBakedTexture(const U8 te)
+{
+ if (te < 0 || te >= BAKED_NUM_INDICES)
+ {
+ return NULL;
+ }
+
+ BOOL is_layer_baked = isTextureDefined(mBakedTextureDatas[te].mTextureIndex);
+
+ LLViewerTexLayerSet* layerset = NULL;
+ layerset = getTexLayerSet(te);
+
+
+ if (!isEditingAppearance() && is_layer_baked)
+ {
+ LLViewerFetchedTexture* baked_img = LLViewerTextureManager::staticCastToFetchedTexture(getImage(mBakedTextureDatas[te].mTextureIndex, 0), TRUE);
+ return baked_img;
+ }
+ else if (layerset && isEditingAppearance())
+ {
+ layerset->createComposite();
+ layerset->setUpdatesEnabled(TRUE);
+
+ return layerset->getViewerComposite();
+ }
+
+ return NULL;
}
// static
@@ -10001,9 +10188,8 @@ void LLVOAvatar::getSortedJointNames(S32 joint_type, std::vector& r
}
else if (joint_type==1)
{
- for (S32 i = 0; i < mCollisionVolumes.size(); i++)
+ for (const auto& pJoint : mCollisionVolumes)
{
- LLAvatarJointCollisionVolume* pJoint = mCollisionVolumes[i];
result.push_back(pJoint->getName());
}
}
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 928292791..2a847c4a5 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -733,6 +733,9 @@ public:
void updateSexDependentLayerSets(bool upload_bake = false);
virtual void dirtyMesh(); // Dirty the avatar mesh
void updateMeshData();
+ void updateMeshVisibility();
+ LLViewerTexture* getBakedTexture(const U8 te);
+
protected:
void releaseMeshData();
virtual void restoreMeshData();
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index dc8826349..7d9dcdb20 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -1066,34 +1066,6 @@ BOOL LLVOAvatarSelf::isWearingAttachment(const LLUUID& inv_item_id) const
return FALSE;
}
-//-----------------------------------------------------------------------------
-BOOL LLVOAvatarSelf::attachmentWasRequested(const LLUUID& inv_item_id) const
-{
- constexpr F32 REQUEST_EXPIRATION_SECONDS = 5.0; // any request older than this is ignored/removed.
- auto it = mAttachmentRequests.find(inv_item_id);
- if (it != mAttachmentRequests.end())
- {
- if (it->second.getElapsedTimeF32() > REQUEST_EXPIRATION_SECONDS)
- mAttachmentRequests.erase(it);
- else
- return TRUE;
- }
- return FALSE;
-}
-
-//-----------------------------------------------------------------------------
-void LLVOAvatarSelf::addAttachmentRequest(const LLUUID& inv_item_id)
-{
- LLTimer current_time;
- mAttachmentRequests[inv_item_id] = current_time;
-}
-
-//-----------------------------------------------------------------------------
-void LLVOAvatarSelf::removeAttachmentRequest(const LLUUID& inv_item_id)
-{
- mAttachmentRequests.erase(inv_item_id);
-}
-
//-----------------------------------------------------------------------------
// getWornAttachment()
//-----------------------------------------------------------------------------
@@ -1182,8 +1154,6 @@ const LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *view
{
const LLUUID& attachment_id = viewer_object->getAttachmentItemID();
LLAppearanceMgr::instance().registerAttachment(attachment_id);
- // Clear any pending requests once the attachment arrives.
- removeAttachmentRequest(attachment_id);
updateLODRiggedAttachments();
// [RLVa:KB] - Checked: 2010-08-22 (RLVa-1.2.1a) | Modified: RLVa-1.2.1a
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
index 98e3a2802..7d9f9d12a 100644
--- a/indra/newview/llvoavatarself.h
+++ b/indra/newview/llvoavatarself.h
@@ -28,6 +28,7 @@
#ifndef LL_LLVOAVATARSELF_H
#define LL_LLVOAVATARSELF_H
+#include "llavatarappearancedefines.h"
#include "llviewertexture.h"
#include "llvoavatar.h"
#include
@@ -119,7 +120,7 @@ private:
*******************************************************************************/
private:
- LLUUID mInitialBakeIDs[6];
+ LLUUID mInitialBakeIDs[LLAvatarAppearanceDefines::BAKED_NUM_INDICES];
//bool mInitialBakesLoaded;
@@ -298,9 +299,6 @@ protected:
public:
void updateAttachmentVisibility(U32 camera_mode);
BOOL isWearingAttachment(const LLUUID& inv_item_id) const;
- BOOL attachmentWasRequested(const LLUUID& inv_item_id) const;
- void addAttachmentRequest(const LLUUID& inv_item_id);
- void removeAttachmentRequest(const LLUUID& inv_item_id);
LLViewerObject* getWornAttachment(const LLUUID& inv_item_id);
bool getAttachedPointName(const LLUUID& inv_item_id, std::string& name) const;
// [RLVa:KB] - Checked: 2009-12-18 (RLVa-1.1.0i) | Added: RLVa-1.1.0i
@@ -316,8 +314,6 @@ public:
boost::signals2::connection setAttachmentCallback(const attachment_signal_t::slot_type& cb);
// [/RLVa:KB]
private:
- // Track attachments that have been requested but have not arrived yet.
- mutable std::map mAttachmentRequests;
// [RLVa:KB] - Checked: 2012-07-28 (RLVa-1.4.7)
attachment_signal_t* mAttachmentSignal;
// [/RLVa:KB]
diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp
index c3dc38ebe..7410c5897 100644
--- a/indra/newview/rlvcommon.cpp
+++ b/indra/newview/rlvcommon.cpp
@@ -462,8 +462,8 @@ bool RlvUtil::isNearbyAgent(const LLUUID& idAgent)
uuid_vec_t idAgents;
LLWorld::getInstance()->getAvatars(&idAgents, NULL);
- for (int idxAgent = 0, cntAgent = idAgents.size(); idxAgent < cntAgent; idxAgent++)
- if (idAgents[idxAgent] == idAgent)
+ for (const auto& id : idAgents)
+ if (id == idAgent)
return true;
}
return false;
diff --git a/indra/newview/skins/default/textures/Inv_Universal.png b/indra/newview/skins/default/textures/Inv_Universal.png
new file mode 100644
index 000000000..470febb9b
Binary files /dev/null and b/indra/newview/skins/default/textures/Inv_Universal.png differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index f224a0d1f..6e7f64881 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -355,6 +355,7 @@ with the same filename but different name
+
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index b3ffed9f9..412f26181 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -11,12 +11,9 @@
Einstuf.:
Adult
Eigentümer:
- Leyla Linden
-
Gruppe:
-
@@ -49,8 +46,6 @@
Auktions-ID: [ID]
Bestätigen Sie den Kauf, um dieses Land zu bearbeiten.
(In Gruppenbesitz)
- Profil...
- Info...
(öffentlich)
(keiner)
(Wird verkauft)
@@ -62,7 +57,7 @@
Name:
Mainland
Eigentümer:
- (keiner)
+ (keiner)
Für diesen Grundbesitz fehlt der Vertrag.
Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00
Region:
diff --git a/indra/newview/skins/default/xui/de/floater_buy_land.xml b/indra/newview/skins/default/xui/de/floater_buy_land.xml
index e763d2153..d5a39c138 100644
--- a/indra/newview/skins/default/xui/de/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_land.xml
@@ -7,7 +7,7 @@
Grundbesitz:
(unbekannt)
Grundbesitzer:
- (unbekannt)
+ (unbekannt)
Gekauftes Land in dieser Region:
Wiederverkauf möglich oder nicht möglich.
Darft oder darf nicht zusammengelegt/unterteilt werden.
diff --git a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
index 9f5ad9021..381505db0 100644
--- a/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/de/floater_inventory_item_properties.xml
@@ -6,14 +6,8 @@
Beschreibung:
Ersteller:
- Nicole Linden
-
Eigentümer:
- Thrax Linden
-
Letzter Besitzer:
- OnceUponA Linden
-
Erworben:
Mittwoch, 24. Mai 2006, 12:50:46
Sie können:
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 34f926cfe..92a781264 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -108,18 +108,11 @@
Beschreibung:
Ersteller:
- Thrax Linden
-
Eigentümer:
- Thrax Linden
-
Letzter Besitzer:
- Thrax Linden
-
Gruppe:
-
Berechtigungen:
Sie können dieses Objekt ändern.
diff --git a/indra/newview/skins/default/xui/de/panel_avatar.xml b/indra/newview/skins/default/xui/de/panel_avatar.xml
index 1b5ba8c43..dfc301f4f 100644
--- a/indra/newview/skins/default/xui/de/panel_avatar.xml
+++ b/indra/newview/skins/default/xui/de/panel_avatar.xml
@@ -17,9 +17,7 @@
Partner:
-
- [NAME]
Foto:
diff --git a/indra/newview/skins/default/xui/de/panel_event.xml b/indra/newview/skins/default/xui/de/panel_event.xml
index 37ad9f961..4ecf62b5b 100644
--- a/indra/newview/skins/default/xui/de/panel_event.xml
+++ b/indra/newview/skins/default/xui/de/panel_event.xml
@@ -12,7 +12,7 @@
Event-Dauer:
(keiner)
Ausgeführt von:
- (keiner)
+ (keiner)
Standort:
(keiner)
Gebühr:
diff --git a/indra/newview/skins/default/xui/de/panel_group_general.xml b/indra/newview/skins/default/xui/de/panel_group_general.xml
index 3dc3c1cf9..b37a498f7 100644
--- a/indra/newview/skins/default/xui/de/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_general.xml
@@ -8,7 +8,7 @@ Bewegen Sie die Maus über die Optionen, um weitere Informationen anzuzeigen.Die allgemeine Gruppeninfo wurde geändert.
- Neuen Gruppennamen hier eingeben
+ Neuen Gruppennamen hier eingeben
Gegründet von
Gruppen-UUID:
diff --git a/indra/newview/skins/default/xui/de/panel_region_covenant.xml b/indra/newview/skins/default/xui/de/panel_region_covenant.xml
index ea7946e0a..a2cc5abbf 100644
--- a/indra/newview/skins/default/xui/de/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_covenant.xml
@@ -4,7 +4,7 @@
Name:
Mainland
Eigentümer:
- (keiner)
+ (keiner)
Vertrag:
Letzte Änderung am Mittwoch, den 31. Dez. 1969, 16:00:00
diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml
index d8a193a3e..45cea5e56 100644
--- a/indra/newview/skins/default/xui/de/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml
@@ -4,7 +4,7 @@
Grundbesitz:
(unbekannt)
Estate owner:
- (unbekannt)
+ (unbekannt)
diff --git a/indra/newview/skins/default/xui/en-us/floater_about_land.xml b/indra/newview/skins/default/xui/en-us/floater_about_land.xml
index 79fdb8851..92c563028 100644
--- a/indra/newview/skins/default/xui/en-us/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en-us/floater_about_land.xml
@@ -63,32 +63,25 @@
mouse_opaque="true" name="Owner:" v_pad="0" width="92">
Owner:
-
Leyla Linden
-
-
+
Group:
-
+ mouse_opaque="true" name="GroupText" v_pad="0" is_group="true"/>
-
+ left="350" mouse_opaque="true" name="Set..." scale_image="true" width="90" />
(Group Owned)
-
- Profile...
-
-
- Info...
-
(public)
@@ -287,12 +274,12 @@ Go to World menu > About Land or select another parcel to show its details.
mouse_opaque="false" name="estate_owner_lbl" v_pad="0" width="100">
Owner:
-
(none)
-
+
+ multi_select="true" name="speakers_list" search_column="1" sort_column="2" name_column_index="1" menu_num="0">
diff --git a/indra/newview/skins/default/xui/en-us/floater_buy_land.xml b/indra/newview/skins/default/xui/en-us/floater_buy_land.xml
index b5a538e5e..6adb43cd5 100644
--- a/indra/newview/skins/default/xui/en-us/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/en-us/floater_buy_land.xml
@@ -37,11 +37,11 @@
width="100" word_wrap="true">
Estate Owner:
-
(unknown)
-
+
diff --git a/indra/newview/skins/default/xui/en-us/floater_customize.xml b/indra/newview/skins/default/xui/en-us/floater_customize.xml
index 76961e8f8..00b666ff2 100644
--- a/indra/newview/skins/default/xui/en-us/floater_customize.xml
+++ b/indra/newview/skins/default/xui/en-us/floater_customize.xml
@@ -89,8 +89,8 @@
font="SansSerifSmall" h_pad="0" halign="center" height="28" left="102"
mouse_opaque="true" name="not worn instructions" v_pad="0" width="284">
Put on a new shape by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+to your avatar. Alternately, you can create a
+new one from scratch and wear it.
-
@@ -187,8 +186,8 @@ scratch and wear it.
font="SansSerifSmall" h_pad="0" halign="center" height="28" left="102"
mouse_opaque="true" name="not worn instructions" v_pad="0" width="284">
Put on a new skin by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+to your avatar. Alternately, you can create a
+new one from scratch and wear it.
-
@@ -282,8 +280,8 @@ scratch and wear it.
font="SansSerifSmall" h_pad="0" halign="left" height="28" left="102"
mouse_opaque="true" name="not worn instructions" v_pad="0" width="284">
Put on a new hair by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+to your avatar. Alternately, you can create a
+new one from scratch and wear it.
-
@@ -388,7 +385,6 @@ scratch and wear it.
-
-Put on a new shirt by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on a new shirt by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
-Put on new pants by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on new pants by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
-Put on new shoes by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on new shoes by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
-Put on new socks by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on new socks by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
-Put on a new jacket by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on a new jacket by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
-Put on new gloves by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on new gloves by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
Put on a new undershirt by dragging one from your
-inventory to your avatar. Alternately, you create a new
-one from scratch and wear it.
+inventory to your avatar. Alternately, you can create a
+new one from scratch and wear it.
Put on new underpants by dragging one from your
-inventory to your avatar. Alternately, you create a new
-one from scratch and wear it.
+inventory to your avatar. Alternately, you can create a
+new one from scratch and wear it.
-Put on a new skirt by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on a new skirt by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
-Put on a new tattoo by dragging one from your inventory
-to your avatar. Alternately, you create a new one from
-scratch and wear it.
+Put on a new tattoo by dragging one from your
+inventory to your avatar. Alternately, you can create
+a new one from scratch and wear it.
Put on a new alpha mask by dragging one from your
-inventory to your avatar. Alternately, you create a new
-one from scratch and wear it.
+inventory to your avatar. Alternately, you can create a
+new one from scratch and wear it.
+
+
+
+
+ [DESC]
+
+
+ [DESC]: cannot modify
+
+
+ [DESC]: loading...
+
+
+ [DESC]: not worn
+
+
+ Located in [PATH]
+
+
+
+Put on a new universal by dragging one from your
+inventory to your avatar. Alternately, you can create a
+new one from scratch and wear it.
+
+
+ You do not have permission to modify this wearable.
+
+
+ Universal:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-Put on a new physics wearable by dragging one from your
-inventory to your avatar. Alternately, you create a new
-one from scratch and wear it.
+Put on a new physics wearable by dragging one
+from your inventory to your avatar. Alternately, you
+can create a new one from scratch and wear it.
Avatar Height:
diff --git a/indra/newview/skins/default/xui/en-us/floater_inventory.xml b/indra/newview/skins/default/xui/en-us/floater_inventory.xml
index 0f2e3ce12..948950f78 100644
--- a/indra/newview/skins/default/xui/en-us/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/en-us/floater_inventory.xml
@@ -171,6 +171,9 @@
mouse_opaque="true" name="New Alpha" width="125">
+
+
+
diff --git a/indra/newview/skins/default/xui/en-us/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/en-us/floater_inventory_item_properties.xml
index 53ffa4342..646c46ea6 100644
--- a/indra/newview/skins/default/xui/en-us/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/en-us/floater_inventory_item_properties.xml
@@ -31,45 +31,36 @@
mouse_opaque="true" name="LabelCreatorTitle" v_pad="0" width="78">
Creator:
-
+ mouse_opaque="true" name="LabelCreatorName" v_pad="0" rlv_sensitive="true">
Nicole Linden
-
-
+
Owner:
-
+ mouse_opaque="true" name="LabelOwnerName" v_pad="0" rlv_sensitive="true">
Thrax Linden
-
-
+
Last Owner:
-
+ mouse_opaque="true" name="LabelLastOwnerName" v_pad="0" rlv_sensitive="true">
OnceUponA Linden
-
-
+
-
-
-
-
-
-
-
+
+
+
-
+
Pick:
-
+
-
-
+ name="inventory search editor" width="288"/>
+
-
+
Select texture on your computer to preview inworld
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/en-us/floater_tools.xml b/indra/newview/skins/default/xui/en-us/floater_tools.xml
index 8af6defa7..3a5ec5855 100644
--- a/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -450,48 +450,36 @@
mouse_opaque="true" name="Creator:" v_pad="0" width="78">
Creator:
-
+ mouse_opaque="true" name="Creator Name" v_pad="0" rlv_sensitive="true">
Thrax Linden
-
-
+
Owner:
-
+ mouse_opaque="true" name="Owner Name" v_pad="0" rlv_sensitive="true">
Thrax Linden
-
-
+
Last Owner:
-
+ mouse_opaque="true" name="Last Owner Name" v_pad="0" rlv_sensitive="true">
Thrax Linden
-
-
+
+ width="142" is_group="true"/>
-
+
+
+
diff --git a/indra/newview/skins/default/xui/en-us/menu_nameeditor_avatar.xml b/indra/newview/skins/default/xui/en-us/menu_nameeditor_avatar.xml
new file mode 100644
index 000000000..7f7f6995a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en-us/menu_nameeditor_avatar.xml
@@ -0,0 +1,3 @@
+
diff --git a/indra/newview/skins/default/xui/en-us/menu_texteditor.xml b/indra/newview/skins/default/xui/en-us/menu_texteditor.xml
index 425eef2d4..8292d8d91 100644
--- a/indra/newview/skins/default/xui/en-us/menu_texteditor.xml
+++ b/indra/newview/skins/default/xui/en-us/menu_texteditor.xml
@@ -1,21 +1,26 @@
-
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
+
-
+
diff --git a/indra/newview/skins/default/xui/en-us/panel_avatar.xml b/indra/newview/skins/default/xui/en-us/panel_avatar.xml
index f85b49b3f..48ca5fa16 100644
--- a/indra/newview/skins/default/xui/en-us/panel_avatar.xml
+++ b/indra/newview/skins/default/xui/en-us/panel_avatar.xml
@@ -12,7 +12,7 @@
-
Name:
-
+ width="181" click_for_profile="false"/>
-
-
- [NAME]
-
+ font="SansSerifSmall" height="16" left_delta="-119"
+ max_length="1024" mouse_opaque="true" name="partner_edit"
+ width="137"/>
Run By:
-
(none)
-
+
Location:
diff --git a/indra/newview/skins/default/xui/en-us/panel_group_general.xml b/indra/newview/skins/default/xui/en-us/panel_group_general.xml
index 6a1509cf1..8de00474c 100644
--- a/indra/newview/skins/default/xui/en-us/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/en-us/panel_group_general.xml
@@ -19,24 +19,24 @@ Hover your mouse over the options for more help.
h_pad="0" halign="left" height="16" label="Type your new group name here"
left="7" max_length="35" mouse_opaque="true" name="group_name_editor"
prevalidate="ascii" v_pad="0" width="300" spell_check="true" />
-
+ mouse_opaque="true" name="group_name" v_pad="0" is_group="true">
Type your new group name here
-
+
Founded by
Group Key:
-
Owner:
-
(none)
-
+
Estate owner:
-
+ use_ellipses="true">
(unknown)
-
+
-
+
diff --git a/indra/newview/skins/default/xui/en-us/strings.xml b/indra/newview/skins/default/xui/en-us/strings.xml
index e615eb1ae..19985e967 100644
--- a/indra/newview/skins/default/xui/en-us/strings.xml
+++ b/indra/newview/skins/default/xui/en-us/strings.xml
@@ -38,8 +38,12 @@ Make sure you entered the correct Login URI. An example of a Login URI is: \"htt
Detecting hardware...
Loading [APP_NAME]...
- Clearing cache...
- Initializing Texture Cache...
+ Nuking cache...
+ Fluffing texture cache...
+ Reticulating pixel dump...
+ Preheating texture baker...
+ Booping snoot, texturally...
+ Waking lumbering giant...
Initializing VFS...
Graphics Initialization Failed. Please Update Your Graphics Driver!
@@ -3259,61 +3263,6 @@ Where tag = tag string to match. Removes bot's matching the tag.
Not Busy
Busy
-
- Shape
- Skin
- Hair
- Eyes
- Shirt
- Pants
- Shoes
- Socks
- Jacket
- Gloves
- Undershirt
- Underpants
- Skirt
- Alpha
- Tattoo
- Physics
- invalid
- none
- Unknown
-
-
- Shirt not worn
- Pants not worn
- Shoes not worn
- Socks not worn
- Jacket not worn
- Gloves not worn
- Undershirt not worn
- Underpants not worn
- Skirt not worn
- Alpha not worn
- Tattoo not worn
- Physics not worn
- invalid
-
-
- Create new shape
- Create new skin
- Create new hair
- Create new eyes
- Create new shirt
- Create new pants
- Create new shoes
- Create new socks
- Create new jacket
- Create new gloves
- Create new undershirt
- Create new underpants
- Create new skirt
- Create new alpha
- Create new tattoo
- Create new physics
- invalid
-
New [WEARABLE_ITEM]
@@ -3333,9 +3282,10 @@ Where tag = tag string to match. Removes bot's matching the tag.
Skirt
Alpha
Tattoo
+ Universal
Physics
invalid
- unknown
+ Unknown
none
@@ -3350,6 +3300,7 @@ Where tag = tag string to match. Removes bot's matching the tag.
Skirt not worn
Alpha not worn
Tattoo not worn
+ Universal not worn
Physics not worn
invalid
@@ -3369,6 +3320,7 @@ Where tag = tag string to match. Removes bot's matching the tag.
Create new skirt
Create new alpha
Create new tattoo
+ Create new universal
Create new physics
invalid
@@ -4693,6 +4645,7 @@ Abuse Report
New Skirt
New Alpha
New Tattoo
+ New Universal
New Physics
Invalid Wearable
New Gesture
diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml
index 6e4752066..44d97ae82 100644
--- a/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_about_land.xml
@@ -25,16 +25,10 @@
Propietario:
-
- Leyla Linden
-
-
Grupo:
-
-
@@ -105,12 +99,6 @@
(Propiedad del Grupo)
-
- Perfil...
-
-
- Información...
-
(público)
@@ -139,9 +127,9 @@ Ve al Menú Mundo > Acerca del terreno o selecciona otra parcela para ver sus
Propietario:
-
+
(ninguno)
-
+
No se ha aportado un contrato para este estado.
diff --git a/indra/newview/skins/default/xui/es/floater_buy_land.xml b/indra/newview/skins/default/xui/es/floater_buy_land.xml
index efef9ab18..c481b5feb 100644
--- a/indra/newview/skins/default/xui/es/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_buy_land.xml
@@ -21,9 +21,9 @@
Propietario del Estado:
-
+
(desconocido)
-
+
El Terreno comprado en esta región:
diff --git a/indra/newview/skins/default/xui/es/floater_customize.xml b/indra/newview/skins/default/xui/es/floater_customize.xml
index 174d0e581..462aaa6bc 100644
--- a/indra/newview/skins/default/xui/es/floater_customize.xml
+++ b/indra/newview/skins/default/xui/es/floater_customize.xml
@@ -626,6 +626,56 @@ una nueva y vistiéndotela.
+
+
+ [DESC]
+
+
+ [DESC]: no modificable
+
+
+ [DESC]: cargando...
+
+
+ [DESC]: no llevas
+
+
+ Situado en [PATH]
+
+
+
+ Ponte una nueva Capa Universal arrastrándola desde tu
+inventario hasta tu avatar. O comienza de cero creando
+una nueva y vistiéndotela.
+
+
+ No tienes permiso para modificar este item.
+
+
+ Universal:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/es/floater_inventory.xml b/indra/newview/skins/default/xui/es/floater_inventory.xml
index fc6edf9e3..f6cc35497 100644
--- a/indra/newview/skins/default/xui/es/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/es/floater_inventory.xml
@@ -123,6 +123,7 @@
+
diff --git a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
index 0a5c33934..723c13579 100644
--- a/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/es/floater_inventory_item_properties.xml
@@ -12,24 +12,12 @@
Creador:
-
- Nicole Linden
-
-
Propietario:
-
- Thrax Linden
-
-
Últ. Propiet.:
-
- Eraseunavezun Linden
-
-
Adquirido:
diff --git a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml
index b2bec23dd..574795dbd 100644
--- a/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/es/floater_texture_ctrl.xml
@@ -26,7 +26,7 @@
-
+
@@ -42,5 +42,10 @@
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml
index 0039555d2..fb2a758fd 100644
--- a/indra/newview/skins/default/xui/es/floater_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_tools.xml
@@ -133,30 +133,17 @@
Creador:
-
- Thrax Linden
-
-
Propietario:
-
- Thrax Linden
-
-
Últ.Propietario:
-
- Thrax Linden
-
-
Grupo:
-
-
+
Permisos:
@@ -176,7 +163,7 @@
-
+
@@ -197,13 +184,13 @@
El próximo propietario puede:
-
-
-
-
+
+
+
+
Al pulsarlo con botón izquierdo:
-
+
Tocar/Agarrar (Por Defecto)
@@ -250,7 +237,7 @@
Atributos de Pathfinding:
-
+
Prueba
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index 2992075de..f1374db82 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
@@ -37,7 +37,8 @@
-
+
+
diff --git a/indra/newview/skins/default/xui/es/panel_avatar.xml b/indra/newview/skins/default/xui/es/panel_avatar.xml
index 6c91fae9d..46a968658 100644
--- a/indra/newview/skins/default/xui/es/panel_avatar.xml
+++ b/indra/newview/skins/default/xui/es/panel_avatar.xml
@@ -15,27 +15,21 @@
Nombre:
-
En Línea
Nacido:
-
Cuenta:
-
Compañera/o:
-
-
- [NAME]
-
+
Foto:
diff --git a/indra/newview/skins/default/xui/es/panel_event.xml b/indra/newview/skins/default/xui/es/panel_event.xml
index 100ff7896..bbd277d66 100644
--- a/indra/newview/skins/default/xui/es/panel_event.xml
+++ b/indra/newview/skins/default/xui/es/panel_event.xml
@@ -36,9 +36,9 @@
Auspiciado por:
-
+
(nadie)
-
+
Ubicación:
diff --git a/indra/newview/skins/default/xui/es/panel_group_general.xml b/indra/newview/skins/default/xui/es/panel_group_general.xml
index 61d767b66..249d5b34d 100644
--- a/indra/newview/skins/default/xui/es/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_general.xml
@@ -12,9 +12,9 @@ Coloca el cursor sobre las opciones para más información.
-
+
Escribe aquí el nombre de tu nuevo grupo
-
+
Creado por
diff --git a/indra/newview/skins/default/xui/es/panel_region_covenant.xml b/indra/newview/skins/default/xui/es/panel_region_covenant.xml
index d41607dc1..80a64fa8a 100644
--- a/indra/newview/skins/default/xui/es/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_covenant.xml
@@ -12,9 +12,9 @@
Propietario:
-
+
(ninguno)
-
+
Convenio:
diff --git a/indra/newview/skins/default/xui/es/panel_region_estate.xml b/indra/newview/skins/default/xui/es/panel_region_estate.xml
index e0e2fe886..54b7893a6 100644
--- a/indra/newview/skins/default/xui/es/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/es/panel_region_estate.xml
@@ -12,9 +12,9 @@
Propietario del estado:
-
+
(desconocido)
-
+
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 096a10d8f..7dd5ec158 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -3229,6 +3229,9 @@ Where tag = tag string to match. Removes bot's matching the tag.
No Ocupado
Ocupado
+
+ Nueva/o [WEARABLE_ITEM]
+
Forma
Piel
@@ -3245,12 +3248,13 @@ Where tag = tag string to match. Removes bot's matching the tag.
Falda
Alfa
Tatuaje
- Física
- inválido
- desconocido
- ninguno
+ Universal
+ Física
+ inválido
+ Desconocido
+ ninguno
-
+
Camisa no puesta
Pantalones no puestos
Zapatos no puestos
@@ -3262,30 +3266,32 @@ Where tag = tag string to match. Removes bot's matching the tag.
Falda no puesta
Alfa no puesta
Tatuaje no puesto
- Física no puesta
+ Universal no puesta
+ Física no puesta
inválido
- Create new shape
- Create new skin
- Create new hair
- Create new eyes
- Create new shirt
- Create new pants
- Create new shoes
- Create new socks
- Create new jacket
- Create new gloves
- Create new undershirt
+ Crear nueva forma
+ Crear nueva piel
+ Crear nuevo pelo
+ Crear nuevos ojos
+ Crear nueva camisa
+ Crear nuevos pantalones
+ Crear nuevos zapatos
+ Crear nuevas medias
+ Crear nueva chaqueta
+ Crear nuevos guantes
+ Crear nueva ropa interior
Create new underpants
- Create new skirt
- Create new alpha
- Create new tattoo
- Create new physics
- invalid
+ Crear nueva falda
+ Crear nueva capa alfa
+ Crear nuevo tatuaje
+ Crear nueva capa universal
+ Crear nueva física
+ inválido
- Nuevo [WEARABLE_ITEM]
+ Nueva/o [WEARABLE_ITEM]
@@ -4422,7 +4428,7 @@ Si continuas recibiendo este mensaje, contacta con [SUPPORT_SITE].
El usuario no está conectado: el inventario se ha guardado.
'Has recibido un regalo! [USER] te ha enviado "[PRODUCT]", y dice "[MESSAGE]". Puedes encontrar tu regalo en la carpeta Received Items.
- Tu cimpara de [PRODUCT] ha sido enviada a tu carpeta Received Items.
+ Tu compra de [PRODUCT] ha sido enviada a tu carpeta Received Items.
@@ -4530,6 +4536,7 @@ Denuncia
Nueva Falda
Nueva Capa Alfa
Nuevo Tatuaje
+ Nueva Capa Universal
Nueva Capa Física
Vestimenta Inválida
Nuevo Gesto
diff --git a/indra/newview/skins/default/xui/fr/floater_about_land.xml b/indra/newview/skins/default/xui/fr/floater_about_land.xml
index cf3724432..e058353e0 100644
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -23,15 +23,10 @@
Propriétaire:
-
- Leyla Linden
-
-
Groupe:
-
@@ -102,12 +97,6 @@
(Propriété du Groupe)
-
- Profil...
-
-
- Infos...
-
(public)
@@ -135,9 +124,9 @@ Allez dans le menu Monde > A propos du terrain ou sélectionnez une autre par
Propriétaire:
-
+
(aucun)
-
+
Il n'y a aucun règlement pour ce domaine.
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_land.xml b/indra/newview/skins/default/xui/fr/floater_buy_land.xml
index 68fed1280..43846ce3f 100644
--- a/indra/newview/skins/default/xui/fr/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_land.xml
@@ -21,9 +21,9 @@
Propriétaire:
-
+
(inconnu)
-
+
Terrain acheté dans cette région:
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index 2048fd137..0ac2f6b49 100644
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -110,27 +110,17 @@
Créateur :
-
- Thrax Linden
-
-
Propriétaire :
-
Dernier Proprio :
-
- Thrax Linden
-
-
Groupe :
-
Droits :
diff --git a/indra/newview/skins/default/xui/fr/panel_avatar.xml b/indra/newview/skins/default/xui/fr/panel_avatar.xml
index 926f0b625..a3c02bc94 100644
--- a/indra/newview/skins/default/xui/fr/panel_avatar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_avatar.xml
@@ -22,11 +22,8 @@
Partenaire:
-
-
-
- [NAME]
-
+
+
Photo:
diff --git a/indra/newview/skins/default/xui/fr/panel_event.xml b/indra/newview/skins/default/xui/fr/panel_event.xml
index 5edc41744..7fb0d925b 100644
--- a/indra/newview/skins/default/xui/fr/panel_event.xml
+++ b/indra/newview/skins/default/xui/fr/panel_event.xml
@@ -36,9 +36,9 @@
Organisé par :
-
+
(personne)
-
+
Lieu :
diff --git a/indra/newview/skins/default/xui/fr/panel_group_general.xml b/indra/newview/skins/default/xui/fr/panel_group_general.xml
index 69faede20..77cfdb982 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_general.xml
@@ -9,9 +9,9 @@
-
+
Saisissez le nom du groupe ici:
-
+
Fondé par
diff --git a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
index cdce04c47..85aca4051 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
@@ -12,9 +12,9 @@
Propriétaire:
-
+
(aucun)
-
+
Règlement:
diff --git a/indra/newview/skins/default/xui/fr/panel_region_estate.xml b/indra/newview/skins/default/xui/fr/panel_region_estate.xml
index 0d1289b59..0effbea54 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_estate.xml
@@ -12,9 +12,9 @@
Propriétaire :
-
+
(inconnu)
-
+
Conditions d'accès des résidents :
diff --git a/indra/newview/skins/default/xui/it/floater_about_land.xml b/indra/newview/skins/default/xui/it/floater_about_land.xml
index 8366add8b..8f578a615 100644
--- a/indra/newview/skins/default/xui/it/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_about_land.xml
@@ -23,14 +23,11 @@
Proprietario:
-
- Leyla Linden
-
-
+
Gruppo:
-
+
@@ -101,12 +98,6 @@
(Posseduta dal gruppo)
-
- Profilo...
-
-
- Info...
-
(pubblica)
@@ -134,9 +125,9 @@ Vai al menu Mondo > Informazioni sul terreno oppure seleziona un altro appezz
Proprietario:
-
+
(nessuno)
-
+
Non c'è nessun regolamento imposto in questa regione.
diff --git a/indra/newview/skins/default/xui/it/floater_buy_land.xml b/indra/newview/skins/default/xui/it/floater_buy_land.xml
index d3486d9d5..11c90339f 100644
--- a/indra/newview/skins/default/xui/it/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_land.xml
@@ -21,9 +21,9 @@
Proprietario della regione:
-
+
(sconosciuto)
-
+
Terra acquistata in questa regione:
diff --git a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
index 9a5b1bf86..771bb55fe 100644
--- a/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/it/floater_inventory_item_properties.xml
@@ -9,17 +9,9 @@
Creatore:
-
- Nicole Linden
-
-
proprietario:
-
- Thrax Linden
-
-
Acquisito:
diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml
index 00420c66e..166253bae 100644
--- a/indra/newview/skins/default/xui/it/floater_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_tools.xml
@@ -85,17 +85,9 @@
Creatore:
-
- Thrax Linden
-
-
Proprietario:
-
- Thrax Linden
-
-
Gruppo:
diff --git a/indra/newview/skins/default/xui/it/panel_avatar.xml b/indra/newview/skins/default/xui/it/panel_avatar.xml
index ea9091400..ad98b90cb 100644
--- a/indra/newview/skins/default/xui/it/panel_avatar.xml
+++ b/indra/newview/skins/default/xui/it/panel_avatar.xml
@@ -44,14 +44,11 @@
-
+
Partner:
-
-
- [NAME]
-
+
Foto:
diff --git a/indra/newview/skins/default/xui/it/panel_event.xml b/indra/newview/skins/default/xui/it/panel_event.xml
index 7190417fb..71d5150e1 100644
--- a/indra/newview/skins/default/xui/it/panel_event.xml
+++ b/indra/newview/skins/default/xui/it/panel_event.xml
@@ -36,9 +36,9 @@
Organizzato da:
-
+
(nessuno)
-
+
Luogo:
diff --git a/indra/newview/skins/default/xui/it/panel_group_general.xml b/indra/newview/skins/default/xui/it/panel_group_general.xml
index e707e112e..da96f6a5e 100644
--- a/indra/newview/skins/default/xui/it/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_general.xml
@@ -12,9 +12,9 @@ Passa il mouse sulle opzioni per un aiuto aggiuntivo.
-
+
Scrivi il nome del nuovo gruppo qui
-
+
Fondato da
diff --git a/indra/newview/skins/default/xui/it/panel_region_covenant.xml b/indra/newview/skins/default/xui/it/panel_region_covenant.xml
index 9dfecde31..cb7d7f7aa 100644
--- a/indra/newview/skins/default/xui/it/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_covenant.xml
@@ -12,9 +12,9 @@
Proprietario:
-
+
(nessuno)
-
+
Regolamento:
diff --git a/indra/newview/skins/default/xui/it/panel_region_estate.xml b/indra/newview/skins/default/xui/it/panel_region_estate.xml
index 5b95b7378..8d4aa5391 100644
--- a/indra/newview/skins/default/xui/it/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/it/panel_region_estate.xml
@@ -13,9 +13,9 @@ avranno effetto su tutte le regioni della proprietà.
Proprietario:
-
+
(sconosciuto)
-
+
diff --git a/indra/newview/skins/default/xui/pt/floater_about_land.xml b/indra/newview/skins/default/xui/pt/floater_about_land.xml
index 3ed93efc7..7eaef8859 100644
--- a/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml
@@ -23,10 +23,6 @@
Proprietário:
-
- Leyla Linden
-
-
Grupo:
@@ -99,12 +95,6 @@
(Possuído pelo Grupo)
-
- Perfil...
-
-
- Informação...
-
(público)
@@ -132,9 +122,9 @@ Vá para o menu Mundo > Sobre a Terra ou selecione outro lote para mostrar se
Dono:
-
+
(nenhum)
-
+
Não há corretor para esta Propriedade.
diff --git a/indra/newview/skins/default/xui/pt/floater_buy_land.xml b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
index 95b75b4fc..ed2d6de8b 100644
--- a/indra/newview/skins/default/xui/pt/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_buy_land.xml
@@ -21,9 +21,9 @@
Dono da propriedade:
-
+
(desconhecido)
-
+
Adquiriu um terreno nesta região:
diff --git a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
index 3d9055e89..e52a9b7c8 100644
--- a/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
@@ -9,17 +9,9 @@
Criador:
-
- Nicole Linden
-
-
Dono:
-
- Thrax Linden
-
-
Adquirido:
diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml
index 5a7755c01..de04f1ba0 100644
--- a/indra/newview/skins/default/xui/pt/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tools.xml
@@ -110,17 +110,9 @@
Criador:
-
- Thrax Linden
-
-
Proprietário:
-
- Thrax Linden
-
-
Grupo:
diff --git a/indra/newview/skins/default/xui/pt/panel_avatar.xml b/indra/newview/skins/default/xui/pt/panel_avatar.xml
index 562ca2e42..1bce62815 100644
--- a/indra/newview/skins/default/xui/pt/panel_avatar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_avatar.xml
@@ -17,11 +17,8 @@
Parceiro:
-
-
- [NAME]
-
+
Foto:
diff --git a/indra/newview/skins/default/xui/pt/panel_event.xml b/indra/newview/skins/default/xui/pt/panel_event.xml
index 5956acf07..edcd7bd32 100644
--- a/indra/newview/skins/default/xui/pt/panel_event.xml
+++ b/indra/newview/skins/default/xui/pt/panel_event.xml
@@ -36,9 +36,9 @@
Executado por:
-
+
(nenhum)
-
+
Localização:
diff --git a/indra/newview/skins/default/xui/pt/panel_group_general.xml b/indra/newview/skins/default/xui/pt/panel_group_general.xml
index eba9a005e..53809ceb9 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_general.xml
@@ -8,9 +8,9 @@
-
+
Digite o nome do seu novo grupo aqui
-
+
Fundado por:
diff --git a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
index 4977a1fac..6db965803 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
@@ -12,9 +12,9 @@
Dono:
-
+
(nenhum)
-
+
Corretagem:
diff --git a/indra/newview/skins/default/xui/pt/panel_region_estate.xml b/indra/newview/skins/default/xui/pt/panel_region_estate.xml
index 135d1d951..70415450c 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_estate.xml
@@ -12,9 +12,9 @@
Proprietário do imóvel:
-
+
(desconhecido)
-
+
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 6faf7651d..4f83b047d 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -435,22 +435,27 @@ class WindowsManifest(ViewerManifest):
def construct(self):
super(WindowsManifest, self).construct()
+ if self.args['configuration'].lower() == '.':
+ config = 'debug' if self.args['buildtype'].lower() == 'debug' else 'release'
+ else:
+ config = 'debug' if self.args['configuration'].lower() == 'debug' else 'release'
pkgdir = os.path.join(self.args['build'], os.pardir, 'packages')
relpkgdir = os.path.join(pkgdir, "lib", "release")
debpkgdir = os.path.join(pkgdir, "lib", "debug")
+ pkgbindir = os.path.join(pkgdir, "bin", config)
if True: #self.is_packaging_viewer():
# Find singularity-bin.exe in the 'configuration' dir, then rename it to the result of final_exe.
- self.path(src='%s\\%s-bin.exe' % (self.args['configuration'],self.viewer_branding_id()), dst=self.final_exe())
+ self.path(src=os.path.join(self.args['dest'], ('%s-bin.exe' % self.viewer_branding_id())), dst=self.final_exe())
# Plugin host application
self.path2basename(os.path.join(os.pardir,
- 'llplugin', 'slplugin', self.args['configuration']),
+ 'llplugin', 'slplugin', config),
"SLplugin.exe")
# Get shared libs from the shared libs staging directory
with self.prefix(src=os.path.join(self.args['build'], os.pardir,
- 'sharedlibs', self.args['configuration'])):
+ 'sharedlibs', config)):
# Get llcommon and deps. If missing assume static linkage and continue.
try:
@@ -472,7 +477,7 @@ class WindowsManifest(ViewerManifest):
# Get fmodstudio dll, continue if missing
try:
- if self.args['configuration'].lower() == 'debug':
+ if config == 'debug':
self.path("fmodL.dll")
else:
self.path("fmod.dll")
@@ -510,7 +515,7 @@ class WindowsManifest(ViewerManifest):
# For google-perftools tcmalloc allocator.
if(self.address_size == 32):
try:
- if self.args['configuration'].lower() == 'debug':
+ if config == 'debug':
self.path('libtcmalloc_minimal-debug.dll')
else:
self.path('libtcmalloc_minimal.dll')
@@ -536,21 +541,20 @@ class WindowsManifest(ViewerManifest):
with self.prefix(src=os.path.join(self.args['build'], os.pardir, 'plugins')):
# Plugins - FilePicker
- with self.prefix(src=os.path.join('filepicker', self.args['configuration'])):
+ with self.prefix(src=os.path.join('filepicker', config)):
self.path("basic_plugin_filepicker.dll")
# Media plugins - LibVLC
- with self.prefix(src=os.path.join('libvlc', self.args['configuration'])):
+ with self.prefix(src=os.path.join('libvlc', config)):
self.path("media_plugin_libvlc.dll")
# Media plugins - CEF
- with self.prefix(src=os.path.join('cef', self.args['configuration'])):
+ with self.prefix(src=os.path.join('cef', config)):
self.path("media_plugin_cef.dll")
# CEF runtime files - debug
# CEF runtime files - not debug (release, relwithdebinfo etc.)
- config = 'debug' if self.args['configuration'].lower() == 'debug' else 'release'
- with self.prefix(src=os.path.join(pkgdir, 'bin', config)):
+ with self.prefix(src=pkgbindir):
self.path("chrome_elf.dll")
self.path("d3dcompiler_43.dll")
self.path("d3dcompiler_47.dll")
@@ -562,7 +566,7 @@ class WindowsManifest(ViewerManifest):
self.path("snapshot_blob.bin")
self.path("v8_context_snapshot.bin")
- with self.prefix(src=os.path.join(pkgdir, 'bin', config, 'swiftshader'), dst='swiftshader'):
+ with self.prefix(src=os.path.join(pkgbindir, 'swiftshader'), dst='swiftshader'):
self.path("libEGL.dll")
self.path("libGLESv2.dll")
@@ -630,7 +634,7 @@ class WindowsManifest(ViewerManifest):
self.path("zh-CN.pak")
self.path("zh-TW.pak")
- with self.prefix(src=os.path.join(pkgdir, 'bin', 'release')):
+ with self.prefix(src=os.path.join(pkgbindir, 'release')):
self.path("libvlc.dll")
self.path("libvlccore.dll")
self.path("plugins/")
@@ -698,11 +702,11 @@ class WindowsManifest(ViewerManifest):
def package_finish(self):
if 'signature' in self.args and 'VIEWER_SIGNING_PWD' in os.environ:
try:
- self.sign(self.args['configuration']+"\\"+self.final_exe())
- self.sign(self.args['configuration']+"\\SLPlugin.exe")
- self.sign(self.args['configuration']+"\\SLVoice.exe")
+ self.sign(self.args['dest']+"\\"+self.final_exe())
+ self.sign(self.args['dest']+"\\SLPlugin.exe")
+ self.sign(self.args['dest']+"\\SLVoice.exe")
except:
- print "Couldn't sign binaries. Tried to sign %s" % self.args['configuration'] + "\\" + self.final_exe()
+ print "Couldn't sign binaries. Tried to sign %s" % self.args['dest'] + "\\" + self.final_exe()
# a standard map of strings for replacing in the templates
substitution_strings = {
@@ -721,9 +725,9 @@ class WindowsManifest(ViewerManifest):
substitution_strings['installer_file'] = installer_file
# Packaging the installer takes forever, dodge it if we can.
- installer_path = os.path.join(self.args['configuration'], installer_file);
+ installer_path = os.path.join(self.args['dest'], installer_file);
if os.path.isfile(installer_path):
- binary_mod = os.path.getmtime(os.path.join(self.args['configuration'], self.final_exe()))
+ binary_mod = os.path.getmtime(os.path.join(self.args['dest'], self.final_exe()))
installer_mod = os.path.getmtime(installer_path)
if binary_mod <= installer_mod:
print("Binary is unchanged since last package, touch the binary or delete installer to trigger repackage.")
@@ -770,22 +774,22 @@ class WindowsManifest(ViewerManifest):
try:
import _winreg as reg
NSIS_path = reg.QueryValue(reg.HKEY_LOCAL_MACHINE, r"SOFTWARE\NSIS") + '\\makensis.exe'
- self.run_command([proper_windows_path(NSIS_path), self.dst_path_of(tempfile)])
+ # self.run_command([proper_windows_path(NSIS_path), self.dst_path_of(tempfile)])
except:
try:
NSIS_path = os.environ['ProgramFiles'] + '\\NSIS\\makensis.exe'
- self.run_command([proper_windows_path(NSIS_path), self.dst_path_of(tempfile)])
+ # self.run_command([proper_windows_path(NSIS_path), self.dst_path_of(tempfile)])
except:
NSIS_path = os.environ['ProgramFiles(X86)'] + '\\NSIS\\makensis.exe'
- self.run_command([proper_windows_path(NSIS_path),self.dst_path_of(tempfile)])
+ # self.run_command([proper_windows_path(NSIS_path),self.dst_path_of(tempfile)])
# self.remove(self.dst_path_of(tempfile))
if 'signature' in self.args and 'VIEWER_SIGNING_PWD' in os.environ:
try:
- self.sign(self.args['configuration'] + "\\" + substitution_strings['installer_file'])
+ self.sign(self.args['dest'] + "\\" + substitution_strings['installer_file'])
except:
- print "Couldn't sign windows installer. Tried to sign %s" % self.args['configuration'] + "\\" + substitution_strings['installer_file']
+ print "Couldn't sign windows installer. Tried to sign %s" % self.args['dest'] + "\\" + substitution_strings['installer_file']
self.created_path(self.dst_path_of(installer_file))
self.package_file = installer_file