[Handmade Hero] 002 - Opening a Win32 Window
현대 게임의 특징
- Rendering에 관한 모든 걸 GPU에 맡긴다.
- GPU가 하는 일을 모른 채로 그냥 맡긴다.
Handmade Hero 엔진의 특징
- GPU가 어떻게 일하는지 모르기때문에 직접 Win32 API를 이용해 Renderer를 만들어 사용한다.
- 실제로 Rendering이 어떤 방식으로 이루어지는가 이해하기 위함.
오늘의 공부
Win32 지식
Basic Functions
- WNDCLASS : 여러가지 기본 설정을 할 수 있는 function들을 사용하기위해 쓰인다.
- WindowProc: Callback Function, 메시지를 받아서 실행한다.- RegisterClass: WNDCLASS를 통해 윈도우창을 열기 위해 필요한 Function.- CreateWindow: 여러가지 스타일링을 할 수 있는 윈도우창 생성 Function
Message Queue & Message Loop
- GetMessage
- 메시지가 있을 때 (> 0) 실행하고 없을 경우 로직 Loop 밖으로 나온다.
- TranslateMessage
- DispatchMessage
Paint
- WM_PAINT
- - BeginPaint
- - EndPaint
- - PatBlt => Rect, Blackness, Whiteness, etc
자주 사용하는 어휘 및 개념
- DC = Device Context = Windows가 무언가를 그려낼 때 상태 (state) 확인을 위하여 사용된다.
- - CLASSDC = 윈도우창을 그려낼 때 OS에게 빌려서 사용한 후 바로 OS에게 되돌려준다. (모든 창을 그릴 때 나의 그림물감이 필요해!) => 윈도우창이 1개일 때 유용하다.
- - OWNDC = 윈도우창을 그려낼 때 OS에게 더 많은 걸 요구한다. (각각의 창을 그릴 때 나의 각기 다른 물감이 필요해!) => 윈도우창이 여러개가 필요할 때 유용하다.
C++ 지식
- typedef = Function의 이름을 우리의 입맛에 맞게 변경하기 위해 사용.
Reference