summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-09-26Fix GCC ambiguous-reversed-operator errors for `LLKeyData` compares.Nat Goodspeed
`LLKeyData::operator==(const LLKeyData&)` and `operator!=(const LLKeyData&)` were not themselves `const` methods. In C++20, that can produce a fatal warning that if the compare operands were reversed, you'd get different results. Making them both `const` should fix it. While touching the method definitions, make `operator==()` more intuitive, and make `operator!=()` simply negate `operator==()` instead of restating it in reverse.
2024-09-26Ditch our own (conflicting) definition of the lerp() function.Nat Goodspeed
Hoist `std::lerp()` into the global namespace instead.
2024-09-26#include <cmath> rather than "math.h" to avoid lerp() conflict.Nat Goodspeed
GCC on Linux complains that "math.h", which hoists all the standard library math functions into the global namespace for classic C compatibility, creates a conflict between `std::lerp()` and the `lerp()` function in llmath.h. (Perhaps we should just replace our `lerp()` definition with `using std::lerp;`) Anyway, bringing in <cmath> rather than "math.h" leaves standard library math functions in the `std` namespace, avoiding the conflict.
2024-09-26Fix a few more fsyspath conversions, removing explicit u8string().Nat Goodspeed
2024-09-25Adapt `fsyspath` for C++20 conventions.Nat Goodspeed
In C++20, `std::filesystem::u8path()` (that accepts a UTF-8 encoded `std::string` and returns a `std::filesystem::path`) is deprecated. Instead, to engage UTF-8 coding conversions, we're supposed to pass the `path` constructor a `std::u8string`, i.e. a `std::basic_string<char8_t>`. Since `char8_t` is a type distinct from both `char` and `unsigned char`, we must Do Something to pass a UTF-8 encoded `std::string` into `std::filesystem::path`. To avoid copying characters from a `std::string` into a temporary `std::u8string` and from there into the `std::filesystem::path`, make a `boost::transform_iterator` that accepts a `std::string_view::iterator` and adapts it to dereference `char8_t` characters. Make `fsyspath(std::string_view)` engage the base-class constructor accepting (iterator, iterator), adapting `string_view::begin()` and `end()` to deliver `char8_t` characters. Use the same tactic for `fsyspath::operator=(std::string_view)`, explicitly calling `std::filesystem::path::assign()` with the adapted iterators. To resolve ambiguities, provide both constructors and assignment operators accepting `(const std::string&)` and `(const char*)`, explicitly converting each to `std::string_view`. At the same time, `std::filesystem::path::u8string()` now returns `std::u8string` rather than `std::string`. Since `std::filesystem::path` delivers only that `std::u8string` rather than iterators into its internal representation, we can't avoid capturing it and copying to the returned `std::string`. Remove explicit `.u8string()` calls from a few existing `fsyspath` instances, now that `fsyspath` supports implicit conversion to `std::string`.
2024-09-25Merge branch 'develop' into marchcat/xcode-16Nat Goodspeed
2024-09-25Merge pull request #2681 from secondlife/nat/xcode-16Andrey Lihatskiy
Generalize LLPointer's comparison operators to allow comparable LLPointer types.
2024-09-25Explain why apparently redundant LLPointer methods are necessary.Nat Goodspeed
Given templated constructors and assignment operators, it's tempting to remove specific constructors and assignment operators with the same LLPointer<Type> parameters. That turns out to be a mistake. Add comments to warn future maintainers.
2024-09-25Use copy-and-swap idiom for LLPointer's assignment operators.Nat Goodspeed
This affords strong exception safety. Also, eliminating the conditional may improve speed.
2024-09-24LLConstPointer<T> is the same as LLPointer<const T>.Nat Goodspeed
Instead of restating the whole class, requiring changes to be made in parallel (which has already failed), just make a template alias.
2024-09-24Make `LLPointer` equality comparisons accept not-identical types.Nat Goodspeed
That is, both `LLPointer::operator==()` and `operator!=()` and the free function `operator==()` and `operator!=()` now accept pointer types other than the type of the subject `LLPointer`, letting the compiler apply implicit pointer conversions or diagnose an error.
2024-09-24#2559 No mouseover if a link is embedded with an emojiAlexander Gavriliuk
2024-09-24Merge pull request #2534 from secondlife/release/luau-scriptingnat-goodspeed
Add Lua scripting to develop, behind feature flag
2024-09-24Merge pull request #2661 from Ansariel/develop-viewerdisplay-improvementsAndrey Lihatskiy
Performance improvements and cleanup in llviewerdisplay.cpp
2024-09-24Reduce memory allocations pinging the mainloop timeoutAnsariel
2024-09-24Performance improvements and cleanup in llviewerdisplay.cppAnsariel
2024-09-23Merge remote-tracking branch 'origin/release/2024.09-ExtraFPS' into developBrad Linden
2024-09-23Merge pull request #2652 from secondlife/lua-merge-dev2nat-goodspeed
Merge develop into release/luau-scripting
2024-09-23Fix sky settings with reflection probe ambiance of 0 still receiving ↵Brad Linden
tonemapping (#2659) Co-authored-by: Rye Cogtail <rye@lindenlab.com>
2024-09-23Merge remote 'release/luau-scripting' into release/luau-scriptingNat Goodspeed
2024-09-24Restore WebRTC shutdown fix (#2658)Ansariel Hiller
2024-09-23include <utility> for Linux: std::forward is not predefinedNat Goodspeed
2024-09-23Merge remote branch 'develop' into release/luau-scripting for Maint BNat Goodspeed
2024-09-23Merge pull request #940 from secondlife/release/maint-bBrad Linden
Maintenance B merges into develop
2024-09-23Merge pull request #2657 from secondlife/marchcat/b-developAndrey Lihatskiy
develop → Maint B sync
2024-09-23Turn off tracy on linux to unbreak the build.Brad Linden
2024-09-23Merge branch 'develop' into marchcat/b-developAndrey Lihatskiy
# Conflicts: # indra/newview/llfeaturemanager.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/llvoicewebrtc.cpp
2024-09-23Merge remote branch 'develop' into release/luau-scriptingNat Goodspeed
2024-09-23viewer#2627 instead of checking map for being empty got empty mapAndrey Kleshchev
2024-09-23Merge pull request #2635 from secondlife/lua-script-argsnat-goodspeed
Add ability to pass command-line arguments to a Lua script.
2024-09-23viewer#2631 Optimize LLWearable::writeToAvatarAndrey Kleshchev
2024-09-23viewer#2631 Couple small tweaksAndrey Kleshchev
2024-09-23Merge remote branch 'develop'into release/luau-scriptingNat Goodspeed
2024-09-23Merge pull request #2636 from secondlife/profile-cmp-revnat-goodspeed
Reverse the sort order for profile_cmp.py
2024-09-23Merge remote branch 'lua-script-args' into lua-script-argsNat Goodspeed
2024-09-23Make frame_profile bash script find its workarea's viewer build.Nat Goodspeed
2024-09-23Use Lua command-line args to make frame_profile_quit.lua generic.Nat Goodspeed
Now the location to which to teleport and the camera focus point can both be specified by the caller, in this case the frame_profile bash script.
2024-09-23#2626 fix for incoming IM calls not being rejected when DND mode is activeMaxim Nikolenko
2024-09-22#2618 Roles and Members tab is a messAlexander Gavriliuk
2024-09-21#2618 Roles and Members tab is a mess (show ctrl pos in debug views)Alexander Gavriliuk
2024-09-21#2618 Roles and Members tab is a mess (fix XML indents for readability)Alexander Gavriliuk
2024-09-21Improve inventory finder floater performance: Don't parse XUI tree each ↵Ansariel Hiller
frame (#2640)
2024-09-20Reverse the sort order for profile_cmp.pyNat Goodspeed
to put the biggest performance hits at the top of the list.
2024-09-20Fix trailing spaces.Nat Goodspeed
2024-09-20Update test for changed message in error case.Nat Goodspeed
2024-09-20Merge branch 'release/luau-scripting' into lua-script-argsNat Goodspeed
2024-09-20Add ability to pass command-line arguments to a Lua script.Nat Goodspeed
Introduce `ScriptCommand` class that parses a command line into a script name and optional args, using bash-like quoting and escaping. `ScriptCommand` searches for a file with that script name on a passed list of directories; the directories may be specified relative to a particular base directory. `ScriptCommand` supports the special case of a script name containing unescaped spaces. It guarantees that either the returned script file exists, or its `error()` string is non-empty. Replace `LLLeap::create()` logic, from which `ScriptCommand` was partly derived, with a `ScriptCommand` instance. Make `LLLUAmanager::runScriptFile()` use a `ScriptCommand` instance to parse the passed command line. Subsume `LLAppViewer::init()` script-path-searching logic for `--luafile` into `ScriptCommand`. In fact that lambda now simply calls `LLLUAmanager::runScriptFile()`. Make `lluau::dostring()` accept an optional vector of script argument strings. Following PUC-Rio Lua convention, pass these arguments into a Lua script as the predefined global `arg`, and also as the script's `...` argument. `LuaState::expr()` also accepts and passes through script argument strings. Change the log tag for the Lua script interruption message: if we want it, we can still enable it, but we don't necessarily want it along with all other "Lua" DEBUG messages. Remove `LuaState::script_finished_fn`, which isn't used any more. Also remove the corresponding `LLLUAmanager::script_finished_fn`. This allows us to simplify `~LuaState()` slightly, as well as the parameter signatures for `LLLUAmanager::runScriptFile()` and `runScriptLine()`.
2024-09-20Merge pull request #2623 from secondlife/v-2462cosmic-linden
secondlife/viewer#2462: Optimize unloading of prims
2024-09-20Restore option to change location of existing pick (#2622)Ansariel Hiller
2024-09-20Merge pull request #2630 from RyeMutt/fix-legacy-skiesRye Mutt
Fix sky settings with reflection probe ambiance of 0 still receiving tonemapping