Started abstraction for scene viewports

This commit is contained in:
antopilo
2025-01-27 21:12:25 -05:00
parent faf86c05a7
commit 83de729716
6 changed files with 146 additions and 5 deletions

View File

@@ -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)
{

View File

@@ -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;