#include #include #include #include #include namespace XCEngine { namespace Rendering { Containers::String BuildRenderPipelineMainScenePhasePassName( const Containers::String& baseName, ScenePhase scenePhase) { std::string name = baseName.CStr(); if (!name.empty()) { name += '.'; } name += ToString(scenePhase); return Containers::String(name.c_str()); } bool RecordRenderPipelineMainSceneFeaturePasses( const RenderPipelineMainSceneRenderGraphContext& context, SceneRenderFeatureHost& featureHost, SceneRenderInjectionPoint injectionPoint, bool clearAttachments, SceneRenderFeaturePassBeginCallback beginPassCallback, SceneRenderFeaturePassEndCallback endPassCallback, bool* recordedAnyPass) { const SceneRenderFeaturePassRenderGraphContext featureContext = BuildSceneRenderFeaturePassRenderGraphContext( BuildRenderGraphRecordingContext(context), clearAttachments, beginPassCallback, endPassCallback); return featureHost.Record( featureContext, injectionPoint, recordedAnyPass); } bool RecordRenderPipelineMainScenePhasePass( const RenderPipelineMainSceneRenderGraphContext& context, ScenePhase scenePhase, RenderPassGraphExecutePassCallback executePassCallback, RenderPassGraphBeginCallback beginPassCallback, RenderPassGraphEndCallback endPassCallback, std::vector additionalReadTextures) { const RenderPassRenderGraphContext passContext = BuildRenderPassRenderGraphContext( CloneRenderGraphRecordingContext( BuildRenderGraphRecordingContext(context), BuildRenderPipelineMainScenePhasePassName( context.passName, scenePhase)), beginPassCallback, endPassCallback); return RecordColorDepthCallbackRasterPass( passContext, std::move(executePassCallback), std::move(additionalReadTextures)); } } // namespace Rendering } // namespace XCEngine