refactor: route scene view passes through camera renderer
This commit is contained in:
@@ -86,6 +86,7 @@ CameraRenderer::~CameraRenderer() {
|
||||
if (m_objectIdPass != nullptr) {
|
||||
m_objectIdPass->Shutdown();
|
||||
}
|
||||
m_builtinSceneViewPostProcessBuilder.Shutdown();
|
||||
}
|
||||
|
||||
void CameraRenderer::SetPipeline(std::unique_ptr<RenderPipeline> pipeline) {
|
||||
@@ -135,6 +136,11 @@ bool CameraRenderer::Render(
|
||||
!request.objectId.IsValid()) {
|
||||
return false;
|
||||
}
|
||||
if (request.builtinSceneViewPostProcess.IsRequested() &&
|
||||
request.builtinSceneViewPostProcess.objectIdTextureView != nullptr &&
|
||||
!request.objectId.IsRequested()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
RenderSceneData sceneData = m_sceneExtractor.ExtractForCamera(
|
||||
*request.scene,
|
||||
@@ -195,6 +201,36 @@ bool CameraRenderer::Render(
|
||||
return false;
|
||||
}
|
||||
|
||||
RenderPassSequence builtinSceneViewPostPasses = {};
|
||||
bool builtinSceneViewPostPassesInitialized = false;
|
||||
if (request.builtinSceneViewPostProcess.IsRequested()) {
|
||||
const Passes::BuiltinSceneViewPostPassSequenceBuildResult buildResult =
|
||||
m_builtinSceneViewPostProcessBuilder.Build(
|
||||
{
|
||||
request.builtinSceneViewPostProcess.gridPassData,
|
||||
request.builtinSceneViewPostProcess.objectIdTextureView,
|
||||
request.builtinSceneViewPostProcess.selectedObjectIds,
|
||||
request.builtinSceneViewPostProcess.outlineStyle
|
||||
},
|
||||
builtinSceneViewPostPasses);
|
||||
if (!buildResult.valid ||
|
||||
!InitializePassSequence(
|
||||
&builtinSceneViewPostPasses,
|
||||
request.context,
|
||||
builtinSceneViewPostPassesInitialized)) {
|
||||
ShutdownPassSequence(request.postScenePasses, postScenePassesInitialized);
|
||||
ShutdownPassSequence(request.preScenePasses, preScenePassesInitialized);
|
||||
return false;
|
||||
}
|
||||
if (!builtinSceneViewPostPasses.Execute(passContext)) {
|
||||
ShutdownPassSequence(&builtinSceneViewPostPasses, builtinSceneViewPostPassesInitialized);
|
||||
ShutdownPassSequence(request.postScenePasses, postScenePassesInitialized);
|
||||
ShutdownPassSequence(request.preScenePasses, preScenePassesInitialized);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
ShutdownPassSequence(&builtinSceneViewPostPasses, builtinSceneViewPostPassesInitialized);
|
||||
ShutdownPassSequence(request.postScenePasses, postScenePassesInitialized);
|
||||
ShutdownPassSequence(request.preScenePasses, preScenePassesInitialized);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user