Compartir a través de


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)

Consulte también

createDevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb