PFND3DDDI_PRESENTCB fonction de rappel (d3dumddi.h)

La fonction pfnPresentCb copie le contenu à partir d’une allocation de source.

Syntaxe

PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;

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

Paramètres

hDevice

Handle vers un périphérique d’affichage (contexte graphique).

unnamedParam2

pData [in]

Pointeur vers une structure de D3DDDICB_PRESENT qui décrit l’allocation de source à partir de laquelle le contenu est copié.

Valeur retournée

pfnPresentCb retourne l’une des valeurs suivantes :

Code de retour Description
S_OK Le contenu a été copié avec succès.
E_OUTOFMEMORY pfnPresentCb n’a pas pu se terminer en raison d’une mémoire insuffisante.
E_INVALIDARG Les paramètres ont été validés et déterminés comme incorrects.

Cette fonction peut également retourner d’autres valeurs HRESULT.

Remarques

Le pilote d’affichage en mode utilisateur définit le membre hContext de la structure D3DDDICB_PRESENT pointée par le paramètre pData sur un contexte qu’il a créé précédemment en appelant la fonction pfnCreateContextCb . Le pilote d’affichage en mode utilisateur doit créer au moins un contexte lorsque le runtime Microsoft Direct3D appelle la fonction CreateDevice ou CreateDevice(D3D10) du pilote pour créer un appareil. Le runtime Direct3D envoie l’opération actuelle à un contexte créé.

Remarque de Direct3D version 11 : Pour plus d’informations sur la façon dont le pilote appelle pfnPresentCb, consultez Modifications de Direct3D 10.

Exemples

L’exemple de code suivant montre comment colorer une surface de destination.

    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;

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

CreateDevice

CreateDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb