Files
XCEngine/managed/XCEngine.ScriptCore/ScriptableRenderPipeline.cs

46 lines
1.2 KiB
C#
Raw Normal View History

namespace XCEngine
{
public abstract class ScriptableRenderPipeline : Object
{
private ScriptableRenderer m_renderer;
protected ScriptableRenderPipeline()
{
}
protected internal virtual ScriptableRenderer CreateRenderer()
{
return null;
}
protected internal virtual bool SupportsStageRenderGraph(
CameraFrameStage stage)
{
ScriptableRenderer renderer = GetOrCreateRenderer();
return renderer != null &&
renderer.SupportsStageRenderGraph(stage);
}
protected internal virtual 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;
}
}
}