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