X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fmainloop.cpp;h=314de15765d69f1db051633cacef102b3d5483ab;hb=aec9bf199857d0ae1a5dc54cd96ae37177493deb;hp=5f9230fdb5c5b7527b9940cbb7aebad776c1b0f4;hpb=ffaadd80066a2a0f8c30d58ef3466f79e98254d7;p=supertux.git diff --git a/src/mainloop.cpp b/src/mainloop.cpp index 5f9230fdb..314de1576 100644 --- a/src/mainloop.cpp +++ b/src/mainloop.cpp @@ -49,7 +49,7 @@ static const int MAX_FRAME_SKIP = 2; MainLoop* main_loop = NULL; MainLoop::MainLoop() - : speed(1.0), nextpop(false), nextpush(false) + : speed(1.0), nextpop(false), nextpush(false), fps(0), screenshot_requested(false) { using namespace Scripting; TimeScheduler::instance = new TimeScheduler(); @@ -109,6 +109,12 @@ MainLoop::set_speed(float speed) this->speed = speed; } +float +MainLoop::get_speed() const +{ + return speed; +} + void MainLoop::draw_fps(DrawingContext& context, float fps_fps) { @@ -135,6 +141,11 @@ MainLoop::draw(DrawingContext& context) if(config->show_fps) draw_fps(context, fps); + // if a screenshot was requested, pass request on to drawing_context + if (screenshot_requested) { + context.take_screenshot(); + screenshot_requested = false; + } context.do_drawing(); /* Calculate frames per second */ @@ -177,6 +188,9 @@ MainLoop::process_events() config->use_fullscreen = !config->use_fullscreen; init_video(); } + else if (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_PRINT) { + take_screenshot(); + } } } @@ -262,3 +276,10 @@ MainLoop::run() SDL_Delay(0); } } + +void +MainLoop::take_screenshot() +{ + screenshot_requested = true; +} +