Files
Client/GameTools/CaldronBase/Timer.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
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>
2025-11-29 20:17:20 +09:00

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;
}