47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using XCEngine;
|
|
using XCEngine.Rendering;
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
{
|
|
internal sealed class UniversalRenderPipeline
|
|
: ScriptableRenderPipeline
|
|
{
|
|
private readonly ScriptableRendererData m_rendererData;
|
|
private ScriptableRenderer m_renderer;
|
|
|
|
public UniversalRenderPipeline(
|
|
ScriptableRendererData rendererData)
|
|
{
|
|
m_rendererData = rendererData;
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
private ScriptableRenderer GetOrCreateRenderer()
|
|
{
|
|
if (m_renderer == null &&
|
|
m_rendererData != null)
|
|
{
|
|
m_renderer =
|
|
m_rendererData.CreateRendererInstance();
|
|
}
|
|
|
|
return m_renderer;
|
|
}
|
|
}
|
|
}
|