Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
|
|
#include <windows.h>
|
|
#include <mmsystem.h>
|
|
#include "Timer.h"
|
|
|
|
|
|
Caldron::Base::CTimer& Caldron::Base::CTimer::_GetInstance()
|
|
{
|
|
static CTimer Instance;
|
|
return Instance;
|
|
}
|
|
|
|
|
|
Caldron::Base::CTimer::~CTimer()
|
|
{
|
|
|
|
}
|
|
|
|
|
|
void Caldron::Base::CTimer::Init( int keep )
|
|
{
|
|
if( !QueryPerformanceFrequency( &m_QPFTicksPerSec ) )
|
|
MessageBox( NULL, "타이머시스템을지원할수없습니다.", "에러", MB_OK );
|
|
|
|
QueryPerformanceCounter( &m_StartTime );
|
|
|
|
m_fFps = 0;
|
|
m_fElapsedTime = 0;
|
|
m_iKeepFrame = keep;
|
|
}
|
|
|
|
|
|
void Caldron::Base::CTimer::Update()
|
|
{
|
|
static LARGE_INTEGER CurTime;
|
|
static LARGE_INTEGER LastTime = m_StartTime;
|
|
|
|
QueryPerformanceCounter( &CurTime );
|
|
|
|
m_fElapsedTime = (float)(((double)CurTime.QuadPart - (double)LastTime.QuadPart) / (double)m_QPFTicksPerSec.QuadPart);
|
|
m_fFps = (float)((double)m_QPFTicksPerSec.QuadPart / ((double)CurTime.QuadPart - (double)LastTime.QuadPart));
|
|
m_fAppTime = (float)(((double)CurTime.QuadPart - (double)m_StartTime.QuadPart) / (double)m_QPFTicksPerSec.QuadPart);
|
|
|
|
if( m_iKeepFrame > 0 )
|
|
{
|
|
while( m_fFps > (float)m_iKeepFrame )
|
|
{
|
|
m_fFps = (float)((double)m_QPFTicksPerSec.QuadPart / ((double)CurTime.QuadPart - (double)LastTime.QuadPart));
|
|
QueryPerformanceCounter( &CurTime );
|
|
}
|
|
}
|
|
|
|
LastTime = CurTime;
|
|
}
|
|
|
|
|
|
|
|
|