ComPtr이란
ComPtr은 Microsoft::WRL에 정의된, 스마트 포인터와 비슷한 역할을 하는 객체이다.
ComPtr을 사용하는 이유
DirectX에서는 DirectX 객체의 주소를 저장하는 곳의 주소 (이중포인터)를 매개변수로 받는 함수가 많이 사용된다. 따라서 DirectX 개발 환경에서 스마트 포인터를 사용하고 싶을 때, C++에서 제공되는 unique_ptr이나 shared_ptr 같은 스마트 포인터는 활용하기 어렵다. 이러한 점을 해결하면서 스마트 포인터의 장점을 가져갈 수 있는 ComPtr을 대신해서 사용한다.
Get(), GetAddressOf()
ComPtr 객체의 메서드 중 가장 많이 사용되는 2가지는 Get()과 GetAddressOf()이다.
Get()은 ComPtr 객체가 갖고 있는 실제 포인터 (주소) 값을 리턴해주는 함수이다. (*)
GetAddressOf()는 ComPtr 객체가 갖고 있는 실제 포인터 값을 저장하고 있는 변수의 주소를 리턴해주는 함수이다. (**)
[DirectX11] Graphics Pipeline 1 - Input Assembler (0) | 2024.08.24 |
---|---|
[DirectX11] Render Target View, Depth Stencil View (0) | 2024.08.23 |
[DirectX11] SwapChain (0) | 2024.08.18 |
[DirectX11] Device & Device Context (0) | 2024.08.18 |
[DirectX11] DirectX (0) | 2024.08.08 |