X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmainloop.hpp;h=46e119af0ac7446493ebde6cafe6b38bc04584f2;hb=5667d7e94d85f968ab914bc457edd689fc907253;hp=cb5bbeda250e537a486ece6ea7d54703685a1ef1;hpb=7fbc38d9c2fda9bfb10eeb7ecb3db36c3daa2824;p=supertux.git diff --git a/src/mainloop.hpp b/src/mainloop.hpp index cb5bbeda2..46e119af0 100644 --- a/src/mainloop.hpp +++ b/src/mainloop.hpp @@ -28,16 +28,26 @@ class Console; class ScreenFade; class DrawingContext; +/** + * Manages, updates and draws all Screens, Controllers, Menus and the Console. + */ class MainLoop { public: MainLoop(); ~MainLoop(); - void run(); + void run(DrawingContext &context); void exit_screen(ScreenFade* fade = NULL); void quit(ScreenFade* fade = NULL); void set_speed(float speed); + float get_speed() const; + bool has_no_pending_fadeout() const; + + /** + * requests that a screenshot be taken after the next frame has been rendered + */ + void take_screenshot(); // push new screen on screen_stack void push_screen(Screen* screen, ScreenFade* fade = NULL); @@ -64,6 +74,7 @@ private: std::auto_ptr console; std::auto_ptr screen_fade; std::vector screen_stack; + bool screenshot_requested; /**< true if a screenshot should be taken after the next frame has been rendered */ }; extern MainLoop* main_loop;