Files
XCEngine/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/DrawObjectsPass.cs
ssdfasd 0319680954 feat(srp): add drawing settings override material seam
- 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
2026-04-20 22:46:19 +08:00

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);
}
}
}