diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-23 17:31:31 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-23 17:31:31 +0200 |
commit | cce1f768e7399b838a2b865511915bdd576dbbf4 (patch) | |
tree | 4c6a8f2dc9112394fd329d56c0f628ce66b16467 /main/floormat-main.hpp | |
parent | 6b875a0919b9932eca9ed877552c34ecb220b7d8 (diff) |
a
Diffstat (limited to 'main/floormat-main.hpp')
-rw-r--r-- | main/floormat-main.hpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/main/floormat-main.hpp b/main/floormat-main.hpp new file mode 100644 index 00000000..5f0635cc --- /dev/null +++ b/main/floormat-main.hpp @@ -0,0 +1,35 @@ +#pragma once + +#include "floormat.hpp" +#include <Magnum/Math/Vector2.h> + +struct SDL_Window; + +namespace floormat { + +struct floormat_app; +struct tile_shader; +struct world; + +struct floormat_main +{ + floormat_main() noexcept; + virtual ~floormat_main() noexcept; + + fm_DECLARE_DELETED_COPY_ASSIGNMENT(floormat_main); + fm_DECLARE_DEPRECATED_MOVE_ASSIGNMENT(floormat_main); + + virtual void quit(int status) = 0; + + virtual Magnum::Math::Vector2<int> window_size() const noexcept = 0; + virtual float smoothed_dt() const noexcept = 0; + virtual tile_shader& shader() noexcept = 0; + virtual void register_debug_callback() noexcept = 0; + + virtual world& world() noexcept = 0; + virtual SDL_Window* window() noexcept = 0; + + static floormat_main* create(floormat_app& app, const fm_options& options); +}; + +} // namespace floormat |