Centralize render-graph recording context builders
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "Debug/Logger.h"
|
||||
#include "Rendering/Graph/RenderGraph.h"
|
||||
#include "Rendering/Internal/RenderPassGraphUtils.h"
|
||||
#include "Rendering/Internal/RenderGraphRecordingContextBuilders.h"
|
||||
#include "Rendering/Pipelines/BuiltinForwardPipeline.h"
|
||||
#include "Rendering/Pipelines/Internal/BuiltinForwardSceneSetup.h"
|
||||
#include "Rendering/RenderSurface.h"
|
||||
@@ -131,28 +132,31 @@ bool BuiltinForwardMainSceneGraphBuilder::Record(
|
||||
[&pipeline](const RenderPassContext& passContext) {
|
||||
pipeline.EndForwardScenePass(passContext);
|
||||
};
|
||||
const ::XCEngine::Rendering::Internal::RenderGraphRecordingContextCommon commonContext = {
|
||||
context.graphBuilder,
|
||||
passName,
|
||||
renderContext,
|
||||
*sceneData,
|
||||
surfaceTemplate,
|
||||
hasSourceSurface ? &sourceSurface : nullptr,
|
||||
sourceColorView,
|
||||
sourceColorState,
|
||||
{},
|
||||
colorTargets,
|
||||
depthTarget,
|
||||
executionSucceeded,
|
||||
context.blackboard
|
||||
};
|
||||
|
||||
bool clearAttachments = true;
|
||||
for (const ForwardSceneStep& step : GetBuiltinForwardSceneSteps()) {
|
||||
if (step.type == ForwardSceneStepType::InjectionPoint) {
|
||||
const SceneRenderFeaturePassRenderGraphContext featureContext = {
|
||||
context.graphBuilder,
|
||||
passName,
|
||||
renderContext,
|
||||
*sceneData,
|
||||
surfaceTemplate,
|
||||
hasSourceSurface ? &sourceSurface : nullptr,
|
||||
sourceColorView,
|
||||
sourceColorState,
|
||||
{},
|
||||
colorTargets,
|
||||
depthTarget,
|
||||
clearAttachments,
|
||||
executionSucceeded,
|
||||
beginRecordedPass,
|
||||
endRecordedPass,
|
||||
context.blackboard
|
||||
};
|
||||
const SceneRenderFeaturePassRenderGraphContext featureContext =
|
||||
::XCEngine::Rendering::Internal::BuildSceneRenderFeaturePassRenderGraphContext(
|
||||
commonContext,
|
||||
clearAttachments,
|
||||
beginRecordedPass,
|
||||
endRecordedPass);
|
||||
bool recordedAnyPass = false;
|
||||
if (!pipeline.m_forwardSceneFeatureHost.Record(
|
||||
featureContext,
|
||||
@@ -178,23 +182,13 @@ bool BuiltinForwardMainSceneGraphBuilder::Record(
|
||||
mainDirectionalShadowTexture.IsValid()
|
||||
? std::vector<RenderGraphTextureHandle>{ mainDirectionalShadowTexture }
|
||||
: std::vector<RenderGraphTextureHandle>{};
|
||||
const RenderPassRenderGraphContext phaseContext = {
|
||||
context.graphBuilder,
|
||||
phasePassName,
|
||||
renderContext,
|
||||
*sceneData,
|
||||
surfaceTemplate,
|
||||
hasSourceSurface ? &sourceSurface : nullptr,
|
||||
sourceColorView,
|
||||
sourceColorState,
|
||||
{},
|
||||
colorTargets,
|
||||
depthTarget,
|
||||
executionSucceeded,
|
||||
beginPhasePass,
|
||||
endRecordedPass,
|
||||
context.blackboard
|
||||
};
|
||||
::XCEngine::Rendering::Internal::RenderGraphRecordingContextCommon phaseCommonContext = commonContext;
|
||||
phaseCommonContext.passName = phasePassName;
|
||||
const RenderPassRenderGraphContext phaseContext =
|
||||
::XCEngine::Rendering::Internal::BuildRenderPassRenderGraphContext(
|
||||
phaseCommonContext,
|
||||
beginPhasePass,
|
||||
endRecordedPass);
|
||||
if (!::XCEngine::Rendering::Internal::RecordCallbackRasterRenderPass(
|
||||
phaseContext,
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user