refactor(animation): extract live PartArray presenter
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>
This commit is contained in:
parent
9760ff5a8d
commit
f004ac5562
14 changed files with 963 additions and 438 deletions
21
src/AcDream.App/Rendering/ILiveStaticPartFrameSource.cs
Normal file
21
src/AcDream.App/Rendering/ILiveStaticPartFrameSource.cs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
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);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue