X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fmainloop.hpp;h=6edb42123ff32681910aa7ad3978a01018685b52;hb=dc9b54f74ced4cb8b995757786e34ecb2e7db8f1;hp=cb5bbeda250e537a486ece6ea7d54703685a1ef1;hpb=7fbc38d9c2fda9bfb10eeb7ecb3db36c3daa2824;p=supertux.git diff --git a/src/mainloop.hpp b/src/mainloop.hpp index cb5bbeda2..6edb42123 100644 --- a/src/mainloop.hpp +++ b/src/mainloop.hpp @@ -28,16 +28,25 @@ 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; + + /** + * 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 +73,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;