Je travaille avec DXGI et DirectX 11 en utilisant C++. En ce moment j'expérimente avec IDXGIFactory. Après quelques recherches et lecture the documentation j'ai remarqué qu'il existe différentes versions.Versions IDXGIFactory
IDXGIFactory IDXGIFactory1 IDXGIFactory2 IDXGIFactory3 IDXGIFactory4 IDXGIFactory5
Mais j'ai aussi remarqué qu'il existe des méthodes que pour la création d'une telle instance pour les 3 premières versions IDXGIFactory mais pas pour la dernière 3.
CreateDXGIFactory CréerDXGIFactory1 CréerDXGIFactory2
Il n'y a pas CreateDXGIFactory3, CreateDXGIFactory4 ou CreateDXGIFactory5. Donc, ma question est de savoir comment créer une instance IDXGIFactory5?
De plus, je me demande si je ne peux pas instancier une instance de IDXGIFactory5 moi-même comment je peux forcer D3D11CreateDevice à créer et utiliser un IDXGIFactory5 interne afin que je puisse récupérer une référence du ID3D11Device résultant?
EDIT:
OK maintenant je comprends les différentes fonctions de CreateDXGIFactory et comment créer une instance IDXGIFactory5. Mais après avoir compris cela, j'ai eu le prochain problème. La documentation de IDXGIAdapter2 dit que je devrais utiliser IDXGIFactory1 :: EnumAdapters1 pour interroger une instance. Mais en regardant la signature de la fonction je reçois seulement un IDXGIAdapter1. Comment puis-je énumérer des instances IDXGIAdapter2
HRESULT EnumAdapters1(
UINT Adapter,
[out] IDXGIAdapter1 **ppAdapter
);
?
'' CreateDXGIFactory'' était la fonction d'origine DXGI 1.0 factory pour Direct3D 10. Pour Direct3D 11, vous devez toujours utiliser '' CreateDXGIFactory1'' et créer une interface '' IDXGIFactory1'' ou une version ultérieure. Pour les versions de débogage sur Windows 8.1 et Windows 10, vous pouvez utiliser '' CreateDXGIFactory2'' pour créer une version de débogage de '' IDXGIFactory1'' ou plus tard - voir [ce modèle] (https://github.com/walbourn /directx-vs-templates/blob/master/d3d11game_uwp_dr/DeviceResources.cpp) pour un exemple. Pour DIrect3D 12, vous pouvez supposer que '' CreateDXGIFactory2'' et '' IDXGIFactory4'' ou plus récent est supporté. –