codesite...@google.com
unread,Apr 4, 2009, 12:36:38 AM4/4/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to pjmo...@googlegroups.com
Author: davidferreira.FZ
Date: Fri Apr 3 21:11:12 2009
New Revision: 147
Modified:
trunk/projeto/src/FPSLimitado.cpp
trunk/projeto/src/FPSLimitado.h
Log:
FPSSystem: Melhorando desempenho do sistema de temporização
Modified: trunk/projeto/src/FPSLimitado.cpp
==============================================================================
--- trunk/projeto/src/FPSLimitado.cpp (original)
+++ trunk/projeto/src/FPSLimitado.cpp Fri Apr 3 21:11:12 2009
@@ -20,12 +20,10 @@
namespace FPS {
-FPSLimitado::FPSLimitado(int taxaFrames)
+FPSLimitado::FPSLimitado(int taxaFrames)
{
std::cout << "GBF::Kernel::FPS::FPSLimitado" << std::endl;
- framestart = 0.0f;
-
if (taxaFrames<30){
fpsConstante = 30;
} else {
@@ -33,31 +31,30 @@
}
std::cout << "\tFPS: " << (float) fpsConstante << " fps" << std::endl;
+ iniciar();
}
-FPSLimitado::~FPSLimitado()
+FPSLimitado::~FPSLimitado()
{
+
}
-void FPSLimitado::processar()
+void FPSLimitado::processar()
{
+ int delta = SDL_GetTicks() - frameStart;
- while( (SDL_GetTicks() - framestart) < 1000 / fpsConstante )
- {
- //wait...
- //se tempo atual menos o tempo inicial for menor que
- // 1000/30, faz com que entre em espera
- //at� que se complete o tempo
+ if(delta < fpsConstante){
+ SDL_Delay(fpsConstante - delta);
}
- framestart = SDL_GetTicks();
+ frameStart = SDL_GetTicks();
}
//Deve ser chamado antes do loop principal do jogo
-void FPSLimitado::iniciar()
+void FPSLimitado::iniciar()
{
std::cout << "\tSDL: ";
- framestart = SDL_GetTicks();
- std::cout << (double) framestart << " ticks" << std::endl;
+ frameStart = SDL_GetTicks();
+ std::cout << (int) frameStart << " ticks" << std::endl;
}
-int FPSLimitado::getValor()
+int FPSLimitado::getValor()
{
return fpsConstante;
}
Modified: trunk/projeto/src/FPSLimitado.h
==============================================================================
--- trunk/projeto/src/FPSLimitado.h (original)
+++ trunk/projeto/src/FPSLimitado.h Fri Apr 3 21:11:12 2009
@@ -28,10 +28,9 @@
private:
int fpsConstante;
- double framestart;
+ int frameStart;
FPSLimitado(int taxaFrames);
-
public:
virtual ~FPSLimitado();