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

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

Синтаксис

PFND3D11_1DDI_CHECKDIRECTFLIPSUPPORT Pfnd3d111DdiCheckdirectflipsupport;

void Pfnd3d111DdiCheckdirectflipsupport(
        D3D10DDI_HDEVICE unnamedParam1,
        D3D10DDI_HRESOURCE unnamedParam2,
        D3D10DDI_HRESOURCE unnamedParam3,
        UINT CheckDirectFlipFlags,
  [out] BOOL *pSupported
)
{...}

Параметры

unnamedParam1

hDevice [in]

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

unnamedParam2

hResource1

Ресурс в цепочке буферов приложения.

unnamedParam3

hResource2

Ресурс в цепочке буферов DWM.

CheckDirectFlipFlags

Если этот параметр имеет значение D3D11_1DDI_CHECK_DIRECT_FLIP_IMMEDIATE, простое переворачивание должно выполняться немедленно и его не нужно синхронизировать с прерыванием VSync.

[out] pSupported

Установите значение TRUE , если драйвер может легко переключать видеопамять между управляемыми основными выделениями приложения и управляемыми первичными выделениями DWM. В противном случае задайте значение FALSE.

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

None

Remarks

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

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

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

Требования

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

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

D3D11_1_DDI_CHECK_DIRECT_FLIP_FLAGS

D3DDDI_ALLOCATIONINFO

DxgkCbGetHandleData

pfnEscapeCb