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 de 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 memoria insuficiente.
E_INVALIDARG Los parámetros se validaron y determinaron que son incorrectos.

Esta función también puede devolver otros valores HRESULT.

Comentarios

El controlador de visualización en modo de usuario establece el miembro hContext de la estructura D3DDDICB_PRESENT a la que apunta el parámetro pData a un contexto que creó anteriormente mediante una llamada a la función pfnCreateContextCb . El controlador de pantalla en modo de usuario debe crear al menos un contexto cuando el entorno de ejecución de Microsoft Direct3D llama a la función CreateDevice o CreateDevice(D3D10) del controlador para crear un dispositivo. El tiempo de ejecución de Direct3D envía la operación presente a un contexto creado.

Nota de Direct3D versión 11: Para obtener más información sobre cómo el controlador llama a pfnPresentCb, consulte 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 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)

Consulte también

CreateDevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb