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