summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-24SL-17663: Pass the water settings to the settings injector when an ↵Rider Linden
experience changes water settings.
2022-06-25SL-17628 Added attachments can be moved past limitAndrey Kleshchev
Support 'button up' when losing focus When releasing button far out of view or by refocusing something, button was not commiting. LLPanelObject last call was sendPosition(btn_down) with btn_down true which resulted in missed update. Now it will get one more call with btn_down==false.
2022-06-24Merged in SL-17329 (pull request #1036)Sabrina Shanman
SL-17329: Address Mac build error Approved-by: Andrey Lihatskiy
2022-06-24SL-17329: Remove unused extra variable initializationCosmic Linden
2022-06-24SL-17329: Address Mac build errorCosmic Linden
2022-06-24SL-17436 Tools floater drops negative Z position for attachmentsAndrey Kleshchev
2022-06-24Merged in SL-17329 (pull request #1035)Sabrina Shanman
SL-17329: Fix cache sizes due to overflow. Improve typing. Approved-by: Andrey Lihatskiy
2022-06-24SL-17329: Fix cache sizes due to overflow. Improve typing.Cosmic Linden
2022-06-23mac build fixMaxim Nikolenko
2022-06-23SL-17643 FIXED noninteractive viewer crashes on locations with parcel audioMnikolenko Productengine
2022-06-22SL-17021: Fix inconsistent header definition for LLAudioEngine_OpenALCosmic Linden
2022-06-22SL-17329: Increase percent of CacheSize allocated to the disk cache from 20% ↵Cosmic Linden
to 40%
2022-06-22SL-17329: Fix texture cache not respecting DiskCachePercentOfTotalCosmic Linden
2022-06-22SL-17329: Do logging of individual files after the disk cache purge finishes ↵Cosmic Linden
so it doesn't affect the time measurement. The time resolution of the debug log is in seconds, so it's not particularly useful. Arguably, one could remove this fine logging in favor of Tracy markers. Or have both. Depends on the use case.
2022-06-22SL-17329: Add advanced developer menu button to purge the disk cacheCosmic Linden
2022-06-22SL-17634 Replace deprecated carbon Gestalt callsMaxim Nikolenko
2022-06-22DRTVWR-564: Allow LLLeapListener to report LazyEventAPIs too.Nat Goodspeed
One important factor in the design of LazyEventAPI was the desire to allow LLLeapListener to query metadata for an LLEventAPI even if it hasn't yet been instantiated by LazyEventAPI. That's why LazyEventAPI requires the same metadata required by a classic LLEventAPI. Instead of just publicly exposing its data members, give LazyEventAPI a query API mimicking LLEventAPI / LLEventDispatcher. Protect data members and private methods. Adapt lazyeventapi_test.cpp accordingly. Extend LLLeapListener::getAPIs() and getAPI() to look through LazyEventAPIBase instances after first checking existing LLEventAPI instances. Because the query API for LazyEventAPIBase mimics LLEventAPI's, extract getAPI()'s actual metadata reporting to a new internal template function reportAPI(). While we're touching LLLeapListener, we no longer need BOOST_FOREACH().
2022-06-21DRTVWR-564: Per NickyD, need not test static_cast result for nullptr.Nat Goodspeed
2022-06-21SL-17590 Telehub beacon sometimes renders blackAndrey Kleshchev
2022-06-21DRTVWR-564: Remove implementation notes from before implementation.Nat Goodspeed
2022-06-21SL-17021: Change meaning of first argument to LLVOVolume::updateRiggedVolume ↵Cosmic Linden
from 'force_update' to 'foce_treat_as_rigged'
2022-06-21SL-17021: Only calculate the octree for a skinned mesh if intersection falls ↵Cosmic Linden
inside an on-the-fly calculated bounding box. Technically not a broadphase check, but better than calculating an octree for a bunch of meshes.
2022-06-21SL-17021: Do not do software skinning/octree building of a face during ↵Cosmic Linden
picking unless eligible for narrow-phase intersect check (fast broad-phase intersect pre-check not yet implemented)
2022-06-21SL-17021: Fix triangle mesh overlays being generated twice when avatar ↵Cosmic Linden
animation is frozen
2022-06-21SL-17021: Templatize LLOctreeNode and related classes to allow for option to ↵Cosmic Linden
store elements in octrees as raw pointers. Use for faster allocation in LLVolumeFace::createOctree.
2022-06-21SL-17021: Clean up some unneeded member variables from lloctreeCosmic Linden
No performance difference measured
2022-06-21DRTVWR-564: Fix LLEventDispatcher::addMethod() for LazyEventAPI.Nat Goodspeed
A classic LLEventAPI subclass calls LLEventDispatcher::add() methods in its own constructor. At that point, addMethod() can reliably dynamic_cast its 'this' pointer to the new subclass. But because of the way LazyEventAPI queues up add() calls, they're invoked in the (new) LLEventAPI constructor itself. The subclass constructor body hasn't even started running, and LLEventDispatcher::addMethod()'s dynamic_cast to the LLEventAPI subclass returns nullptr. addMethod() claims the new subclass isn't derived from LLEventDispatcher, which is confusing since it is. It works to change addMethod()'s dynamic_cast to static_cast. Flesh out lazyeventapi_test.cpp. post() maps with "op" keys to actually try to engage the registered operation. Give the operation an observable side effect; use ensure_mumble() to verify. Also verify that LazyEventAPI has captured the subject LLEventAPI's metadata in a way we can retrieve.
2022-06-21DRTVWR-564: We don't need LLEventAPI to befriend LazyEventAPI.Nat Goodspeed
2022-06-21SL-17635 remove unused variablesMaxim Nikolenko
2022-06-20Cleanup dependency on ui libraries.Nicky
2022-06-20SL-17633 Crash at LLFocusableElementAndrey Kleshchev
2022-06-20SL-14181 Classifieds show 'loading' despite all data being ready after ↵Andrey Kleshchev
deleting a classified
2022-06-20SL-17624 In profiles 'Remove Photo' remains inactive after uploading a photoAndrey Kleshchev
2022-06-20SL-17585 Don't bother users with dialogs if we are already quitingAndrey Kleshchev
2022-06-18DRTVWR-564: WIP: Add LazyEventAPI and tests. Tests don't yet pass.Nat Goodspeed
LazyEventAPI is a registrar that implicitly instantiates some particular LLEventAPI subclass on demand: that is, when LLEventPumps::obtain() tries to find an LLEventPump by the registered name. This leverages the new LLEventPumps::registerPumpFactory() machinery. Fix registerPumpFactory() to adapt the passed PumpFactory to accept TypeFactory parameters (two of which it ignores). Supplement it with unregisterPumpFactory() to support LazyEventAPI instances with lifespans shorter than the process -- which may be mostly test programs, but still a hole worth closing. Similarly, add unregisterTypeFactory(). A LazyEventAPI subclass takes over responsibility for specifying the LLEventAPI's name, desc, field, plus whatever add() calls will be needed to register the LLEventAPI's operations. This is so we can (later) enhance LLLeapListener to consult LazyEventAPI instances for not-yet-instantiated LLEventAPI metadata, as well as enumerating existing LLEventAPI instances. The trickiest part of this is capturing calls to the various LLEventDispatcher::add() overloads in such a way that, when the LLEventAPI subclass is eventually instantiated, we can replay them in the new instance. LLEventAPI acquires a new protected constructor specifically for use by a subclass registered by a companion LazyEventAPI. It accepts a const reference to LazyEventAPIParams, intended to be opaque to the LLEventAPI subclass; the subclass must declare a constructor that accepts and forwards the parameter block to the new LLEventAPI constructor. The implementation delegates to the existing LLEventAPI constructor, plus it runs deferred add() calls. LLDispatchListener now derives from LLEventStream instead of containing it as a data member. The reason is that if LLEventPumps::obtain() implicitly instantiates it, LLEventPumps's destructor will try to destroy it by deleting the LLEventPump*. If the LLEventPump returned by the factory function is a data member of an outer class, that won't work so well. But if LLDispatchListener (and by implication, LLEventAPI and any subclass) is derived from LLEventPump, then the virtual destructor will Do The Right Thing. Change LLDispatchListener to *not* allow tweaking the LLEventPump name. Since the overwhelming use case for LLDispatchListener is LLEventAPI, accepting but silently renaming an LLEventAPI subclass would ensure nobody could reach it. Change LLEventDispatcher's use of std::enable_if to control the set of add() overloads available for the intended use cases. Apparently this formulation is just as functional at the method declaration point, while avoiding the need to restate the whole enable_if expression at the method definition point. Add lazyeventapi_test.cpp to exercise.
2022-06-18DRTVWR-564: Add LL::apply(): call function, passing args from tuple.Nat Goodspeed
This anticipates C++17's std::apply(), and in fact once we detect C++17, we'll just use that. But in C++14 we must still provide our own implementation.
2022-06-17SL-17614 Crash at settings_setup_listenersAndrey Kleshchev
Likely a corrupted install, warn user to reinstall viewer
2022-06-17SL-17585 Ensure nothing went wrong with installation during 'File' operationsAndrey Kleshchev
2022-06-17SL-17589 FIXED Camera does not zoom correctly when editing wearablesMnikolenko Productengine
2022-06-17SL-17585 Crash at LLAppViewer::initConfigurationAndrey Kleshchev
2022-06-16SL-17562 FIXED Grid Options changes position upon reopening of Build WindowMnikolenko Productengine
2022-06-16SL-17475 Fix wrong remap buffer sizeAndrey Kleshchev
2022-06-15DRTVWR-564: Merge branch 'pick-eventapi' into lazy-eventpumpNat Goodspeed
to pick up generalized LLEventAPI add() methods and softer error handling.
2022-06-15DRTVWR-558: Generalize LLEventDispatcher::add() constraints.Nat Goodspeed
Instead of checking whether an add() parameter is exactly LLSD or LLSDMap, check whether it's convertible to LLSD -- which handles those cases and more. (cherry picked from commit fa168c11f64771dadc5df86d14ca2f07eba3b8ba)
2022-06-15DRTVWR-558: LLEventAPI allows all LLEventDispatcher add() overloads.Nat Goodspeed
Previously, LLEventAPI intentionally hid all but one of the many add() overloads supported by its LLEventDispatcher base class. The reason was that certain of the add() methods take an optional fourth parameter that's an LLSD::Map describing the expected parameter structure, while others take a fourth templated parameter that's an instance getter callable. This led to ambiguity, especially when passed an LLSDMap instance that's convertible to LLSD but isn't literally LLSD. At the time, it was simpler to constrain the add() methods inherited from LLEventDispatcher. But by adding new std::enable_if constraints to certain LLEventDispatcher add() methods, we've resolved the ambiguities, so LLEventAPI subclasses can now use any add() overload (as claimed on the relevant Confluence page). LLEventDispatcher comments have always loftily claimed that an instance getter callable may return either a pointer or a reference, doesn't matter. But it does when trying to pass the getter's result to boost::fusion::push_back(): a reference must be wrapped with std::ref() while a pointer cannot be. std::ref(pointer) produces errors. Introduce LLEventDispatcher::invoker:: bindable() overloads to Do The Right Thing whether passed a pointer or a reference. (cherry picked from commit 743f487c2e123171c9fc6d5b84d768f1d856d569)
2022-06-15DRTVWR-558: Change LLEventDispatcher error action (also LLEventAPI).Nat Goodspeed
Originally the LLEventAPI mechanism was primarily used for VITA testing. In that case it was okay for the viewer to crash with LL_ERRS if the test script passed a bad request. With puppetry, hopefully new LEAP scripts will be written to engage LLEventAPIs in all sorts of interesting ways. Change error handling from LL_ERRS to LL_WARNS. Furthermore, if the incoming request contains a "reply" key, send back an error response to the requester. Update lleventdispatcher_test.cpp accordingly. (cherry picked from commit de0539fcbe815ceec2041ecc9981e3adf59f2806)
2022-06-15DRTVWR-564: WIP: add LLEventPumps::registerPumpFactory()Nat Goodspeed
and registerTypeFactory(). Untested. This will support registering just-in-time LLEventAPI instances, instantiated on demand.
2022-06-15SL-17584 Frame buffer object is now nessesary to run viewerAndrey Kleshchev
2022-06-15SL-17577 Allow setting Object for sale for L$0 from Object ProfileMnikolenko Productengine
2022-06-15SL-17584 Make setShaders crashes more informativeAndrey Kleshchev