Files
XCEngine/editor/src/Viewport/Passes/SceneViewportSelectionOutlinePass.h

41 lines
1.2 KiB
C++

#pragma once
#include <XCEngine/Rendering/Passes/BuiltinObjectIdOutlinePass.h>
#include <XCEngine/Rendering/RenderContext.h>
#include <XCEngine/Rendering/RenderPass.h>
#include <XCEngine/Rendering/RenderSurface.h>
#include <cstdint>
#include <memory>
#include <vector>
namespace XCEngine {
namespace Editor {
class SceneViewportSelectionOutlinePassRenderer {
public:
SceneViewportSelectionOutlinePassRenderer();
~SceneViewportSelectionOutlinePassRenderer() = default;
void Shutdown();
bool Render(
const Rendering::RenderContext& renderContext,
const Rendering::RenderSurface& surface,
RHI::RHIResourceView* objectIdTextureView,
const std::vector<uint64_t>& selectedObjectIds,
const Rendering::Passes::ObjectIdOutlineStyle& style);
private:
Rendering::Passes::BuiltinObjectIdOutlinePass m_outlinePass;
};
std::unique_ptr<Rendering::RenderPass> CreateSceneViewportSelectionOutlinePass(
SceneViewportSelectionOutlinePassRenderer& renderer,
RHI::RHIResourceView* objectIdTextureView,
const std::vector<uint64_t>& selectedObjectIds,
const Rendering::Passes::ObjectIdOutlineStyle& style);
} // namespace Editor
} // namespace XCEngine