Age | Commit message (Collapse) | Author |
|
If the C++ runtime is already handling an exception, don't try to launch more
Lua operations.
|
|
|
|
MSVC's `std::basic_ostream<CHAR>` template is not implemented in a general way:
it can only be instantiated for certain specific `CHAR` types. Declaring a
`std::basic_ostringstream<llwchar>` fails on MSVC with C2941.
Fortunately both llstring.cpp functions that build a `LLWString` incrementally
have the same characteristics: (a) they each build it one character at a time,
and (b) the length of the result `LLWString` won't exceed the known length of
the input string. So it works to declare a `std::vector<llwchar>`, `reserve()`
the input length and `push_back()` individual characters. Then we can use
`LLWString`'s range constructor to immediately allocate the right size.
|
|
MSVC's `std::basic_ostream<CHAR>` template is not implemented in a general way:
it can only be instantiated for certain specific `CHAR` types. Declaring a
`std::basic_ostringstream<llwchar>` fails on MSVC with C2941.
The ugly workaround from Stack Overflow is to clone-and-edit Microsoft's
`std::numpunct` template, locally specializing it for the desired `CHAR` type.
|
|
`finishProfile()` is called at least once within a `__try` block. If we default
its `report_name` parameter to a temporary `std::string`, that temporary must be
destroyed when the stack is unwound, which `__try` forbids.
|
|
Make `LLGLSLShader::finishProfile()` accept a string pathname instead of a
bool and, in addition to logging statistics to the viewer log, output
statistics to that file as JSON. The calls that used to pass
`emit_report=false` now pass `report_name=std::string()`.
Make llviewerdisplay.cpp's `display()` function synthesize a profile filename
in the viewer's logs directory, and pass that filename to
`LLGLSLShader::finishProfile()`.
|
|
Many of the string conversion functions in llstring.cpp would build their
result strings using successive concatenation operations, piece by piece. This
can be expensive in allocations. Instead, use a std::basic_ostringstream of
char type appropriate to the return string type to aggregate piecewise string
building.
|
|
`wchar_to_utf8chars()` used to require a `char*` output buffer with no length,
assuming that its caller knew enough to provide a buffer of sufficient length.
In fact a `char[8]` buffer suffices, but nothing in the header indicated that.
Eliminate the output parameter and return `std::string`. Fix the few existing
callers.
Also set an `ll_convert_alias` so that `ll_convert_to<std::string>(llwchar)`
directly calls `wchar_to_utf8chars()`. Replace instances of the workaround
`wstring_to_utf8str(LLWString(1, llwchar))`.
|
|
|
|
Consensus seems to be that (a) string_view is, in effect, already a reference,
(b) it's small enough to make pass-by-value reasonable and (c) the optimizer
can reason about values way better than it can about references.
|
|
|
|
|
|
call.
For #2532, callback button was remaining disabled after hanging up on a group call.
Also, fix an issue where user was automatically added to a group call after the
initiator of the group call hangs up and re-calls the group.
|
|
Release/2024.08 delta fps
|
|
Reduce 'World map' floater draw time
|
|
|
|
|
|
|
|
The initial block area for the pyramid walk should not be smaller than the max_block_size area so need an llmax to not allow multiplication below 1.
This was causing decode errors for complex small images (128x128 or smaller) on discard 1 and 2.
|
|
|
|
viewer#2411 Use font buffer for inventory
|
|
Also fixes some sculpts getting wrong LoD
|
|
|
|
|
|
Add a menus.lua autorun script that waits until login, then adds the Lua
floaters back into the Develop->Consoles menu where they were originally.
Extend UI.addMenuItem() and addMenuSeparator() to support pos argument.
|
|
Make central Lua engine functionality conditional on that flag.
|
|
'pos' is a 0-relative index at which to insert the desired menu item or
separator. If 'pos' is omitted, the item is appended to the menu.
|
|
conference/p2p/group call
Processing for vivox was being enabled when teleporting into a vivox region
regardless as to whether the user was in a conference/p2p/group call, resulting
in vivox spatial and webrtc conference/p2p/group simultaneously being active.
|
|
Appending is effected by passing position == getItemCount(). Until now,
insert() disallowed that value, so you could insert before the last existing
entry but not after it.
|
|
Add tests to verify that llless() correctly handles signed <=> unsigned
comparison, which native "<" does not.
|
|
#2519)
|
|
|
|
Follow-up fix for 238a2a64b31e6a0b431309e363067a7fe57125ae
|
|
always show fetch label even after fetch is complete
|
|
|
|
|
|
The code attempted to do a call to a session immediately after a call that
launched a coroutine to set up a session. Sometimes, the coroutine executed
in time, sometimes not.
The fix is to set a flag to start a call after the session has been created
on the server.
Test Plan:
* Close all active chat sessions.
* Select 'Voice Call' in the context menu of a nearby avatar.
* Validate popup appears for that nearby avatar requesting to start/ignore/go to im.
* Select 'start'
* Validate the call completes.
|
|
|
|
|
|
|
|
|
|
Fix some race conditions on webrtc connection shutdown.
|
|
Introduce OpenXR SDK prebuilt package and cmake setup
|
|
Also add develop branch's comments about llcoro::LockType being deprecated.
|
|
|
|
|
|
(#2507)
|
|
|
|
|
|
|