summaryrefslogtreecommitdiff
path: root/hgewin
diff options
context:
space:
mode:
Diffstat (limited to 'hgewin')
-rwxr-xr-xhgewin/hge_impl.h4
-rwxr-xr-xhgewin/system.cpp14
-rwxr-xr-xhgewin/timer.cpp5
3 files changed, 21 insertions, 2 deletions
diff --git a/hgewin/hge_impl.h b/hgewin/hge_impl.h
index e438b00..b3f0fe5 100755
--- a/hgewin/hge_impl.h
+++ b/hgewin/hge_impl.h
@@ -117,6 +117,7 @@ public:
virtual float CALL Timer_GetTime();
virtual float CALL Timer_GetDelta();
virtual int CALL Timer_GetFPS();
+ virtual float CALL Timer_GetFPSf();
virtual HEFFECT CALL Effect_Load(const char *filename, DWORD size=0);
virtual void CALL Effect_Free(HEFFECT eff);
@@ -335,8 +336,11 @@ public:
// Timer
float fTime;
float fDeltaTime;
+ float fUpdateFPSDelay;
+ float nFPSf;
DWORD nFixedDelta;
int nFPS;
+ int Fcnt;
DWORD t0, t0fps, dt;
int cfps;
diff --git a/hgewin/system.cpp b/hgewin/system.cpp
index 1e49d65..9dfda86 100755
--- a/hgewin/system.cpp
+++ b/hgewin/system.cpp
@@ -167,6 +167,9 @@ bool CALL HGE_Impl::System_Initiate()
t0=t0fps=timeGetTime();
dt=cfps=0;
nFPS=0;
+ nFPSf=0.0f;
+ Fcnt=0;
+ fUpdateFPSDelay=0.0f;
// Show splash
@@ -305,7 +308,13 @@ bool CALL HGE_Impl::System_Start()
nFPS=cfps; cfps=0; t0fps=t0;
_UpdatePowerStatus();
}
-
+ ++Fcnt;fUpdateFPSDelay+=fDeltaTime;
+ if(fUpdateFPSDelay>1)
+ {
+ nFPSf=Fcnt/fUpdateFPSDelay;
+ fUpdateFPSDelay=0.0f;
+ Fcnt=0;
+ }
// Do user's stuff
if(procFrameFunc()) break;
@@ -685,8 +694,11 @@ HGE_Impl::HGE_Impl()
nHGEFPS=HGEFPS_UNLIMITED;
fTime=0.0f;
+ fUpdateFPSDelay=0.0f;
fDeltaTime=0.0f;
nFPS=0;
+ nFPSf=0.0f;
+ Fcnt=0;
procFrameFunc=0;
procRenderFunc=0;
diff --git a/hgewin/timer.cpp b/hgewin/timer.cpp
index af75315..13711c7 100755
--- a/hgewin/timer.cpp
+++ b/hgewin/timer.cpp
@@ -20,9 +20,12 @@ float CALL HGE_Impl::Timer_GetDelta()
return fDeltaTime;
}
-
int CALL HGE_Impl::Timer_GetFPS()
{
return nFPS;
}
+float CALL HGE_Impl::Timer_GetFPSf()
+{
+ return nFPSf;
+}