Directx 12 -1.Hello Window
- DirectX 12를 차근차근 공부해보자 시리즈의 대망의 첫번째 포스팅
Sample Project
Github from : DirectX 12 - Hello Window
Hello Window!
- DirectX12에서의 Hello World는 무엇일까? 그건 바로 Window를 띄우는 것이다! Hello Window!
- 어떻게 창이 띄워지는 지 간략하게 알아보자.
Hello Window 프로젝트 구조
1
2
3
4
5
6
7
8
9
D3D12HelloWindow
| ---- D3D12HellowWindow.h / cpp
| ---- d3dx12.h
| ---- DxSample.h /cpp
| ---- DxSampleHelper.h
| ---- Main.cpp
| ---- stdafx.h / cpp
| ---- Win32Application.h /cpp
Hello Window 함수 흐름
Entry Point
1
- Main.cpp - WinMain()
- WINAPI : 윈도우 용 콘솔 앱을 제작할 때 사용하는 Windows api
- 콘솔앱이 실질적으로 시작되는 부분!
- 해당 부분의 역할
- Window Size, 타이틀바에 들어갈 메세지를 설정한 D3D12HelloWorld 오브젝트를 만든다. (띄울 창(window)의 탄생!)
Win32Application::Run(&sample, hInstance, nCmdShow)
- 위 함수는 다음과 같은 역할을 한다.
- 프로세스 초기화
- 띄울 창(window) 관련 변수들 초기화 및 오브젝트 생성
- Pipeline 초기화, Asset 초기화
- MainLoop를 통해 매 틱당 연산을 진행
2) 띄울 창(window) 관련 변수들 초기화 및 오브젝트 생성
4) MainLoop를 통해 매 틱당 연산을 진행
- 실질적으로 이 부분에서는 WM_QUIT 메세지가 나타났는지 매 틱 확인하는 역할을 한다.
- 이때 Callback함수인 Win32Application::WindowProc가 DispatchMessage 이후 매 틱당 호출되게 된다. 자세한 내용은 Callback함수를 참고하자.
Win32Application::WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
- 위 함수에서는 다음과 같은 역할을 한다.
- 입력값에 대한 이벤트 처리
- WM_CREATE, WM_KEYDOWN, WM_KEYUP, WM_PAINT, WM_DESTROY
- OnUpdate(), OnRender()를 통해 매 틱당 parameter 업데이트, 업데이트된 결과 Render를 수행한다.
- 입력값에 대한 이벤트 처리
OnRender(), OnUpdate()에서는 구체적으로 어떤 역할을 할까?
- 이는 다음 포스팅에서 알아보자
## Reference —