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:
@@ -104,11 +104,10 @@ public unsafe partial class TestRenderPipeline : IRenderPipeline
|
||||
{
|
||||
var testPayload = (TestRenderPayload)payload;
|
||||
|
||||
var renderSystem = testPayload.RenderSystem;
|
||||
var resourceManager = renderSystem.ResourceManager;
|
||||
var resourceDatabase = renderSystem.GraphicsEngine.ResourceDatabase;
|
||||
var resourceManager = _renderSystem.ResourceManager;
|
||||
var resourceDatabase = _renderSystem.GraphicsEngine.ResourceDatabase;
|
||||
|
||||
var requests = testPayload.FrameRequestData[frameIndex].renderRequests;
|
||||
var requests = testPayload.renderRequests;
|
||||
|
||||
for (var i = 0; i < requests.Count; i++)
|
||||
{
|
||||
@@ -126,7 +125,7 @@ public unsafe partial class TestRenderPipeline : IRenderPipeline
|
||||
{
|
||||
rt = request.colorTarget;
|
||||
}
|
||||
else if (renderSystem.SwapChainManager.TryGetSwapChain(request.swapChainIndex, out var swapChain))
|
||||
else if (_renderSystem.SwapChainManager.TryGetSwapChain(request.swapChainIndex, out var swapChain))
|
||||
{
|
||||
rt = swapChain.GetCurrentBackBuffer();
|
||||
}
|
||||
@@ -137,7 +136,7 @@ public unsafe partial class TestRenderPipeline : IRenderPipeline
|
||||
|
||||
try
|
||||
{
|
||||
var rtResult = renderSystem.GraphicsEngine.ResourceDatabase.GetResourceDescription(rt.AsResource());
|
||||
var rtResult = _renderSystem.GraphicsEngine.ResourceDatabase.GetResourceDescription(rt.AsResource());
|
||||
if (rtResult.IsFailure)
|
||||
{
|
||||
continue;
|
||||
@@ -312,7 +311,7 @@ public unsafe partial class TestRenderPipeline : IRenderPipeline
|
||||
{
|
||||
if (request.swapChainIndex >= 0)
|
||||
{
|
||||
renderSystem.SwapChainManager.ReleaseSwapChain(request.swapChainIndex);
|
||||
_renderSystem.SwapChainManager.ReleaseSwapChain(request.swapChainIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user