refactor(rendering): route managed scene recording through native scene renderer factory

This commit is contained in:
2026-04-18 01:24:21 +08:00
parent 1ba73fdf0a
commit 2409f479e9
5 changed files with 26 additions and 4 deletions

View File

@@ -11,8 +11,8 @@
#include "Input/InputManager.h"
#include "Physics/PhysicsWorld.h"
#include "Rendering/Execution/CameraFramePlan.h"
#include "Rendering/Internal/RenderPipelineFactory.h"
#include "Rendering/Passes/BuiltinColorScalePostProcessPass.h"
#include "Rendering/Pipelines/BuiltinForwardPipeline.h"
#include "Rendering/Pipelines/BuiltinForwardSceneRecorder.h"
#include "Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h"
#include "Rendering/RenderPipelineStageGraphContract.h"
@@ -414,7 +414,9 @@ public:
}
}
m_builtinColorScalePassPool.clear();
m_builtinForwardPipeline.Shutdown();
if (m_builtinSceneRenderer != nullptr) {
m_builtinSceneRenderer->Shutdown();
}
ReleaseManagedObjects();
m_supportsStageMethod = nullptr;
m_recordStageMethod = nullptr;
@@ -465,8 +467,15 @@ public:
ManagedScriptableRenderContextState managedContextState = {};
managedContextState.stage = context.stage;
managedContextState.graphContext = &context;
if (m_builtinSceneRenderer == nullptr) {
m_builtinSceneRenderer =
Rendering::Internal::CreateDefaultNativeSceneRenderer();
}
if (m_builtinSceneRenderer == nullptr) {
return false;
}
Rendering::Pipelines::BuiltinForwardSceneRecorder builtinForwardSceneRecorder(
m_builtinForwardPipeline,
*m_builtinSceneRenderer,
context);
managedContextState.builtinForwardSceneRecorder =
&builtinForwardSceneRecorder;
@@ -600,7 +609,7 @@ private:
mutable bool m_pipelineCreationAttempted = false;
std::vector<std::unique_ptr<Rendering::Passes::BuiltinColorScalePostProcessPass>>
m_builtinColorScalePassPool = {};
Rendering::Pipelines::BuiltinForwardPipeline m_builtinForwardPipeline;
std::unique_ptr<Rendering::NativeSceneRenderer> m_builtinSceneRenderer = nullptr;
};
std::unique_ptr<Rendering::RenderPipelineStageRecorder>