diff --git a/autobuild.xml b/autobuild.xml index 4b77e62b66..d4ebe848cb 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -195,14 +195,14 @@ ndPhysicsStub platforms - darwin + darwin64 archive hash - 7d375112b162e32e37262da4a6c0a702 + b0f4fd59a72cf04db2cc426241a3850c url - https://3p.firestormviewer.org/ndPhysicsStub-1.0-darwin-202330107.tar.bz2 + https://3p.firestormviewer.org/ndPhysicsStub-1.0-darwin64-252581439.tar.bz2 name darwin @@ -250,9 +250,9 @@ archive hash - 94fc457c46e1fb94b31251bd4747d10f + 439af4161d99a3d12e0d6d90cb948687 url - https://3p.firestormviewer.org/glod-1.0pre3.171101143-darwin64-171101143.tar.bz2 + https://3p.firestormviewer.org/glod-1.0pre3.252621603-darwin64-252621603.tar.bz2 name darwin64 @@ -297,14 +297,14 @@ gntp-growl platforms - darwin + darwin64 archive hash - 33300134846d0f00ac4f31c1a190e3e6 + 5362f98bf0b0c5b12acacd6b7b1e427e url - https://3p.firestormviewer.org/gntp_growl-1.0-darwin-201505101047-r12.tar.bz2 + https://3p.firestormviewer.org/gntp_growl-1.0-darwin64-252631716.tar.bz2 name darwin @@ -378,9 +378,9 @@ archive hash - 3bc297a0fa47094bb52d361f80186387 + 91b24b83d3f8461286f783f28fcd9a66 url - https://3p.firestormviewer.org/discord_rpc-3.4.0-darwin64-192522358.tar.bz2 + https://3p.firestormviewer.org/discord_rpc-3.4.0-darwin64-252621453.tar.bz2 name darwin64 @@ -768,11 +768,11 @@ archive hash - d44256458ff0ef4db4c91e8e8cc83e8f98b4f1b8 + 126e0fa4c16dfd433c9fb7d1d242da98f213d933 hash_algorithm sha1 url - https://github.com/secondlife/dullahan/releases/download/v1.21.0-CEF_139.0.28/dullahan-1.21.0.202508272158_139.0.28_g55ab8a8_chromium-139.0.7258.139-darwin64-17279703032.tar.zst + https://github.com/secondlife/dullahan/releases/download/v1.24.0-CEF_139.0.40/dullahan-1.24.0.202510081737_139.0.40_g465474a_chromium-139.0.7258.139-darwin64-18353103947.tar.zst name darwin64 @@ -796,11 +796,11 @@ archive hash - 9d5af766a87052808e4062978504e9af124fb558 + 20de62c9e57d9e6539c1e2437ec4b46c3ca237bc hash_algorithm sha1 url - https://github.com/secondlife/dullahan/releases/download/v1.21.0-CEF_139.0.28/dullahan-1.21.0.202508272159_139.0.28_g55ab8a8_chromium-139.0.7258.139-windows64-17279703032.tar.zst + https://github.com/secondlife/dullahan/releases/download/v1.24.0-CEF_139.0.40/dullahan-1.24.0.202510081738_139.0.40_g465474a_chromium-139.0.7258.139-windows64-18353103947.tar.zst name windows64 @@ -813,7 +813,7 @@ copyright Copyright (c) 2017, Linden Research, Inc. version - 1.21.0.202508272158_139.0.28_g55ab8a8_chromium-139.0.7258.139 + 1.24.0.202510081737_139.0.40_g465474a_chromium-139.0.7258.139 name dullahan description @@ -1694,53 +1694,21 @@ platforms - darwin64 + common archive creds github hash - 7facda95e2f00c260513f3d4db42588fa8ba703c + fff82c79edb900c547c40dca9a0e3ebac5a8c7da hash_algorithm sha1 url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/196289774 + https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/299858950 name - darwin64 - - linux64 - - archive - - creds - github - hash - 01d08f13c7bc8d1b95b0330fa6833b7d8274e4d0 - hash_algorithm - sha1 - url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/196289775 - - name - linux64 - - windows64 - - archive - - creds - github - hash - 6d00345c7d3471bc5f7c1218e014dd0f1a2c069b - hash_algorithm - sha1 - url - https://api.github.com/repos/secondlife/llphysicsextensions_source/releases/assets/196289778 - - name - windows64 + common license diff --git a/build.sh b/build.sh index bba84bc7cd..50c170e792 100755 --- a/build.sh +++ b/build.sh @@ -158,7 +158,6 @@ pre_build() if [[ "$arch" == "Darwin" ]] then - HAVOK=OFF SIGNING=("-DENABLE_SIGNING:BOOL=YES" \ "-DSIGNING_IDENTITY:STRING=Developer ID Application: Linden Research, Inc.") fi @@ -262,8 +261,8 @@ build() done fi - # *TODO: Make this a build extension. - package_llphysicsextensions_tpv || fatal "failed building llphysicsextensions packages" + # *TODO: Make this a build extension. disabled for now + # package_llphysicsextensions_tpv || fatal "failed building llphysicsextensions packages" end_section "extensions $variant" else diff --git a/indra/cmake/Discord.cmake b/indra/cmake/Discord.cmake index 9741ff17f0..7ec96939b3 100644 --- a/indra/cmake/Discord.cmake +++ b/indra/cmake/Discord.cmake @@ -20,13 +20,13 @@ add_library(fs::discord INTERFACE IMPORTED) include(Prebuilt) use_prebuilt_binary(discord-rpc) -if (WINDOWS) - target_link_libraries(fs::discord INTERFACE discord-rpc) -elseif (LINUX) - target_link_libraries(fs::discord INTERFACE discord-rpc) -elseif (DARWIN) - target_link_libraries(fs::discord INTERFACE discord-rpc) -endif (WINDOWS) +find_library(DISCORD_LIBRARY + NAMES + discord-rpc.lib + libdiscord-rpc.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +target_link_libraries(fs::discord INTERFACE ${DISCORD_LIBRARY}) target_include_directories(fs::discord SYSTEM INTERFACE ${AUTOBUILD_INSTALL_DIR}/include/discord-rpc diff --git a/indra/cmake/FMODSTUDIO.cmake b/indra/cmake/FMODSTUDIO.cmake index 6f8912f7f1..f6b4a5c4d5 100644 --- a/indra/cmake/FMODSTUDIO.cmake +++ b/indra/cmake/FMODSTUDIO.cmake @@ -33,14 +33,15 @@ if (USE_FMODSTUDIO) # as accessing the private LL location will fail if you don't have the credential include(Prebuilt) use_prebuilt_binary(fmodstudio) - if (WINDOWS) - target_link_libraries( ll::fmodstudio INTERFACE fmod_vc) - elseif (DARWIN) - #despite files being called libfmod.dylib, we are searching for fmod - target_link_libraries( ll::fmodstudio INTERFACE fmod) - elseif (LINUX) - target_link_libraries( ll::fmodstudio INTERFACE fmod) - endif (WINDOWS) + + find_library(FMOD_LIBRARY + NAMES + fmod_vc.lib + libfmod.dylib + libfmod.so + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + target_link_libraries(ll::fmodstudio INTERFACE ${FMOD_LIBRARY}) target_include_directories( ll::fmodstudio SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/fmodstudio) endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR) diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake index 9a61267d50..9a0bc842a9 100644 --- a/indra/cmake/GLOD.cmake +++ b/indra/cmake/GLOD.cmake @@ -5,13 +5,24 @@ add_library( fs::glod INTERFACE IMPORTED ) include(Prebuilt) use_prebuilt_binary(glod) -if (WINDOWS) - target_link_libraries( fs::glod INTERFACE glod.lib) -elseif (DARWIN) - target_link_libraries( fs::glod INTERFACE libGLOD.dylib) + +find_library(GLOD_LIBRARY + NAMES + GLOD.lib + libGLOD.dylib + libGLOD.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +if (WINDOWS OR DARWIN) + target_link_libraries(fs::glod INTERFACE ${GLOD_LIBRARY}) elseif (LINUX) - target_link_libraries( fs::glod INTERFACE libGLOD.a libvds.a) -endif (WINDOWS) + find_library(VDS_LIBRARY + NAMES + libvds.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + target_link_libraries(fs::glod INTERFACE ${GLOD_LIBRARY} ${VDS_LIBRARY}) +endif () target_include_directories( fs::glod SYSTEM INTERFACE ${AUTOBUILD_INSTALL_DIR}/include/glod diff --git a/indra/cmake/Growl.cmake b/indra/cmake/Growl.cmake index dc77e1c51e..a2cff584e9 100644 --- a/indra/cmake/Growl.cmake +++ b/indra/cmake/Growl.cmake @@ -9,11 +9,20 @@ add_library( fs::growl INTERFACE IMPORTED ) include(Prebuilt) 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) -endif (WINDOWS) + +find_library(GROWL_LIBRARY + NAMES + growl.lib + libgrowl.dylib + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +find_library(GROWL_PLUSPLUS_LIBRARY + NAMES + growl++.lib + libgrowl++.dylib + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + +target_link_libraries(fs::growl INTERFACE ${GROWL_LIBRARY} ${GROWL_PLUSPLUS_LIBRARY}) target_include_directories( fs::growl SYSTEM INTERFACE ${AUTOBUILD_INSTALL_DIR}/include/Growl diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake index 1988caaef0..454dbe0215 100644 --- a/indra/cmake/LLPhysicsExtensions.cmake +++ b/indra/cmake/LLPhysicsExtensions.cmake @@ -22,7 +22,14 @@ if (HAVOK) include(Havok) use_prebuilt_binary(llphysicsextensions_source) set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/src) - target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions) + if(DARWIN) + set(LLPHYSICSEXTENSIONS_STUB_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub) + # can't set these library dependencies per-arch here, need to do it using XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=*] in newview/CMakeLists.txt + #target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions) + #target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensionsstub) + else() + target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions) + endif() elseif (HAVOK_TPV) use_prebuilt_binary(llphysicsextensions_tpv) target_link_libraries( llphysicsextensions_impl INTERFACE llphysicsextensions_tpv) @@ -41,7 +48,27 @@ else (HAVOK) # set(LLPHYSICSEXTENSIONS_SRC_DIR ${LIBS_PREBUILT_DIR}/llphysicsextensions/stub) # - target_link_libraries( llphysicsextensions_impl INTERFACE nd_hacdConvexDecomposition hacd nd_Pathing ) + # Use find_library to make our lives easier + find_library(ND_HACDCONVEXDECOMPOSITION_LIBRARY + NAMES + nd_hacdConvexDecomposition.lib + libnd_hacdConvexDecomposition.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + find_library(HACD_LIBRARY + NAMES + hacd.lib + libhacd.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + find_library(ND_PATHING_LIBRARY + NAMES + nd_pathing.lib + libnd_pathing.a + PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) + + target_link_libraries(llphysicsextensions_impl INTERFACE ${ND_HACDCONVEXDECOMPOSITION_LIBRARY} ${HACD_LIBRARY} ${ND_PATHING_LIBRARY}) + # # include paths for LLs version and ours are different. target_include_directories( llphysicsextensions_impl INTERFACE ${LIBS_PREBUILT_DIR}/include/ ) diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h index c08080223a..997987850e 100644 --- a/indra/llcommon/llpreprocessor.h +++ b/indra/llcommon/llpreprocessor.h @@ -97,6 +97,10 @@ # define LL_ARM64 1 #elif LL_GNUC && (defined(__arm64__) || defined(__aarch64__)) # define LL_ARM64 1 +// Check if using clang +#elif LL_CLANG && (defined(__arm64__) || defined(__aarch64__)) +# define LL_ARM64 1 +// #elif LL_MSVC && _M_X64 # define LL_X86_64 1 # define LL_X86 1 @@ -105,6 +109,13 @@ #elif LL_GNUC && ( defined(__amd64__) || defined(__x86_64__) ) # define LL_X86_64 1 # define LL_X86 1 +// Check if using clang +#elif LL_CLANG && ( defined(__amd64__) || defined(__x86_64__) ) +# define LL_X86_64 1 +# define LL_X86 1 +#elif LL_CLANG && ( defined(__i386__) ) +# define LL_X86 1 +// #elif LL_GNUC && ( defined(__i386__) ) # define LL_X86 1 #endif diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index ab87f9baca..40ad023e4d 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -2452,13 +2452,16 @@ bool LLWindowMacOSX::getInputDevices(U32 device_type_filter, void LLWindowMacOSX::openFile(const std::string& file_name ) { - LL_INFOS() << "Opening file " << file_name << LL_ENDL; - FSRef appRef; - OSStatus os_result = FSPathMakeRef((UInt8*)file_name.c_str(), - &appRef,NULL); - if(os_result >= 0) + LL_INFOS() << "Opening file " << file_name << LL_ENDL; + CFURLRef url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, + (const UInt8*)file_name.c_str(), + (CFIndex)file_name.size(), + false); + + if (url) { - os_result = LSOpenFSRef(&appRef, NULL); + OSStatus os_result = LSOpenCFURLRef(url, NULL); + CFRelease(url); } } diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 3e2827daa5..0ddda7b3a7 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -69,6 +69,11 @@ if (NOT HAVOK_TPV) # which means we need to duct tape this togther ... add_subdirectory(${LLPHYSICSEXTENSIONS_SRC_DIR} llphysicsextensions) + if (NOT "${LLPHYSICSEXTENSIONS_STUB_DIR}" STREQUAL "") + # for darwin universal builds we need both real llphysicsextensions and the stub for aarch64 fallback + # this will only be set when HAVOK is ON, otherwise the normal stub fallback will be in effect + add_subdirectory(${LLPHYSICSEXTENSIONS_STUB_DIR} llphysicsextensionsstub) + endif() # Another hack that works with newer cmake versions: cmake_policy( SET CMP0079 NEW) @@ -2503,14 +2508,27 @@ if (WINDOWS) elseif (DARWIN) set_target_properties(${VIEWER_BINARY_NAME} PROPERTIES - RESOURCE SecondLife.xib - #LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" + RESOURCE Firestorm.xib LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip" # Force the SDK version in the linked executable to be 10.12. This will fool # macOS into using the pre-Mojave display system, avoiding the blurry display that # otherwise occurs when upscaling the viewer to Retina resolution levels. LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -platform_version -Xlinker macos -Xlinker ${CMAKE_OSX_DEPLOYMENT_TARGET} -Xlinker 10.12" + + # We can only do these if building with Havok ) + if(HAVOK OR HAVOK_TPV) + set_target_properties(${VIEWER_BINARY_NAME} + PROPERTIES + # arch specific flags for universal builds: https://stackoverflow.com/a/77942065 + XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=x86_64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_FULL" + XCODE_ATTRIBUTE_OTHER_CFLAGS[arch=arm64] "$(inherited) -DLLPHYSICSEXTENSIONS_USE_STUB" + # only generate the .MAP file for llphysicsextensions_tpv on x86_64 + XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=x86_64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensions/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensions -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP" + XCODE_ATTRIBUTE_OTHER_LDFLAGS[arch=arm64] "$(inherited) -L${CMAKE_CURRENT_BINARY_DIR}/llphysicsextensionsstub/$,$,${CMAKE_CFG_INTDIR}>/ -lllphysicsextensionsstub" + ) + endif() + # else (WINDOWS) # Linux set_target_properties(${VIEWER_BINARY_NAME} diff --git a/indra/newview/fsfloaterim.h b/indra/newview/fsfloaterim.h index 3d20957063..182f0d6ae3 100644 --- a/indra/newview/fsfloaterim.h +++ b/indra/newview/fsfloaterim.h @@ -292,7 +292,6 @@ private: S32 mInputEditorPad; S32 mChatLayoutPanelHeight; - S32 mFloaterHeight; uuid_vec_t mInvitedParticipants; uuid_vec_t mPendingParticipants; diff --git a/indra/newview/fsfloaternearbychat.h b/indra/newview/fsfloaternearbychat.h index ee485e5498..f707fe35c9 100644 --- a/indra/newview/fsfloaternearbychat.h +++ b/indra/newview/fsfloaternearbychat.h @@ -161,7 +161,6 @@ private: S32 mInputEditorPad; S32 mChatLayoutPanelHeight; - S32 mFloaterHeight; std::vector mMessageArchive; diff --git a/indra/newview/llfloatermarketplace.cpp b/indra/newview/llfloatermarketplace.cpp index 889daf84ab..4abea64302 100644 --- a/indra/newview/llfloatermarketplace.cpp +++ b/indra/newview/llfloatermarketplace.cpp @@ -27,10 +27,11 @@ #include "llviewerprecompiledheaders.h" #include "llfloatermarketplace.h" +#include "llviewercontrol.h" #include "lluictrlfactory.h" LLFloaterMarketplace::LLFloaterMarketplace(const LLSD& key) - : LLFloater(key) + : LLFloaterWebContent(key) { } @@ -38,10 +39,25 @@ LLFloaterMarketplace::~LLFloaterMarketplace() { } +// just to override LLFloaterWebContent +void LLFloaterMarketplace::onClose(bool app_quitting) +{ +} + bool LLFloaterMarketplace::postBuild() { - enableResizeCtrls(true, true, false); + LLFloaterWebContent::postBuild(); + mWebBrowser = getChild("marketplace_contents"); + mWebBrowser->addObserver(this); + return true; } - +void LLFloaterMarketplace::openMarketplace() +{ + std::string url = gSavedSettings.getString("MarketplaceURL"); + if (mCurrentURL != url) + { + mWebBrowser->navigateTo(url, HTTP_CONTENT_TEXT_HTML); + } +} diff --git a/indra/newview/llfloatermarketplace.h b/indra/newview/llfloatermarketplace.h index 2ae4d0d64a..9524c94eee 100644 --- a/indra/newview/llfloatermarketplace.h +++ b/indra/newview/llfloatermarketplace.h @@ -27,14 +27,20 @@ #pragma once #include "llfloater.h" +#include "llfloaterwebcontent.h" class LLFloaterMarketplace: - public LLFloater + public LLFloaterWebContent { friend class LLFloaterReg; + +public: + void openMarketplace(); + private: LLFloaterMarketplace(const LLSD& key); ~LLFloaterMarketplace(); bool postBuild() override; + void onClose(bool app_quitting) override; }; diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 535be11ae2..49f21d035a 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -69,7 +69,7 @@ class LLSearchHandler : public LLCommandHandler { LLSearchHandler gSearchHandler; LLFloaterSearch::LLFloaterSearch(const LLSD& key) - : LLFloater(key) + : LLFloaterWebContent(key) { mSearchType.insert("standard"); mSearchType.insert("land"); @@ -89,6 +89,12 @@ LLFloaterSearch::~LLFloaterSearch() void LLFloaterSearch::onOpen(const LLSD& tokens) { initiateSearch(tokens); + mWebBrowser->setFocus(true); +} + +// just to override LLFloaterWebContent +void LLFloaterSearch::onClose(bool app_quitting) +{ } void LLFloaterSearch::initiateSearch(const LLSD& tokens) @@ -179,7 +185,11 @@ void LLFloaterSearch::initiateSearch(const LLSD& tokens) bool LLFloaterSearch::postBuild() { - enableResizeCtrls(true, true, false); + LLFloaterWebContent::postBuild(); + mWebBrowser = getChild("search_contents"); + mWebBrowser->addObserver(this); + getChildView("address")->setEnabled(false); + getChildView("popexternal")->setEnabled(false); // This call is actioned by the preload code in llViewerWindow // that creates the search floater during the login process diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h index e8a2be4797..6d93474f4a 100644 --- a/indra/newview/llfloatersearch.h +++ b/indra/newview/llfloatersearch.h @@ -27,13 +27,15 @@ #pragma once #include "llfloater.h" +#include "llfloaterwebcontent.h" class LLFloaterSearch: - public LLFloater { + public LLFloaterWebContent { friend class LLFloaterReg; public: void onOpen(const LLSD& key) override; + void onClose(bool app_quitting) override; private: LLFloaterSearch(const LLSD& key); diff --git a/indra/newview/llpanelface.h b/indra/newview/llpanelface.h index cd42328d28..11e72a4dc2 100644 --- a/indra/newview/llpanelface.h +++ b/indra/newview/llpanelface.h @@ -395,7 +395,7 @@ private: LLButton* mBtnAlign { nullptr }; LLButton* mBtnAlignTex { nullptr }; - LLButton* mBtnPbrFromInv { nullptr }; + //LLButton* mBtnPbrFromInv { nullptr }; // Done via texture picker LLButton* mBtnEditBbr { nullptr }; LLButton* mBtnSaveBbr { nullptr }; diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h index 279573e478..f171c5a5e0 100644 --- a/indra/newview/llpanelpeople.h +++ b/indra/newview/llpanelpeople.h @@ -169,7 +169,7 @@ private: // FIRE-4740: Friend counter in people panel LLTabContainer* mFriendsTabContainer; - LLAccordionCtrl* mFriendsAccordion = nullptr; + //LLAccordionCtrl* mFriendsAccordion = nullptr; // Friend list accordion replacement LLAccordionCtrlTab* mFriendsAllTab = nullptr; LLAccordionCtrlTab* mFriendsOnlineTab = nullptr; diff --git a/indra/newview/llreflectionmapmanager.cpp b/indra/newview/llreflectionmapmanager.cpp index b397cd3807..efde612f76 100644 --- a/indra/newview/llreflectionmapmanager.cpp +++ b/indra/newview/llreflectionmapmanager.cpp @@ -1009,11 +1009,11 @@ void LLReflectionMapManager::updateProbeFace(LLReflectionMap* probe, U32 face) mTexture->bind(channel); } } + + gIrradianceGenProgram.unbind(); } mMipChain[0].flush(); - - gIrradianceGenProgram.unbind(); } } diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 533d176f42..712c8a96bf 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -42,6 +42,7 @@ #include "llpanelpresetscamerapulldown.h" #include "llpanelpresetspulldown.h" #include "llpanelvolumepulldown.h" +#include "llfloatermarketplace.h" #include "llfloaterregioninfo.h" #include "llfloaterscriptdebug.h" #include "llhints.h" @@ -971,7 +972,11 @@ void LLStatusBar::onClickBuyCurrency() void LLStatusBar::onClickShop() { - LLFloaterReg::toggleInstanceOrBringToFront("marketplace"); + LLFloaterReg::showInstanceOrBringToFront("marketplace"); + if (LLFloaterMarketplace* marketplace = LLFloaterReg::getTypedInstance("marketplace")) + { + marketplace->openMarketplace(); + } } void LLStatusBar::onMouseEnterPresetsCamera() diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index 20d15c34a2..600084fd48 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -321,13 +321,9 @@ public: void setRebakeStuck(bool stuck) { mRebakeStuck = stuck;} // FIRE-7639 - Stop the blinking after a while private: - LLTextBox *mTextBalance; - LLTextBox *mTextHealth; LLTextBox *mTextTime; LLTextBox *mFPSText; // FIRE-14482: Show FPS in status bar - LLTextBox* mTextParcelName; - LLStatGraph *mSGBandwidth; LLStatGraph *mSGPacketLoss; @@ -361,7 +357,6 @@ private: LLPanelNearByMedia* mPanelNearByMedia; LLPanel* mParcelInfoPanel; - LLButton* mInfoBtn; LLTextBox* mParcelInfoText; LLTextBox* mDamageText; LLIconCtrl* mParcelIcon[ICON_COUNT]; diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 80c9ef871a..7f813d0b85 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -940,7 +940,23 @@ class LLFileUploadModel : public view_listener_t { bool handleEvent(const LLSD& userdata) { - LLFloaterModelPreview::showModelPreview(); + if (LLConvexDecomposition::isFunctional()) + { + LLFloaterModelPreview::showModelPreview(); + } + else + { + if (gGLManager.mIsApple) + { + LLNotificationsUtil::add("ModelUploaderMissingPhysicsApple"); + } + else + { + // TPV? + LLNotificationsUtil::add("ModelUploaderMissingPhysics"); + LLFloaterModelPreview::showModelPreview(); + } + } return true; } }; diff --git a/indra/newview/skins/default/xui/en/floater_marketplace.xml b/indra/newview/skins/default/xui/en/floater_marketplace.xml index 60247f076e..99fb3a1ad8 100644 --- a/indra/newview/skins/default/xui/en/floater_marketplace.xml +++ b/indra/newview/skins/default/xui/en/floater_marketplace.xml @@ -1,26 +1,201 @@ - + legacy_header_height="18" + can_minimize="true" + can_close="true" + can_resize="true" + height="775" + layout="topleft" + min_height="500" + min_width="600" + name="Marketplace" + save_rect="true" + single_instance="true" + save_visibility="true" + title="MARKETPLACE" + tab_stop="true" + width="780"> + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/floater_search.xml b/indra/newview/skins/default/xui/en/floater_search.xml index 509ef68446..43c4aa1b9d 100644 --- a/indra/newview/skins/default/xui/en/floater_search.xml +++ b/indra/newview/skins/default/xui/en/floater_search.xml @@ -1,26 +1,202 @@ - + legacy_header_height="18" + can_minimize="true" + can_close="true" + can_resize="true" + height="775" + layout="topleft" + min_height="500" + min_width="600" + name="Search" + save_rect="true" + single_instance="true" + save_visibility="true" + title="SEARCH" + tab_stop="true" + width="780"> + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index af49165aeb..cc91ad26ac 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -2331,6 +2331,25 @@ Could not open uploaded sound file for reading: fail + +Model upload is not yet available on Apple Silicon, but will be supported in an upcoming release. + +Workaround: Right-click the Second Life app in Finder, select +"Get Info", then check "Open using Rosetta" + fail + + + +Physics library is not present, some of the model uploader's functionality might not work or might not work correctly. + fail + + Firestorm does not ship SLVersionChecker @@ -1785,24 +1783,28 @@ class Darwin_x86_64_Manifest(ViewerManifest): try: # Note: See blurb above about names of keychains for signee in plain_sign: - self.run_command( - ['codesign', - '--force', - '--timestamp', - '--keychain', viewer_keychain, - '--sign', identity, - signee]) + args = [ + 'codesign', + '--force', + '--timestamp' + ] + if not ad_hoc_sign: + args += ['--keychain', viewer_keychain] + args += ['--sign', identity, signee] + self.run_command(args) for signee in deep_sign: - self.run_command( - ['codesign', - '--verbose', - '--deep', - '--force', - '--entitlements', self.src_path_of("slplugin.entitlements"), - '--options', 'runtime', - '--keychain', viewer_keychain, - '--sign', identity, - signee]) + args = [ + 'codesign', + '--verbose', + '--deep', + '--force', + '--entitlements', self.src_path_of("slplugin.entitlements"), + '--options', 'runtime' + ] + if not ad_hoc_sign: + args += ['--keychain', viewer_keychain] + args += ['--sign', identity, signee] + self.run_command(args) break # if no exception was raised, the codesign worked except ManifestError as err: # 'err' goes out of scope @@ -1810,10 +1812,12 @@ class Darwin_x86_64_Manifest(ViewerManifest): else: print("Maximum codesign attempts exceeded; giving up", file=sys.stderr) raise sign_failed - # This fails sometimes and works other times. Even when notarization (down below) is a success - # Remove it for now and investigate after we did notarize a few times - #self.run_command(['spctl', '-a', '-texec', '-vvvv', app_in_dmg]) - self.run_command([self.src_path_of("installers/darwin/apple-notarize.sh"), app_in_dmg]) + + if not ad_hoc_sign: + # This fails sometimes and works other times. Even when notarization (down below) is a success + # Remove it for now and investigate after we did notarize a few times + #self.run_command(['spctl', '-a', '-texec', '-vvvv', app_in_dmg]) + self.run_command([self.src_path_of("installers/darwin/apple-notarize.sh"), app_in_dmg]) finally: # Unmount the image even if exceptions from any of the above