feat(render): support per-frame render payloads

Refactored the render pipeline system to introduce per-frame IRenderPayload management.
IRenderPipelineSettings now requires CreatePipeline and CreatePayload methods.
Updated RenderSystem and test pipeline to use the new payload model.
Removed legacy GhostRenderPipeline and test code.
Added RenderPipelineSystemAttribute for pipeline system registration.
Includes minor fixes such as version field type corrections and typo fixes.

BREAKING CHANGE: Render pipeline and payload creation APIs have changed; implementers must update to the new interface methods.
This commit is contained in:
2026-04-07 17:12:01 +09:00
parent 6c96d4cf50
commit a5c10cfe5a
16 changed files with 162 additions and 270 deletions

View File

@@ -1,6 +1,7 @@
using Ghost.Core;
using Ghost.Engine;
using Ghost.Engine.Components;
using Ghost.Engine.Systems;
using Ghost.Entities;
using Ghost.Graphics.Core;
using Ghost.Graphics.Test.RenderPipeline;
@@ -9,6 +10,7 @@ using Misaki.HighPerformance.Mathematics;
namespace Ghost.Graphics.Test.Systems;
[RenderPipelineSystem<TestRenderPipelineSettings>]
public class RenderExtractionSystem : ISystem
{
private RenderSystem _renderSystem = null!;
@@ -135,7 +137,7 @@ public class RenderExtractionSystem : ISystem
},
};
((TestRenderPayload)_renderSystem.RenderPayload).AddRenderRequest(request);
((TestRenderPayload)_renderSystem.GetCurrentFramePayload()).renderRequests.Add(request);
}
}