Windows 데스크톱 애플리케이션으로 프로젝트를 만들면
기본적으로 GetMessage 함수로 프로그램이 작성되있다.
이 Getmessage라는 함수는 메세지가 발생할때까지 멈춰있는 함수로
메세지가 발생하면 프로그램이 돌아가는 방식이다.
실시간으로 처리되는 게임에는 사용이 불가능하다고 볼 수 있다.
그래서 PeekMessage라는 함수를 사용하는데
이 PeekMessage 함수는 자기를 실행할때마다
메세지가 없으면 그냥 리턴되어버린다.
즉, 메세지가 없는 시간에 프로그램이 돌아가고 이를 데드타임이라고 한다.
while(true)
{
if(0 != PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
//게임루프
}
}
이런식으로 사용할 수 있고 사실 메세지는 발생하는 빈도수가 작다.
그말은 위의 코드는 평범한 while문이 되고 CPU가 허용하는 최대 처리 속력으로 돈다.
'WinAPI' 카테고리의 다른 글
Virtual Destructor(가상 소멸자) (0) | 2021.01.18 |
---|---|
싱글톤 패턴 (0) | 2021.01.15 |
Rectangle 함수 (0) | 2021.01.14 |
HDC , GetDC 함수, 윈도우(창) 표현,SetPixel 함수 (0) | 2021.01.14 |
RValue,LValue reference (0) | 2021.01.14 |