feat(rendering): journal live scene projections

Mirror exact live-root and equipped-child lifetimes behind the non-drawing render-scene boundary. Ready, visibility, final-pose, rebucket, removal, and resource teardown edges retain canonical LiveEntityRuntime identity while active-only synchronization avoids resident-static scans.

Co-authored-by: Erik Nilsson <erikn@users.noreply.github.com>
This commit is contained in:
Erik 2026-07-24 22:05:42 +02:00
parent 5d19c56d15
commit 58e7c2eb99
10 changed files with 949 additions and 148 deletions

View file

@ -59,6 +59,17 @@ internal sealed class LivePresentationRuntimeBindings : IDisposable
() => source.ProjectionPoseReady -= handler));
}
public void BindProjectionRemoved(
EquippedChildRenderController source,
Action<uint> handler)
{
ArgumentNullException.ThrowIfNull(source);
ArgumentNullException.ThrowIfNull(handler);
source.ProjectionRemoved += handler;
Adopt("equipped-child projection removal", new DelegateBinding(
() => source.ProjectionRemoved -= handler));
}
public void Dispose()
{
if (_deactivationStarted && _bindings.Count == 0)