[DX11] Device & DeviceContext

LeeTaes·2024년 1월 4일
0

DirectX

목록 보기
1/9

Device & DeviceContext


Direct3D 11 개체 모델은 리소스 만들기 및 렌더링 기능을 디바이스 및 하나 이상의 컨텍스트로 구분합니다.

  • Device
    - Device는 리소스를 만들고 디스플레이 어댑터의 기능을 열거하는데 사용됩니다.
    - ID3D11Device 인터페이스로 표시됩니다.
  • DeviceContext
    - DeviceContext는 Device가 사용되는 상황 또는 설정이 포함됩니다.
    - Device가 소유한 리소스를 사용해 파이프라인 상태를 설정하고 렌더링 명령을 생성하는데 사용됩니다.


// I : 인터페이스의 약자
// D3D11 : DirectX11 3D
// -> device는 스마트포인터와 비슷하게 RefCount를 증가시키고 감소시키는 방식으로 관리됩니다.
// -> 직접 넘겨줄 때마다 RefCount를 증가 / 감소시키는 것은 위험합니다.
// ComPtr : Com 객체를 관리하는 포인터 (스마트 포인터처럼 동작, wrl 폴더에 존재)
ComPtr<ID3D11Device> _device;
ComPtr<ID3D11DeviceContext> _deviceContext;

// GPU의 종류는 매우 많음
// -> 프로그래머가 모델마다 if else로 작업할 수는 없음
// -> Com Interface의 핵심
//   = 마이크로소프트에서 만든 DX lib의 특정 클래스를 대상으로만 작업하면 된다.
//     실질적으로 모든 GPU 제품과 하드웨어적으로 연결되는 것은 마이크로소프트와 GPU 제조사들이 신경 쓸 문제
// -> 즉, ID3D11~ 에 대하여 ComPtr로 사용한다는 것은 무엇인가를 대표해 편하게 작업하도록 만들어준 하나의 인터페이스라는 의미
profile
클라이언트 프로그래머 지망생

0개의 댓글