Condividi tramite


PFND3DDDI_PRESENTCB funzione di callback (d3dumddi.h)

La funzione pfnPresentCb copia il contenuto da un'allocazione di origine.

Sintassi

PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;

HRESULT Pfnd3dddiPresentcb(
  HANDLE hDevice,
  D3DDDICB_PRESENT *unnamedParam2
)
{...}

Parametri

hDevice

Handle per un dispositivo di visualizzazione (contesto grafico).

unnamedParam2

pData [in]

Puntatore a una struttura D3DDDICB_PRESENT che descrive l'allocazione di origine copiata dal contenuto.

Valore restituito

pfnPresentCb restituisce uno dei valori seguenti:

Codice restituito Descrizione
S_OK Il contenuto è stato copiato correttamente.
E_OUTOFMEMORY PfnPresentCb non è riuscito a completare a causa di memoria insufficiente.
E_INVALIDARG I parametri sono stati convalidati e determinati per essere non corretti.

Questa funzione potrebbe anche restituire altri valori HRESULT.

Commenti

Il driver di visualizzazione in modalità utente imposta il membro hContext della struttura D3DDDICB_PRESENT a cui punta il parametro pData a un contesto creato in precedenza chiamando la funzione pfnCreateContextCb . Il driver di visualizzazione in modalità utente deve creare almeno un contesto quando il runtime di Microsoft Direct3D chiama la funzione CreateDevice o CreateDevice(D3D10) del driver per creare un dispositivo. Il runtime Direct3D invia l'operazione presente a un contesto creato.

Nota direct3D versione 11: Per altre informazioni su come il driver chiama pfnPresentCb, vedere Modifiche da Direct3D 10.

Esempio

Nell'esempio di codice seguente viene illustrato come riempire un'area di destinazione.

    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;

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione d3dumddi.h (include D3dumddi.h)

Vedi anche

CreateDevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb