Фабрика DXGI - SIISII/DirectX GitHub Wiki
Фабрика DXGI служит для создания других объектов. Её создание обычно является одной из первых операций, выполняемых приложением, использующим DirectX.
Создание фабрики
Фабрика DXGI создаётся вызовом одной из трёх функций:
-
CreateDXGIFactory — появилась в Windows Vista и создаёт фабрику версии 1.0;
-
CreateDXGIFactory1 — появилась в Windows 7 и создаёт фабрику версии 1.1;
-
CreateDXGIFactory2 — появилась в Windows 8.1 и создаёт фабрику версии 1.3. Если нет нужды в работе под системой более ранней версии, следует всегда использовать эту функцию, поскольку она позволяет создавать отладочную версию объекта фабрики без дополнительных ухищрений.
Независимо от способа создания фабрики можно получить любую доступную в данной системе версию её интерфейса (в настоящее время — от 1.0 до 1.7) с помощью обычного вызова метода QueryInterface. Кроме того, все перечисленные функции принимают в качестве одного из параметров IID интерфейса, который нужно создать, поэтому способны сразу создать нужную версию интерфейса.
Приложение не должно использовать одновременно фабрики версий 1.0 и 1.1. Об ограничениях на совместное использование фабрик других версий информации нет, однако этого лучше избегать, тем более, что практического смысла в этом нет.
Методы, предоставляемые интерфейсами фабрики
IDXGIFactory
Этот интерфейс доступен, начиная с Windows Vista.
IDXGIFactory1
Этот интерфейс доступен, начиная с Windows 7; он реализован также в Windows Vista SP2.
IDXGIFactory2
Этот интерфейс доступен, начиная с Windows 8; он поддерживается также в Windows 7 с Platform Update.
- CreateSwapChainForComposition
- CreateSwapChainForCoreWindow
- CreateSwapChainForHwnd
- GetSharedResourceAdapterLuid
- IsWindowedStereoEnabled
- RegisterOcclusionStatusEvent
- RegisterOcclusionStatusWindow
- RegisterStereoStatusEvent
- RegisterStereoStatusWindow
- UnregisterOcclusionStatus
- UnregisterStereoStatus
IDXGIFactory3
Этот интерфейс доступен, начиная с Windows 8.1.
IDXGIFactory4
Документация Microsoft не указывает, с какой версии системы доступен этот интерфейс; вероятно, он был введён в Windows 10 (во всяком случае, появление DXGI 1.4, где он описан, связано с поддержкой Direct3D 12).
IDXGIFactory5
Документация Microsoft не указывает, с какой версии системы доступен этот интерфейс; вероятно, он появился в одном из ранних обновлений Windows 10.
IDXGIFactory6
Этот интерфейс доступен, начиная с Windows 10 версии 1803.
IDXGIFactory7
Этот интерфейс доступен, начиная с Windows 10 версии 1809.