aboutsummaryrefslogtreecommitdiff
path: root/src/core/application.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/application.h')
-rw-r--r--src/core/application.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/core/application.h b/src/core/application.h
index cbd741d..10a375f 100644
--- a/src/core/application.h
+++ b/src/core/application.h
@@ -19,7 +19,7 @@ namespace Donut
// RenderPath (device-side rendering) and the UILayer (tabbed workspaces), and
// runs the frame loop that wires them together. All the rendering lives in the
// RHI + shared renderers; all the editing lives in the Scene + workspaces.
- class Application
+ class Application : public AppActions
{
public:
Application(const std::string& name = "Donut",
@@ -32,6 +32,14 @@ namespace Donut
auto get_window() -> Window& { return *m_window; }
static auto get() -> Application& { return *s_instance; }
+ // AppActions — window/device changes requested by the Setup workspace.
+ auto set_resolution(int w, int h) -> void override;
+ auto set_fullscreen(bool on) -> void override;
+ auto set_vsync(bool on) -> void override;
+ auto set_ui_scale(float scale) -> void override;
+ auto get_window_size(int& w, int& h) const -> void override;
+ auto is_fullscreen() const -> bool override;
+
private:
auto on_init() -> void;
auto on_shutdown() -> void;
@@ -54,6 +62,9 @@ namespace Donut
double m_start_time = 0.0;
bool m_user_moving = false;
+ // windowed-mode geometry saved across a fullscreen toggle
+ int m_windowed_x = 100, m_windowed_y = 100, m_windowed_w = 1280, m_windowed_h = 720;
+
bool m_running = true;
bool m_minimized = false;