DXGI1_3_DDI_BASE_FUNCTIONS-Struktur (dxgiddi.h)
Enthält Zeiger auf Funktionen, die ein Windows Display Driver Model (WDDM) 1.3 und höher-Benutzermodus-Anzeigetreiber implementieren kann, um Aufgaben auf niedriger Ebene auszuführen, z. B. die Darstellung gerenderter Frames für eine Ausgabe, das Steuern von Gamma, das Abrufen von Benachrichtigungen zu freigegebenen und kompatiblen Windows-Grafikgeräteschnittstellen (GDI) und das Verwalten eines Vollbildübergangs.
Syntax
typedef struct DXGI1_3_DDI_BASE_FUNCTIONS {
HRESULT()(DXGI_DDI_ARG_PRESENT *) * pfnPresent;
HRESULT()(DXGI_DDI_ARG_GET_GAMMA_CONTROL_CAPS *) * pfnGetGammaCaps;
HRESULT()(DXGI_DDI_ARG_SETDISPLAYMODE *) * pfnSetDisplayMode;
HRESULT()(DXGI_DDI_ARG_SETRESOURCEPRIORITY *) * pfnSetResourcePriority;
HRESULT()(DXGI_DDI_ARG_QUERYRESOURCERESIDENCY *) * pfnQueryResourceResidency;
HRESULT()(DXGI_DDI_ARG_ROTATE_RESOURCE_IDENTITIES *) * pfnRotateResourceIdentities;
HRESULT()(DXGI_DDI_ARG_BLT *) * pfnBlt;
HRESULT()(DXGI_DDI_ARG_RESOLVESHAREDRESOURCE *) * pfnResolveSharedResource;
HRESULT()(DXGI_DDI_ARG_BLT1 *) * pfnBlt1;
HRESULT()(DXGI_DDI_ARG_OFFERRESOURCES *) * pfnOfferResources;
HRESULT()(DXGI_DDI_ARG_RECLAIMRESOURCES *) * pfnReclaimResources;
HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYCAPS *) * pfnGetMultiplaneOverlayCaps;
HRESULT()(DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *) * pfnGetMultiplaneOverlayGroupCaps;
HRESULT()(void *) * pfnReserved1;
HRESULT()(DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *) * pfnPresentMultiplaneOverlay;
HRESULT()(void *) * pfnReserved2;
HRESULT()(DXGI_DDI_ARG_PRESENT1 *) * pfnPresent1;
HRESULT()(DXGI_DDI_ARG_CHECKPRESENTDURATIONSUPPORT *) * pfnCheckPresentDurationSupport;
} DXGI1_3_DDI_BASE_FUNCTIONS;
Member
pfnPresent
Ein Zeiger auf die PresentDXGI-Funktion des Treibers.
pfnGetGammaCaps
Ein Zeiger auf die GetGammaCapsDXGI-Funktion des Treibers.
pfnSetDisplayMode
Ein Zeiger auf die SetDisplayModeDXGI-Funktion des Treibers.
pfnSetResourcePriority
Ein Zeiger auf die SetResourcePriorityDXGI-Funktion des Treibers.
pfnQueryResourceResidency
Ein Zeiger auf die QueryResourceResidencyDXGI-Funktion des Treibers.
pfnRotateResourceIdentities
Ein Zeiger auf die RotateResourceIdentitiesDXGI-Funktion des Treibers.
pfnBlt
Ein Zeiger auf die BltDXGI-Funktion des Treibers.
pfnResolveSharedResource
Ein Zeiger auf die ResolveSharedResourceDXGI-Funktion des Treibers.
pfnBlt1
Ein Zeiger auf die Blt1DXGI-Funktion des Treibers.
pfnOfferResources
Ein Zeiger auf die pfnOfferResources-Funktion des Treibers .
pfnReclaimResources
Ein Zeiger auf die pfnReclaimResources-Funktion des Treibers .
pfnGetMultiplaneOverlayCaps
Wird von der DXGI-Runtime aufgerufen, um anzufordern, dass der Benutzermodusanzeigetreiber grundlegende Funktionen der Überlagerungsebene erhält. Optional implementiert von WDDM 1.3 und höher Benutzermodus-Anzeigetreibern.
pfnGetMultiplaneOverlayGroupCaps
Wird von der DXGI-Runtime aufgerufen, um anzufordern, dass der Benutzermodusanzeigetreiber eine Gruppe von Funktionen der Überlagerungsebene erhält. Optional implementiert von WDDM 1.3 und höher Benutzermodus-Anzeigetreibern.
Syntax
pfnGetMultiplaneOverlayGroupCaps GetMultiplaneOverlayGroupCaps;
HRESULT __stdcall* GetMultiplaneOverlayGroupCaps(
DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS *pGroupCaps
)
{ ... }
Parameter
pGroupCaps Ein Zeiger auf eine DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS-Struktur , die die Gruppe der Funktionen der Überlagerungsebene angibt.
Rückgabewert
Gibt einen der folgenden Werte zurück.
- S_OK Der Treiber hat die Funktionen der Überlagerungsebene erfolgreich bereitgestellt.
- D3DDDIERR_DEVICEREMOVED Der Treiber hat erkannt, dass die Grafikkarte entfernt wurde, sodass der Treiber den Vorgang nicht abgeschlossen hat. Wenn der Treiber die Entfernung des Adapters nicht erkennt, muss der Treiber diesen Fehlercode nicht zurückgeben.
pfnReserved1
Ist für das System reserviert.
pfnPresentMultiplaneOverlay
Wird von der DXGI-Runtime (Microsoft DirectX Graphics Infrastructure) aufgerufen, um den Anzeigetreiber im Benutzermodus zu benachrichtigen, dass eine Anwendung das Rendern abgeschlossen hat, und fordert an, dass der Treiber die Quelloberfläche entweder durch Kopieren oder Kippen anzeigt oder dass der Treiber einen Farbfüllvorgang ausführt. Muss von Windows Display Driver Model (WDDM) 1.3 oder höher-Treibern implementiert werden, die Mehrplanenüberlagerungen unterstützen.
Wenn der Benutzermodusanzeigetreiber die Verarbeitung eines Aufrufs dieser Funktion erfolgreich abgeschlossen hat, stellt er der Anzeige die Quelloberfläche dar, indem er die DXGI-Funktion (pfnPresentMultiPlaneOverlayCb) aufruft .
PFND3DDDI_PRESENTMULTIPLANEOVERLAY pfnPresentMultiPlaneOverlay;
HRESULT __stdcall* pfnPresentMultiPlaneOverlay(
DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY *pPresentDXGI
)
{ ... }
Parameter
pPresentDXGI Ein Zeiger auf eine DXGI_DDI_ARG_PRESENTMULTIPLANEOVERLAY Struktur, die beschreibt, wie auf der Zieloberfläche angezeigt wird.
Rückgabewert
Wenn diese Rückruffunktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.
pfnReserved2
Ist für das System reserviert.
pfnPresent1
Benachrichtigt den Anzeigetreiber im Benutzermodus, dass das Rendern einer Anwendung abgeschlossen ist und dass der gesamte Besitz der freigegebenen Ressource freigegeben wird, und fordert an, dass der Treiber auf der Zieloberfläche angezeigt wird.
Syntax
pfnPresent1 Present1DXGI;
HRESULT __stdcall* Present1DXGI(
DXGI_DDI_ARG_PRESENT1 *pPresentData
)
{ ... }
Parameter
pPresentData [in] Ein Zeiger auf eine DXGI_DDI_ARG_PRESENT1 Struktur, die beschreibt, wie auf der Zieloberfläche angezeigt wird.
Hinweise
Der hDevice-Member der DXGI_DDI_ARG_PRESENT1 Struktur, auf die der pPresentData-Parameter verweist, ist das gleiche Handle, das die CreateDevice(D3D10) -Funktion des Treibers an die Runtime im hDrvDevice-Element der D3D10DDIARG_CREATEDEVICE-Struktur übergeben hat. Daher müssen Treiberschreiber den Typ dieses Handles sorgfältig definieren. Darüber hinaus können Treiber verschiedene Implementierungen der pfnPresent1(DXGI) -Funktion bereitstellen, je nachdem, welche DDI-Implementierung den Aufruf von CreateDevice(D3D10) verarbeitet hat. Die Runtime kombiniert niemals Treiberhandles über DDI-Implementierungen hinweg.
Das pDXGIContext-Element von DXGI_DDI_ARG_PRESENT1 ist ein undurchsichtiger Kommunikationsmechanismus. Die Runtime übergibt diesen DXGI-Kontext an den Treiber. Der Treiber sollte diesen DXGI-Kontext unverändert in den pDXGIContext-Member der DXGIDDICB_PRESENT-Struktur kopieren, wenn der Treiber die pfnPresentCbDXGI-Funktion aufruft.
Der Treiber muss alle teilweise erstellten Renderdaten (Befehlspuffer) mithilfe der pfnRenderCb-Funktion übermitteln, und der Treiber muss einen einzelnen Aufruf von pfnPresentCbDXGI durchführen. Beim Aufrufen eines dieser Rückrufe muss der Treiber die Threadingregeln der PresentDXGI-Funktion befolgen.
Threadingregeln
Diese Regeln gelten unabhängig davon, ob der Treiber freies Threading unterstützt oder nicht:
- Der Treiber gibt die Unterstützung für freies Threading an, indem der Caps-Member der D3D11DDI_THREADING_CAPS-Struktur auf D3D11DDICAPS_FREETHREADED festgelegt wird. In diesem Fall:
- Es kann jeweils nur ein einzelner Thread an einem HCONTEXT-Kontexthandle arbeiten.
- Der Treiber darf pfnPresentCbDXGI nur aufrufen, wenn die PfnPresent1(DXGI) -Funktion des Treibers aufgerufen wird, und von demselben Thread, der pfnPresent1(DXGI) aufgerufen hat.
- Wenn der Treiber keine Unterstützung für Freethreading angibt, kann er die Rückruffunktionen nur aufrufen, wenn ein Thread den Treiber aufgerufen hat. Der Treiber muss auch weiterhin den pfnPresentCbDXGI-Rückruf im Kontext von pfnPresent1(DXGI) aufrufen.
pfnCheckPresentDurationSupport
Ein Zeiger auf die PfnCheckPresentDurationSupport(DXGI) -Funktion des Treibers.
Hinweise
Weitere Informationen zur Verwendung dieser Struktur finden Sie unter Unterstützen von DXGI DDI.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8.1,WDDM 1.3 und höher |
Unterstützte Mindestversion (Server) | Windows Server 2012 R2 |
Kopfzeile | dxgiddi.h (include D3d10umddi.h) |