Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La función pfnSetDisplayModeCb establece la asignación que se usa para examinar la pantalla.
Sintaxis
PFND3DDDI_SETDISPLAYMODECB Pfnd3dddiSetdisplaymodecb;
HRESULT Pfnd3dddiSetdisplaymodecb(
HANDLE hDevice,
D3DDDICB_SETDISPLAYMODE *unnamedParam2
)
{...}
Parámetros
hDevice
Identificador del dispositivo de visualización (contexto de gráficos).
unnamedParam2
pData [in, out]
Puntero a una estructura D3DDDICB_SETDISPLAYMODE que describe la asignación que se usa para examinar.
Valor devuelto
pfnSetDisplayModeCb devuelve uno de los siguientes valores:
| código de retorno | descripción |
|---|---|
| S_OK | El modo de visualización se estableció correctamente. |
| E_INVALIDARG | Los parámetros se validaron y determinaron que son incorrectos. |
| D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT | El controlador de visualización en modo de usuario debe convertir el formato de la superficie asociada a la asignación que especifica el miembro hPrimaryAllocation de D3DDDICB_SETDISPLAYMODE en el atributo de formato que especifica el privateDriverFormatAttributemember de D3DDDICB_SETDISPLAYMODE. A continuación, el controlador debe llamar a pfnSetDisplayModeCb de nuevo. El controlador podría asignar una nueva asignación, realizar una transferencia de bloque de bits de conversión (bitblt) desde la superficie principal antigua al nuevo y, a continuación, destruir la principal antigua siempre y cuando el controlador use el nuevo identificador de asignación para esta asignación para todas las operaciones posteriores. El controlador debe repetir este proceso hasta que pfnSetDisplayModeCb devuelva un valor devuelto diferente. |
Esta función también puede devolver otros valores HRESULT.
Observaciones
Una vez que el tiempo de ejecución de Microsoft Direct3D llama al controlador de pantalla en modo de usuario SetDisplayMode o función SetDisplayModeDXGI para establecer la superficie principal que se va a examinar en la pantalla, el controlador de pantalla en modo de usuario llama a la función pfnSetDisplayModeCb para establecer la asignación principal subyacente que se usa para el examen.
Direct3D versión 11 Nota: Para obtener más información sobre cómo llama el controlador pfnSetDisplayModeCb, vea Cambios de Direct3D 10.
Ejemplos
En el ejemplo de código siguiente se muestra cómo establecer la asignación para examinar en la pantalla.
HRESULT CD3DContext::SetDisplayMode(CONST D3DDDIARG_SETDISPLAYMODE* pSetDisplayMode) {
DWORD dwSrcSurf = ((DWORD)(DWORD_PTR)pSetDisplayMode->hResource) + pSetDisplayMode->SubResourceIndex;
HRESULT hr;
// Timestamp the source surface
m_RTbl[dwSrcSurf].m_qwBatch = m_qwBatch;
// Send the presentation request to the display miniport driver
D3DDDICB_SETDISPLAYMODE SetDisplayModeCBData = {0};
SetDisplayModeCBData.hPrimaryAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx,
dwSrcSurf);
hr = m_d3dCallbacks.pfnSetDisplayModeCb(m_hD3D, &SetDisplayModeCBData);
return (hr);
}
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) |