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.
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) |