41 lines
1.0 KiB
C++
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
|