Files
XCEngine/editor/src/Viewport/SceneViewportOverlayBuilder.h

41 lines
1.0 KiB
C++

#pragma once
#include "IViewportHostService.h"
#include "SceneViewportOverlayProviders.h"
#include <cstdint>
#include <vector>
namespace XCEngine {
namespace Editor {
class IEditorContext;
class SceneViewportOverlayBuilder {
public:
SceneViewportOverlayBuilder();
explicit SceneViewportOverlayBuilder(SceneViewportOverlayProviderRegistry providerRegistry);
SceneViewportOverlayFrameData Build(
IEditorContext& context,
const SceneViewportOverlayData& overlay,
uint32_t viewportWidth,
uint32_t viewportHeight,
const std::vector<uint64_t>& selectedObjectIds,
const SceneViewportTransformGizmoOverlayState* transformGizmoOverlayState = nullptr) const;
const SceneViewportOverlayProviderRegistry& GetProviderRegistry() const {
return m_providerRegistry;
}
SceneViewportOverlayProviderRegistry& GetProviderRegistry() {
return m_providerRegistry;
}
private:
SceneViewportOverlayProviderRegistry m_providerRegistry = {};
};
} // namespace Editor
} // namespace XCEngine