Поделиться через


функция обратного вызова PFND3DDDI_CHECKDIRECTFLIPSUPPORT (d3dumddi.h)

Вызывается диспетчером окон рабочего стола (DWM), чтобы убедиться, что драйвер пользовательского режима поддерживает операции прямого перелистывания, в которых видеопамять легко переключается между управляемыми основными выделениями приложения и управляемыми основными выделениями DWM.

Синтаксис

PFND3DDDI_CHECKDIRECTFLIPSUPPORT Pfnd3dddiCheckdirectflipsupport;

HRESULT Pfnd3dddiCheckdirectflipsupport(
  HANDLE hDevice,
  D3DDDIARG_CHECKDIRECTFLIPSUPPORT *unnamedParam2
)
{...}

Параметры

hDevice

Дескриптор устройства отображения (графический контекст).

unnamedParam2

pData [in, out]

Указатель на структуру D3DDDIARG_CHECKDIRECTFLIPSUPPORT , которая определяет параметры для операции.

Возвращаемое значение

Возвращает S_OK или соответствующий результат ошибки, если операция не выполнена успешно.

Комментарии

Эта функция вызывается по крайней мере один раз, прежде чем DWM попытается представить его в цепочку переключения direct flip. Он также вызывается после каждого изменения режима или после того, как DWM повторно создает собственную цепочку буферов по любой причине.

Драйвер пользовательского режима должен убедиться, что управляемые основные ресурсы приложения и DWM имеют следующие совместимые ресурсы:

  • Стереоресумы.
  • Несколько примеров форматов сглаживания (MSAA).
  • Форматы swizzle. Если swizzle можно изменять только в каждый интервал VSync, убедитесь, что элемент CheckDirectFlipFlags структуры D3DDDI_CHECK_DIRECT_FLIP_FLAGS не имеет значения D3D11_1DDI_CHECK_DIRECT_FLIP_IMMEDIATE.
  • Оба управляемых первичных выделения должны быть созданы с использованием одного и того же значения VidPnSourceId в D3DDDI_ALLOCATIONINFO структуре.
  • Конфигурации видеоадаптера связаны.
Для выполнения этих проверок драйверу пользовательского режима может потребоваться вызвать драйвер в режиме ядра. Для этого вызовите функцию обратного вызова pfnEscapeCb , а затем вызовите функцию DxgkCbGetHandleData , чтобы получить доступ к данным о выделении ресурсов драйвера в режиме ядра.

Так как DWM обычно создает собственное устройство с использованием максимально возможного уровня компонентов Microsoft Direct3D, DWM не будет вызывать эту функцию, если оборудование поддерживает интерфейс драйвера устройства Direct3D (DDI), который больше версии 9.3. Однако любой драйвер Microsoft Direct3D 9 должен реализовать эту функцию, чтобы включить пользовательский интерфейс Direct Flip.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Персональный компьютер
Верхняя часть d3dumddi.h (включая D3dumddi.h)

См. также раздел

D3DDDI_CHECK_DIRECT_FLIP_FLAGS

D3DDDI_DEVICEFUNCS