- add a managed DrawingSettings seam for scene draw authoring - let builtin forward scene draws use an override material when provided - wire DrawObjectsPass and RenderObjectsRendererFeature through the new settings
79 lines
2.3 KiB
C#
79 lines
2.3 KiB
C#
using XCEngine;
|
|
using XCEngine.Rendering;
|
|
|
|
namespace XCEngine.Rendering.Universal
|
|
{
|
|
public sealed class DrawObjectsPass : ScriptableRenderPass
|
|
{
|
|
private SceneRenderPhase m_scenePhase =
|
|
SceneRenderPhase.Opaque;
|
|
private RendererListDesc m_rendererListDesc =
|
|
RendererListDesc.CreateDefault(
|
|
RendererListType.Opaque);
|
|
private DrawingSettings m_drawingSettings =
|
|
DrawingSettings.CreateDefault();
|
|
|
|
public DrawObjectsPass(
|
|
RenderPassEvent passEvent,
|
|
SceneRenderPhase scenePhase,
|
|
RendererListDesc rendererListDesc)
|
|
: this(
|
|
passEvent,
|
|
scenePhase,
|
|
rendererListDesc,
|
|
DrawingSettings.CreateDefault())
|
|
{
|
|
}
|
|
|
|
public DrawObjectsPass(
|
|
RenderPassEvent passEvent,
|
|
SceneRenderPhase scenePhase,
|
|
RendererListDesc rendererListDesc,
|
|
DrawingSettings drawingSettings)
|
|
{
|
|
Configure(
|
|
passEvent,
|
|
scenePhase,
|
|
rendererListDesc,
|
|
drawingSettings);
|
|
}
|
|
|
|
public void Configure(
|
|
RenderPassEvent passEvent,
|
|
SceneRenderPhase scenePhase,
|
|
RendererListDesc rendererListDesc)
|
|
{
|
|
Configure(
|
|
passEvent,
|
|
scenePhase,
|
|
rendererListDesc,
|
|
DrawingSettings.CreateDefault());
|
|
}
|
|
|
|
public void Configure(
|
|
RenderPassEvent passEvent,
|
|
SceneRenderPhase scenePhase,
|
|
RendererListDesc rendererListDesc,
|
|
DrawingSettings drawingSettings)
|
|
{
|
|
renderPassEvent = passEvent;
|
|
m_scenePhase = scenePhase;
|
|
m_rendererListDesc = rendererListDesc;
|
|
m_drawingSettings = drawingSettings;
|
|
}
|
|
|
|
protected override bool RecordRenderGraph(
|
|
ScriptableRenderContext context,
|
|
RenderingData renderingData)
|
|
{
|
|
return context != null &&
|
|
renderingData != null &&
|
|
renderingData.isMainSceneStage &&
|
|
context.DrawRenderers(
|
|
m_scenePhase,
|
|
m_rendererListDesc,
|
|
m_drawingSettings);
|
|
}
|
|
}
|
|
}
|