summaryrefslogtreecommitdiff
path: root/src/actions
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-08-27 14:52:10 +0300
committerAndrei Karas <akaras@inbox.ru>2014-08-27 14:52:10 +0300
commit45949cf0fbade4f211520926c5e839c68cd01fbb (patch)
treedf264bef9f6876c65d3e1905e374b15739c8f655 /src/actions
parentd003da4b7bbf1b37f95c2e8e761fbe3e54b25c7a (diff)
downloadmv-45949cf0fbade4f211520926c5e839c68cd01fbb.tar.gz
mv-45949cf0fbade4f211520926c5e839c68cd01fbb.tar.bz2
mv-45949cf0fbade4f211520926c5e839c68cd01fbb.tar.xz
mv-45949cf0fbade4f211520926c5e839c68cd01fbb.zip
Move chat command /testsdlfont into actions.
Diffstat (limited to 'src/actions')
-rw-r--r--src/actions/actions.cpp44
-rw-r--r--src/actions/actions.h5
2 files changed, 49 insertions, 0 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