D3D12 래퍼 설계에 대하여 #2
기존 설계로는, Wrapper::Ctor(Device, params...) 와 같은 식으로 객체를 생성했다만, 내부적으로 결국 Device의 네이티브 인터페이스인 ID3D12Device~을 GetNative로 받아와서 내부 객체를 생성해주는 방식이였다. 다만 이렇게 되면 API 설계에 대한 사견 #2, API 설계에 대한 사견 #3 에서의 2가지 아이디어를 위반한다. 변경할 설계, Device 래퍼가, 기존 ID3D12Device의 책임을 그대로 이어 받도록 할 것. 즉 Device 래퍼 클래스가 명령어 할당자, 명령 목록, 명령 큐, 리소스 등등.. 을 생성/할당하는데 직접적으로 사용되도록 한다. 예컨데, Device::CreateFence(...) 와 같이. 기존 ID3D12Device와의 차별점은 ..
2024.02.08