Фабрика 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.

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.