PFND3DDDI_PRESENTCB Rückruffunktion (d3dumddi.h)
Die pfnPresentCb-Funktion kopiert Inhalt aus einer Quellzuordnung.
Syntax
PFND3DDDI_PRESENTCB Pfnd3dddiPresentcb;
HRESULT Pfnd3dddiPresentcb(
HANDLE hDevice,
D3DDDICB_PRESENT *unnamedParam2
)
{...}
Parameter
hDevice
Ein Handle für ein Anzeigegerät (Grafikkontext).
unnamedParam2
pData- [in]
Ein Zeiger auf eine D3DDDICB_PRESENT Struktur, die die Quellzuordnung beschreibt, aus der Inhalte kopiert werden.
Rückgabewert
pfnPresentCb gibt einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
S_OK | Der Inhalt wurde erfolgreich kopiert. |
E_OUTOFMEMORY | pfnPresentCb konnte aufgrund unzureichendem Arbeitsspeicher nicht abgeschlossen werden. |
E_INVALIDARG | Parameter wurden überprüft und ermittelt, dass sie falsch sind. |
Diese Funktion kann auch andere HRESULT-Werte zurückgeben.
Bemerkungen
Der Anzeigetreiber für den Benutzermodus legt den hContext- Member der D3DDDICB_PRESENT-Struktur fest, auf die der pData-Parameter verweist, auf einen Kontext, den er zuvor durch Aufrufen der funktion pfnCreateContextCb erstellt hat. Der Anzeigetreiber für den Benutzermodus muss mindestens einen Kontext erstellen, wenn die Microsoft Direct3D-Laufzeit die CreateDevice oder CreateDevice(D3D10) Funktion aufruft, um ein Gerät zu erstellen. Die Direct3D-Laufzeit sendet den aktuellen Vorgang an einen erstellten Kontext.
Direct3D Version 11 Hinweis: Weitere Informationen dazu, wie der Treiber pfnPresentCbaufruft, finden Sie unter Änderungen von Direct3D 10.
Beispiele
Das folgende Codebeispiel zeigt, wie eine Zieloberfläche farbfüllt wird.
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;
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform- | Desktop |
Header- | d3dumddi.h (include D3dumddi.h) |