Add Ctrl+i shortcut to enable/disable FPS counter

Disable FPS counter on start, and use Ctrl+i to enable/disable it.
This commit is contained in:
Romain Vimont 2018-02-15 12:24:16 +01:00
parent 000ced9ba8
commit d977202224
4 changed files with 23 additions and 1 deletions

View file

@ -1,6 +1,7 @@
#include "inputmanager.h" #include "inputmanager.h"
#include "convert.h" #include "convert.h"
#include "lockutil.h"
#include "log.h" #include "log.h"
static struct point get_mouse_point(void) { static struct point get_mouse_point(void) {
@ -78,6 +79,18 @@ static void turn_screen_on(struct controller *controller) {
} }
} }
static void switch_fps_counter_state(struct frames *frames) {
mutex_lock(frames->mutex);
if (frames->fps_counter.started) {
LOGI("FPS counter stopped");
fps_counter_stop(&frames->fps_counter);
} else {
LOGI("FPS counter started");
fps_counter_start(&frames->fps_counter);
}
mutex_unlock(frames->mutex);
}
void input_manager_process_text_input(struct input_manager *input_manager, void input_manager_process_text_input(struct input_manager *input_manager,
const SDL_TextInputEvent *event) { const SDL_TextInputEvent *event) {
if (is_ctrl_down()) { if (is_ctrl_down()) {
@ -143,6 +156,9 @@ void input_manager_process_key(struct input_manager *input_manager,
case SDLK_g: case SDLK_g:
screen_resize_to_pixel_perfect(input_manager->screen); screen_resize_to_pixel_perfect(input_manager->screen);
return; return;
case SDLK_i:
switch_fps_counter_state(input_manager->frames);
return;
} }
return; return;

View file

@ -3,10 +3,13 @@
#include "common.h" #include "common.h"
#include "controller.h" #include "controller.h"
#include "fpscounter.h"
#include "frames.h"
#include "screen.h" #include "screen.h"
struct input_manager { struct input_manager {
struct controller *controller; struct controller *controller;
struct frames *frames;
struct screen *screen; struct screen *screen;
}; };

View file

@ -82,6 +82,9 @@ static void usage(const char *arg0) {
"\n" "\n"
" Right-click\n" " Right-click\n"
" turn screen on\n" " turn screen on\n"
"\n"
" Ctrl+i\n"
" enable/disable FPS counter (print frames/second in logs)\n"
"\n", "\n",
arg0, arg0,
DEFAULT_BIT_RATE, DEFAULT_BIT_RATE,

View file

@ -32,6 +32,7 @@ static struct controller controller;
static struct input_manager input_manager = { static struct input_manager input_manager = {
.controller = &controller, .controller = &controller,
.frames = &frames,
.screen = &screen, .screen = &screen,
}; };
@ -50,7 +51,6 @@ static void event_loop(void) {
screen.has_frame = SDL_TRUE; screen.has_frame = SDL_TRUE;
// this is the very first frame, show the window // this is the very first frame, show the window
screen_show_window(&screen); screen_show_window(&screen);
fps_counter_start(&frames.fps_counter);
} }
if (!screen_update_frame(&screen, &frames)) { if (!screen_update_frame(&screen, &frames)) {
return; return;