제4장 Direct3D의 초기화 ... 103


4.1 기본 지식 ... 104
4.1.1 Direct3D 12의 개요 ... 104
4.1.2 COM ... 105
4.1.3 텍스처 형식 ... 106
4.1.4 교환 사슬과 페이지 전환 ... 108
4.1.5 깊이 버퍼링 ... 109
4.1.6 자원과 서술자 ... 112
4.1.7 다중표본화의 이론 ... 115
4.1.8 Direct3D의 다중표본화 ... 116
4.1.9 기능 수준 ... 118
4.1.10 DXGI(DirectX Graphics Infrastructure) ... 119
4.1.11 기능 지원 점검 ... 124
4.1.12 상주성 ... 126
4.2 CPU와 GPU의 상호작용 ... 127
4.2.1 명령 대기열과 명령 목록 ... 127
4.2.2 CPU/GPU 동기화 ... 132
4.2.3 자원 상태 전이 ... 135
4.2.4 명령 목록을 이용한 다중 스레드 활용 ... 137
4.3 Direct3D의 초기화 ... 137
4.3.1 장치 생성 ... 138
4.3.2 울타리 생성과 서술자 크기 얻기 ... 140
4.3.3 4X MSAA 품질 수준 지원 점검 ... 141
4.3.4 명령 대기열과 명령 목록 생성 ... 141
4.3.5 교환 사슬의 서술과 생성 ... 142
4.3.6 서술자 힙 생성 ... 145
4.3.7 렌더 대상 뷰(RTV) 생성 ... 146
4.3.8 깊이·스텐실 버퍼와 뷰 생성 ... 148
4.3.9 뷰포트 설정 ... 153
4.3.10 가위 직사각형 설정 ... 155
4.4 시간 측정과 애니메이션 ... 156
4.4.1 성능 타이머 ... 157
4.4.2 GameTimer 클래스 ... 158
4.4.3 프레임 간 경과 시간 ... 159
4.4.4 전체 시간 ... 162
4.5 예제 응용 프로그램 프레임워크 ... 166
4.5.1 D3DApp 클래스 ... 166
4.5.2 프레임워크 메서드가 아닌 메서드들 ... 170
4.5.3 프레임워크 메서드들 ... 171
4.5.4 프레임 통계치 ... 173
4.5.5 메시지 처리부 ... 175
4.5.6 Direct3D 초기화 예제(‘Init Direct3D’) ... 178
4.6 Direct3D 응용 프로그램의 디버깅 ... 183
4.7 요약 ... 185