Pioneer
Loading...
Searching...
No Matches
ViewportWindow.h
Go to the documentation of this file.
1// Copyright © 2008-2024 Pioneer Developers. See AUTHORS.txt for details
2// Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3
4#pragma once
5
7#include "graphics/Graphics.h"
8#include "imgui/imgui.h"
9
10#include <memory>
11
12namespace Graphics
13{
14 class Renderer;
15 class RenderTarget;
16}
17
18namespace Editor
19{
20
22 public:
25
26 virtual void OnAppearing() override;
27 virtual void OnDisappearing() override;
28
29 virtual void Update(float deltaTime) override;
30
31 protected:
32
33 virtual void OnUpdate(float deltaTime) = 0;
34 virtual void OnRender(Graphics::Renderer *renderer) = 0;
35
36 virtual void OnHandleInput(bool clicked, bool released, ImVec2 mousePos) = 0;
37
38 virtual ImGuiWindowFlags SetupWindowFlags();
39
40 void CreateRenderTarget();
41
42 Graphics::RenderTarget *GetRenderTarget() { return m_renderTarget.get(); }
43 const Graphics::ViewportExtents &GetViewportExtents() const { return m_viewportExtents; }
44
45 bool IsViewportPressed() const { return m_viewportActive; }
46 bool IsViewportHovered() const { return m_viewportHovered; }
47
48 private:
49
50 std::unique_ptr<Graphics::RenderTarget> m_renderTarget;
51 std::unique_ptr<Graphics::RenderTarget> m_resolveTarget;
52 Graphics::ViewportExtents m_viewportExtents;
53
54 bool m_viewportActive;
55 bool m_viewportHovered;
56
57 };
58}
Definition: EditorApp.h:20
Definition: EditorWindow.h:10
Definition: ViewportWindow.h:21
Graphics::RenderTarget * GetRenderTarget()
Definition: ViewportWindow.h:42
bool IsViewportHovered() const
Definition: ViewportWindow.h:46
virtual void OnDisappearing() override
Definition: ViewportWindow.cpp:32
void CreateRenderTarget()
Definition: ViewportWindow.cpp:154
virtual void OnRender(Graphics::Renderer *renderer)=0
bool IsViewportPressed() const
Definition: ViewportWindow.h:45
virtual void OnHandleInput(bool clicked, bool released, ImVec2 mousePos)=0
virtual void Update(float deltaTime) override
Definition: ViewportWindow.cpp:42
~ViewportWindow()
Definition: ViewportWindow.cpp:24
virtual void OnAppearing() override
Definition: ViewportWindow.cpp:27
virtual ImGuiWindowFlags SetupWindowFlags()
Definition: ViewportWindow.cpp:37
virtual void OnUpdate(float deltaTime)=0
const Graphics::ViewportExtents & GetViewportExtents() const
Definition: ViewportWindow.h:43
Definition: RenderTarget.h:38
Definition: Renderer.h:45
Definition: ActionBinder.h:14
Definition: Background.h:14
Definition: Graphics.h:59