diff --git a/stepmania/src/RageDisplay.cpp b/stepmania/src/RageDisplay.cpp index e660d6d2af..b0768fd407 100644 --- a/stepmania/src/RageDisplay.cpp +++ b/stepmania/src/RageDisplay.cpp @@ -307,16 +307,21 @@ void RageDisplay::Flip() { g_LastCheckTimer.GetDeltaTime(); g_iFPS = g_iFramesRenderedSinceLastCheck; - g_iFramesRenderedSinceLastCheck = 0; g_iVPF = g_iVertsRenderedSinceLastCheck / g_iFPS; - g_iVertsRenderedSinceLastCheck = 0; g_iDPF = g_iDrawsSinceLastCheck / g_iFPS; - g_iDrawsSinceLastCheck = 0; + g_iFramesRenderedSinceLastCheck = g_iVertsRenderedSinceLastCheck = g_iDrawsSinceLastCheck = 0; LOG->Trace( "FPS: %d, VPF: %d, DPF: %d", g_iFPS, g_iVPF, g_iDPF ); } } +void RageDisplay::ResetStats() +{ + g_iFPS = g_iVPF = g_iDPF = 0; + g_iFramesRenderedSinceLastCheck = g_iVertsRenderedSinceLastCheck = g_iDrawsSinceLastCheck = 0; + g_LastCheckTimer.GetDeltaTime(); +} + bool RageDisplay::IsWindowed() const { return true; // FIXME diff --git a/stepmania/src/RageDisplay.h b/stepmania/src/RageDisplay.h index f41424a392..c809303fe0 100644 --- a/stepmania/src/RageDisplay.h +++ b/stepmania/src/RageDisplay.h @@ -79,6 +79,7 @@ public: int GetFPS() const; int GetVPF() const; int GetDPF() const; + void ResetStats(); protected: void AddVerts( const RageVertex v[], int iNumVerts ); diff --git a/stepmania/src/ScreenManager.cpp b/stepmania/src/ScreenManager.cpp index 14cc938025..248438fcfa 100644 --- a/stepmania/src/ScreenManager.cpp +++ b/stepmania/src/ScreenManager.cpp @@ -134,7 +134,12 @@ void ScreenManager::Draw() if( PREFSMAN && PREFSMAN->m_bShowStats ) { - m_textStats.SetText( ssprintf("%i FPS\n%i VPF\n%i DPF", DISPLAY->GetFPS(), DISPLAY->GetVPF(), DISPLAY->GetDPF()) ); + /* If FPS == 0, we don't have stats yet. */ + m_textStats.SetText( ssprintf(DISPLAY->GetFPS()? + "%i FPS\n%i VPF\n%i DPF": + "-- FPS\n-- VPF\n-- DPF", + DISPLAY->GetFPS(), DISPLAY->GetVPF(), DISPLAY->GetDPF()) ); + m_textStats.Draw(); } for( int p=0; pResetStats(); + + return ret; } void ScreenManager::PrepNewScreen( CString sClassName )