PFND3DDDI_PRESENTCB función de devolución de llamada (d3dumddi.h)
La función pfnPresentCb copia el contenido de una asignación de origen.
Sintaxis
PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;
HRESULT Pfnd3dddiPresentcb(
HANDLE hDevice,
D3DDDICB_PRESENT *unnamedParam2
)
{...}
Parámetros
hDevice
Identificador de un dispositivo de visualización (contexto de gráficos).
unnamedParam2
pData [in]
Puntero a una estructura de D3DDDICB_PRESENT que describe la asignación de origen desde la que se copia el contenido.
Valor devuelto
pfnPresentCb devuelve uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
S_OK | El contenido se copió correctamente. |
E_OUTOFMEMORY | pfnPresentCb no se pudo completar debido a una memoria insuficiente. |
E_INVALIDARG | Los parámetros se validaron y determinaron que son incorrectos. |
Esta función también puede devolver otros valores HRESULT.
Observaciones
El controlador de visualización en modo de usuario establece el hContext miembro de la estructura de D3DDDICB_PRESENT a la que apunta el parámetro pData a un contexto que creó anteriormente llamando a la función pfnCreateContextCb. El controlador de visualización en modo de usuario debe crear al menos un contexto cuando el tiempo de ejecución de Microsoft Direct3D llama a la función createDeviceo createDevice(D3D10) del controlador para crear un dispositivo. El tiempo de ejecución de Direct3D envía la operación actual a un contexto creado.
Direct3D versión 11 Nota: Para obtener más información sobre cómo llama el controlador pfnPresentCb, vea cambios de Direct3D 10.
Ejemplos
En el ejemplo de código siguiente se muestra cómo rellenar en color una superficie de destino.
HRESULT hr=S_OK;
// A color-fill request that does not have a source surface
D3DDDICB_PRESENT PresentCBData = {0};
PresentCBData.hContext = m_sContexts[MULTI_ENGINE_NODE_3D].hContext;
PresentCBData.hSrcAllocation = NULL;
if (pPresent->hDstResource) {
DWORD dwDstSurf = ((DWORD)(DWORD_PTR)pPresent->hDstResource) + pPresent->DstSubResourceIndex;
_ASSERT(dwDstSurf < m_RTbl.Size());
m_RTbl[dwDstSurf].m_qwBatch = m_qwBatch;
PresentCBData.hDstAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx, dwDstSurf);
}
hr = m_d3dCallbacks.pfnPresentCb(m_hD3D, &PresentCBData);
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) |