2026-04-19 02:38:48 +08:00
|
|
|
using XCEngine;
|
|
|
|
|
using XCEngine.Rendering;
|
|
|
|
|
|
2026-04-19 14:11:25 +08:00
|
|
|
namespace XCEngine.Rendering.Universal
|
2026-04-15 20:14:48 +08:00
|
|
|
{
|
2026-04-19 15:33:03 +08:00
|
|
|
internal sealed class UniversalRenderPipeline
|
2026-04-19 02:38:48 +08:00
|
|
|
: ScriptableRenderPipeline
|
2026-04-15 20:14:48 +08:00
|
|
|
{
|
2026-04-20 00:16:32 +08:00
|
|
|
private readonly UniversalRenderPipelineAsset m_asset;
|
2026-04-19 00:05:29 +08:00
|
|
|
|
2026-04-19 15:33:03 +08:00
|
|
|
public UniversalRenderPipeline(
|
2026-04-20 00:16:32 +08:00
|
|
|
UniversalRenderPipelineAsset asset)
|
2026-04-15 20:14:48 +08:00
|
|
|
{
|
2026-04-20 00:16:32 +08:00
|
|
|
m_asset = asset;
|
2026-04-19 00:05:29 +08:00
|
|
|
}
|
|
|
|
|
|
2026-04-19 05:03:56 +08:00
|
|
|
protected override bool SupportsStageRenderGraph(
|
2026-04-15 20:14:48 +08:00
|
|
|
CameraFrameStage stage)
|
|
|
|
|
{
|
2026-04-20 00:16:32 +08:00
|
|
|
ScriptableRenderer renderer = GetDefaultRenderer();
|
2026-04-19 00:05:29 +08:00
|
|
|
return renderer != null &&
|
|
|
|
|
renderer.SupportsStageRenderGraph(stage);
|
2026-04-15 20:14:48 +08:00
|
|
|
}
|
|
|
|
|
|
2026-04-19 05:03:56 +08:00
|
|
|
protected override bool RecordStageRenderGraph(
|
2026-04-17 21:53:52 +08:00
|
|
|
ScriptableRenderContext context)
|
2026-04-15 20:14:48 +08:00
|
|
|
{
|
2026-04-20 00:16:32 +08:00
|
|
|
ScriptableRenderer renderer = GetDefaultRenderer();
|
2026-04-19 00:05:29 +08:00
|
|
|
return renderer != null &&
|
|
|
|
|
renderer.RecordStageRenderGraph(context);
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-20 00:16:32 +08:00
|
|
|
private ScriptableRenderer GetDefaultRenderer()
|
2026-04-19 00:05:29 +08:00
|
|
|
{
|
2026-04-20 00:16:32 +08:00
|
|
|
return m_asset != null
|
|
|
|
|
? m_asset.GetDefaultRenderer()
|
|
|
|
|
: null;
|
2026-04-15 20:14:48 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|