Age | Commit message (Collapse) | Author |
|
|
|
Merge main into maint YZ
|
|
secondlife/viewer#1050: Fix mirror clipping for PBR terrain. Also fixes environment settings for PBR terrain.
|
|
|
|
# Conflicts:
# indra/newview/llappviewer.cpp
# indra/newview/llfloaterchangeitemthumbnail.cpp
# indra/newview/llpanelprofile.cpp
# indra/newview/llselectmgr.cpp
# indra/newview/lltexturectrl.cpp
# indra/newview/lltexturectrl.h
# indra/newview/lltooldraganddrop.cpp
# indra/newview/llviewerdisplay.cpp
# indra/newview/llvovolume.cpp
|
|
# Conflicts:
# indra/llui/lltransutil.cpp
# indra/newview/app_settings/settings.xml
# indra/newview/llfloaterenvironmentadjust.cpp
# indra/newview/llpaneleditwater.cpp
# indra/newview/llpanelface.cpp
# indra/newview/lltexturectrl.cpp
# indra/newview/lltexturectrl.h
|
|
# Conflicts:
# .github/workflows/build.yaml
|
|
|
|
following promotion of secondlife/viewer #650
|
|
|
|
environment settings for PBR terrain.
|
|
Add keystroke event support and allow adding text lines to the line editor
|
|
|
|
from below
|
|
|
|
Add LL.check_stop() entry point and call it in fiber scheduler().
|
|
Add LL. prefix to viewer entry points, fix existing references.
|
|
|
|
|
|
Also streamline util.contains(), given table.find().
|
|
fiber.lua's scheduler() is greedy, in the sense that it wants to run every
ready Lua fiber before retrieving the next incoming event from the viewer (and
possibly blocking for some real time before it becomes available). But check
for viewer shutdown before resuming any suspended-but-ready Lua fiber.
|
|
divide by zero when alpha masking a PBR material with 0 alpha. (#1044)
|
|
|
|
|
|
|
|
Add fiber.lua, which permits calling leap.request() even from Lua's main thread.
|
|
|
|
|
|
|
|
the 'Choose Emoji' floater
|
|
WebRTC: Throw 'area full' message when voice server indicates the channel is at capacity.
|
|
|
|
|
|
|
|
|
|
This reverts commit cc43f42e6b7401c2cdd3204a16f757f5169bd95b.
|
|
I'm not sure what causes this, but
1. Calling expensive getChild inside draw is not a good idea
2. I hope that simplified draw will capture a bit more info in bugsplat
or will shift callctack elsewhere
|
|
|
|
This is a very common pattern, especially in test code, but elsewhere in the
viewer too.
Use it in llluamanager_test.cpp.
|
|
Recast fiber.yield() as internal function scheduler().
Move fiber.run() after it so it can call scheduler() as a local function.
Add new fiber.yield() that also calls scheduler(); the added value of this new
fiber.yield() over plain scheduler() is that if scheduler() returns before the
caller is ready (because the configured set_idle() function returned non-nil),
it produces an explicit error rather than returning to its caller. So the
caller can assume that when fiber.yield() returns normally, the calling fiber
is ready.
This allows any fiber, including the main thread, to call fiber.yield() or
fiber.wait(). This supports using leap.request(), which posts a request and
then waits on a WaitForReqid, which calls ErrorQueue:Dequeue(), which calls
fiber.wait().
WaitQueue:_wake_waiters() must call fiber.status() instead of
coroutine.status() so it understands the special token 'main'.
Add a new llluamanager_test.cpp test to exercise calling leap.request() from
Lua's main thread.
|
|
|
|
Move processIceUpdates into a coroutine
|
|
Coroutine yields can end after shutdown is requested and
voice connections are removed, so we need to check that
a shutdown hasn't occured before attempting to touch
connection objects.
(CR issue)
|
|
Also:
* Fix a few crashes.
* Only send position data when it changes.
|
|
|
|
|
|
Initial implementation of LLLuaFloater
|
|
|
|
This fixes a hang if the Lua script explicitly calls fiber.run() before
LuaState::expr()'s implicit fiber.run() call.
Make fiber.run() remove the calling fiber from the ready list to avoid an
infinite loop when all other fibers have terminated: "You're ready!" "Okay,
yield()." "You're ready again!" ... But don't claim it's waiting, either,
because then when all other fibers have terminated, we'd call idle() in the
vain hope that something would make that one last fiber ready.
WaitQueue:_wake_waiters() needs to wake waiting fibers if the queue's not
empty OR it's been closed.
Introduce leap.WaitFor:close() to close the queue gracefully so that a looping
waiter can terminate, instead of using WaitFor:exception(), which stops the
whole script once it propagates. Make leap's cleanup() function call close().
Streamline fiber.get_name() by using 'or' instead of if ... then.
Streamline fiber.status() and fiber.set_waiting() by using table.find()
instead of a loop.
|
|
|