Partager via


PFND3DDDI_PRESENTCB fonction de rappel (d3dumddi.h)

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

Syntaxe

PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;

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

Paramètres

hDevice

Handle vers un appareil d’affichage (contexte graphique).

unnamedParam2

pData [in]

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

Valeur de retour

pfnPresentCb retourne l’une des valeurs suivantes :

Retourner le code Description
S_OK Le contenu a été correctement copié.
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 dans 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 les CreateDevice du pilote ou fonction CreateDevice(D3D10) pour créer un appareil. Le runtime Direct3D envoie l’opération actuelle à un contexte créé.

Note 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 remplir une surface de destination en couleur.

    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;

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.
plateforme cible Bureau
d’en-tête d3dumddi.h (include D3dumddi.h)

Voir aussi

CreateDevice

createDevice(D3D10)

D3DDDICB_PRESENT

D3DDDI_DEVICECALLBACKS

pfnCreateContextCb