diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/actions/actions.cpp | 44 | ||||
-rw-r--r-- | src/actions/actions.h | 5 | ||||
-rw-r--r-- | src/commands.cpp | 44 | ||||
-rw-r--r-- | src/commands.h | 5 | ||||
-rw-r--r-- | src/input/inputaction.h | 1 | ||||
-rw-r--r-- | src/input/inputactionmap.h | 19 | ||||
-rw-r--r-- | src/input/pages/other.cpp | 8 |
7 files changed, 77 insertions, 49 deletions
diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp index 22dd4834b..9198b474b 100644 --- a/src/actions/actions.cpp +++ b/src/actions/actions.cpp @@ -993,4 +993,48 @@ impHandler(dumpMods) return true; } +#if defined USE_OPENGL && defined DEBUG_SDLFONT +impHandler0(testSdlFont) +{ + Font *font = new Font("fonts/dejavusans.ttf", 18); + timespec time1; + timespec time2; + NullOpenGLGraphics *nullGraphics = new NullOpenGLGraphics; + std::vector<std::string> data; + volatile int width = 0; + + for (int f = 0; f < 300; f ++) + data.push_back("test " + toString(f) + "string"); + nullGraphics->beginDraw(); + + clock_gettime(CLOCK_MONOTONIC, &time1); + for (int f = 0; f < 500; f ++) + { + FOR_EACH (std::vector<std::string>::const_iterator, it, data) + { + width += font->getWidth(*it); + font->drawString(nullGraphics, *it, 10, 10); + } + FOR_EACH (std::vector<std::string>::const_iterator, it, data) + font->drawString(nullGraphics, *it, 10, 10); + + font->doClean(); + } + + clock_gettime(CLOCK_MONOTONIC, &time2); + + delete nullGraphics; + delete font; + + int64_t diff = (static_cast<long long int>( + time2.tv_sec) * 1000000000LL + static_cast<long long int>( + time2.tv_nsec)) / 100000 - (static_cast<long long int>( + time1.tv_sec) * 1000000000LL + static_cast<long long int>( + time1.tv_nsec)) / 100000; + if (debugChatTab) + debugChatTab->chatLog("sdlfont time: " + toString(diff)); + return true; +} +#endif + } // namespace Actions diff --git a/src/actions/actions.h b/src/actions/actions.h index 7a8217570..f3c58da54 100644 --- a/src/actions/actions.h +++ b/src/actions/actions.h @@ -21,6 +21,8 @@ #ifndef ACTIONS_ACTIONS_H #define ACTIONS_ACTIONS_H +#include "localconsts.h" + #define decHandler(name) bool name(InputEvent &event) struct InputEvent; @@ -78,6 +80,9 @@ namespace Actions decHandler(dumpOGL); decHandler(dumpGL); decHandler(dumpMods); +#if defined USE_OPENGL && defined DEBUG_SDLFONT + decHandler(testSdlFont); +#endif } // namespace Actions #undef decHandler diff --git a/src/commands.cpp b/src/commands.cpp index 18747f24e..1f474bd3f 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -328,50 +328,6 @@ impHandler(uploadLog) return true; } -impHandler0(testsdlfont) -{ -#if defined USE_OPENGL && defined DEBUG_SDLFONT - Font *font = new Font("fonts/dejavusans.ttf", 18); - timespec time1; - timespec time2; - NullOpenGLGraphics *nullGraphics = new NullOpenGLGraphics; - std::vector<std::string> data; - volatile int width = 0; - - for (int f = 0; f < 300; f ++) - data.push_back("test " + toString(f) + "string"); - nullGraphics->beginDraw(); - - clock_gettime(CLOCK_MONOTONIC, &time1); - for (int f = 0; f < 500; f ++) - { - FOR_EACH (std::vector<std::string>::const_iterator, it, data) - { - width += font->getWidth(*it); - font->drawString(nullGraphics, *it, 10, 10); - } - FOR_EACH (std::vector<std::string>::const_iterator, it, data) - font->drawString(nullGraphics, *it, 10, 10); - - font->doClean(); - } - - clock_gettime(CLOCK_MONOTONIC, &time2); - - delete nullGraphics; - delete font; - - int64_t diff = (static_cast<long long int>( - time2.tv_sec) * 1000000000LL + static_cast<long long int>( - time2.tv_nsec)) / 100000 - (static_cast<long long int>( - time1.tv_sec) * 1000000000LL + static_cast<long long int>( - time1.tv_nsec)) / 100000; - if (debugChatTab) - debugChatTab->chatLog("sdlfont time: " + toString(diff)); -#endif - return true; -} - impHandler0(debugSpawn) { int cnt = atoi(event.args.c_str()); diff --git a/src/commands.h b/src/commands.h index 44afba028..3875d4523 100644 --- a/src/commands.h +++ b/src/commands.h @@ -52,7 +52,6 @@ struct CommandInfo final namespace Commands { decHandler(hack); - decHandler(testsdlfont); decHandler(enableHighlight); decHandler(disableHighlight); decHandler(dontRemoveName); @@ -74,8 +73,7 @@ namespace Commands enum { - COMMAND_TESTSDLFONT = 0, - COMMAND_ENABLEHIGHLIGHT, + COMMAND_ENABLEHIGHLIGHT = 0, COMMAND_DISABLEHIGHLIGHT, COMMAND_DONTREMOVENAME, COMMAND_REMOVENAME, @@ -96,7 +94,6 @@ enum static const CommandInfo commands[] = { - {"testsdlfont", &Commands::testsdlfont, -1, false}, {"enablehighlight", &Commands::enableHighlight, -1, false}, {"disablehighlight", &Commands::disableHighlight, -1, false}, {"", &Commands::dontRemoveName, -1, false}, diff --git a/src/input/inputaction.h b/src/input/inputaction.h index c0c91d7f8..48508b0fb 100644 --- a/src/input/inputaction.h +++ b/src/input/inputaction.h @@ -407,6 +407,7 @@ namespace InputAction URL, OPEN_URL, EXECUTE, + TEST_SDL_FONT, TOTAL }; } // namespace InputAction diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h index 0e16c866c..e2d123b73 100644 --- a/src/input/inputactionmap.h +++ b/src/input/inputactionmap.h @@ -3432,7 +3432,24 @@ static const InputActionData inputActionData[InputAction::TOTAL] = { InputAction::NO_VALUE, 50, InputCondition::INGAME, "execute", - true} + true}, + {"keyTestSdlFont", + InputType::UNKNOWN, InputAction::NO_VALUE, + InputType::UNKNOWN, InputAction::NO_VALUE, + Input::GRP_DEFAULT, +#if defined USE_OPENGL && defined DEBUG_SDLFONT + &Actions::testSdlFont, +#else + nullptr, +#endif + InputAction::NO_VALUE, 50, + InputCondition::INGAME, +#if defined USE_OPENGL && defined DEBUG_SDLFONT + "testsdlfont", +#else + "", +#endif + false} }; #endif // INPUT_INPUTACTIONMAP_H diff --git a/src/input/pages/other.cpp b/src/input/pages/other.cpp index 06ce2c348..61c6a5a9f 100644 --- a/src/input/pages/other.cpp +++ b/src/input/pages/other.cpp @@ -327,6 +327,14 @@ SetupActionData setupActionDataOther[] = InputAction::DUMP_OGL, "", }, +#if defined USE_OPENGL && defined DEBUG_SDLFONT + { + // TRANSLATORS: input action name + N_("Test SDL font speed"), + InputAction::TEST_SDL_FONT, + "", + }, +#endif { "", InputAction::NO_VALUE, |