-
게임 기본 루프 & DX11Study/3D 2018. 4. 13. 20:51
1. 윈도우 생성, 디바이스 초기화
2. 메세지 루프
1234567891011121314151617MSG msg;// Message Loopwhile (m_bLoop){if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){TranslateMessage(&msg);DispatchMessage(&msg);}else{Logic();}}return (int)msg.wParam;cs PeekMessage()를 통해 메세지 대기열을 확인하고, 없으면 게임 업데이트
메세지가 있으면, TranslateMessage()를 통해 메세지 변환 후, DispatchMessage()를 통해 WinProc()에 메세지 전달.
DX11 초기화
1. D3D11CreateDevice() : Device, DeviceContext 생성.
2. Feature Level 확인 : GPU가 지원 가능한 기능을 확인, 하위는 상위에 포함된다.
3. CreateSwapChain()
4. CreateRenderTargetView() : swapchain의 백버퍼를 device의 랜더 타겟으로 설정
5. CreateDepthStencilView()
6. OMSetRenderTargets() : OutputMerger로 렌더 타겟 뷰와 깊이스텐실 뷰 설정
7. RSSetViewports() : viewport 구조체 활성화
8. ClearRenderTargetView(), ClearDepthStencilView() : 랜더타겟뷰, 깊이스텐실뷰 초기화
9. Present() : swapchain(백버퍼와 프론트버퍼 스왑)이 실행되고, 실제 그려진다.
댓글