Compartir a través de


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 presentación de vídeo.

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 puede devolver otros valores HRESULT.

Observaciones

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 rotadas. Después, el controlador de visualización en modo de usuario podría crear los búferes de retroceso como atornillados y llamar a pfnSetDisplayPrivateDriverFormatCb para cambiar la superficie principal de GDI compartida a desenredado.

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 la réplica principal compartida como desenredada y hacer que los búferes de retroceso se desenreden o el controlador pueda cambiar los búferes de retroceso al formato desenredado.

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

  • Cambie el atributo de formato privado de la superficie principal y llame a pfnSetDisplayModeCb de nuevo.
  • Llame a pfnSetDisplayPrivateDriverFormatCb e intente cambiar el atributo de formato privado del origen del vídeo presente. A continuación, el controlador puede llamar a pfnSetDisplayModeCb de nuevo.
El controlador de visualización en modo de usuario puede llamar a pfnSetDisplayPrivateDriverFormatCb solo si el miembro Versión de la estructura de D3DDDIARG_CREATEDEVICE se estableció en superior a 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 Valor
cliente mínimo admitido Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
de la plataforma de destino de Escritorio
encabezado de d3dumddi.h (incluya D3dumddi.h)

Consulte también

createDevice

D3DDDIARG_CREATEDEVICE

D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT

D3DDDI_DEVICECALLBACKS

pfnSetDisplayModeCb