Align URP render graph frame data scope

This commit is contained in:
2026-04-26 20:51:16 +08:00
parent ee05558f86
commit db2d3eb414
13 changed files with 918 additions and 73 deletions

View File

@@ -73,7 +73,9 @@ namespace XCEngine.Rendering.Universal
internal bool Record(
ScriptableRenderContext context,
RenderingData renderingData)
RenderingData renderingData,
RenderGraph renderGraph,
ContextContainer frameData)
{
RenderingData passRenderingData =
renderingData;
@@ -85,13 +87,12 @@ namespace XCEngine.Rendering.Universal
{
if (HasPublicRenderGraphOverride())
{
using (ContextContainer frameData =
new ContextContainer())
{
RecordRenderGraph(
new RenderGraph(context),
frameData);
}
PopulateRenderGraphFrameData(
frameData,
passRenderingData);
RecordRenderGraph(
renderGraph,
frameData);
return true;
}
@@ -441,6 +442,40 @@ namespace XCEngine.Rendering.Universal
typeof(ScriptableRenderPass);
}
internal static ContextContainer BuildRenderGraphFrameData(
RenderingData renderingData)
{
ContextContainer frameData =
new ContextContainer();
PopulateRenderGraphFrameData(
frameData,
renderingData);
return frameData;
}
internal static void PopulateRenderGraphFrameData(
ContextContainer frameData,
RenderingData renderingData)
{
if (frameData == null)
{
return;
}
if (renderingData == null)
{
return;
}
frameData.Set(renderingData);
frameData.Set(renderingData.cameraData);
frameData.Set(renderingData.lightingData);
frameData.Set(renderingData.shadowData);
frameData.Set(renderingData.environmentData);
frameData.Set(renderingData.finalColorData);
frameData.Set(renderingData.stageColorData);
}
private static bool TryResolveDefaultFullscreenTargets(
ScriptableRenderContext context,
out RenderGraphTextureHandle sourceColor,