Age | Commit message (Collapse) | Author |
|
added -Wno-error=unused-result to the target collada14dom.
|
|
|
|
Fix build.
|
|
the similar one
|
|
result_view(key_length, fetch) returns a virtual view of a potentially-large
C++ result set. Given the result-set key, its total length and a function
fetch(key, start) => (slice, adjusted start), the read-only table returned by
result_view() manages indexed access and table iteration over the entire
result set, fetching a slice at a time as required.
Change LLInventory to use result_view() instead of only ever fetching the
first slice of a result set.
TODO: This depends on the viewer's "LLInventory" listener returning the total
result set length as well as the result set key. It does not yet return the
length.
|
|
inventorymodelbackgroundfetch code. (#2476)
|
|
That is, our replacement `pairs()` forwards the call to built-in `pairs()`
when the passed object has no `__iter()` metamethod. Similarly, our
replacement `ipairs()` forwards to built-in `ipairs()` when the passed object
has no `__index()` metamethod.
This allows for the possibility that the built-in `pairs()` and `ipairs()`
functions engage more efficient implementations than the obvious ones.
|
|
* check for minizip (not minizip-ng) on Linux (Debian)
* added find_package(Boost REQUIRED CONFIG) in collada-dom build
for Linux and FreeBSD
|
|
|
|
2024.08-DeltaFPS
|
|
chat notification, and change the default channel to 751751.
|
|
now that they don't have collada dom to pull them in automatically.
|
|
|
|
illustration
|
|
fixes secondlife/viewer#2474
|
|
Build collada-dom in the build stage for Linux and FreeBSD
|
|
2024.08-DeltaFPS
|
|
|
|
repository.
|
|
|
|
|
|
Specifically, make pairs(obj) honor obj's __iter() metamethod if any.
Make ipairs(obj) honor obj's __index() metamethod, if any. Given the semantics
of the __index() metamethod, though, this only works for a proxy table if the
proxy has no array entries (int keys) of its own.
|
|
Clone the repository by git and make it a cmake submodule.
|
|
Introduce abstract base class InvResultSet, derived from LLIntTracker so each
instance has a unique int key. InvResultSet supports virtual getLength() and
getSlice() operations. getSlice() returns an LLSD array limited to
MAX_ITEM_LIMIT result set entries. It permits retrieving a "slice" of the
contained result set starting at an arbitrary index. A sequence of getSlice()
calls can eventually retrieve a whole result set.
InvResultSet has subclasses CatResultSet containing cat_array_t, and
ItemResultSet containing item_array_t. Each implements a virtual method that
produces an LLSD map from a single array item.
Make LLInventoryListener::getItemsInfo(), getDirectDescendants() and
collectDescendantsIf() instantiate heap CatResultSet and ItemResultSet objects
containing the resultant LLPointer arrays, and return their int keys for
categories and items.
Add LLInventoryListener::getSlice() and closeResult() methods that accept the
int keys of result sets. getSlice() returns the requested LLSD array to its
caller, while closeResult() is fire-and-forget.
Because bulk data transfer is now performed by getSlice() rather than by
collectDescendantsIf(), change the latter's "limit" default to unlimited.
Allow the C++ code to collect an arbitrary number of LLPointer array entries,
as long as getSlice() limits retrieval overhead.
Spell "descendants" correctly, unlike the "descendents" spelling embedded in
the rest of the viewer... sigh. Make the Lua module provide both spellings.
Make MAX_ITEM_LIMIT a U32 instead of F32.
In LLInventory.lua, store int result set keys from 'getItemsInfo',
'getDirectDescendants' and 'collectDescendantsIf' in a table with a close()
function. The close() function invokes 'closeResult' with the bound int keys.
Give that table an __index() metamethod that recognizes only 'categories' and
'items' keys: anything else returns nil. For either of the recognized keys,
call 'getSlice' with the corresponding result set key to retrieve (the initial
slice of) the actual result set. Cache that result. Lazy retrieval means that
if the caller only cares about categories, or only about items, the other
result set need never be retrieved at all.
This is a first step: like the previous code, it still retrieves only up to
the first 100 result set entries. But the C++ code now supports retrieval of
additional slices, so extending result set retrieval is mostly Lua work.
Finally, wrap the table-with-metamethod in an LL.setdtor() proxy whose
destructor calls its close() method to tell LLInventoryListener to destroy the
CatResultSet and ItemResultSet with the bound keys.
|
|
|
|
and replace it with direct dependencies on Minizip and PCRE.
|
|
by managing to compile LL's ColladaDOM 2.3 on-the-fly.
|
|
on macOS arm64, the header directory.
|
|
Spaces are really just troublesome in argument passing. They can't
really be escaped, quoting from -D would even replace spaces with
semicolons. Hence making use of every variable that can be used in
Collada DOM's CMakeLists.txt.
|
|
This reverts commit 3bba39cf3e4d56da5aba883479539ed89fa578b9.
|
|
|
|
So that colladadom_installed won't throw USESYSTEMLIBS to the next
scope.
Also libpcrecpp_LIBRARIES doesn't take spaces (might work by escaping
the quotes, but only 1 pcrecpp needed anyway).
|
|
Turns out getting 2.3 compiled on those platforms need a lot more
attention.
Apart from that, the compilation result variable name got fixed,
the prebuilt include directory got fixed, and pkg-config-ing minizip,
libpcrecpp and libxml-2.0 so we can make have generic variable arguments
to pass to Collada DOM's CMake settings.
|
|
The point of LLIntTracker is to generate its keys implicitly, so that its int
getKey() can be treated more or less like an instance pointer, with the added
bonus that the key can be passed around via LLSD.
LLIntTracker generates random int keys to try to make it a little harder for
one script to mess with an LLIntTracker instance belonging to another.
|
|
One could argue that LLInstanceTracker is a container of sorts, and erase() is
more conventional. This affects no other code, as destruct() is not currently
referenced.
|
|
to control tonemap mix (#2464) (#2468)
|
|
Add Lua api to start/stop playing animation
|
|
secondlife/viewer#2448: Fix crash rendering rigged PBR prims
|
|
|
|
|
|
|
|
https://megapahit.com/show_bug.cgi?id=76
It seems like we have to use LL's Collada DOM 2.3.
Make sure minizip is installed on macOS.
It should be safe to uninstall your system Collada DOM package now.
The CMake arguments might have to be completed for non-Darwin
platforms in a next commit.
|
|
Destination field
|
|
|
|
|
|
As if it was the user typing "/157157 Now playing blabla".
|
|
Replace the global next(), pairs() and ipairs() functions with a C++ function
that drills down through layers of setdtor() proxy objects and then forwards
the updated arguments to the original global function.
Add a Luau __iter() metamethod to setdtor() proxy objects that, like other
proxy metamethods, drills down to the underlying _target object. __iter()
recognizes the case of a _target table which itself has a __iter() metamethod.
Also add __idiv() metamethod to support integer division.
Add tests for proxy // division, next(proxy), next(proxy, key), pairs(proxy),
ipairs(proxy) and 'for k, v in proxy'. Also test the case where the table
wrapped in the proxy has an __iter() metamethod of its own.
|
|
Not in effect yet.
|
|
Introduce SMAA and rework post process chain for better visual quality
|
|
CANMOD)
|