summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorpixel <pixel>2003-03-09 21:19:43 +0000
committerpixel <pixel>2003-03-09 21:19:43 +0000
commitca8754a3a2296ff2842c781d1936dd47cecb3c9f (patch)
treee2039b132e2797d26cd3c035f357ce0f9a5a3b39 /lib
parent4270ce9ebc2bf9e0f2da695ec9b02857d62f5c13 (diff)
FPS
Diffstat (limited to 'lib')
-rw-r--r--lib/engine.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/engine.cc b/lib/engine.cc
index ed52d8c..2d53beb 100644
--- a/lib/engine.cc
+++ b/lib/engine.cc
@@ -5,6 +5,11 @@
bool mogltk::engine::inited = false, mogltk::engine::postsetuped = false;
bool mogltk::engine::appactive = false, mogltk::engine::cursorvisible = false, mogltk::engine::quitrequest = false;
int mogltk::engine::mx, mogltk::engine::my, mogltk::engine::mbuttons;
+int mogltk::engine::frames;
+double mogltk::engine::curfps = -1;
+Uint32 mogltk::engine::curticks;
+
+#define UPDATERATE 1000
int mogltk::engine::setup() throw(GeneralException) {
if (inited) {
@@ -28,6 +33,7 @@ int mogltk::engine::postsetup() throw(GeneralException) {
}
SDL_EnableUNICODE(1);
+ curticks = SDL_GetTicks();
postsetuped = true;
@@ -110,6 +116,16 @@ void mogltk::engine::pollevents() {
if (!postsetuped)
postsetup();
+ if (appactive) {
+ Uint32 ticks = SDL_GetTicks();
+ frames++;
+ if (ticks - curticks > UPDATERATE) {
+ curfps = (double) frames * 1000 / (ticks - curticks);
+ frames = 0;
+ curticks = ticks;
+ }
+ }
+
while(true) {
if (hastoreturn)
if (!SDL_PollEvent(NULL)) {
@@ -197,3 +213,7 @@ int mogltk::engine::mouseY() {
int mogltk::engine::mousebuttons() {
return mbuttons;
}
+
+double mogltk::engine::FPS() {
+ return curfps;
+}