diff options
Diffstat (limited to 'floormat/app.hpp')
-rw-r--r-- | floormat/app.hpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/floormat/app.hpp b/floormat/app.hpp new file mode 100644 index 00000000..60ecc52c --- /dev/null +++ b/floormat/app.hpp @@ -0,0 +1,49 @@ +#pragma once + +namespace Magnum::Math { template<typename T> class Vector2; } + +namespace floormat { + +struct mouse_move_event; +struct mouse_button_event; +struct mouse_scroll_event; +struct key_event; +struct text_input_event; +struct text_editing_event; +struct any_event; + +struct chunk_coords; +struct chunk; + +struct floormat_app +{ + explicit floormat_app() noexcept; + virtual ~floormat_app() noexcept; + + floormat_app(const floormat_app&) = delete; + floormat_app& operator=(const floormat_app&) = delete; + [[deprecated]] floormat_app(floormat_app&&) = default; + [[deprecated]] floormat_app& operator=(floormat_app&&) = default; + + virtual void update(float dt) = 0; + virtual void maybe_initialize_chunk(const chunk_coords& pos, chunk& c) = 0; + virtual void draw_msaa(); + virtual void draw() = 0; + + virtual void on_mouse_move(const mouse_move_event& event) noexcept = 0; + virtual void on_mouse_up_down(const mouse_button_event& event, bool is_down) noexcept = 0; + virtual void on_mouse_scroll(const mouse_scroll_event& event) noexcept = 0; + virtual void on_key_up_down(const key_event& event, bool is_down) noexcept = 0; + virtual void on_text_input_event(const text_input_event& event) noexcept = 0; + //virtual bool on_text_editing_event(const text_editing_event& event) noexcept = 0; + virtual void on_viewport_event(const Magnum::Math::Vector2<int>& size) noexcept = 0; + virtual void on_any_event(const any_event& event) noexcept = 0; + virtual void on_focus_in() noexcept = 0; + virtual void on_focus_out() noexcept = 0; + virtual void on_mouse_leave() noexcept = 0; + virtual void on_mouse_enter() noexcept = 0; +}; + +inline void floormat_app::draw_msaa() {} + +} // namespace floormat |