Files
XCEngine/managed/XCEngine.ScriptCore/Rendering/Renderer/RendererBackedRenderPipelineAsset.cs

55 lines
1.5 KiB
C#

using XCEngine;
using XCEngine.Rendering;
namespace XCEngine.Rendering.Renderer
{
public abstract class RendererBackedRenderPipelineAsset
: ScriptableRenderPipelineAsset
{
protected RendererBackedRenderPipelineAsset()
{
}
protected override ScriptableRenderPipeline CreatePipeline()
{
ScriptableRendererData rendererData =
ResolveRendererData();
return rendererData != null
? new RendererDrivenRenderPipeline(rendererData)
: null;
}
protected override void ConfigureCameraRenderRequest(
ScriptableRenderPipelineCameraRequestContext context)
{
ScriptableRendererData rendererData =
ResolveRendererData();
if (rendererData != null)
{
rendererData.ConfigureCameraRenderRequestInstance(
context);
}
}
protected override void ConfigureCameraFramePlan(
ScriptableRenderPipelinePlanningContext context)
{
ScriptableRendererData rendererData =
ResolveRendererData();
if (rendererData != null)
{
rendererData.ConfigureCameraFramePlanInstance(
context);
}
}
protected abstract ScriptableRendererData GetRendererData();
private ScriptableRendererData ResolveRendererData()
{
return GetRendererData();
}
}
}