PFND3DDDI_SETDISPLAYMODECB Rückruffunktion (d3dumddi.h)
Die pfnSetDisplayModeCb-Funktion legt die Zuordnung fest, die zum Scannen auf die Anzeige verwendet wird.
Syntax
PFND3DDDI_SETDISPLAYMODECB Pfnd3dddiSetdisplaymodecb;
HRESULT Pfnd3dddiSetdisplaymodecb(
HANDLE hDevice,
D3DDDICB_SETDISPLAYMODE *unnamedParam2
)
{...}
Parameter
hDevice
Ein Handle für das Anzeigegerät (Grafikkontext).
unnamedParam2
pData [in, out]
Ein Zeiger auf eine D3DDDICB_SETDISPLAYMODE-Struktur , die die Zuordnung beschreibt, die zum Scannen verwendet wird.
Rückgabewert
pfnSetDisplayModeCb gibt einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
S_OK | Der Anzeigemodus wurde erfolgreich festgelegt. |
E_INVALIDARG | Die Parameter wurden überprüft und als falsch ermittelt. |
D3DDDIERR_INCOMPATIBLEPRIVATEFORMAT | Der Anzeigetreiber für den Benutzermodus muss das Format der Oberfläche, die der Zuordnung zugeordnet ist, die vom hPrimaryAllocation-Element von D3DDDICB_SETDISPLAYMODE angibt, in das Formatattribut konvertieren, das das PrivateDriverFormatAttributemember von D3DDDICB_SETDISPLAYMODE angibt. Der Treiber sollte dann pfnSetDisplayModeCb erneut aufrufen. Der Treiber kann eine neue Zuordnung zuordnen, eine Bitblockübertragung (Bitblt) von der alten primären Oberfläche zur neuen durchführen und dann die alte primäre Oberfläche zerstören, solange der Treiber das neue Zuordnungshandle für diese Zuordnung für alle nachfolgenden Vorgänge verwendet. Der Treiber sollte diesen Vorgang wiederholen, bis pfnSetDisplayModeCb einen anderen Rückgabewert zurückgibt. |
Diese Funktion gibt möglicherweise auch andere HRESULT-Werte zurück.
Hinweise
Nachdem die Microsoft Direct3D-Runtime die SetDisplayMode - oder SetDisplayModeDXGI-Funktion des Benutzermodusanzeigetreibers aufgerufen hat, um die zu scannende primäre Oberfläche auf die Anzeige festzulegen, ruft der Benutzermodus-Anzeigetreiber die PfnSetDisplayModeCb-Funktion auf, um die zugrunde liegende primäre Zuordnung festzulegen, die zum Scannen verwendet wird.
Direct3D Version 11 Hinweis: Weitere Informationen dazu, wie der Treiber pfnSetDisplayModeCb aufruft, finden Sie unter Änderungen von Direct3D 10.
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie die Zuordnung für das Scannen auf die Anzeige festgelegt wird.
HRESULT CD3DContext::SetDisplayMode(CONST D3DDDIARG_SETDISPLAYMODE* pSetDisplayMode) {
DWORD dwSrcSurf = ((DWORD)(DWORD_PTR)pSetDisplayMode->hResource) + pSetDisplayMode->SubResourceIndex;
HRESULT hr;
// Timestamp the source surface
m_RTbl[dwSrcSurf].m_qwBatch = m_qwBatch;
// Send the presentation request to the display miniport driver
D3DDDICB_SETDISPLAYMODE SetDisplayModeCBData = {0};
SetDisplayModeCBData.hPrimaryAllocation = R200GetSurfaceAllocHandle(m_pR200Ctx,
dwSrcSurf);
hr = m_d3dCallbacks.pfnSetDisplayModeCb(m_hD3D, &SetDisplayModeCBData);
return (hr);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Desktop |
Kopfzeile | d3dumddi.h (include D3dumddi.h) |