summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-06-27Work around VS refusal to initialize a stringNat Goodspeed
2024-06-27Introduce TypeTag<T> template whose int value differs for each T.Nat Goodspeed
This replaces type_tag<T>(), which searched and possibly extended the type_tags unordered_map at runtime. If we called lua_emplace<T>() from different threads, that would require locking type_tags. In contrast, the compiler must instantiate a distinct TypeTag<T> for every distinct T passed to lua_emplace<T>(), so each gets a distinct value at static initialization time. No locking is required; no lookup; no allocations. Add a test to llluamanager_test.cpp to verify that each distinct T passed to lua_emplace<T>() gets its own TypeTag<T>::value, and that each gets its own destructor -- but that different lua_emplace<T>() calls with the same T share the same TypeTag<T>::value and the same destructor.
2024-06-27Make lua_emplace<T>() use Luau userdata tags with destructors.Nat Goodspeed
It turns out that Luau does not honor PUC-Rio Lua's __gc metafunction, so despite elaborate measures, the previous lua_emplace<T>() implementation would not have destroyed the contained C++ T object when the resulting userdata object was garbage-collected. Moreover, using LL.atexit() as the mechanism to destroy lua_emplace<T>() userdata objects (e.g. LuaListener) would have been slightly fragile because we also want to use LL.atexit() to make the final fiber.run() call, when appropriate. Introducing an order dependency between fiber.run() and the LuaListener destructor would not be robust. Both of those problems are addressed by leveraging one of Luau's extensions over PUC-Rio Lua. A Luau userdata object can have an int tag; and a tag can have an associated C++ destructor function. When any userdata object bearing that tag is garbage-collected, Luau will call that destructor; and Luau's lua_close() function destroys all userdata objects. The resulting lua_emplace<T>() and lua_toclass<T>() code is far simpler. It only remains to generate a distinct int tag value for each different C++ type passed to the lua_emplace<T>() template. unordered_map<std::type_index, int> addresses that need.
2024-06-27Make test.cpp test driver recognize LOGTEST_testname.Nat Goodspeed
Setting LOGTEST=DEBUG, when many unit/integration tests must be rebuilt and run, can result in lots of unnecessary output. When we only want DEBUG log output from a specific test program, make test.cpp recognize an environment variable LOGTEST_testname, where 'testname' might be the full basename of the executable, or part of INTEGRATION_TEST_testname or PROJECT_foo_TEST_testname. When test.cpp notices a non-empty variable by that name, it behaves as if LOGTEST were set to that value.
2024-06-26Merge pull request #1850 from secondlife/roxie/webrtc-voice-crash-fixesRoxanne Skelly
Various crash fixes. ALso fixes an issue with adhoc/group calls on vivox regions.
2024-06-26Convert tabs to spacesRoxie Linden
2024-06-26Merge branch 'release/webrtc-voice' of github.com:secondlife/viewer into ↵Roxie Linden
roxie/webrtc-voice-crash-fixes
2024-06-26Make the webrtc viewer work for vivox adhoc/group calls.Roxie Linden
There was an issue on the release grid where old-style credentials were being sent over and the webrtc viewer wasn't dealing with them properly.
2024-06-26Merge pull request #1800 from ↵Brad Linden
secondlife/1771-mesh-objects-do-not-display-until-you-walk-directly-over-them #1771 Fix for objects disappearing and not reappearing until LoD switch
2024-06-25Issue#880 Crash on a dead pointer in a chat sessionAndrey Kleshchev
2024-06-25#1806 - crash in initVoiceChannelRoxie Linden
2024-06-25Merge pull request #1842 from secondlife/roxie/webrtc-voice-crash-fixesBrad Linden
viewer#1821 Crash at getSessionID()
2024-06-25viewer#1821 Crash at getSessionID()Andrey Kleshchev
2024-06-25Merge pull request #1837 from secondlife/roxie/webrtc-voice-gainRoxanne Skelly
2024-06-25Merge pull request #1830 from secondlife/roxie/webrtc-voice-1451Roxanne Skelly
2024-06-25Add wear/detach actions to Appearance listener; update example scriptMnikolenko Productengine
2024-06-24[WebRTC] control microphone gain via custom audio processor.Roxie Linden
Previously, there were two places audio gain could be controlled: - the device manager - the audio track The device manager audio gain control sets the system gain for all applications, not just the webrtc application. The audio track gain happens well after the audio processing where we want it to happen. So, gain control was added to the existing custom audio processor, which previously only handled calculating and retrieving the audio levels. After these changes, the microphone gain slider does impact the audio volume heard by peers.
2024-06-24Merge branch 'release/luau-scripting' into lua-appearance-listenerMnikolenko Productengine
2024-06-21#1831 Fix for redundantly rebuilding bounding boxes forever (#1832)Dave Parks
2024-06-21Merge branch 'release/webrtc-voice' of github.com:secondlife/viewer into ↵Roxie Linden
roxie/webrtc-voice-1451
2024-06-21Disable voice morphing and throw up a warning if it's previously enabled.Roxie Linden
2024-06-21Merge pull request #1725 from secondlife/lua-loginnat-goodspeed
UI-related Lua API work
2024-06-21Exercise the simple popup.lua APIsNat Goodspeed
2024-06-21Merge pull request #1827 from Ansariel/develop-mergefixBrad Linden
Fix some BOOL oversights during WebRTC merge
2024-06-21Merge pull request #1824 from Ansariel/developBrad Linden
Fix texture fetch request getting canceled if request counter flips over
2024-06-21Remove pre-Floater.lua versions of the floater test scripts.Nat Goodspeed
2024-06-21login.lua works now, update test_login.lua accordingly.Nat Goodspeed
2024-06-21Introduce require/logout.lua and test_logout.lua.Nat Goodspeed
Add "userQuit" operation to LLAppViewerListener to engage LLAppViewer::userQuit(), which pops up "Are you sure?" prompt unless suppressed.
2024-06-21Multiple LL.atexit(function) calls run functions in reverse order.Nat Goodspeed
2024-06-21#1769 gltf optimization pass (#1816)Dave Parks
#1814 and #1517 Fix mirror update rate and occlusion culling
2024-06-21Fix some BOOL oversights during WebRTC mergeAnsariel
2024-06-21viewer#1821 Crash at getSessionID()Andrey Kleshchev
2024-06-21Add Appearance listenerMnikolenko Productengine
2024-06-21Use util.classctor(LLChatListener).Nat Goodspeed
2024-06-21Move newer Lua modules to scripts/lua/require subdirectory.Nat Goodspeed
2024-06-21Merge branch 'release/luau-scripting' into lua-loginNat Goodspeed
2024-06-21Merge pull request #1767 from secondlife/lua-chat-listenernat-goodspeed
Add nearby chat listener
2024-06-21Fix texture fetch request getting canceled if request counter flips overAnsariel
2024-06-21viewer#1808 Use bugsplat's setAttribute for app stateAndrey Kleshchev
2024-06-20Merge pull request #1791 from secondlife/brad/webrtc-voice-developBrad Linden
webrtc-voice merge to develop
2024-06-20Fixed incomplete merge in message_template.msg.sha1Brad Linden
2024-06-20Merge remote-tracking branch 'origin/develop' into brad/webrtc-voice-developBrad Linden
2024-06-20Merge remote-tracking branch 'origin/release/webrtc-voice' into ↵Brad Linden
brad/webrtc-voice-develop
2024-06-20Merge branch 'release/luau-scripting' into lua-chat-listenerNat Goodspeed
2024-06-20viewer-private#247 Retry loading missing textures for model uploadAndrey Kleshchev
in case user provided a texture later, after seeing a 'missing texture' error.
2024-06-20Use new popup.lua, which supersedes LLNotification.lua.Nat Goodspeed
Use ClassName(ctor args) for classes using util.classctor().
2024-06-20Merge branch 'release/luau-scripting' into lua-loginNat Goodspeed
2024-06-20Merge pull request #1297 from secondlife/lua-speedometer-demonat-goodspeed
Add demo script with idle and notification interactions
2024-06-20Revert LLLuaFloater "idle" events in favor of Lua timers.Timer().nat-goodspeed
2024-06-20Merge branch 'release/luau-scripting' into lua-speedometer-demoNat Goodspeed