PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB función de devolución de llamada (d3dumddi.h)

La función pfnSetDisplayPrivateDriverFormatCb cambia el atributo de formato privado de un origen de vídeo presente.

Sintaxis

PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB Pfnd3dddiSetdisplayprivatedriverformatcb;

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

Parámetros

hDevice

Identificador del dispositivo de visualización (contexto de gráficos).

unnamedParam2

pData [in]

Puntero a una estructura de D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT que describe cómo dar formato a un origen de vídeo presente.

Valor devuelto

pfnSetDisplayPrivateDriverFormatCb devuelve uno de los siguientes valores:

Código devuelto Descripción
S_OK El origen de la presentación del vídeo se cambió correctamente.
E_INVALIDARG Los parámetros se validaron y determinaron que son incorrectos.
E_FAIL pfnSetDisplayPrivateDriverFormatCb no pudo cambiar el atributo de formato privado del origen del vídeo presente.

Esta función también podría devolver otros valores HRESULT.

Comentarios

Cambiar el atributo de formato privado de un origen de vídeo presente es útil para dar cabida a una aplicación DirectX de pantalla completa que crea su cambio de volteo cuando la superficie principal de GDI compartida está en un formato privado no óptimo para la aplicación DirectX de pantalla completa. Por ejemplo, supongamos que el controlador de minipuerto de pantalla siempre crea la superficie principal compartida de GDI como desenredado. Sin embargo, por motivos de rendimiento, el controlador de pantalla en modo de usuario requiere que todas las superficies de una cadena de volteo de pantalla completa estén giradas. Después, el controlador de pantalla en modo de usuario podría crear los búferes de reserva como desenredados y llamar a pfnSetDisplayPrivateDriverFormatCb para cambiar la superficie principal de GDI compartida a girada.

Si se produce un error en la llamada a pfnSetDisplayPrivateDriverFormatCb , el controlador de pantalla en modo de usuario debe continuar sin cambiar el atributo de formato privado del origen del vídeo presente. En el ejemplo anterior, el controlador puede dejar el servidor principal compartido como desenredado y hacer que los búferes de reserva se desenreden o el controlador pueda cambiar los búferes de reserva al formato no desenredado.

Si el controlador de pantalla en modo de usuario recibe el error D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT de una llamada a la función pfnSetDisplayModeCb , el controlador puede realizar una de las siguientes acciones:

  • Cambie el atributo de formato privado de la superficie principal y vuelva a llamar a pfnSetDisplayModeCb .
  • Llame a pfnSetDisplayPrivateDriverFormatCb e intente cambiar el atributo de formato privado del origen actual del vídeo. Después, el controlador puede llamar a pfnSetDisplayModeCb de nuevo.
El controlador de pantalla en modo de usuario puede llamar a pfnSetDisplayPrivateDriverFormatCb solo si el miembro Version de la estructura de D3DDDIARG_CREATEDEVICE se estableció en mayor de siete cuando el dispositivo de visualización (especificado por el parámetro hDevice ) se creó en una llamada a la función CreateDevice del controlador.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado d3dumddi.h (incluya D3dumddi.h)

Consulte también

CreateDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb