DirectX 11 스터디 노트 메모. Device, Context (230812)
Direct3D 11에서 디바이스는 ID3D11Device 인터페이스로 표시
대부분의 애플리케이션은 하나의 디바이스만 만든다.
아래 둘 중 하나를 호출해서 설치된 하드웨어 드라이버 중 하나에 대한 디바이스를 만든다.
D3D11CreateDevice
D3D11CreateDeviceAndSwapChain
D3D_DRIVER_TYPE 플래그를 사용하여 드라이버 유형을 지정
디바이스 컨텍스트는 파이프라인 상태를 설정하고 디바이스가 소유한 리소스를 사용하여 렌더링 명령을 생성하는 데 사용
Direct3D 11은 두 가지 유형의 디바이스 컨텍스트를 구현
하나는 "즉시 렌더링용"이고 다른 하나는 "지연된 렌더링용"
즉각적인 컨텍스트(ImmediateContext)는 드라이버에 직접 렌더링
즉각적인 컨텍스트를 가져오는 방법 2가지
D3D11CreateDevice 또는 D3D11CreateDeviceAndSwapChain 호출
ID3D11Device::GetImmediateContext 호출
지연된 컨텍스트(DeferredContext)는 명령 목록에 GPU 명령을 기록
주로 다중 스레딩에 사용되며 단일 스레드 애플리케이션에는 필요하지 않음.
지연된 컨텍스트는 일반적으로 기본 렌더링 스레드 대신 작업자 스레드(Worker Thread)에서 사용
ID3D11Device::CreateDeferredContext 호출
https://learn.microsoft.com/ko-kr/windows/win32/direct3d11/overviews-direct3d-11-devices-intro