#include "Rendering/SceneRenderFeaturePass.h" #include #include #include namespace XCEngine { namespace Rendering { bool SceneRenderFeaturePass::RecordRenderGraph( const SceneRenderFeaturePassRenderGraphContext& context) { const RenderGraphRecordingContext baseRecordingContext = BuildRenderGraphRecordingContext(context); RenderSurface sourceSurfaceTemplate = {}; RenderGraphRecordingContextBuildParams recordingParams = {}; recordingParams.overrideSourceBinding = true; recordingParams.sourceBinding = ResolveRenderGraphRecordingSourceBinding( baseRecordingContext, &baseRecordingContext.surface, &sourceSurfaceTemplate); const RenderGraphRecordingContext recordingContext = BuildRenderGraphRecordingContext( baseRecordingContext, std::move(recordingParams)); const RenderPassGraphBeginCallback beginPassCallback = context.beginPassCallback ? RenderPassGraphBeginCallback( [beginPass = context.beginPassCallback, clearAttachments = context.clearAttachments]( const RenderPassContext& passContext) { return beginPass(passContext, clearAttachments); }) : RenderPassGraphBeginCallback(); const RenderPassRenderGraphContext passContext = BuildRenderPassRenderGraphContext( recordingContext, beginPassCallback, context.endPassCallback); return RecordRasterRenderPass( *this, passContext, BuildDeclaredRasterPassGraphIO(passContext)); } } // namespace Rendering } // namespace XCEngine