refactor(srp): move renderer model into universal package

This commit is contained in:
2026-04-19 14:11:25 +08:00
parent 570467a083
commit a7cda9375a
18 changed files with 23 additions and 31 deletions

View File

@@ -0,0 +1,50 @@
using XCEngine;
using XCEngine.Rendering;
namespace XCEngine.Rendering.Universal
{
public abstract class RendererBackedRenderPipeline
: ScriptableRenderPipeline
{
private ScriptableRenderer m_renderer;
protected RendererBackedRenderPipeline()
{
}
protected internal virtual ScriptableRenderer CreateRenderer()
{
return null;
}
protected override bool SupportsStageRenderGraph(
CameraFrameStage stage)
{
ScriptableRenderer renderer = GetOrCreateRenderer();
return renderer != null &&
renderer.SupportsStageRenderGraph(stage);
}
protected override bool RecordStageRenderGraph(
ScriptableRenderContext context)
{
ScriptableRenderer renderer = GetOrCreateRenderer();
return renderer != null &&
renderer.RecordStageRenderGraph(context);
}
protected ScriptableRenderer renderer =>
GetOrCreateRenderer();
private ScriptableRenderer GetOrCreateRenderer()
{
if (m_renderer == null)
{
m_renderer = CreateRenderer();
}
return m_renderer;
}
}
}