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.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/application.h b/src/core/application.h
index 1e4a08d..8df5afb 100644
--- a/src/core/application.h
+++ b/src/core/application.h
@@ -1,15 +1,20 @@
#pragma once
#include <cstdint>
+#include <memory>
#include <string>
namespace Hsdbg
{
+ class Window;
+ class WindowManager;
+
struct ApplicationSpec
{
std::string name = "hsdbg";
uint32_t width = 1600;
uint32_t height = 900;
+ bool vsync = true;
};
class Application
@@ -28,6 +33,7 @@ namespace Hsdbg
auto run() -> void;
auto close() -> void;
+ auto window() -> Window& { return *m_window; }
auto spec() const -> const ApplicationSpec& { return m_spec; }
auto is_running() const -> bool { return m_running; }
auto delta_time() const -> float { return m_delta_time; }
@@ -36,10 +42,13 @@ namespace Hsdbg
private:
auto update() -> void;
+ auto render() -> void;
static Application* s_instance;
ApplicationSpec m_spec;
+ std::unique_ptr<WindowManager> m_window_manager;
+ Window* m_window = nullptr;
bool m_running = false;
float m_delta_time = 0.0f;
float m_time = 0.0f;