refactor(rendering): formalize native graph recording helpers

This commit is contained in:
2026-04-15 20:46:00 +08:00
parent 7b9e172dbf
commit 8798e63e32
7 changed files with 258 additions and 42 deletions

View File

@@ -10,22 +10,20 @@ namespace Rendering {
bool SceneRenderFeaturePass::RecordRenderGraph(
const SceneRenderFeaturePassRenderGraphContext& context) {
const bool usesSourceColor = context.sourceColorTexture.IsValid();
const RenderGraphRecordingContext baseRecordingContext =
BuildRenderGraphRecordingContext(context);
const RenderSurface sourceSurfaceTemplate =
baseRecordingContext.sourceSurface != nullptr
? *baseRecordingContext.sourceSurface
: (usesSourceColor ? context.surface : RenderSurface());
RenderGraphRecordingContextOverrides overrides = {};
overrides.overrideSourceSurface =
baseRecordingContext.sourceSurface == nullptr && usesSourceColor;
overrides.sourceSurface =
overrides.overrideSourceSurface ? &sourceSurfaceTemplate : nullptr;
const RenderGraphRecordingContext recordingContext =
CloneRenderGraphRecordingContext(
RenderSurface sourceSurfaceTemplate = {};
RenderGraphRecordingContextBuildParams recordingParams = {};
recordingParams.overrideSourceBinding = true;
recordingParams.sourceBinding =
ResolveRenderGraphRecordingSourceBinding(
baseRecordingContext,
overrides);
&baseRecordingContext.surface,
&sourceSurfaceTemplate);
const RenderGraphRecordingContext recordingContext =
BuildRenderGraphRecordingContext(
baseRecordingContext,
std::move(recordingParams));
const RenderPassGraphBeginCallback beginPassCallback =
context.beginPassCallback