Implemented a simpler frame rate system
This commit is contained in:
+6
-1
@@ -34,6 +34,7 @@ InWorld::InWorld() {
|
||||
cout << "entering InWorld" << endl;
|
||||
#endif
|
||||
cout << "Client Index: " << infoMgr->GetClientIndex() << endl;
|
||||
font.SetSurface(surfaceMgr->Get("font"));
|
||||
}
|
||||
|
||||
InWorld::~InWorld() {
|
||||
@@ -59,7 +60,11 @@ void InWorld::FrameEnd() {
|
||||
}
|
||||
|
||||
void InWorld::Render(SDL_Surface* const screen) {
|
||||
//
|
||||
ClockFrameRate();
|
||||
|
||||
//since we're using this twice, make a tmp var
|
||||
string fps = itos(GetFrameRate());
|
||||
font.DrawStringTo(fps, screen, screen->w - fps.size() * font.GetCharW(), 0);
|
||||
}
|
||||
|
||||
//-------------------------
|
||||
|
||||
+2
-1
@@ -35,6 +35,7 @@
|
||||
#include "udp_network_utility.hpp"
|
||||
#include "button.hpp"
|
||||
#include "raster_font.hpp"
|
||||
#include "frame_rate.hpp"
|
||||
|
||||
class InWorld : public BaseScene {
|
||||
public:
|
||||
@@ -70,7 +71,7 @@ protected:
|
||||
InformationManager* infoMgr = ServiceLocator<InformationManager>::Get();
|
||||
|
||||
//members
|
||||
//...
|
||||
RasterFont font;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -21,6 +21,24 @@
|
||||
*/
|
||||
#include "frame_rate.hpp"
|
||||
|
||||
int FrameRate::frameCount = 0;
|
||||
int FrameRate::lastFrameRate = 0;
|
||||
FrameRate::Clock::time_point FrameRate::tick = FrameRate::Clock::now();
|
||||
#include <chrono>
|
||||
|
||||
typedef std::chrono::high_resolution_clock Clock;
|
||||
|
||||
static int frameCount = 0;
|
||||
static int lastFrameRate = 0;
|
||||
static Clock::time_point tick = Clock::now();
|
||||
|
||||
int ClockFrameRate() {
|
||||
frameCount++;
|
||||
if (Clock::now() - tick >= std::chrono::duration<int>(1)) {
|
||||
lastFrameRate = frameCount;
|
||||
frameCount = 0;
|
||||
tick = Clock::now();
|
||||
}
|
||||
return lastFrameRate;
|
||||
}
|
||||
|
||||
int GetFrameRate() {
|
||||
return lastFrameRate;
|
||||
}
|
||||
|
||||
@@ -22,27 +22,7 @@
|
||||
#ifndef FRAMERATE_HPP_
|
||||
#define FRAMERATE_HPP_
|
||||
|
||||
#include <chrono>
|
||||
|
||||
class FrameRate {
|
||||
public:
|
||||
typedef std::chrono::high_resolution_clock Clock;
|
||||
|
||||
FrameRate() = delete;
|
||||
static int Calculate() {
|
||||
frameCount++;
|
||||
if (Clock::now() - tick >= std::chrono::duration<int>(1)) {
|
||||
lastFrameRate = frameCount;
|
||||
frameCount = 0;
|
||||
tick = Clock::now();
|
||||
}
|
||||
return lastFrameRate;
|
||||
}
|
||||
static int GetFrameRate() { return lastFrameRate; }
|
||||
private:
|
||||
static int frameCount;
|
||||
static int lastFrameRate;
|
||||
static Clock::time_point tick;
|
||||
};
|
||||
int ClockFrameRate();
|
||||
int GetFrameRate();
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user