summaryrefslogtreecommitdiff
path: root/src/PowderToySDL.cpp
diff options
context:
space:
mode:
authorjacob1 <jfu614@gmail.com>2013-05-30 00:36:34 (GMT)
committer jacob1 <jfu614@gmail.com>2013-05-30 00:36:34 (GMT)
commitd6d20defdebf72c2b27244a6d4bc8a757a669a59 (patch)
treea3802256a9377cf5b048a01a91a31a470be3c7c3 /src/PowderToySDL.cpp
parentcbc80de6522b5562f9490b0cdb620371f25be2f9 (diff)
parent41e369e68eac7b05f8cda312f9668942dc688aa7 (diff)
downloadpowder-d6d20defdebf72c2b27244a6d4bc8a757a669a59.zip
powder-d6d20defdebf72c2b27244a6d4bc8a757a669a59.tar.gz
Merge branch 'master' of git@github.com:FacialTurd/The-Powder-Toy.git
Diffstat (limited to 'src/PowderToySDL.cpp')
-rw-r--r--src/PowderToySDL.cpp40
1 files changed, 19 insertions, 21 deletions
diff --git a/src/PowderToySDL.cpp b/src/PowderToySDL.cpp
index f61a55e..618fdec 100644
--- a/src/PowderToySDL.cpp
+++ b/src/PowderToySDL.cpp
@@ -16,8 +16,8 @@
#include "graphics/Graphics.h"
#if defined(LIN)
#include "icon.h"
-#include <signal.h>
#endif
+#include <signal.h>
#ifndef WIN
#include <unistd.h>
@@ -377,7 +377,7 @@ ui::Engine * engine = NULL;
float currentWidth, currentHeight;
void EngineProcess()
{
- int frameStart;
+ int frameStart = SDL_GetTicks();
float frameTime;
float frameTimeAvg = 0.0f, correctedFrameTimeAvg = 0.0f;
SDL_Event event;
@@ -492,11 +492,25 @@ void EngineProcess()
}
if(engine->Broken()) { engine->UnBreak(); break; }
- frameStart = SDL_GetTicks();
engine->Tick();
engine->Draw();
- frameTime = SDL_GetTicks() - frameStart;
+ if(scale != engine->Scale || fullscreen != engine->Fullscreen)
+ {
+ sdl_scrn = SDLSetScreen(engine->Scale, engine->Fullscreen);
+ inputScale = 1.0f/float(scale);
+ }
+
+#ifdef OGLI
+ blit();
+#else
+ if(engine->Scale==2)
+ blit2(engine->g->vid, engine->Scale);
+ else
+ blit(engine->g->vid);
+#endif
+
+ frameTime = SDL_GetTicks() - frameStart;
frameTimeAvg = (frameTimeAvg*(1.0f-0.2f)) + (0.2f*frameTime);
if(ui::Engine::Ref().FpsLimit > 2.0f)
{
@@ -507,10 +521,10 @@ void EngineProcess()
frameTime = SDL_GetTicks() - frameStart;//+= (int)(targetFrameTime - frameTimeAvg);
}
}
-
correctedFrameTimeAvg = (correctedFrameTimeAvg*(1.0f-0.05f)) + (0.05f*frameTime);
fps = 1000.0f/correctedFrameTimeAvg;
engine->SetFps(fps);
+ frameStart = SDL_GetTicks();
if(frameStart-lastTick>250)
{
@@ -518,21 +532,6 @@ void EngineProcess()
lastTick = frameStart;
Client::Ref().Tick();
}
-
- if(scale != engine->Scale || fullscreen != engine->Fullscreen)
- {
- sdl_scrn = SDLSetScreen(engine->Scale, engine->Fullscreen);
- inputScale = 1.0f/float(scale);
- }
-
-#ifdef OGLI
- blit();
-#else
- if(engine->Scale==2)
- blit2(engine->g->vid, engine->Scale);
- else
- blit(engine->g->vid);
-#endif
}
#ifdef DEBUG
std::cout << "Breaking out of EngineProcess" << std::endl;
@@ -786,7 +785,6 @@ int main(int argc, char * argv[])
signal(SIGFPE, SigHandler);
signal(SIGILL, SigHandler);
signal(SIGABRT, SigHandler);
-
#endif
GameController * gameController = NULL;