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) |