diff --git a/builds/android/jni/src/org_easyrpg_player_player_EasyRpgPlayerActivity.cpp b/builds/android/jni/src/org_easyrpg_player_player_EasyRpgPlayerActivity.cpp index 9b01ae8238..04d7610008 100644 --- a/builds/android/jni/src/org_easyrpg_player_player_EasyRpgPlayerActivity.cpp +++ b/builds/android/jni/src/org_easyrpg_player_player_EasyRpgPlayerActivity.cpp @@ -33,7 +33,7 @@ extern "C" { JNIEXPORT void JNICALL Java_org_easyrpg_player_player_EasyRpgPlayerActivity_toggleFps (JNIEnv *, jclass) { - Graphics::fps_on_screen = !Graphics::fps_on_screen; + Player::fps_flag = !Player::fps_flag; } JNIEXPORT void JNICALL Java_org_easyrpg_player_player_EasyRpgPlayerActivity_endGame diff --git a/builds/easyrpg-player.6.adoc b/builds/easyrpg-player.6.adoc index 7564f8ef69..5b7a00a3c5 100644 --- a/builds/easyrpg-player.6.adoc +++ b/builds/easyrpg-player.6.adoc @@ -43,6 +43,9 @@ for some additional binary patches. *--fullscreen*:: Start in fullscreen mode. +*--show-fps*:: + Enable frames per second counter. + *--hide-title*:: Hide the title background image and center the command menu. diff --git a/src/graphics.cpp b/src/graphics.cpp index 2d5f5be7e1..e69aa450a5 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -31,8 +31,6 @@ #include "player.h" namespace Graphics { - bool fps_on_screen; - void UpdateTitle(); void DrawFrame(); void DrawOverlay(); @@ -75,7 +73,6 @@ unsigned SecondToFrame(float const second) { } void Graphics::Init() { - fps_on_screen = false; fps = 0; frozen_screen = BitmapRef(); screen_erased = false; @@ -150,7 +147,7 @@ void Graphics::UpdateTitle() { std::stringstream title; title << Player::game_title; - if (!fps_on_screen) { + if (Player::fps_flag) { title << " - FPS " << real_fps; } @@ -204,7 +201,7 @@ void Graphics::DrawFrame() { } void Graphics::DrawOverlay() { - if (Graphics::fps_on_screen) { + if (DisplayUi->IsFullscreen() && Player::fps_flag) { std::stringstream text; text << "FPS: " << real_fps; DisplayUi->GetDisplaySurface()->TextDraw(2, 2, Color(255, 255, 255, 255), text.str()); diff --git a/src/graphics.h b/src/graphics.h index 01d3f90c1b..4c993c90ce 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -126,8 +126,6 @@ namespace Graphics { void UpdateZCallback(); - extern bool fps_on_screen; - void Push(); void Pop(); diff --git a/src/player.cpp b/src/player.cpp index a7d6a37482..7a2b4a0c08 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -73,6 +73,7 @@ namespace Player { bool debug_flag; bool hide_title_flag; bool window_flag; + bool fps_flag; bool battle_test_flag; int battle_test_troop_id; bool new_game_flag; @@ -227,7 +228,7 @@ void Player::Update(bool update_scene) { // Normal logic update if (Input::IsTriggered(Input::TOGGLE_FPS)) { - Graphics::fps_on_screen = !Graphics::fps_on_screen; + fps_flag = !fps_flag; } if (Input::IsTriggered(Input::TAKE_SCREENSHOT)) { Output::TakeScreenshot(); @@ -303,6 +304,7 @@ void Player::ParseCommandLine(int argc, char *argv[]) { #else window_flag = false; #endif + fps_flag = false; debug_flag = false; hide_title_flag = false; exit_flag = false; @@ -336,6 +338,9 @@ void Player::ParseCommandLine(int argc, char *argv[]) { if (*it == "window" || *it == "--window") { window_flag = true; } + else if (*it == "--show-fps") { + fps_flag = true; + } else if (*it == "testplay" || *it == "--test-play") { debug_flag = true; } @@ -698,6 +703,8 @@ void Player::PrintUsage() { std::cout << " " << "--fullscreen " << "Start in fullscreen mode." << std::endl; + std::cout << " " << "--show-fps " << "Enable frames per second counter." << std::endl; + std::cout << " " << "--hide-title " << "Hide the title background image and center the" << std::endl; std::cout << " " << " " << "command menu." << std::endl; diff --git a/src/player.h b/src/player.h index 492c03c8d9..910b2c0473 100644 --- a/src/player.h +++ b/src/player.h @@ -163,6 +163,9 @@ namespace Player { /** Window flag, if true will run in window mode instead of full screen. */ extern bool window_flag; + /** FPS flag, if true will display frames per second counter. */ + extern bool fps_flag; + /** Battle Test flag, if true will run battle test. */ extern bool battle_test_flag; diff --git a/src/sdl_ui.cpp b/src/sdl_ui.cpp index e62b047b2e..ed86c5de66 100644 --- a/src/sdl_ui.cpp +++ b/src/sdl_ui.cpp @@ -351,10 +351,7 @@ bool SdlUi::RefreshDisplayMode() { uint32_t flags = current_display_mode.flags; int display_width = current_display_mode.width; int display_height = current_display_mode.height; - - // Display on screen fps while fullscreen or no window available bool is_fullscreen = (flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP; - Graphics::fps_on_screen = is_fullscreen || !toggle_fs_available; if (zoom_available && current_display_mode.zoom) { display_width *= 2;