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


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

Вызывается диспетчером окон рабочего стола (DWM), чтобы убедиться, что драйвер пользовательского режима поддерживает операции Direct Flip, в которых память видео будет легко перевернута между управляемыми основными выделениями приложения и управляемыми основными выделениями 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 (include D3dumddi.h)

См. также

D3DDDI_CHECK_DIRECT_FLIP_FLAGS

D3DDDI_DEVICEFUNCS