home *** CD-ROM | disk | FTP | other *** search
- //----------------------------------------------------------------------------
- // File:
- //
- // Desc:
- //
- // Copyright (c) 1999-2001 Microsoft Corp. All rights reserved.
- //-----------------------------------------------------------------------------
- #ifndef _FRAMERATE_H
- #define _FRAMERATE_H
-
-
-
-
- //-----------------------------------------------------------------------------
- // Name:
- // Desc:
- //-----------------------------------------------------------------------------
- class CFrameRate
- {
- public:
- CFrameRate() { Reset(); };
-
- void Reset()
- {
- m_dwCount = m_dwLastFrameCount = 0;
- m_fLastAppTime = DXUtil_Timer( TIMER_GETAPPTIME );
- m_fRate = 0;
- };
-
- void DoneFrame()
- {
- m_dwCount++;
- FLOAT fCurTime = DXUtil_Timer( TIMER_GETAPPTIME );
- if ( (fCurTime - m_fLastAppTime) >= 1.0f )
- {
- m_fRate = (float(m_dwCount - m_dwLastFrameCount) / (fCurTime - m_fLastAppTime));
- m_fLastAppTime = fCurTime;
- m_dwLastFrameCount = m_dwCount;
- }
- };
-
- float GetRate() const { return m_fRate; };
- DWORD GetCount() const { return m_dwCount; };
-
- protected:
- DWORD m_dwCount;
- float m_fRate;
- FLOAT m_fLastAppTime;
- DWORD m_dwLastFrameCount;
- };
-
-
-
-
- #endif
-