Inbound state continues while portal reveal blocks ordinary world simulation. Synchronize only the derived render projection after those hidden-frame network and command phases so the first revealed draw cannot observe a stale live transform, without advancing effects, particles, attachments, or lights.
33 lines
835 B
C#
33 lines
835 B
C#
using AcDream.App.Update;
|
|
|
|
namespace AcDream.App.Tests;
|
|
|
|
internal sealed class TestLiveObjectFramePhase(Action<float> tick)
|
|
: ILiveObjectFramePhase
|
|
{
|
|
public void Tick(float deltaSeconds) => tick(deltaSeconds);
|
|
}
|
|
|
|
internal sealed class TestLiveSessionFramePhase(Action tick)
|
|
: ILiveSessionFramePhase
|
|
{
|
|
public void Tick() => tick();
|
|
}
|
|
|
|
internal sealed class TestPostNetworkCommandFramePhase(Action run)
|
|
: IPostNetworkCommandFramePhase
|
|
{
|
|
public void RunPostNetworkCommandPhase() => run();
|
|
}
|
|
|
|
internal sealed class TestLiveSpatialReconcilePhase(Action reconcile)
|
|
: ILiveSpatialReconcilePhase
|
|
{
|
|
public void Reconcile() => reconcile();
|
|
}
|
|
|
|
internal sealed class TestRenderProjectionSyncPhase(Action synchronize)
|
|
: IRenderProjectionSyncPhase
|
|
{
|
|
public void SynchronizeActiveSources() => synchronize();
|
|
}
|