Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

1. DirectX12 초기화 - 장치 초기화 본문

computer graphics/DX12강좌 정리

1. DirectX12 초기화 - 장치 초기화

scarecrow1992 2021. 6. 13. 21:50

장치 초기화 : GPU에게 명령을 넘기기 위한 사전 작업

오늘은 방대한 양의 API가 나올건데 한번에 다 익히려 하지 말것

 

우선 이전시간까지 비어있던 Engine 프로젝트에 Engine 폴더에 아래와같은 클래스 파일들을 추가해준다.

각 기능들을 파일 단위로 분리하는것이 플젝의 관리에 용이하다

 

이제 EnginePch에 출력 윈도우 창의 핸들과 너비, 높이 및 전체창 여부를 저장하는 값들을 추가해준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// EnginePch.h
 
// 이전 내용들...
 
//-----------------------
 
enum
{
    SWAP_CHAIN_BUFFER_COUNT = 2
};
 
struct WindowInfo
{
    HWND    hwnd; // 출력 윈도우
    int32    width; // 너비
    int32    height; // 높이
    bool    windowed; // 창모드 or 전체화면
};
 
/*
class Engine;
extern unique_ptr<Engine> GEngine;
*/
 
extern unique_ptr<class Engine> GEngine;    // GEngine이 존재함을 알려주는 역할
// EnginePch.cpp에 존재하므로 extern 확장자 사용
// Engine의 존재를 모르므로 class 키워드를 통해 전방선언
 
void HelloEngine();
cs

25번째 줄에서 스마트 포인터의 type에 "class Engine" 키워드를 적음으로써 EnginePch에게 Engine에 대한 전방선언 없이 GEngine을 만든것을 볼 수 있다.

저런방법이 싫다면 아래처럼 적어도 된다.

class Engine;
extern unique_ptr<Engine> GEngine;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments