I am working with DXGI and DirectX 11 using C++. At the moment I experimenting with IDXGIFactory. After some research and reading the documentation I noticed there are different versions.
IDXGIFactory IDXGIFactory1 IDXGIFactory2 IDXGIFactory3 IDXGIFactory4 IDXGIFactory5
But I also noticed that there are only methods for creating such an instance for the first 3 IDXGIFactory versions but not for the last 3.
CreateDXGIFactory CreateDXGIFactory1 CreateDXGIFactory2
There is no CreateDXGIFactory3, CreateDXGIFactory4 or CreateDXGIFactory5.
So my question is how to create an IDXGIFactory5 instance?
Furthermore I am wondering if I cannot instantiate an instance of IDXGIFactory5 myself how I can force D3D11CreateDevice to create and use an IDXGIFactory5 internally so I can retrieve an reference from the resulting ID3D11Device?
EDIT:
OK now I understand the different CreateDXGIFactory functions and how to create an IDXGIFactory5 instance. But after understanding this I got the next problem. The documentation from IDXGIAdapter2 says I should use IDXGIFactory1::EnumAdapters1 to query an instance. But looking at the function signature I am only getting an IDXGIAdapter1.
HRESULT EnumAdapters1(
UINT Adapter,
[out] IDXGIAdapter1 **ppAdapter
);
How do I enumerate IDXGIAdapter2 instances?