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

Функция pfnSetDisplayPrivateDriverFormatCb изменяет атрибут закрытого формата источника представления видео.

Синтаксис

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

HRESULT Pfnd3dddiSetdisplayprivatedriverformatcb(
  HANDLE hDevice,
  const D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT *unnamedParam2
)
{...}

Параметры

hDevice

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

unnamedParam2

pData [in]

Указатель на структуру D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT , описывающую форматирование источника представления видео.

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

pfnSetDisplayPrivateDriverFormatCb возвращает одно из следующих значений:

Код возврата Описание
S_OK Источник видеотрансляции был успешно изменен.
E_INVALIDARG Параметры были проверены и определены как неверные.
E_FAIL pfnSetDisplayPrivateDriverFormatCb не удалось изменить атрибут закрытого формата источника видеопретатора.

Эта функция также может возвращать другие значения HRESULT.

Комментарии

Изменение атрибута частного формата источника представления видео полезно для размещения полноэкранного приложения DirectX, которое создает его изменение, если общая основная поверхность GDI находится в неоптимальной закрытой форме для полноэкранного приложения DirectX. Например, предположим, что драйвер минипорта дисплея всегда создает общую основную поверхность GDI как несвертываемую. Однако для повышения производительности драйвер дисплея пользовательского режима требует, чтобы все поверхности в полноэкранной цепочке переворачивались. Затем драйвер отображения пользовательского режима может создать задние буферы как swizzled и вызвать pfnSetDisplayPrivateDriverFormatCb , чтобы изменить общую основную поверхность GDI на swizzled.

Если вызов pfnSetDisplayPrivateDriverFormatCb завершается сбоем, драйвер отображения пользовательского режима должен продолжать работу, не изменяя атрибут закрытого формата источника представления видео. В предыдущем примере драйвер может либо оставить общий основной сервер как незакрученный, так и закрутить задние буферы, либо драйвер может изменить задние буферы на несвертанный формат.

Если драйвер отображения пользовательского режима получает ошибку D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT при вызове функции pfnSetDisplayModeCb , драйвер может выполнить одно из следующих действий:

  • Измените атрибут закрытого формата основной поверхности и снова вызовите pfnSetDisplayModeCb .
  • Вызовите pfnSetDisplayPrivateDriverFormatCb и попытайтесь изменить атрибут закрытого формата источника представления видео. Затем драйвер может снова вызвать pfnSetDisplayModeCb .
Драйвер отображения пользовательского режима может вызывать pfnSetDisplayPrivateDriverFormatCb только в том случае, если для элемента Versionструктуры D3DDDIARG_CREATEDEVICE задано значение больше семи, когда устройство отображения (указанное параметром hDevice ) было создано в вызове функции CreateDevice драйвера.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Персональный компьютер
Верхняя часть d3dumddi.h (включая D3dumddi.h)

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

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb