Files
XCEngine/editor/app/Rendering/Viewport/SceneViewportRenderPassBundle.cpp

47 lines
1.6 KiB
C++

#include "Viewport/SceneViewportRenderPassBundle.h"
namespace XCEngine::UI::Editor::App {
void SceneViewportRenderPassBundle::Shutdown() {
m_gridRenderer.Shutdown();
m_selectionOutlineRenderer.Shutdown();
m_selectedHelpersRenderer.Shutdown();
}
void SceneViewportRenderPassBundle::Initialize(
const SceneViewportShaderPaths& shaderPaths) {
m_gridRenderer.SetShaderPath(shaderPaths.infiniteGridShaderPath);
m_selectionOutlineRenderer.SetShaderPaths(
shaderPaths.selectionMaskShaderPath,
shaderPaths.selectionOutlineShaderPath);
}
SceneViewportRenderPlanBuildResult
SceneViewportRenderPassBundle::BuildRenderPlan(
ViewportRenderTargets& targets,
const SceneViewportRenderRequest& request) {
return BuildSceneViewportRenderPlan(
targets,
request,
[this](const SceneViewportGridPassData& data) {
return CreateSceneViewportGridPass(m_gridRenderer, data);
},
[this](
ViewportRenderTargets* outlineTargets,
const std::vector<std::uint64_t>& selectedObjectIds,
const SceneViewportSelectionOutlineStyle& style) {
return CreateSceneViewportSelectionOutlinePass(
m_selectionOutlineRenderer,
outlineTargets,
selectedObjectIds,
style);
},
[this](const SceneViewportRenderRequest& requestData) {
return CreateSceneViewportSelectedHelpersPass(
m_selectedHelpersRenderer,
requestData);
});
}
} // namespace XCEngine::UI::Editor::App