refactor(srp): collapse universal pipeline wrappers
This commit is contained in:
@@ -1,42 +0,0 @@
|
||||
using XCEngine;
|
||||
using XCEngine.Rendering;
|
||||
|
||||
namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
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(
|
||||
CameraRenderRequestContext context)
|
||||
{
|
||||
ScriptableRendererData rendererData =
|
||||
ResolveRendererData();
|
||||
if (rendererData != null)
|
||||
{
|
||||
rendererData.ConfigureCameraRenderRequestInstance(
|
||||
context);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract ScriptableRendererData GetRendererData();
|
||||
|
||||
private ScriptableRendererData ResolveRendererData()
|
||||
{
|
||||
return GetRendererData();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
using XCEngine;
|
||||
using XCEngine.Rendering;
|
||||
|
||||
namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
public class RendererDrivenRenderPipeline
|
||||
: RendererBackedRenderPipeline
|
||||
{
|
||||
private readonly ScriptableRendererData m_rendererData;
|
||||
|
||||
public RendererDrivenRenderPipeline(
|
||||
ScriptableRendererData rendererData)
|
||||
{
|
||||
m_rendererData = rendererData;
|
||||
}
|
||||
|
||||
protected internal override ScriptableRenderer CreateRenderer()
|
||||
{
|
||||
return m_rendererData != null
|
||||
? m_rendererData.CreateRendererInstance()
|
||||
: null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
}
|
||||
|
||||
internal bool SupportsStageRenderGraph(
|
||||
public bool SupportsStageRenderGraph(
|
||||
CameraFrameStage stage)
|
||||
{
|
||||
RenderingData renderingData = new RenderingData(stage);
|
||||
@@ -71,7 +71,7 @@ namespace XCEngine.Rendering.Universal
|
||||
return false;
|
||||
}
|
||||
|
||||
internal bool RecordStageRenderGraph(
|
||||
public bool RecordStageRenderGraph(
|
||||
ScriptableRenderContext context)
|
||||
{
|
||||
if (context == null)
|
||||
|
||||
@@ -3,18 +3,16 @@ using XCEngine.Rendering;
|
||||
|
||||
namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
public abstract class RendererBackedRenderPipeline
|
||||
internal sealed class UniversalRenderPipeline
|
||||
: ScriptableRenderPipeline
|
||||
{
|
||||
private readonly ScriptableRendererData m_rendererData;
|
||||
private ScriptableRenderer m_renderer;
|
||||
|
||||
protected RendererBackedRenderPipeline()
|
||||
public UniversalRenderPipeline(
|
||||
ScriptableRendererData rendererData)
|
||||
{
|
||||
}
|
||||
|
||||
protected internal virtual ScriptableRenderer CreateRenderer()
|
||||
{
|
||||
return null;
|
||||
m_rendererData = rendererData;
|
||||
}
|
||||
|
||||
protected override bool SupportsStageRenderGraph(
|
||||
@@ -33,18 +31,16 @@ namespace XCEngine.Rendering.Universal
|
||||
renderer.RecordStageRenderGraph(context);
|
||||
}
|
||||
|
||||
protected ScriptableRenderer renderer =>
|
||||
GetOrCreateRenderer();
|
||||
|
||||
private ScriptableRenderer GetOrCreateRenderer()
|
||||
{
|
||||
if (m_renderer == null)
|
||||
if (m_renderer == null &&
|
||||
m_rendererData != null)
|
||||
{
|
||||
m_renderer = CreateRenderer();
|
||||
m_renderer =
|
||||
m_rendererData.CreateRendererInstance();
|
||||
}
|
||||
|
||||
return m_renderer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,33 @@ using XCEngine.Rendering;
|
||||
namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
public class UniversalRenderPipelineAsset
|
||||
: RendererBackedRenderPipelineAsset
|
||||
: ScriptableRenderPipelineAsset
|
||||
{
|
||||
public UniversalRendererData rendererData =
|
||||
new UniversalRendererData();
|
||||
|
||||
protected override ScriptableRendererData GetRendererData()
|
||||
protected override ScriptableRenderPipeline CreatePipeline()
|
||||
{
|
||||
ScriptableRendererData resolvedRendererData =
|
||||
ResolveRendererData();
|
||||
return resolvedRendererData != null
|
||||
? new UniversalRenderPipeline(resolvedRendererData)
|
||||
: null;
|
||||
}
|
||||
|
||||
protected override void ConfigureCameraRenderRequest(
|
||||
CameraRenderRequestContext context)
|
||||
{
|
||||
ScriptableRendererData resolvedRendererData =
|
||||
ResolveRendererData();
|
||||
if (resolvedRendererData != null)
|
||||
{
|
||||
resolvedRendererData.ConfigureCameraRenderRequestInstance(
|
||||
context);
|
||||
}
|
||||
}
|
||||
|
||||
private ScriptableRendererData ResolveRendererData()
|
||||
{
|
||||
if (rendererData == null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user