- 간단한 fps 출력
void CTimeMgr::update()
{
QueryPerformanceCounter(&m_llCurCount);
// fps 계산 과정.
LONGLONG countGap = m_llCurCount.QuadPart - m_llPrevCount.QuadPart;
m_dDeltaTime = static_cast<double>(countGap) / static_cast<double>(m_llFrequency.QuadPart);
m_llPrevCount = m_llCurCount;
++m_iCallCount;
m_dTimeAcc += m_dDeltaTime;
if (m_dTimeAcc >= 1.0)
{
m_iFPS = static_cast<double>(m_iCallCount) / m_dTimeAcc;
m_iCallCount = 0;
m_dTimeAcc = 0;
wchar_t szFPS[32] = L"";
wsprintfW(szFPS, L"FPS: %d", m_iFPS);
SetWindowTextW(CCore::GetInstance()->GetWnd(), szFPS);
}
}
단순히 시간 관련 값을 계산하는 과정이다.
먼저 이전 프레임과의 count 값 차이를 초당 진동수(m_llFrequency) 값으로 나눠주면
한 프레임 처리당 걸린 시간인 DeltaTime 값을 도출.
fps 값은 단순히
++m_iCallCount;
m_dTimeAcc += m_dDeltaTime;
프레임마다 걸린 시간을 축적해서 1초 정도가 걸릴 때까지 기다렸다가
카운트 값을 축적된 값으로 나눠주면 됨.
if (GetAsyncKeyState(VK_LEFT) & 0x8000)
{
pos.x -= 100.f * CTimeMgr::GetInstance()->GetDeltaTimeF();
}
DeltaTime 값을 통해 기기 성능에 관계 없이 일정한 속도값을 계산 가능.
'Win32 api' 카테고리의 다른 글
| Win32 api 강의 13 - 14화. (0) | 2025.09.14 |
|---|---|
| Win32 api 강의 12화. (0) | 2025.09.13 |
| Win32 api 강의 10화. (0) | 2025.09.12 |
| Win32 api 강의 9화. (0) | 2025.09.12 |
| Win32 api 강의 8화. (0) | 2025.09.12 |