Поддержка DXGI DDI

Для поддержки интерфейса драйвера устройств (DDI) инфраструктуры графики Microsoft DirectX (DXGI) драйвер дисплея в пользовательском режиме должен включать файл заголовка Dxgiddi.h . Dxgiddi.h также содержит файл заголовка Dxgitype.h , который содержит определения, которые совместно используются в конструкциях DXGI на уровне приложения. Dxgiddi.h определяет несколько точек входа драйвера дисплея в пользовательском режиме и функцию обратного вызова DXGI, которую драйвер может использовать для взаимодействия с ядром (включая драйвер мини-порта дисплея).

Среда выполнения Microsoft Direct3D предоставляет доступ к DXGI DDI в структуре DXGI_DDI_BASE_ARGS, на которую указывает элемент DXGIBaseDDIструктуры D3D10DDIARG_CREATEDEVICE в вызове функции CreateDevice(D3D10). Драйвер дисплея пользовательского режима предоставляет указатели на функции DXGI.

Драйвер реализует эти функции через элементы структур, на которые указывают члены pDXGIDDIBaseFunctionsXxxDXGI_DDI_BASE_ARGS . Драйвер должен записать указатель на таблицу функций обратного вызова DXGI, на которую указывает элемент pDXGIBaseCallbacksDXGI_DDI_BASE_ARGS для последующего использования. Драйвер должен записать указатель на таблицу функций обратного вызова DXGI, а не отдельный указатель на функцию обратного вызова DXGI, так как среда выполнения Direct3D может изменять адрес функции обратного вызова всякий раз, когда в драйвере отображения пользовательского режима нет потока.

Для программных растеризаторов существует дополнительное требование к драйверу отображения в пользовательском режиме DXGI. Такой драйвер отображения в пользовательском режиме (в частности, любой драйвер, который не поддерживает оборудование, совместно используемое с реализацией Direct3D версии 9 DDI на графическом адаптере) должен возвращать значение DXGI_STATUS_NO_REDIRECTION вместо S_OK из функции CreateDevice(D3D10). Это возвращаемое значение указывает DXGI, что он не должен использовать путь к презентации общего ресурса, чтобы повлиять на взаимодействие с диспетчером окон рабочего стола (DWM). Путь представления общего ресурса создается при вызове функций общего ресурса (т. е. функций CreateResource(D3D10) и OpenResource(D3D10) с D3D10_DDI_RESOURCE_MISC_SHARED флагом ). Однако вместо этого DXGI следует использовать методы, относящиеся к цепочке буферов, буферы которой доступны только для ЦП. Например, DXGI должен перемещать отрисованные данные из заднего буфера на рабочий стол с помощью средств, отличных от пути представления общих ресурсов. В этом случае DXGI фактически вызывает функцию PresentDXGI драйвера для перемещения отрисованных данных, а не для взаимодействия с DWM.

Функции Direct3D версии 10 DXGI

В этом разделе описываются функции инфраструктуры графики Microsoft DirectX (DXGI), которые библиотека DLL-библиотеки отображения пользовательского режима предоставляет среде выполнения Microsoft Direct3D версии 10. Драйвер предоставляет указатели на функции DXGI через элементы структуры DXGI_DDI_BASE_FUNCTIONS в вызове функции CreateDevice(D3D10) драйвера отображения пользовательского режима.

BltDXGI: GetGammaCapsDXGI

PresentDXGI: QueryResourceResidencyDXGI

ResolveSharedResourceDXGI: RotateResourceIdentitiesDXGI

SetDisplayModeDXGI: SetResourcePriorityDXGI

Функции DIRECT3D версии 11.1 DXGI

В этом разделе описываются функции инфраструктуры графики Microsoft DirectX (DXGI), реализованные драйверами отображения пользовательского режима, которые добавляются для среды выполнения Microsoft Direct3D версии 11.1. Direct3D 11.1 появился с Windows 8.

Библиотека DLL драйвера отображения пользовательского режима экспортирует функцию OpenAdapter10_2 и предоставляет указатели на функции адаптера через элементы структуры D3D10_2DDI_ADAPTERFUNCS , когда среда выполнения вызывает CreateDevice(D3D10).

Драйвер предоставляет указатели на функции DXGI Direct3D версии 11.1 через элементы структуры DXGI1_2_DDI_BASE_FUNCTIONS в вызове функции CreateDevice(D3D10) драйвера дисплея пользовательского режима.

Функции DIRECT3D версии 11.2 DXGI

Справочные страницы в этом разделе описывают функции инфраструктуры графики Microsoft DirectX (DXGI), реализованные драйверами отображения пользовательского режима, которые добавляются для среды выполнения Microsoft Direct3D версии 11.2. Direct3D 11.2 появился с Windows 8.1.

Библиотека DLL драйвера отображения пользовательского режима экспортирует функцию OpenAdapter10_2 и предоставляет указатели на функции адаптера через элементы структуры D3D10_2DDI_ADAPTERFUNCS , когда среда выполнения вызывает CreateDevice(D3D10).

Драйвер предоставляет указатели на функции DXGI Direct3D версии 11.2 через члены структуры DXGI1_3_DDI_BASE_FUNCTIONS в вызове функции CreateDevice(D3D10) драйвера дисплея пользовательского режима.

PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB: PFNDDXGIDDI_PRESENTCB

PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB: PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB

Примечание

Дополнительные функции DXGI, поддерживаемые средой выполнения Direct3D 11.2, включены в раздел Функции многопланового наложения, реализованные драйвером пользовательского режима.