2026-04-19 02:38:48 +08:00
|
|
|
using XCEngine;
|
|
|
|
|
using XCEngine.Rendering;
|
|
|
|
|
|
|
|
|
|
namespace XCEngine.Rendering.Renderer
|
|
|
|
|
{
|
|
|
|
|
public abstract class RendererBackedRenderPipelineAsset
|
|
|
|
|
: ScriptableRenderPipelineAsset
|
|
|
|
|
{
|
|
|
|
|
protected RendererBackedRenderPipelineAsset()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-19 05:03:56 +08:00
|
|
|
protected override ScriptableRenderPipeline CreatePipeline()
|
2026-04-19 02:38:48 +08:00
|
|
|
{
|
|
|
|
|
ScriptableRendererData rendererData =
|
|
|
|
|
ResolveRendererData();
|
|
|
|
|
return rendererData != null
|
|
|
|
|
? new RendererDrivenRenderPipeline(rendererData)
|
|
|
|
|
: null;
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-19 05:03:56 +08:00
|
|
|
protected override void ConfigureCameraRenderRequest(
|
2026-04-19 02:38:48 +08:00
|
|
|
ScriptableRenderPipelineCameraRequestContext context)
|
|
|
|
|
{
|
|
|
|
|
ScriptableRendererData rendererData =
|
|
|
|
|
ResolveRendererData();
|
|
|
|
|
if (rendererData != null)
|
|
|
|
|
{
|
|
|
|
|
rendererData.ConfigureCameraRenderRequestInstance(
|
|
|
|
|
context);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-19 05:03:56 +08:00
|
|
|
protected override void ConfigureCameraFramePlan(
|
2026-04-19 02:38:48 +08:00
|
|
|
ScriptableRenderPipelinePlanningContext context)
|
|
|
|
|
{
|
|
|
|
|
ScriptableRendererData rendererData =
|
|
|
|
|
ResolveRendererData();
|
|
|
|
|
if (rendererData != null)
|
|
|
|
|
{
|
|
|
|
|
rendererData.ConfigureCameraFramePlanInstance(
|
|
|
|
|
context);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected abstract ScriptableRendererData GetRendererData();
|
|
|
|
|
|
|
|
|
|
private ScriptableRendererData ResolveRendererData()
|
|
|
|
|
{
|
|
|
|
|
return GetRendererData();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|