18 #ifndef HEADER_SUPERTUX_SUPERTUX_SCREEN_MANAGER_HPP 19 #define HEADER_SUPERTUX_SUPERTUX_SCREEN_MANAGER_HPP 26 #include "control/mobile_controller.hpp" 27 #include "squirrel/squirrel_thread_queue.hpp" 28 #include "supertux/screen.hpp" 29 #include "util/currenton.hpp" 50 void quit(std::unique_ptr<ScreenFade> fade = {});
51 void set_speed(
float speed);
52 float get_speed()
const;
53 bool has_pending_fadeout()
const;
56 void push_screen(std::unique_ptr<Screen> screen, std::unique_ptr<ScreenFade> fade = {});
57 void pop_screen(std::unique_ptr<ScreenFade> fade = {});
58 void set_screen_fade(std::unique_ptr<ScreenFade> fade);
62 const std::vector<std::unique_ptr<Screen>>& get_screen_stack() {
return m_screen_stack; }
69 void update_gamelogic(
float dt_sec);
70 void process_events();
71 void handle_screen_switch();
76 std::unique_ptr<MenuStorage> m_menu_storage;
77 std::unique_ptr<MenuManager> m_menu_manager;
78 std::unique_ptr<ControllerHUD> m_controller_hud;
83 const Uint32 ms_per_step;
84 const float seconds_per_step;
85 std::unique_ptr<FPS_Stats> m_fps_statistics;
90 enum Type { PUSH_ACTION, POP_ACTION, QUIT_ACTION };
92 std::unique_ptr<Screen> screen;
95 std::unique_ptr<Screen> screen_ = {}) :
97 screen(std::move(screen_))
101 std::vector<Action> m_actions;
103 std::unique_ptr<ScreenFade> m_screen_fade;
104 std::vector<std::unique_ptr<Screen> > m_screen_stack;
Manages, updates and draws all Screens, Controllers, Menus and the Console.
Definition: screen_manager.hpp:43
Definition: screen_manager.cpp:56
A 'Currenton' allows access to the currently active instance of a class via the static current() func...
Definition: currenton.hpp:30
Definition: compositor.hpp:29
Definition: video_system.hpp:37
Definition: controller_hud.hpp:27
Definition: mobile_controller.hpp:33
This class provides functions for drawing things on screen.
Definition: drawing_context.hpp:42
Screen to be displayed simultaneously with another Screen.
Definition: screen_fade.hpp:27