Direct3D를 사용해 무언가를 만들기 위해서 WinAPI를 익히는 건 사실상 필수적이다.
하지만 API 자체도 굉장히 낡고 복잡하고, 코드 자체도 읽기 쉽지 않기에 모든 것을 외우려고 하기 보다는 흐름과 사용법을 익힌다는 마인드로 접근하자.
빈 cpp 프로젝트를 만들고, Entry 지점이 될 cpp 파일 하나를 만들어 준다.
Visual Studio를 사용한다면 필요에 따라 COnfiguration들을 바꿔주자.
또 본 학습 내용에서 C++ language standard는 가장 최신의 standard를 사용한다. 참고하자.
Window 어플리케이션을 만들 때는 Entry point가 main()이 아니라 WinMain()으로 지정되어 있다.
함수 파라미터는 위와 같다.
함수에서 while(true){};를 돌리고 작업관리자를 실행하면 프로세스가 실행되고 있음을 볼 수 있다. 그러나 윈도우 창이 뜨지 않을 뿐더러 아무런 상호작용도 불가능한데, 이는 아직 우리가 루프 말고 아무 것도 작성해주지 않았기 때문이다.
실제로 창을 띄워보기 전에, 윈도우가 대략 어떤 형태로 어플리케이션을 실행하는 지를 알아보자.
윈도우 API의 핵심은 두가지다.
Window(창), Messages이다.
이번 시간에는 그중 창에 대해서 살펴보자.
윈도우OS는 창(window)를 사용해 어플리케이션을 그려낸다.
이 창은 클래스와 인스턴스로 구분되는데, 틀, 그리고 틀에서 찍어낸 모형의 느낌으로 이해하면 된다. (OOP와 유사하다)
이런 시스템이 필요한 이유는 윈도우 어플리케이션이 수많은 창(window)들이 모여 만들어진 것이기 때문이다.
위에서 보이는 버튼, 선택지, 등등 다양한 기능들은 저마다 다른 window의 class로부터 만들어진 instance들인 것이다.
'computer graphics > DirectX' 카테고리의 다른 글
[D3D Engine] 6. WM_CHAR, Mouse (0) | 2023.03.19 |
---|---|
[D3D Engine] 5. Window Messages (1) | 2023.03.19 |
[D3D Engine] 4. Message loop, WinProc (0) | 2023.03.19 |
[D3D Engine] 3. Window Creation (0) | 2023.03.19 |
[D3D Engine] 1. Introduction (0) | 2023.03.19 |