Move final live part composition, exact-incarnation schedule handoff, MotionDone binding, and presentation diagnostics out of GameWindow while preserving the retail frame order. Reject stale schedule and completion ABA at the new owner boundary. Co-Authored-By: OpenAI Codex <codex@openai.com>
21 lines
631 B
C#
21 lines
631 B
C#
using AcDream.App.World;
|
|
using AcDream.Core.Physics;
|
|
using AcDream.Core.World;
|
|
|
|
namespace AcDream.App.Rendering;
|
|
|
|
/// <summary>
|
|
/// Late presentation handoff from retail's separate
|
|
/// <c>static_animating_objects</c> workset. Every take is bound to the exact
|
|
/// live incarnation that prepared the frames.
|
|
/// </summary>
|
|
internal interface ILiveStaticPartFrameSource
|
|
{
|
|
bool TryTakeLivePartFrames(
|
|
LiveEntityRecord record,
|
|
WorldEntity entity,
|
|
LiveEntityAnimationState animation,
|
|
ulong objectClockEpoch,
|
|
ulong projectionMutationVersion,
|
|
out IReadOnlyList<PartTransform> frames);
|
|
}
|