55 lines
1.5 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
|