Started abstraction for scene viewports
This commit is contained in:
@@ -5,10 +5,29 @@
|
||||
|
||||
#include "../../EditorInterface.h"
|
||||
|
||||
#include "src/Rendering/Vulkan/VulkanRenderer.h"
|
||||
#include "src/Rendering/Vulkan/SceneViewport.h"
|
||||
|
||||
#include <glm/gtc/type_ptr.hpp>
|
||||
|
||||
using namespace Nuake;
|
||||
|
||||
ViewportWidget::ViewportWidget(EditorContext& context) : IEditorWidget(context)
|
||||
{
|
||||
|
||||
const Vector2& defaultSize = { 1280, 720 };
|
||||
const UUID viewId = editorContext.GetScene()->m_EditorCamera->ID;
|
||||
auto& vkRenderer = Nuake::VkRenderer::Get();
|
||||
auto viewport = vkRenderer.CreateViewport(viewId, defaultSize);
|
||||
vkRenderer.RegisterSceneViewport(context.GetScene(), viewport->GetID());
|
||||
sceneViewport = viewport;
|
||||
}
|
||||
|
||||
ViewportWidget::~ViewportWidget()
|
||||
{
|
||||
Nuake::VkRenderer::Get().RemoveViewport(sceneViewport->GetID());
|
||||
}
|
||||
|
||||
void ViewportWidget::Update(float ts)
|
||||
{
|
||||
|
||||
|
||||
@@ -6,17 +6,24 @@
|
||||
|
||||
class EditorContext;
|
||||
|
||||
namespace MyNamespace
|
||||
{
|
||||
class Viewport;
|
||||
}
|
||||
|
||||
class ViewportWidget : public IEditorWidget
|
||||
{
|
||||
private:
|
||||
Ref<Viewport> sceneViewport;
|
||||
|
||||
ImGuizmo::OPERATION CurrentOperation = ImGuizmo::TRANSLATE;
|
||||
ImGuizmo::MODE CurrentMode = ImGuizmo::WORLD;
|
||||
bool UseSnapping = true;
|
||||
Nuake::Vector3 CurrentSnapping = { 0.05f, 0.05f, 0.05f };
|
||||
|
||||
public:
|
||||
ViewportWidget(EditorContext& context) : IEditorWidget(context) {}
|
||||
~ViewportWidget() = default;
|
||||
ViewportWidget(EditorContext& context) : IEditorWidget(context);
|
||||
~ViewportWidget();
|
||||
|
||||
public:
|
||||
void Update(float ts) override;
|
||||
|
||||
Reference in New Issue
Block a user