projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix for #453 (Menu frame lingers)
[supertux.git]
/
src
/
mainloop.hpp
diff --git
a/src/mainloop.hpp
b/src/mainloop.hpp
index
cb5bbed
..
46e119a
100644
(file)
--- a/
src/mainloop.hpp
+++ b/
src/mainloop.hpp
@@
-28,16
+28,26
@@
class Console;
class ScreenFade;
class DrawingContext;
class ScreenFade;
class DrawingContext;
+/**
+ * Manages, updates and draws all Screens, Controllers, Menus and the Console.
+ */
class MainLoop
{
public:
MainLoop();
~MainLoop();
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);
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);
// push new screen on screen_stack
void push_screen(Screen* screen, ScreenFade* fade = NULL);
@@
-64,6
+74,7
@@
private:
std::auto_ptr<Console> console;
std::auto_ptr<ScreenFade> screen_fade;
std::vector<Screen*> screen_stack;
std::auto_ptr<Console> console;
std::auto_ptr<ScreenFade> screen_fade;
std::vector<Screen*> screen_stack;
+ bool screenshot_requested; /**< true if a screenshot should be taken after the next frame has been rendered */
};
extern MainLoop* main_loop;
};
extern MainLoop* main_loop;