diff --git a/autobuild.xml b/autobuild.xml index bf9afc8a59..75471f5b6f 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -106,9 +106,9 @@ archive hash - 88b6b9ebc2eda992b721529921c82066 + 80d157facdba399b3a59c400e29cb625 url - http://3p.firestormviewer.org/glib-2.56.0.220911433-linux64_bionic-220911433.tar.bz2 + http://3p.firestormviewer.org/glib-2.64.6.230870115-linux64-230870115.tar.bz2 name linux64 @@ -552,9 +552,9 @@ archive hash - 45acdda717f95ce9169de9f49199c066 + 1c341bdbb5fd0c8a8930f76e6c1647d4 url - http://3p.firestormviewer.org/apr_suite-1.4.5.230351228-linux64-230351228.tar.bz2 + http://3p.firestormviewer.org/apr_suite-1.4.5.230921251-linux64-230921251.tar.bz2 name linux64 @@ -736,9 +736,9 @@ archive hash - 30b1a9b7637f7a1546d38430064ca582 + 8b79711b4fa914c16f1284939d55dcc1 url - https://3p.firestormviewer.org/colladadom-2.3.222261253-linux64-222261253.tar.bz2 + https://3p.firestormviewer.org/colladadom-2.3.230940029-linux64-230940029.tar.bz2 name linux64 @@ -1030,9 +1030,9 @@ archive hash - bbcfe77b920fb7f00c7f2a494ffc6c43 + 39702f98867a319b090ee04f22d82762 url - http://3p.firestormviewer.org/expat-2.1.1.180841547-linux64-180841547.tar.bz2 + http://3p.firestormviewer.org/expat-2.5.0.230021327-linux64-230021327.tar.bz2 name linux64 @@ -1964,9 +1964,9 @@ archive hash - c68bbfe6c9bd59d182c4d20d966492b4 + d72c6d8db827ce3d83c5703f519a2ac9 url - http://3p.firestormviewer.org/libxml2-2.9.4.222130358-linux64-222130358.tar.bz2 + http://3p.firestormviewer.org/libxml2-2.10.3.230940019-linux64-230940019.tar.bz2 name linux64 @@ -3452,9 +3452,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors archive hash - f810193590cae9b35a1c77b6c72bfb01 + 71a9c7c03a2c26cdb21fa476de485d9c url - http://3p.firestormviewer.org/xmlrpc_epi-0.54.1.180841935-linux64-180841935.tar.bz2 + http://3p.firestormviewer.org/xmlrpc_epi-0.54.2.230940042-linux64-230940042.tar.bz2 name linux64 diff --git a/indra/cmake/Discord.cmake b/indra/cmake/Discord.cmake index e0e38003c3..f9f97a4dc7 100644 --- a/indra/cmake/Discord.cmake +++ b/indra/cmake/Discord.cmake @@ -1,13 +1,19 @@ # -*- cmake -*- +include_guard() +add_library(fs::discord INTERFACE IMPORTED) + include(Prebuilt) use_prebuilt_binary(discord-rpc) -set(DISCORD_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/discord-rpc) if (WINDOWS) - set(DISCORD_LIBRARY discord-rpc) + target_link_libraries(fs::discord INTERFACE discord-rpc) elseif (LINUX) -set(DISCORD_LIBRARY discord-rpc) + target_link_libraries(fs::discord INTERFACE discord-rpc) elseif (DARWIN) -set(DISCORD_LIBRARY discord-rpc) + target_link_libraries(fs::discord INTERFACE discord-rpc) endif (WINDOWS) + +target_include_directories(fs::discord SYSTEM INTERFACE + ${AUTOBUILD_INSTALL_DIR}/include/discord-rpc + ) diff --git a/indra/cmake/FindFMODSTUDIO.cmake b/indra/cmake/FindFMODSTUDIO.cmake deleted file mode 100644 index 4562b0ae45..0000000000 --- a/indra/cmake/FindFMODSTUDIO.cmake +++ /dev/null @@ -1,65 +0,0 @@ -# -*- cmake -*- - -# - Find FMODSTUDIO -# Find the FMODSTUDIO includes and library -# This module defines -# FMODSTUDIO_INCLUDE_DIR, where to find fmod.h and fmod_errors.h -# FMODSTUDIO_LIBRARIES, the libraries needed to use FMODSTUDIO. -# FMODSTUDIO, If false, do not try to use FMODSTUDIO. -# also defined, but not for general use are -# FMODSTUDIO_LIBRARY, where to find the FMODSTUDIO library. - -FIND_PATH(FMODSTUDIO_INCLUDE_DIR fmod.h PATH_SUFFIXES fmod) - -SET(FMODSTUDIO_NAMES ${FMODSTUDIO_NAMES} fmod fmod_vc) -FIND_LIBRARY(FMODSTUDIO_LIBRARY - NAMES ${FMODSTUDIO_NAMES} - PATH_SUFFIXES fmod - ) - -IF (FMODSTUDIO_SDK_DIR OR WINDOWS) - if(WINDOWS) - set(FMODSTUDIO_SDK_DIR "$ENV{PROGRAMFILES}/FMOD SoundSystem/FMOD Programmers API Windows" CACHE PATH "Path to FMODSTUDIO") - STRING(REGEX REPLACE "\\\\" "/" FMODSTUDIO_SDK_DIR ${FMODSTUDIO_SDK_DIR}) - endif(WINDOWS) - find_library(FMODSTUDIO_LIBRARY - fmod_vc fmodL_vc - PATHS - ${FMODSTUDIO_SDK_DIR}/api/lib - ${FMODSTUDIO_SDK_DIR}/api - ${FMODSTUDIO_SDK_DIR} - ) - find_path(FMODSTUDIO_INCLUDE_DIR fmod.h - ${FMODSTUDIO_SDK_DIR}/api/inc - ${FMODSTUDIO_SDK_DIR}/api - ${FMODSTUDIO_SDK_DIR} - ) - find_path(FMODSTUDIO_INCLUDE_DIR fmod.h - ${FMODSTUDIO_SDK_DIR}/api/inc - ${FMODSTUDIO_SDK_DIR}/api - ${FMODSTUDIO_SDK_DIR} - ) - IF (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR) - SET(FMODSTUDIO_LIBRARIES ${FMODSTUDIO_LIBRARY}) - SET(FMODSTUDIO_FOUND "YES") - endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR) -ENDIF (FMODSTUDIO_SDK_DIR OR WINDOWS) - -IF (FMODSTUDIO_FOUND) - IF (NOT FMODSTUDIO_FIND_QUIETLY) - MESSAGE(STATUS "Found FMODSTUDIO: ${FMODSTUDIO_LIBRARIES}") - ENDIF (NOT FMODSTUDIO_FIND_QUIETLY) -ELSE (FMODSTUDIO_FOUND) - IF (FMODSTUDIO_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find FMODSTUDIO library") - ENDIF (FMODSTUDIO_FIND_REQUIRED) -ENDIF (FMODSTUDIO_FOUND) - -# Deprecated declarations. -SET (NATIVE_FMODSTUDIO_INCLUDE_PATH ${FMODSTUDIO_INCLUDE_DIR} ) -GET_FILENAME_COMPONENT (NATIVE_FMODSTUDIO_LIB_PATH ${FMODSTUDIO_LIBRARY} PATH) - -MARK_AS_ADVANCED( - FMODSTUDIO_LIBRARY - FMODSTUDIO_INCLUDE_DIR - ) diff --git a/indra/cmake/FindGLOD.cmake b/indra/cmake/FindGLOD.cmake deleted file mode 100644 index 010a0c5aa4..0000000000 --- a/indra/cmake/FindGLOD.cmake +++ /dev/null @@ -1,36 +0,0 @@ -# -*- cmake -*- - -# - Find GLOD -# This module defines -# GLOD_INCLUDE_DIR, where to find glod.h, etc. -# GLOD_LIBRARIES, the library needed to use GLOD. -# GLOD_FOUND, If false, do not try to use GLOD. - -# LL coded the #include with a glod path in llfloatermodelpreview.cpp -find_path(GLOD_INCLUDE_DIR glod/glod.h) - -set(GLOD_NAMES ${GLOD_NAMES} glod) -find_library(GLOD_LIBRARIES - NAMES ${GLOD_NAMES} - ) - -if (GLOD_LIBRARIES AND GLOD_INCLUDE_DIR) - set(GLOD_FOUND "YES") -else (GLOD_LIBRARIES AND GLOD_INCLUDE_DIR) - set(GLOD_FOUND "NO") -endif (GLOD_LIBRARIES AND GLOD_INCLUDE_DIR) - -if (GLOD_FOUND) - if (NOT GLOD_FIND_QUIETLY) - message(STATUS "Found GLOD: Library in '${GLOD_LIBRARY}' and header in '${GLOD_INCLUDE_DIR}' ") - endif (NOT GLOD_FIND_QUIETLY) -else (GLOD_FOUND) - if (GLOD_FIND_REQUIRED) - message(FATAL_ERROR " * * * * *\nCould not find GLOD library!\n* * * * *") - endif (GLOD_FIND_REQUIRED) -endif (GLOD_FOUND) - -mark_as_advanced( - GLOD_LIBRARIES - GLOD_INCLUDE_DIR - ) diff --git a/indra/cmake/FindHACD.cmake b/indra/cmake/FindHACD.cmake deleted file mode 100644 index 8b466cb49f..0000000000 --- a/indra/cmake/FindHACD.cmake +++ /dev/null @@ -1,41 +0,0 @@ -# -*- cmake -*- - -# - Find HUNSPELL -# This module defines -# HACD_INCLUDE_DIR, where to find hacdHACD.h, etc. -# HACD_LIBRARY, the library needed to use HACD. -# HACD_FOUND, If false, do not try to use HACD. - -find_path(HACD_INCLUDE_DIR llconvexdecomposition.h - PATH_SUFFIXES hacd - ) - -set(HACD_NAMES ${HACD_NAMES} hacd) -find_library(HACD_LIBRARY - NAMES ${HACD_NAMES} - ) - -find_library( LLCONVEXDECOMP_LIBRARY NAMES nd_hacdConvexDecomposition ) - -if (HACD_LIBRARY AND HACD_INCLUDE_DIR AND LLCONVEXDECOMP_LIBRARY) - set(HACD_FOUND "YES") -else (HACD_LIBRARY AND HACD_INCLUDE_DIR AND LLCONVEXDECOMP_LIBRARY) - set(HACD_FOUND "NO") -endif (HACD_LIBRARY AND HACD_INCLUDE_DIR AND LLCONVEXDECOMP_LIBRARY) - - -if (HACD_FOUND) - if (NOT HACD_FIND_QUIETLY) - message(STATUS "Found HACD: Library in '${HACD_LIBRARY}' and header in '${HACD_INCLUDE_DIR}' ") - endif (NOT HACD_FIND_QUIETLY) -else (HACD_FOUND) - if (HACD_FIND_REQUIRED) - message(FATAL_ERROR " * * *\nCould not find HACD library! * * *") - endif (HACD_FIND_REQUIRED) -endif (HACD_FOUND) - -mark_as_advanced( - HACD_LIBRARY - HACD_DECOMP_LIB - HACD_INCLUDE_DIR - ) diff --git a/indra/cmake/FindKDU.cmake b/indra/cmake/FindKDU.cmake deleted file mode 100644 index 3944ad8308..0000000000 --- a/indra/cmake/FindKDU.cmake +++ /dev/null @@ -1,40 +0,0 @@ -# -*- cmake -*- - -# - Find KDU -# This module defines -# KDU_INCLUDE_DIR, where to find kdu.h, etc. -# KDU_LIBRARIES, the library needed to use KDU. -# KDU_FOUND, If false, do not try to use KDU. - -# LL coded the #include with a glod path in llfloatermodelpreview.cpp -find_path(KDU_INCLUDE_DIR kdu_image.h - PATH_SUFFIXES kdu - ) - -set(KDU_NAMES ${KDU_NAMES} kdu) -find_library(KDU_LIBRARIES - NAMES ${KDU_NAMES} - ) - -if (KDU_LIBRARIES AND KDU_INCLUDE_DIR) - set(KDU_FOUND "YES") - set(KDU_INCLUDE_DIRS ${KDU_INCLUDE_DIR}) - set(KDU_LIBRARY ${KDU_LIBRARIES}) -else (KDU_LIBRARIES AND KDU_INCLUDE_DIR) - set(KDU_FOUND "NO") -endif (KDU_LIBRARIES AND KDU_INCLUDE_DIR) - -if (KDU_FOUND) - if (NOT KDU_FIND_QUIETLY) - message(STATUS "Found KDU: Library in '${KDU_LIBRARY}' and header in '${KDU_INCLUDE_DIR}' ") - endif (NOT KDU_FIND_QUIETLY) -else (KDU_FOUND) - if (KDU_FIND_REQUIRED) - message(FATAL_ERROR " * * * * *\nCould not find KDU library!\n* * * * *") - endif (KDU_FIND_REQUIRED) -endif (KDU_FOUND) - -mark_as_advanced( - KDU_LIBRARIES - KDU_INCLUDE_DIR - ) diff --git a/indra/cmake/FindLLQtWebkit.cmake b/indra/cmake/FindLLQtWebkit.cmake deleted file mode 100644 index 2f666d3bf0..0000000000 --- a/indra/cmake/FindLLQtWebkit.cmake +++ /dev/null @@ -1,62 +0,0 @@ -# -*- cmake -*- - -# - Find llqtwebkit -# Find the llqtwebkit includes and library -# This module defines -# LLQTWEBKIT_INCLUDE_DIR, where to find llqtwebkit.h, etc. -# LLQTWEBKIT_LIBRARY, the llqtwebkit library with full path. -# LLQTWEBKIT_FOUND, If false, do not try to use llqtwebkit. -# also defined, but not for general use are -# LLQTWEBKIT_LIBRARIES, the libraries needed to use llqtwebkit. -# LLQTWEBKIT_LIBRARY_DIRS, where to find the llqtwebkit library. -# LLQTWEBKIT_DEFINITIONS - You should add_definitions(${LLQTWEBKIT_DEFINITIONS}) -# before compiling code that includes llqtwebkit library files. - -# Try to use pkg-config first. -# This allows to have two different libllqtwebkit packages installed: -# one for viewer 2.x and one for viewer 1.x. -include(FindPkgConfig) -if (PKG_CONFIG_FOUND) - if (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION) - set(_PACKAGE_ARGS libllqtwebkit>=${LLQtWebkit_FIND_VERSION} REQUIRED) - else (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION) - set(_PACKAGE_ARGS libllqtwebkit) - endif (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION) - if (NOT "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_LESS "2.8.2") - # As virtually nobody will have a pkg-config file for this, do this check always quiet. - # Unfortunately cmake 2.8.2 or higher is required for pkg_check_modules to have a 'QUIET'. - set(_PACKAGE_ARGS ${_PACKAGE_ARGS} QUIET) - endif () - pkg_check_modules(LLQTWEBKIT ${_PACKAGE_ARGS}) -endif (PKG_CONFIG_FOUND) -set(LLQTWEBKIT_DEFINITIONS ${LLQTWEBKIT_CFLAGS_OTHER}) - -find_path(LLQTWEBKIT_INCLUDE_DIR llqtwebkit.h NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_INCLUDE_DIRS}) - -find_library(LLQTWEBKIT_LIBRARY NAMES llqtwebkit NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_LIBRARY_DIRS}) - -if (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND) # If pkg-config couldn't find it, pretend we don't have pkg-config. - set(LLQTWEBKIT_LIBRARIES llqtwebkit) - get_filename_component(LLQTWEBKIT_LIBRARY_DIRS ${LLQTWEBKIT_LIBRARY} PATH) -endif (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND) - -# Handle the QUIETLY and REQUIRED arguments and set LLQTWEBKIT_FOUND -# to TRUE if all listed variables are TRUE. -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - LLQTWEBKIT - DEFAULT_MSG - LLQTWEBKIT_LIBRARY - LLQTWEBKIT_INCLUDE_DIR - LLQTWEBKIT_LIBRARIES - LLQTWEBKIT_LIBRARY_DIRS - ) - -mark_as_advanced( - LLQTWEBKIT_LIBRARY - LLQTWEBKIT_INCLUDE_DIR - LLQTWEBKIT_LIBRARIES - LLQTWEBKIT_LIBRARY_DIRS - LLQTWEBKIT_DEFINITIONS - ) - diff --git a/indra/cmake/FindLibnotify.cmake b/indra/cmake/FindLibnotify.cmake deleted file mode 100644 index 395dac804e..0000000000 --- a/indra/cmake/FindLibnotify.cmake +++ /dev/null @@ -1,46 +0,0 @@ -# -*- cmake -*- - -# - Find libnotify -# Find the libnotify includes and library -# This module defines -# LIBNOTIFY_INCLUDE_DIR, where to find notify.h, etc. -# LIBNOTIFY_LIBRARIES, the libraries needed to use libnotify. -# LIBNOTIFY_FOUND, If false, do not try to use libnotify. -# also defined, but not for general use are -# LIBNOTIFY_LIBRARY, where to find the libnotify library. - -FIND_PATH(LIBNOTIFY_INCLUDE_DIR notify.h - PATH_SUFFIXES libnotify - ) - -SET(LIBNOTIFY_NAMES ${LIBNOTIFY_NAMES} notify) -FIND_LIBRARY(LIBNOTIFY_LIBRARY - NAMES ${LIBNOTIFY_NAMES} - ) - -IF (LIBNOTIFY_LIBRARY AND LIBNOTIFY_INCLUDE_DIR) - SET(LIBNOTIFY_LIBRARIES ${LIBNOTIFY_LIBRARY}) - SET(LIBNOTIFY_FOUND "YES") -ELSE (LIBNOTIFY_LIBRARY AND LIBNOTIFY_INCLUDE_DIR) - SET(LIBNOTIFY_FOUND "NO") -ENDIF (LIBNOTIFY_LIBRARY AND LIBNOTIFY_INCLUDE_DIR) - - -IF (LIBNOTIFY_FOUND) - IF (NOT LIBNOTIFY_FIND_QUIETLY) - MESSAGE(STATUS "Found libnotify: '${LIBNOTIFY_LIBRARIES}' and header in '${LIBNOTIFY_INCLUDE_DIR}'") - ENDIF (NOT LIBNOTIFY_FIND_QUIETLY) -ELSE (LIBNOTIFY_FOUND) - IF (LIBNOTIFY_FIND_REQUIRED) - MESSAGE(FATAL_ERROR "Could not find libnotify library") - ENDIF (LIBNOTIFY_FIND_REQUIRED) -ENDIF (LIBNOTIFY_FOUND) - -# Deprecated declarations. -SET (NATIVE_LIBNOTIFY_INCLUDE_PATH ${LIBNOTIFY_INCLUDE_DIR} ) -GET_FILENAME_COMPONENT (NATIVE_LIBNOTIFY_LIB_PATH ${LIBNOTIFY_LIBRARY} PATH) - -MARK_AS_ADVANCED( - LIBNOTIFY_LIBRARY - LIBNOTIFY_INCLUDE_DIR - ) diff --git a/indra/cmake/FindNGHTTP2.cmake b/indra/cmake/FindNGHTTP2.cmake deleted file mode 100644 index c11d88814f..0000000000 --- a/indra/cmake/FindNGHTTP2.cmake +++ /dev/null @@ -1,35 +0,0 @@ -# -*- cmake -*- - -# - Find NGHTTP2 -# This module defines -# NGHTTP2_INCLUDE_DIR, where to find glod.h, etc. -# NGHTTP2_LIBRARIES, the library needed to use NGHTTP2. -# NGHTTP2_FOUND, If false, do not try to use NGHTTP2. - -find_path(NGHTTP2_INCLUDE_DIR nghttp2/nghttp2.h) - -set(NGHTTP2_NAMES ${NGHTTP2_NAMES} nghttp2) -find_library(NGHTTP2_LIBRARIES - NAMES ${NGHTTP2_NAMES} - ) - -if (NGHTTP2_LIBRARIES AND NGHTTP2_INCLUDE_DIR) - set(NGHTTP2_FOUND "YES") -else (NGHTTP2_LIBRARIES AND NGHTTP2_INCLUDE_DIR) - set(NGHTTP2_FOUND "NO") -endif (NGHTTP2_LIBRARIES AND NGHTTP2_INCLUDE_DIR) - -if (NGHTTP2_FOUND) - if (NOT NGHTTP2_FIND_QUIETLY) - message(STATUS "Found NGHTTP2: Library in '${NGHTTP2_LIBRARY}' and header in '${NGHTTP2_INCLUDE_DIR}' ") - endif (NOT NGHTTP2_FIND_QUIETLY) -else (NGHTTP2_FOUND) - if (NGHTTP2_FIND_REQUIRED) - message(FATAL_ERROR " * * * * *\nCould not find NGHTTP2 library!\n* * * * *") - endif (NGHTTP2_FIND_REQUIRED) -endif (NGHTTP2_FOUND) - -mark_as_advanced( - NGHTTP2_LIBRARIES - NGHTTP2_INCLUDE_DIR - ) diff --git a/indra/cmake/Growl.cmake b/indra/cmake/Growl.cmake index bdc1ddca14..dc77e1c51e 100644 --- a/indra/cmake/Growl.cmake +++ b/indra/cmake/Growl.cmake @@ -12,12 +12,10 @@ use_prebuilt_binary(gntp-growl) if (WINDOWS) target_link_libraries( fs::growl INTERFACE growl.lib growl++.lib) elseif (DARWIN) - target_link_libraries( fs:growl INTERFACE libgrowl.dylib libgrowl++.dylib) + target_link_libraries( fs::growl INTERFACE libgrowl.dylib libgrowl++.dylib) endif (WINDOWS) target_include_directories( fs::growl SYSTEM INTERFACE ${AUTOBUILD_INSTALL_DIR}/include/Growl ) endif (DARWIN OR WINDOWS) # no need to do these things on Linux - -add_compile_definitions(HAS_GROWL) diff --git a/indra/cmake/MediaPluginBase.cmake b/indra/cmake/MediaPluginBase.cmake index 7a7f64c0b3..f24b2a0fa2 100644 --- a/indra/cmake/MediaPluginBase.cmake +++ b/indra/cmake/MediaPluginBase.cmake @@ -1,13 +1,9 @@ # -*- cmake -*- -set(CMAKE_VERBOSE_MAKEFILE ON) # remove this once things work # Try to find pulse header, if we got them we can use the linux volume catcher if (LINUX) - include(GLIB) - include_directories( ${GLIB_INCLUDE_DIRS} ) - - foreach( PULSE_FILE pulse/introspect.h pulse/context.h pulse/subscribe.h pulse/glib-mainloop.h ) + foreach( PULSE_FILE pulse/introspect.h pulse/context.h pulse/subscribe.h ) find_path( PULSE_FILE_${PULSE_FILE}_FOUND ${PULSE_FILE} NO_CACHE) if( NOT PULSE_FILE_${PULSE_FILE}_FOUND ) message( "Looking for ${PULSE_FILE} ... not found") diff --git a/indra/cmake/Tracy.cmake b/indra/cmake/Tracy.cmake index 0bf3bd85ff..07ba34f30c 100644 --- a/indra/cmake/Tracy.cmake +++ b/indra/cmake/Tracy.cmake @@ -7,7 +7,6 @@ add_library( ll::tracy INTERFACE IMPORTED ) set(USE_TRACY OFF CACHE BOOL "Use Tracy profiler.") if (USE_TRACY) - use_system_binary(tracy) use_prebuilt_binary(tracy) target_include_directories( ll::tracy SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/tracy) diff --git a/indra/llfilesystem/lldiskcache.cpp b/indra/llfilesystem/lldiskcache.cpp index c3dbb18e10..9850cd1294 100644 --- a/indra/llfilesystem/lldiskcache.cpp +++ b/indra/llfilesystem/lldiskcache.cpp @@ -115,8 +115,12 @@ void LLDiskCache::purge() #endif if (boost::filesystem::is_directory(cache_path, ec) && !ec.failed()) { - boost::filesystem::directory_iterator iter(cache_path, ec); - while (iter != boost::filesystem::directory_iterator() && !ec.failed()) + // Optimize asset simple disk cache + //boost::filesystem::directory_iterator iter(cache_path, ec); + //while (iter != boost::filesystem::directory_iterator() && !ec.failed()) + boost::filesystem::recursive_directory_iterator iter(cache_path, ec); + while (iter != boost::filesystem::recursive_directory_iterator() && !ec.failed()) + // { if (boost::filesystem::is_regular_file(*iter, ec) && !ec.failed()) { @@ -470,8 +474,12 @@ void LLDiskCache::clearCache() #endif if (boost::filesystem::is_directory(cache_path, ec) && !ec.failed()) { - boost::filesystem::directory_iterator iter(cache_path, ec); - while (iter != boost::filesystem::directory_iterator() && !ec.failed()) + // Optimize asset simple disk cache + //boost::filesystem::directory_iterator iter(cache_path, ec); + //while (iter != boost::filesystem::directory_iterator() && !ec.failed()) + boost::filesystem::recursive_directory_iterator iter(cache_path, ec); + while (iter != boost::filesystem::recursive_directory_iterator() && !ec.failed()) + // { if (boost::filesystem::is_regular_file(*iter, ec) && !ec.failed()) { @@ -527,7 +535,7 @@ void LLDiskCache::removeOldVFSFiles() } } -uintmax_t LLDiskCache::dirFileSize(const std::string dir) +uintmax_t LLDiskCache::dirFileSize(const std::string& dir) { uintmax_t total_file_size = 0; @@ -548,8 +556,12 @@ uintmax_t LLDiskCache::dirFileSize(const std::string dir) #endif if (boost::filesystem::is_directory(dir_path, ec) && !ec.failed()) { - boost::filesystem::directory_iterator iter(dir_path, ec); - while (iter != boost::filesystem::directory_iterator() && !ec.failed()) + // Optimize asset simple disk cache + //boost::filesystem::directory_iterator iter(dir_path, ec); + //while (iter != boost::filesystem::directory_iterator() && !ec.failed()) + boost::filesystem::recursive_directory_iterator iter(dir_path, ec); + while (iter != boost::filesystem::recursive_directory_iterator() && !ec.failed()) + // { if (boost::filesystem::is_regular_file(*iter, ec) && !ec.failed()) { diff --git a/indra/llfilesystem/lldiskcache.h b/indra/llfilesystem/lldiskcache.h index f3b5c36e3f..4b51b66e1f 100644 --- a/indra/llfilesystem/lldiskcache.h +++ b/indra/llfilesystem/lldiskcache.h @@ -164,7 +164,7 @@ class LLDiskCache : * directory. Primarily used here to determine the directory size * before and after the cache purge */ - uintmax_t dirFileSize(const std::string dir); + uintmax_t dirFileSize(const std::string& dir); /** * Utility function to convert an LLAssetType enum into a diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp index 6793cbde58..4daf598926 100644 --- a/indra/llrender/llimagegl.cpp +++ b/indra/llrender/llimagegl.cpp @@ -912,7 +912,7 @@ BOOL LLImageGL::setImage(const U8* data_in, BOOL data_hasmips /* = FALSE */, S32 prev_mip_data = nullptr; cur_mip_data = nullptr; // -// + mGLTextureCreated = false; return FALSE; } diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt index 53cb2d4d1d..5c0029bc5d 100644 --- a/indra/media_plugins/cef/CMakeLists.txt +++ b/indra/media_plugins/cef/CMakeLists.txt @@ -31,8 +31,6 @@ set(media_plugin_cef_HEADER_FILES volume_catcher.h ) -if (NOT DISABLE_VOLUME_CATCHER) # disable volume catcher in cef with -DDISABLE_VOLUME_CATCHER=TRUE - add_compile_definitions(LL_VOLUME_CATCHER) # Select which VolumeCatcher implementation to use @@ -54,8 +52,6 @@ elseif (WINDOWS) list(APPEND media_plugin_cef_SOURCE_FILES windows_volume_catcher.cpp) endif (LINUX) -endif (NOT DISABLE_VOLUME_CATCHER) - list(APPEND media_plugin_cef_SOURCE_FILES ${media_plugin_cef_HEADER_FILES}) add_library(media_plugin_cef diff --git a/indra/media_plugins/cef/linux_volume_catcher.cpp b/indra/media_plugins/cef/linux_volume_catcher.cpp index fdea6fb15f..43773bb952 100755 --- a/indra/media_plugins/cef/linux_volume_catcher.cpp +++ b/indra/media_plugins/cef/linux_volume_catcher.cpp @@ -41,13 +41,11 @@ extern "C" { -#include -#include - #include #include #include -#include // There's no special reason why we want the *glib* PA mainloop, but the generic polling implementation seems broken. + +#include #include "apr_pools.h" #include "apr_dso.h" @@ -62,7 +60,6 @@ extern "C" { #define LL_PA_SYM(REQUIRED, PASYM, RTN, ...) RTN (*ll##PASYM)(__VA_ARGS__) = NULL #include "linux_volume_catcher_pa_syms.inc" -#include "linux_volume_catcher_paglib_syms.inc" #undef LL_PA_SYM static bool sSymsGrabbed = false; @@ -94,7 +91,6 @@ bool grab_pa_syms(std::string pulse_dso_name) INFOMSG("Found DSO: %s", pulse_dso_name.c_str()); #include "linux_volume_catcher_pa_syms.inc" -#include "linux_volume_catcher_paglib_syms.inc" if ( sSymPADSOHandle ) { @@ -141,7 +137,6 @@ void ungrab_pa_syms() // NULL-out all of the symbols we'd grabbed #define LL_PA_SYM(REQUIRED, PASYM, RTN, ...) do{ll##PASYM = NULL;}while(0) #include "linux_volume_catcher_pa_syms.inc" -#include "linux_volume_catcher_paglib_syms.inc" #undef LL_PA_SYM sSymsGrabbed = false; @@ -178,7 +173,7 @@ public: std::set mSinkInputIndices; std::map mSinkInputNumChannels; F32 mDesiredVolume; - pa_glib_mainloop *mMainloop; + pa_mainloop *mMainloop; pa_context *mPAContext; bool mConnected; bool mGotSyms; @@ -210,18 +205,14 @@ void VolumeCatcherImpl::init() // bit fragile and (for our purposes) we'd rather simply not function // than crash - // we cheat and rely upon libpulse-mainloop-glib.so.0 to pull-in - // libpulse.so.0 - this isn't a great assumption, and the two DSOs should - // probably be loaded separately. Our Linux DSO framework needs refactoring, - // we do this sort of thing a lot with practically identical logic... - mGotSyms = loadsyms("libpulse-mainloop-glib.so.0"); + mGotSyms = loadsyms("libpulse.so.0"); if (!mGotSyms) return; - mMainloop = llpa_glib_mainloop_new(g_main_context_default()); + mMainloop = llpa_mainloop_new(); if (mMainloop) { - pa_mainloop_api *api = llpa_glib_mainloop_get_api(mMainloop); + pa_mainloop_api *api = llpa_mainloop_get_api(mMainloop); if (api) { @@ -274,7 +265,7 @@ void VolumeCatcherImpl::cleanup() if (mGotSyms && mMainloop) { - llpa_glib_mainloop_free(mMainloop); + llpa_mainloop_free(mMainloop); } mMainloop = NULL; } @@ -295,8 +286,7 @@ void VolumeCatcherImpl::setVolume(F32 volume) void VolumeCatcherImpl::pump() { - gboolean may_block = FALSE; - g_main_context_iteration(g_main_context_default(), may_block); + return; } void VolumeCatcherImpl::connected_okay() diff --git a/indra/media_plugins/cef/linux_volume_catcher_pa_syms.inc b/indra/media_plugins/cef/linux_volume_catcher_pa_syms.inc index d806b48428..2c9f760fba 100755 --- a/indra/media_plugins/cef/linux_volume_catcher_pa_syms.inc +++ b/indra/media_plugins/cef/linux_volume_catcher_pa_syms.inc @@ -18,4 +18,8 @@ LL_PA_SYM(true, pa_proplist_new, pa_proplist*, void); LL_PA_SYM(true, pa_proplist_sets, int, pa_proplist *p, const char *key, const char *value); LL_PA_SYM(true, pa_sw_volume_from_linear, pa_volume_t, double v); +LL_PA_SYM(true, pa_mainloop_free, void, pa_mainloop* m); +LL_PA_SYM(true, pa_mainloop_get_api, pa_mainloop_api*, pa_mainloop* m); +LL_PA_SYM(true, pa_mainloop_new, pa_mainloop*, void); + // optional symbols to grab diff --git a/indra/media_plugins/cef/linux_volume_catcher_paglib_syms.inc b/indra/media_plugins/cef/linux_volume_catcher_paglib_syms.inc index abf628c96c..caa7a25b99 100755 --- a/indra/media_plugins/cef/linux_volume_catcher_paglib_syms.inc +++ b/indra/media_plugins/cef/linux_volume_catcher_paglib_syms.inc @@ -1,6 +1,9 @@ +// No longer needed +/* // required symbols to grab LL_PA_SYM(true, pa_glib_mainloop_free, void, pa_glib_mainloop* g); LL_PA_SYM(true, pa_glib_mainloop_get_api, pa_mainloop_api*, pa_glib_mainloop* g); LL_PA_SYM(true, pa_glib_mainloop_new, pa_glib_mainloop *, GMainContext *c); // optional symbols to grab +*/ diff --git a/indra/media_plugins/gstreamer10/llmediaimplgstreamer_syms_raw.inc b/indra/media_plugins/gstreamer10/llmediaimplgstreamer_syms_raw.inc index da1aa8ec1d..155eeb6809 100644 --- a/indra/media_plugins/gstreamer10/llmediaimplgstreamer_syms_raw.inc +++ b/indra/media_plugins/gstreamer10/llmediaimplgstreamer_syms_raw.inc @@ -20,10 +20,10 @@ LL_GST_SYM(true, gst_caps_from_string, GstCaps *, const gchar *string) LL_GST_SYM(true, gst_caps_get_structure, GstStructure *, const GstCaps *caps, guint index) LL_GST_SYM(true, gst_element_register, gboolean, GstPlugin *plugin, const gchar *name, guint rank, GType type) LL_GST_SYM(true, gst_structure_get_int, gboolean, const GstStructure *structure, const gchar *fieldname, gint *value) -LL_GST_SYM(true, gst_structure_get_value, G_CONST_RETURN GValue *, const GstStructure *structure, const gchar *fieldname) +LL_GST_SYM(true, gst_structure_get_value, const GValue *, const GstStructure *structure, const gchar *fieldname) LL_GST_SYM(true, gst_value_get_fraction_numerator, gint, const GValue *value) LL_GST_SYM(true, gst_value_get_fraction_denominator, gint, const GValue *value) -LL_GST_SYM(true, gst_structure_get_name, G_CONST_RETURN gchar *, const GstStructure *structure) +LL_GST_SYM(true, gst_structure_get_name, const gchar *, const GstStructure *structure) LL_GST_SYM(true, gst_element_seek, bool, GstElement *, gdouble, GstFormat, GstSeekFlags, GstSeekType, gint64, GstSeekType, gint64) LL_GST_SYM(false, gst_registry_fork_set_enabled, void, gboolean enabled) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 524cb6b110..d0ea02f347 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2184,7 +2184,7 @@ if (WINDOWS) ${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt ${viewer_APPSETTINGS_FILES} ${ARCH_PREBUILT_DIRS_RELEASE}/growl.dll - ${SHARED_LIB_STAGING_DIR}/Release/glod.dll # Restore GLOD build dependencies + ${SHARED_LIB_STAGING_DIR}/glod.dll # Restore GLOD build dependencies SLPlugin media_plugin_cef media_plugin_libvlc @@ -2194,7 +2194,7 @@ if (WINDOWS) # Only copy OpenJPEG dll if needed if (NOT USE_KDU) list(APPEND COPY_INPUT_DEPENDENCIES - ${SHARED_LIB_STAGING_DIR}/Release/openjp2.dll + ${SHARED_LIB_STAGING_DIR}/openjp2.dll ) endif (NOT USE_KDU) # @@ -2396,27 +2396,24 @@ target_link_libraries(${VIEWER_BINARY_NAME} ll::bugsplat ll::tracy fs::glod # restore GLOD dependencies - # fs::growl # Growl support added further down for win/mac only + fs::discord # Discord support ) if( TARGET ll::intel_memops ) target_link_libraries(${VIEWER_BINARY_NAME} ll::intel_memops ) endif() -target_link_libraries(${VIEWER_BINARY_NAME} ${DISCORD_LIBRARY} ) - if (USE_BUGSPLAT) target_link_libraries(${VIEWER_BINARY_NAME} ${BUGSPLAT_LIBRARIES} ) endif (USE_BUGSPLAT) -if (WINDOWS) - target_link_libraries(${VIEWER_BINARY_NAME} - fs::growl # Growl support - ${GROWL_LIBRARY} - ) -endif (WINDOWS) +# Growl support +if (WINDOWS OR DARWIN) + target_link_libraries(${VIEWER_BINARY_NAME} fs::growl) +endif (WINDOWS OR DARWIN) +# if( TARGET ll::nvapi ) target_link_libraries(${VIEWER_BINARY_NAME} ll::nvapi ) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 325bf01021..2e16855a5f 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -26264,5 +26264,16 @@ Change of this parameter will affect the layout of buttons in notification toast Value 0 + FSAnimationPreviewExpanded + + Comment + Expand or collapse the advanced animation information in the animation preview floater by default + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/fsfloatersearch.h b/indra/newview/fsfloatersearch.h index 35158980d0..31d31d2e27 100644 --- a/indra/newview/fsfloatersearch.h +++ b/indra/newview/fsfloatersearch.h @@ -110,7 +110,6 @@ private: LLSD mResultsContent; LLUUID mQueryID; - FSFloaterSearch* mParent; LLSearchComboBox* mSearchComboBox; FSScrollListCtrl* mSearchResults; }; @@ -145,7 +144,6 @@ private: LLSD mResultsContent; LLUUID mQueryID; - FSFloaterSearch* mParent; LLSearchComboBox* mSearchComboBox; LLScrollListCtrl* mSearchResults; }; @@ -180,7 +178,6 @@ private: LLSD mResultsContent; LLUUID mQueryID; - FSFloaterSearch* mParent; LLSearchComboBox* mSearchComboBox; LLScrollListCtrl* mSearchResults; LLComboBox* mPlacesCategory; @@ -214,7 +211,6 @@ private: LLSD mResultsContent; LLUUID mQueryID; - FSFloaterSearch* mParent; LLLineEditor* mPriceEditor; LLLineEditor* mAreaEditor; LLScrollListCtrl* mSearchResults; @@ -250,7 +246,6 @@ private: LLSD mResultsContent; LLUUID mQueryID; - FSFloaterSearch* mParent; LLSearchComboBox* mSearchComboBox; LLScrollListCtrl* mSearchResults; LLComboBox* mClassifiedsCategory; @@ -292,7 +287,6 @@ private: LLSD mResultsContent; LLUUID mQueryID; - FSFloaterSearch* mParent; LLSearchComboBox* mSearchComboBox; LLScrollListCtrl* mSearchResults; LLRadioGroup* mEventsMode; diff --git a/indra/newview/growlnotifierwin.cpp b/indra/newview/growlnotifierwin.cpp index b6615f6a64..2241457c1a 100644 --- a/indra/newview/growlnotifierwin.cpp +++ b/indra/newview/growlnotifierwin.cpp @@ -36,9 +36,7 @@ #include "llviewerprecompiledheaders.h" #include "growlnotifierwin.h" -#ifdef HAS_GROWL #include "growl.h" -#endif #include "llviewercontrol.h" @@ -55,9 +53,7 @@ void __cdecl GrowlLogSink( char const *aMessage, int aLevel ) GrowlNotifierWin::GrowlNotifierWin() : mApplicationName("") { -#ifdef HAS_GROWL mGrowlImpl = NULL; -#endif LL_INFOS("GrowlNotifierWin") << "Windows growl notifier initialized." << LL_ENDL; #ifdef GROWL_HAS_LOG @@ -69,20 +65,17 @@ GrowlNotifierWin::GrowlNotifierWin() : GrowlNotifierWin::~GrowlNotifierWin() { LL_INFOS("GrowlNotifierWin") << "Windows growl notifier destroyed." << LL_ENDL; -#ifdef HAS_GROWL if (mGrowlImpl) { delete mGrowlImpl; mGrowlImpl = NULL; } -#endif } void GrowlNotifierWin::registerApplication(const std::string& application, const std::set& notificationTypes) { mApplicationName = application; -#ifdef HAS_GROWL char **arr = (char**)malloc(sizeof(*arr) * notificationTypes.size()); S32 i = 0; for (std::set::const_iterator it = notificationTypes.begin(); it != notificationTypes.end(); ++it, ++i) @@ -99,25 +92,18 @@ void GrowlNotifierWin::registerApplication(const std::string& application, const free(arr[i]); } free(arr); -#endif } void GrowlNotifierWin::showNotification(const std::string& notification_title, const std::string& notification_message, const std::string& notification_type) { -#ifdef HAS_GROWL if (mGrowlImpl) { mGrowlImpl->Notify(notification_type.c_str(), notification_title.c_str(), notification_message.c_str()); } -#endif } bool GrowlNotifierWin::isUsable() { -#ifdef HAS_GROWL return (mGrowlImpl && mGrowlImpl->isConnected()); -#else - return false; -#endif } diff --git a/indra/newview/growlnotifierwin.h b/indra/newview/growlnotifierwin.h index 7ea5cb104e..df7ffcc208 100644 --- a/indra/newview/growlnotifierwin.h +++ b/indra/newview/growlnotifierwin.h @@ -36,10 +36,7 @@ #define GROWLNOTIFIERWIN_H #include "growlnotifier.h" - -#ifdef HAS_GROWL #include -#endif class GrowlNotifierWin : public GrowlNotifier { @@ -53,9 +50,7 @@ public: private: std::string mApplicationName; -#ifdef HAS_GROWL Growl* mGrowlImpl; -#endif }; #endif // GROWLNOTIFIERWIN_H diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 319799829e..63914bb810 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -263,9 +263,7 @@ using namespace LL; #include "llcoproceduremanager.h" #include "llviewereventrecorder.h" -#if HAS_GROWL #include "growlmanager.h" -#endif #include "fsavatarrenderpersistence.h" // *FIX: These extern globals should be cleaned up. @@ -1984,9 +1982,7 @@ bool LLAppViewer::cleanup() // workaround for DEV-35406 crash on shutdown LLEventPumps::instance().reset(); -#if HAS_GROWL - GrowlManager::destroyManager(); -#endif + GrowlManager::destroyManager(); // Growl support //dump scene loading monitor results if (LLSceneMonitor::instanceExists()) diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index ee1d42b871..7be52850f0 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -81,7 +81,8 @@ static S32 bump_channel = -1; // Enabled after changing LLViewerTexture::mNeedsCreateTexture to an // LLAtomicBool; this should work just fine, now. HB -#define LL_BUMPLIST_MULTITHREADED 1 +// #define LL_BUMPLIST_MULTITHREADED 1 // Enabling this causes issues on some machines +#define LL_BUMPLIST_MULTITHREADED 0 // static diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp index 8717766c18..f5c1790845 100644 --- a/indra/newview/llfloaterimagepreview.cpp +++ b/indra/newview/llfloaterimagepreview.cpp @@ -67,12 +67,14 @@ #include "llnotificationsutil.h" // detect and strip empty alpha layers from images on upload -const S32 PREVIEW_BORDER_WIDTH = 2; -const S32 PREVIEW_RESIZE_HANDLE_SIZE = S32(RESIZE_HANDLE_WIDTH * OO_SQRT2) + PREVIEW_BORDER_WIDTH; -const S32 PREVIEW_HPAD = PREVIEW_RESIZE_HANDLE_SIZE; -const S32 PREVIEW_VPAD = -24 + 35; // yuk, hard coded -const S32 PREF_BUTTON_HEIGHT = 16 + 7 + 16 + 35; -const S32 PREVIEW_TEXTURE_HEIGHT = 320; +// Make preview area position to be not hard-coded +// const S32 PREVIEW_BORDER_WIDTH = 2; +// const S32 PREVIEW_RESIZE_HANDLE_SIZE = S32(RESIZE_HANDLE_WIDTH * OO_SQRT2) + PREVIEW_BORDER_WIDTH; +// const S32 PREVIEW_HPAD = PREVIEW_RESIZE_HANDLE_SIZE; +// const S32 PREVIEW_VPAD = -24 + 35; // yuk, hard coded +// const S32 PREF_BUTTON_HEIGHT = 16 + 7 + 16 + 35; +// const S32 PREVIEW_TEXTURE_HEIGHT = 320; +// // detect and strip empty alpha layers from images on upload const U8 ALPHA_EMPTY_THRESHOLD = 253; @@ -110,10 +112,13 @@ BOOL LLFloaterImagePreview::postBuild() } childSetCommitCallback("clothing_type_combo", onPreviewTypeCommit, this); - mPreviewRect.set(PREVIEW_HPAD, - PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD, - getRect().getWidth() - PREVIEW_HPAD, - PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); + // Make preview area position to be not hard-coded + // mPreviewRect.set(PREVIEW_HPAD, + // PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD, + // getRect().getWidth() - PREVIEW_HPAD, + // PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); + mPreviewRect = getChildView("preview_area")->getRect(); + // mPreviewImageRect.set(0.f, 1.f, 1.f, 0.f); getChildView("bad_image_text")->setVisible(FALSE); @@ -178,9 +183,14 @@ BOOL LLFloaterImagePreview::postBuild() // getChild("ok_btn")->setCommitCallback(boost::bind(&LLFloaterNameDesc::onBtnOK, this)); getChild("ok_btn")->setCommitCallback(boost::bind(&LLFloaterImagePreview::onBtnUpload, this)); + getChild("uploaded_size_text")->setTextArg("[X_RES]", llformat("%d", mRawImagep->getWidth())); + getChild("uploaded_size_text")->setTextArg("[Y_RES]", llformat("%d", mRawImagep->getHeight())); + if (mRawImagep->getComponents() != 4) { - return TRUE; + getChild("image_alpha_warning")->setVisible(false); + getChild("uploaded_size_text")->setTextArg("[ALPHA]", getString("no_alpha")); + return true; } U32 imageBytes = mRawImagep->getWidth() * mRawImagep->getHeight() * 4; @@ -209,6 +219,8 @@ BOOL LLFloaterImagePreview::postBuild() getChild("image_alpha_warning")->setVisible(false); mEmptyAlphaCheck->setValue(false); } + + getChild("uploaded_size_text")->setTextArg("[ALPHA]", getString(mEmptyAlphaCheck->getValue() ? "no_alpha" : "with_alpha")); // return TRUE; } @@ -216,7 +228,11 @@ BOOL LLFloaterImagePreview::postBuild() // detect and strip empty alpha layers from images on upload void LLFloaterImagePreview::emptyAlphaCheckboxCallback() { - if (!mEmptyAlphaCheck->getValue()) + if (mEmptyAlphaCheck->getValue()) + { + getChild("uploaded_size_text")->setTextArg("[ALPHA]", getString("no_alpha")); + } + else { LLNotificationsUtil::add("ImageEmptyAlphaLayer", LLSD(), LLSD(), boost::bind(&LLFloaterImagePreview::imageEmptyAlphaCallback, this, _1, _2)); } @@ -232,6 +248,7 @@ bool LLFloaterImagePreview::imageEmptyAlphaCallback(const LLSD& notification, co mEmptyAlphaCheck->setValue(true); } + getChild("uploaded_size_text")->setTextArg("[ALPHA]", getString(option == 0 ? "no_alpha" : "with_alpha")); return true; } @@ -407,24 +424,27 @@ void LLFloaterImagePreview::draw() // gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); //} //gGL.end(); + // + + // Make preview area position to be not hard-coded gGL.begin( LLRender::TRIANGLES ); { gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mTop); - gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); + gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop); gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mBottom); - gGL.vertex2i(PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); + gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mBottom); gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mBottom); - gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); + gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom); gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mTop); - gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); + gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop); gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mBottom); - gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); + gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom); gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mTop); - gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); + gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mTop); } gGL.end(); - // + // gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); @@ -458,24 +478,27 @@ void LLFloaterImagePreview::draw() // gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); //} //gGL.end(); + // + + // Make preview area position to be not hard-coded gGL.begin( LLRender::TRIANGLES ); { gGL.texCoord2f(0.f, 1.f); - gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); + gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop); gGL.texCoord2f(0.f, 0.f); - gGL.vertex2i(PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); + gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mBottom); gGL.texCoord2f(1.f, 0.f); - gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); + gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom); - gGL.texCoord2f(1.f, 0.f); - gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD); gGL.texCoord2f(0.f, 1.f); - gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); + gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop); + gGL.texCoord2f(1.f, 0.f); + gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom); gGL.texCoord2f(1.f, 1.f); - gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD); + gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mTop); } gGL.end(); - // + // gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE); } diff --git a/indra/newview/llpreviewanim.cpp b/indra/newview/llpreviewanim.cpp index cfc7b8aa9b..dbfd9da643 100644 --- a/indra/newview/llpreviewanim.cpp +++ b/indra/newview/llpreviewanim.cpp @@ -40,6 +40,8 @@ #include "lluictrlfactory.h" #include "lldatapacker.h" +#include "llviewercontrol.h" // Make advanced animation preview optional + extern LLAgent gAgent; //const S32 ADVANCED_VPAD = 3; // Improved animation preview @@ -47,6 +49,9 @@ LLPreviewAnim::LLPreviewAnim(const LLSD& key) : LLPreview( key ) { mCommitCallbackRegistrar.add("PreviewAnim.Play", boost::bind(&LLPreviewAnim::play, this, _2)); + // Make advanced animation preview optional + mCommitCallbackRegistrar.add("PreviewAnim.Expand", boost::bind(&LLPreviewAnim::expand, this, _2)); + // } // virtual @@ -64,6 +69,15 @@ BOOL LLPreviewAnim::postBuild() //reshape(rect.getWidth(), rect.getHeight() - pAdvancedStatsTextBox->getRect().getHeight() - ADVANCED_VPAD, FALSE); // + // Make advanced animation preview optional + bool expanded = gSavedSettings.getBOOL("FSAnimationPreviewExpanded"); + + getChild("advanced_info_panel")->setVisible(!expanded); + getChild("btn_expand")->setToggleState(expanded); + + expand(LLSD()); + // + return LLPreview::postBuild(); } @@ -253,3 +267,37 @@ void LLPreviewAnim::onClose(bool app_quitting) // } //} // + +// Make advanced animation preview optional +void LLPreviewAnim::expand(const LLSD& param) +{ + LLView* basic_info_panel = getChild("basic_info_panel"); + LLView* advanced_info_panel = getChild("advanced_info_panel"); + + // I don't get why we can't use getLocalRect().mTop or something similar to get the .top from the XML -Zi + S32 height = getRect().getHeight() - basic_info_panel->getRect().mTop; + S32 basic_info_height = basic_info_panel->getRect().getHeight(); + S32 advanced_info_height = advanced_info_panel->getRect().getHeight(); + + bool was_expanded = advanced_info_panel->getVisible(); + advanced_info_panel->setVisible(!was_expanded); + + height += basic_info_height; + if (!was_expanded) + { + height += advanced_info_height; + } + + LLRect rect = getRect(); + + rect.setLeftTopAndSize(rect.mLeft, rect.mTop, rect.getWidth(), height); + reshape(rect.getWidth(), rect.getHeight(), false); + + setRect(rect); + + if(getHost()) + { + getHost()->growToFit(rect.getWidth(), height); + } +} +// diff --git a/indra/newview/llpreviewanim.h b/indra/newview/llpreviewanim.h index 8f604f274a..a3b29d5b00 100644 --- a/indra/newview/llpreviewanim.h +++ b/indra/newview/llpreviewanim.h @@ -50,6 +50,8 @@ public: protected: + void expand(const LLSD& param); // Make advanced animation preview optional + LLUUID mItemID; // Not an item id, but a playing asset id bool mDidStart; // Improved animation preview diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 927b5779b6..39e896f87c 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -226,9 +226,7 @@ //#include "llfloaterimsession.h" #include "fsfloaterim.h" // [FS communication UI] -#if HAS_GROWL #include "growlmanager.h" -#endif #include "fsassetblacklist.h" #include "fsavatarrenderpersistence.h" @@ -665,10 +663,8 @@ bool idle_startup() // std::string lastGPU = gSavedSettings.getString("LastGPUString"); std::string thisGPU = LLFeatureManager::getInstance()->getGPUString(); - -#if HAS_GROWL - GrowlManager::initiateManager(); -#endif + + GrowlManager::initiateManager(); // Growl support // Store current font and skin for system info (FIRE-6806) gSavedSettings.setString("FSInternalFontSettingsFile", gSavedSettings.getString("FSFontSettingsFile")); diff --git a/indra/newview/skins/default/xui/da/floater_preview_animation.xml b/indra/newview/skins/default/xui/da/floater_preview_animation.xml index 436843decc..076e4efe82 100644 --- a/indra/newview/skins/default/xui/da/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/da/floater_preview_animation.xml @@ -3,9 +3,11 @@ Animation: [NAME] - - Beskrivelse: - - + + + + + + Priority: [PRIORITY] Duration: [DURATION]s @@ -86,9 +134,9 @@ Loop: [IS_LOOP] length="1" follows="left|top" font="SansSerif" - height="91" + height="52" layout="topleft" - left_pad="5" + left_pad="10" name="AdvancedStatsRight" top_delta="0" width="150"> @@ -96,4 +144,5 @@ Ease In: [EASE_IN]s Ease Out: [EASE_OUT]s Joints: [NUM_JOINTS] + diff --git a/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml b/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml index 08e651fef5..2397c95773 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_firestorm.xml @@ -1629,6 +1629,14 @@ tool_tip="If enabled, you can preview animations during the upload process on your own avatar" name="FSUploadAnimationOnOwnAvatar" control_name="FSUploadAnimationOnOwnAvatar"/> + - "Login process did not complete due to system issues. Try again in a few minutes. + Login process did not complete due to system issues. Try again in a few minutes. If you feel this is an error, please contact the grid support. Optional viewer update available: [VERSION] Required viewer update: [VERSION] diff --git a/indra/newview/skins/default/xui/es/floater_preview_animation.xml b/indra/newview/skins/default/xui/es/floater_preview_animation.xml index fd7060448f..6d577518f9 100644 --- a/indra/newview/skins/default/xui/es/floater_preview_animation.xml +++ b/indra/newview/skins/default/xui/es/floater_preview_animation.xml @@ -3,9 +3,11 @@ Animación: [NAME] - - Descripción: - -