summaryrefslogtreecommitdiff
path: root/indra
AgeCommit message (Collapse)Author
2023-07-19SL-20036: Set probe ambiance to 0 for legacy middayCosmic Linden
2023-07-19SL-20015 wait for the outfit items to load before wearing itMaxim Nikolenko
2023-07-19DRTVWR-559 Fix for shadows not respecting double sided on opaque PBR surfacesRunitaiLinden
2023-07-19Merge branch 'DRTVWR-559' of github.com:secondlife/viewer into DRTVWR-559RunitaiLinden
2023-07-19SL-19977 Fix for glow not getting applied to both sides of double sided alphaRunitaiLinden
2023-07-18Merge pull request #292 from secondlife/brad/DRTVWR-559-xcode-14.3Brad Linden
Merge xcode-14.3 compatibility branch into DRTVWR-559
2023-07-18Merge remote-tracking branch 'origin/xcode-14.3' into DRTVWR-559 (#292)Brad Linden
2023-07-18Merge pull request #291 from secondlife/SL-20018cosmic-linden
SL-20018: Fix PBR glow affected by Blinn-Phong alpha
2023-07-18SL-20018: Fix PBR glow affected by Blinn-Phong alphaCosmic Linden
2023-07-18SL-5161 SL-20025 Unref volumeAndrey Kleshchev
2023-07-18SL-18837: Try waiting a couple seconds before hdiutil detachNat Goodspeed
to try to avoid "Resource busy" errors from hdiutil.
2023-07-18SL-19953 Change label of alpha value in GLTF material editor to "Alpha"RunitaiLinden
2023-07-18Merge branch 'DRTVWR-559' of github.com:secondlife/viewer into DRTVWR-559RunitaiLinden
2023-07-18SL-19954 Fix for rigged alpha pbr sometimes not getting reflection probe ↵RunitaiLinden
parameters
2023-07-18Merge pull request #280 from secondlife/dispatch-maint-v2nat-goodspeed
Major improvements to LLLeap functionality
2023-07-18SL-18837: Ditch inactive llrand.cpp LL_USE_SYSTEM_RAND code.Nat Goodspeed
LL_USE_SYSTEM_RAND has been disabled since June 2008; that code only clutters the implementation we actually use.
2023-07-18Fixes for compatibility with new xcode 15 beta for any viewer branch after ↵Brad Linden
DRTVWR-577 (#232)
2023-07-18SL-19891 Make sure focusable elements clear focus on destructionAndrey Kleshchev
2023-07-17DRTVWR-559 fix for lines lost in the mergeBrad Linden
2023-07-17Delete unprintable chars that accidentally got into the merge in kdiff3 for ↵Brad Linden
DRTVWR-559
2023-07-17SL-18837: Lowercasing pathname for string compare is Windows-only.Nat Goodspeed
2023-07-17Merge pull request #285 from secondlife/marchcat/SL-19669marchcat-pe
INTL-490 Japanese Translation Update
2023-07-17Merge remote-tracking branch 'origin/main' into DRTVWR-559Brad Linden
2023-07-17Merge branch 'main' (DRTVWR-580) into DRTVWR-567Andrey Kleshchev
# Conflicts: # indra/llui/llfolderviewitem.cpp # indra/newview/llinventorymodel.cpp # indra/newview/llinventorymodelbackgroundfetch.cpp
2023-07-17SL-18837: Clean up some redundancy in llrand.cpp.Nat Goodspeed
2023-07-17Merge branch 'main' (DRTVWR-580) into DRTVWR-587-maint-VAndrey Kleshchev
2023-07-17Merge branch 'DRTVWR-580-maint-T' into DRTVWR-582-maint-UAndrey Lihatskiy
2023-07-17Merge branch 'main' into DRTVWR-582-maint-UAndrey Lihatskiy
# Conflicts: # doc/contributions.txt # indra/llcommon/llerrorthread.cpp
2023-07-17Increment viewer version to 6.6.14Nat Goodspeed
following promotion of DRTVWR-580
2023-07-17SL-18837: Merge branch 'actions' into actions-build-shNat Goodspeed
2023-07-17SL-19995 FIXED The context menu is not fully displayed for the navigation barMaxim Nikolenko
2023-07-17SL-19306 A method of displaying user-customized keybindings in user-visible textAndrey Kleshchev
2023-07-15SL-20011 Restrict 'Empty Trash' if objects are attachedMaxim Nikolenko
2023-07-14Fix crash SL-20013 crash when applying nocopy material via drag-and-dropBrad Linden
2023-07-14Fix some spacingRoxie Linden
2023-07-13SL-20009 - race condition - calling cards could be created without nameRoxie Linden
This happens when a calling card is created before the name is in the name cache.
2023-07-13DRTVWR-558: Constrain LL::apply()'s use of std::apply().Nat Goodspeed
Once std::apply() becomes available, 'using std::apply;' isn't correct because the more general template tries to handle the apply(function, vector) case that we explicitly implement below. Have to provide apply(function, tuple) and apply(function, array) signatures that can forward to std::apply().
2023-07-13DRTVWR-558: Fix a few lleventdispatcher_test merge glitches.Nat Goodspeed
2023-07-13Fixed failure to open Material Editor when creating or uploading a new materialBrad Linden
found this warning found while working on SL-19999
2023-07-13SL-19999 stop outputing debug info about created material asset id unnecessarilyBrad Linden
2023-07-13DRTVWR-587: Merge branch 'DRTVWR-587-maint-V' into dispatch-maint-v2Nat Goodspeed
2023-07-13DRTVWR-558: Avoid extra copy of getMetadata() LLSD map.Nat Goodspeed
(cherry picked from commit 2c1253c8ed2a1648317e6edd768b3fda00c56ce2)
2023-07-13DRTVWR-558: Fix LLEventDispatcher::addMethod() for LazyEventAPI.Nat Goodspeed
addMethod() was using dynamic_cast<target class*>(this) and testing for nullptr to decide whether the class owning the passed method is, or is not, a subclass of LLEventDispatcher. The trouble is that it doesn't work for the deferred add() calls queued by LazyEventAPI: the dynamic_cast was always returning nullptr. static_cast works better, but that leaves us with the problem we were trying to solve with dynamic_cast: what if the target class really isn't a subclass? Use std::is_base_of to pick which of two addMethod() overloads to invoke, one of which calls addFail(). (cherry picked from commit a4d520aa5d023d80cfeec4f40c3464b54cbcfc5b)
2023-07-13DRTVWR-558: Fix const-ness glitch in LL::apply(func, tuple)Nat Goodspeed
std::get<I>(const tuple) injects const into the type of each returned tuple element. Need to get a non-const ref to the tuple param to get the true type. (cherry picked from commit 6dda39065d3ee231998cb8a2896f94e8a45c9a82)
2023-07-13DRTVWR-558: Fix merge glitch: missing LLEventDispatcher::addFail()Nat Goodspeed
(cherry picked from commit 3be250da90dd3d361df713056b881e017684e2b3)
2023-07-13DRTVWR-558: Nail down LLDispatchListener exception handlingNat Goodspeed
for exceptions other than those thrown by base-class LLEventDispatcher. Explain in LLDispatchListener Doxygen comments that for a request lacking a "reply" key, any exception is allowed to propagate because it's likely to reach the post() call that triggered the exception in the first place. For batch LLDispatchListener operations, catch not only LLEventDispatcher:: DispatchError exceptions but any std::exception, so we can collect them to report to the invoker. "Gotta catch 'em all!" Make LLLeap catch any std::exception thrown by processing a request from the plugin child process, log it and send a reply to the plugin. No plugin should be allowed to crash the viewer. (cherry picked from commit 94e10fd039b79f71ed8d7e10807b6e4eebd1928c)
2023-07-13DRTVWR-558: Enrich LLEventDispatcher::callFail() with current call.Nat Goodspeed
Now an LLEventAPI subclass method can call callFail(...) to report an error, and the error will be annotated with the leaf class name, the instance name and the way the method was reached. The enriched error message will be logged and either sent back to the invoker or propagated as an exception, depending on the invocation tactic. In other words, a business method can use callFail() to Do The Right Thing according to the LLEventDispatcher contract. Introduce a nested SetState RAII class to set and clear transient state. SetState's constructor accepts variadic stringize() arguments. The resulting message is passed to LLEventDispatcher::setState(), which requires a SetState reference because ONLY SetState should call setState(): state data really is intended to be transient. SetState guarantees it will be cleared every time it's set. setState() respects previously-set transient state. If a call from an inner function finds that transient state was already set by some ancestor, it ignores the call and informs the caller by returning false. This lets a given SetState instance recognize whether it is responsible for clearing the current transient state. operator<<(std::ostream&, const LLEventDispatcher&) now appends getState() to the data reported by streaming *this. Non-static LLEventDispatcher::callFail() already prepends *this to the reported error message. Transient state is managed by a fiber_specific_ptr, since different threads and even different fibers within a thread might be concurrently performing different operations on the same LLEventDispatcher. Introduce a back pointer to the parent LLEventDispatcher in DispatchEntry. Populate it with a new constructor parameter, propagated through every subclass constructor. Hoist ParamsDispatchEntry::callFail() up into its DispatchEntry base class. Make it call non-static LLEventDispatcher:: callFail(), which prepends the reported error with instance and transient state info. Use DispatchEntry::callFail() in LLSDDispatchEntry::call(), instead of redundantly calling LLEventDispatcher::callFail(). Similarly, introduce an LLEventDispatcher back pointer into LLSDArgsMapper for use by its own callFail() method. The above should (!) eliminate the need to replicate LLEventDispatcher instance info into every helper object's descriptive strings. In particular, since the previous info was stored in each object by its constructor, it couldn't report associated transient information about how the subject callable was actually reached. Traversing a back pointer to the live LLEventDispatcher instance gets us the most current state. Make the internal three-argument LLEventDispatcher::try_call() method, which implements each of the operator()() and public try_call() methods, use SetState to append "[name]" (for explicit operator()(name, event) calls) or "[key=name]" (for implicit operator()(event) calls) to streamed *this. In the new LLDispatchListener request array and request map operations, use SetState to indicate the current entry in the array or map, overriding the lower-level state set by three-argument LLEventDispatcher::try_call(). (cherry picked from commit 2f8d7d20f43ab411ea0fe8b756cb696954acfb3e)
2023-07-13DRTVWR-558: Extend LLEventDispatcher::add() overloads.Nat Goodspeed
Add LL::always_return<T>(), which takes a callable and variadic arguments. It calls the callable with those arguments and, if the returned type is convertible to T, converts it and returns it. Otherwise it returns T(). always_return() is generalized from, and supersedes, LLEventDispatcher::ReturnLLSD. Add LL::function_arity<CALLABLE>, which extends boost::function_types::function_arity by reporting results for both std::function<CALLABLE> and boost::function<CALLABLE>. Use for LL::apply(function, LLSD array) as well as for LLEventDispatcher. Make LLEventDispatcher::add() overloads uniformly distinguish between a callable (whether non-static member function or otherwise) that accepts a single LLSD parameter, versus any other signature. Accepting exactly one LLSD parameter signals that the callable will accept the composite arguments LLSD blob, instead of asking LLEventDispatcher to unpack the arguments blob into individual arguments. Support add(subclass method) overloads for arbitrary-parameters methods as well as for (const LLSD&) methods. Update tests accordingly: we need no longer pass the boilerplate lambda instance getter that binds and returns 'this'. Extract to the two LLEventDispatcher::make_invoker() overloads the LL::apply() logic formerly found in ReturnLLSD. Change lleventdispatcher_test.cpp tests from boost::bind(), which accepts variadic arguments (even though it only passes a fixed set to the target callable), to fixed-signature lambdas. This is because the revamped add() overloads care about signature. Add a test for a non-static method that accepts (const LLSD&), in other words the composite arguments LLSD blob, and likewise returns LLSD. (cherry picked from commit 95b787f7d7226ee9de79dfc9816f33c8bf199aad)
2023-07-13DRTVWR-558: Add tests for batched LLDispatchListener operations.Nat Goodspeed
Specifically, add tests for: - successful map batch - map batch with some errors and a reply pump - map batch with some errors and no reply - successful array batch - array batch with some errors and a reply pump - array batch with some errors and no reply (cherry picked from commit 078f0f5c9fb5075a8ad01cac417e1d7ee2b6a919)
2023-07-13DRTVWR-558: Make DispatchResult methods use their arguments.Nat Goodspeed
Fix lleventdispatcher_test.cpp's test class DispatchResult::strfunc(), intfunc(), mapfunc() and arrayfunc() to return values derived from (not identical to) their arguments, so we can reuse these functions for further testing of passing arguments to a named callable. Adjust existing tests accordingly. (cherry picked from commit 07e09a8daea008d28b97399920db60a147cf75c0)