Align URP render graph frame data scope
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using XCEngine;
|
||||
using XCEngine.Rendering;
|
||||
using XCEngine.Rendering.RenderGraphModule;
|
||||
|
||||
namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
@@ -170,8 +171,17 @@ namespace XCEngine.Rendering.Universal
|
||||
RenderingData renderingData =
|
||||
context.renderingData;
|
||||
BuildPassQueue(renderingData);
|
||||
bool recorded =
|
||||
RecordRendererStage(context);
|
||||
bool recorded;
|
||||
using (ContextContainer frameData =
|
||||
ScriptableRenderPass.BuildRenderGraphFrameData(
|
||||
renderingData))
|
||||
{
|
||||
recorded =
|
||||
RecordRendererStage(
|
||||
context,
|
||||
new RenderGraph(context.renderContext),
|
||||
frameData);
|
||||
}
|
||||
if (recorded)
|
||||
{
|
||||
FinishCameraStackRendering();
|
||||
@@ -299,7 +309,9 @@ namespace XCEngine.Rendering.Universal
|
||||
}
|
||||
|
||||
protected virtual bool RecordRendererStage(
|
||||
RendererRecordingContext context)
|
||||
RendererRecordingContext context,
|
||||
RenderGraph renderGraph,
|
||||
ContextContainer frameData)
|
||||
{
|
||||
if (context == null ||
|
||||
context.renderContext == null)
|
||||
@@ -314,38 +326,52 @@ namespace XCEngine.Rendering.Universal
|
||||
return RecordRendererBlock(
|
||||
RendererBlock.ShadowCaster,
|
||||
context,
|
||||
renderGraph,
|
||||
frameData,
|
||||
ref recordedAnyPass) &&
|
||||
recordedAnyPass;
|
||||
case CameraFrameStage.DepthOnly:
|
||||
return RecordRendererBlock(
|
||||
RendererBlock.DepthPrepass,
|
||||
context,
|
||||
renderGraph,
|
||||
frameData,
|
||||
ref recordedAnyPass) &&
|
||||
recordedAnyPass;
|
||||
case CameraFrameStage.MainScene:
|
||||
return RecordRendererBlock(
|
||||
RendererBlock.MainOpaque,
|
||||
context,
|
||||
renderGraph,
|
||||
frameData,
|
||||
ref recordedAnyPass) &&
|
||||
RecordRendererBlock(
|
||||
RendererBlock.MainSkybox,
|
||||
context,
|
||||
renderGraph,
|
||||
frameData,
|
||||
ref recordedAnyPass) &&
|
||||
RecordRendererBlock(
|
||||
RendererBlock.MainTransparent,
|
||||
context,
|
||||
renderGraph,
|
||||
frameData,
|
||||
ref recordedAnyPass) &&
|
||||
recordedAnyPass;
|
||||
case CameraFrameStage.PostProcess:
|
||||
return RecordRendererBlock(
|
||||
RendererBlock.PostProcess,
|
||||
context,
|
||||
renderGraph,
|
||||
frameData,
|
||||
ref recordedAnyPass) &&
|
||||
recordedAnyPass;
|
||||
case CameraFrameStage.FinalOutput:
|
||||
return RecordRendererBlock(
|
||||
RendererBlock.FinalOutput,
|
||||
context,
|
||||
renderGraph,
|
||||
frameData,
|
||||
ref recordedAnyPass) &&
|
||||
recordedAnyPass;
|
||||
default:
|
||||
@@ -356,6 +382,8 @@ namespace XCEngine.Rendering.Universal
|
||||
private bool RecordRendererBlock(
|
||||
RendererBlock block,
|
||||
RendererRecordingContext context,
|
||||
RenderGraph renderGraph,
|
||||
ContextContainer frameData,
|
||||
ref bool recordedAnyPass)
|
||||
{
|
||||
if (context == null ||
|
||||
@@ -388,7 +416,9 @@ namespace XCEngine.Rendering.Universal
|
||||
|
||||
if (!renderPass.Record(
|
||||
context.renderContext,
|
||||
context.renderingData))
|
||||
context.renderingData,
|
||||
renderGraph,
|
||||
frameData))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user