X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fmainloop.cpp;h=0add5f9c850f3b07ee7e57e0275670cd66875461;hb=7a0031e8f250c852743709ab06ecafe1896eefbe;hp=978d6bfede1b5360b06903ddcfceb84e9cbd59b2;hpb=08ccb17345a52f5ffd8a5dd6ecf675cad55f16a7;p=supertux.git diff --git a/src/mainloop.cpp b/src/mainloop.cpp index 978d6bfed..0add5f9c8 100644 --- a/src/mainloop.cpp +++ b/src/mainloop.cpp @@ -38,10 +38,6 @@ #include "video/renderer.hpp" #include "random_generator.hpp" -// the engine will be run with a logical framerate of 64fps. -// We chose 64fps here because it is a power of 2, so 1/64 gives an "even" -// binary fraction... -static const float LOGICAL_FPS = 64.0; /** ticks (as returned from SDL_GetTicks) per frame */ static const Uint32 TICKS_PER_FRAME = (Uint32) (1000.0 / LOGICAL_FPS); /** don't skip more than every 2nd frame */ @@ -124,8 +120,8 @@ MainLoop::draw_fps(DrawingContext& context, float fps_fps) char str[60]; snprintf(str, sizeof(str), "%3.1f", fps_fps); const char* fpstext = "FPS"; - context.draw_text(white_text, fpstext, Vector(SCREEN_WIDTH - white_text->get_text_width(fpstext) - gold_text->get_text_width(" 99999") - BORDER_X, BORDER_Y + 20), ALIGN_LEFT, LAYER_HUD); - context.draw_text(gold_text, str, Vector(SCREEN_WIDTH - BORDER_X, BORDER_Y + 20), ALIGN_RIGHT, LAYER_HUD); + context.draw_text(small_font, fpstext, Vector(SCREEN_WIDTH - small_font->get_text_width(fpstext) - small_font->get_text_width(" 99999") - BORDER_X, BORDER_Y + 20), ALIGN_LEFT, LAYER_HUD); + context.draw_text(small_font, str, Vector(SCREEN_WIDTH - BORDER_X, BORDER_Y + 20), ALIGN_RIGHT, LAYER_HUD); } void @@ -201,6 +197,10 @@ MainLoop::process_events() break; case SDL_KEYDOWN: + if (event.key.keysym.sym == SDLK_F10) + { + config->show_fps = !config->show_fps; + } if (event.key.keysym.sym == SDLK_F11) { config->use_fullscreen = !config->use_fullscreen; @@ -249,9 +249,11 @@ MainLoop::handle_screen_switch() nextpush = false; nextpop = false; speed = 1.0; - if(next_screen.get() != NULL) - next_screen->setup(); - current_screen.reset(next_screen.release()); + Screen* next_screen_ptr = next_screen.release(); + next_screen.reset(0); + if(next_screen_ptr) + next_screen_ptr->setup(); + current_screen.reset(next_screen_ptr); screen_fade.reset(NULL); waiting_threads.wakeup();