namespace XCEngine { public abstract class ScriptableRenderPipelineAsset : RenderPipelineAsset { protected ScriptableRenderPipelineAsset() { } protected internal virtual ScriptableRenderPipeline CreatePipeline() { ScriptableRendererData rendererData = ResolveDefaultRendererData(); return rendererData != null ? new RendererDrivenRenderPipeline(rendererData) : null; } protected internal virtual void ConfigureCameraRenderRequest( ScriptableRenderPipelineCameraRequestContext context) { ScriptableRendererData rendererData = ResolveDefaultRendererData(); if (rendererData != null) { rendererData.ConfigureCameraRenderRequestInstance( context); } } protected internal virtual void ConfigureCameraFramePlan( ScriptableRenderPipelinePlanningContext context) { ScriptableRendererData rendererData = ResolveDefaultRendererData(); if (rendererData != null) { rendererData.ConfigureCameraFramePlanInstance( context); } } protected internal virtual FinalColorSettings GetDefaultFinalColorSettings() { return FinalColorSettings.CreateDefault(); } internal ScriptableRendererData ResolveDefaultRendererData() { return GetDefaultRendererData(); } protected virtual ScriptableRendererData GetDefaultRendererData() { return null; } } }