diff options
| author | jacob1 <jfu614@gmail.com> | 2013-05-30 00:36:34 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-05-30 00:36:34 (GMT) |
| commit | d6d20defdebf72c2b27244a6d4bc8a757a669a59 (patch) | |
| tree | a3802256a9377cf5b048a01a91a31a470be3c7c3 /src/PowderToySDL.cpp | |
| parent | cbc80de6522b5562f9490b0cdb620371f25be2f9 (diff) | |
| parent | 41e369e68eac7b05f8cda312f9668942dc688aa7 (diff) | |
| download | powder-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.cpp | 40 |
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; |
