DXGI1_3_DDI_BASE_FUNCTIONS Struktur (dxgiddi.h)
Enthält Zeiger auf Funktionen, die ein Windows Display Driver Model (WDDM) 1.3 und höherer Benutzermodusanzeigetreiber implementieren kann, um Low-Level-Aufgaben auszuführen, z. B. das Darstellen von gerenderten Frames auf eine Ausgabe, die Steuerung von Gamma, das Abrufen von Benachrichtigungen zu gemeinsam genutzten und GDI-kompatiblen Oberflächen (Windows Graphics Device Interface, 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;
Angehörige
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-Laufzeit aufgerufen, um anzufordern, dass der Anzeigetreiber für den Benutzermodus grundlegende Überlagerungsebenenfunktionen erhält. Optional implementiert von WDDM 1.3 und höher Benutzermodus-Anzeigetreibern.
pfnGetMultiplaneOverlayGroupCaps
Wird von der DXGI-Laufzeit aufgerufen, um anzufordern, dass der Anzeigetreiber für den Benutzermodus eine Gruppe von Überlagerungsebenenfunktionen 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 Einen Zeiger auf eine DXGI_DDI_ARG_GETMULTIPLANEOVERLAYGROUPCAPS Struktur, die die Gruppe der Überlagerungsebenenfunktionen angibt.
Rückgabewert
Gibt einen der folgenden Werte zurück.
- S_OK Der Treiber hat die Überlagerungsebenenfunktionen erfolgreich bereitgestellt.
- D3DDDIERR_DEVICEREMOVED Der Treiber hat festgestellt, dass der Grafikkarte entfernt wurde, sodass der Treiber den Vorgang nicht abgeschlossen hat. Wenn der Treiber das Entfernen des Adapters nicht kennt, ist der Treiber nicht erforderlich, um diesen Fehlercode zurückzugeben.
pfnReserved1
Reserviert für die Systemverwendung.
pfnPresentMultiplaneOverlay
Wird von der Microsoft DirectX Graphics Infrastructure (DXGI)-Laufzeit aufgerufen, um den Anzeigetreiber für den Benutzermodus zu benachrichtigen, dass eine Anwendung das Rendering abgeschlossen hat, und fordert an, dass der Treiber die Quelloberfläche 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 implementiert werden, die Mehrplanüberlagerungen unterstützen.
Wenn der Benutzermodusanzeigetreiber die Verarbeitung eines Aufrufs dieser Funktion erfolgreich abgeschlossen hat, wird die Quelloberfläche für die Anzeige angezeigt, indem die pfnPresentMultiPlaneOverlayCb (DXGI) Funktion aufgerufen wird.
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 die 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
Reserviert für die Systemverwendung.
pfnPresent1
Benachrichtigt den Anzeigetreiber für den Benutzermodus, dass eine Anwendung das Rendern abgeschlossen hat 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 die Zieloberfläche angezeigt wird.
Bemerkungen
Das hDevice Member der DXGI_DDI_ARG_PRESENT1 Struktur, auf das der pPresentData Parameter verweist, ist dasselbe Handle, auf das die CreateDevice(D3D10)- Funktion des Treibers zurück an die Laufzeit im hDrvDevice Member der D3D10DDIARG_CREATEDEVICE Struktur übergeben wird. Daher müssen Treiberautoren den Typ dieses Handle sorgfältig definieren. Darüber hinaus können Treiber unterschiedliche Implementierungen der pfnPresent1(DXGI) Funktion bereitstellen, basierend auf der DDI-Implementierung den Aufruf von CreateDevice(D3D10)-verarbeitet hat. Die Laufzeit kombiniert niemals Treiberhandles über DDI-Implementierungen hinweg.
Der pDXGIContext Mitglied von DXGI_DDI_ARG_PRESENT1 ist ein undurchsichtiger Kommunikationsmechanismus. Die Laufzeit ü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 an pfnPresentCbDXGIdurchführen. Beim Aufrufen eines dieser Rückrufe muss der Treiber den Threadingregeln der PresentDXGI--Funktion entsprechen.
Threadingregeln
Diese Regeln gelten unabhängig davon, ob der Treiber freie Threading unterstützt oder nicht:
- Der Treiber gibt die Unterstützung für das freie Threading an, indem das Caps Member der D3D11DDI_THREADING_CAPS-Struktur auf D3D11DDICAPS_FREETHREADEDfestgelegt wird. In diesem Fall:
- Nur ein einzelner Thread kann gleichzeitig mit einem HCONTEXT-Kontexthandle arbeiten.
- Der Treiber muss pfnPresentCbDXGI- nur aufrufen, wenn die pfnPresent1(DXGI)--Funktion des Treibers aufgerufen wird, und durch denselben Thread, der pfnPresent1(DXGI)aufgerufen hat.
- Wenn der Treiber keine Unterstützung für freethreading angibt, kann er nur die Rückruffunktionen aufrufen, wenn ein Thread in den Treiber aufgerufen wurde. Der Treiber muss auch den pfnPresentCbDXGI Callback im Kontext pfnPresent1(DXGI)aufrufen.
pfnCheckPresentDurationSupport
Ein Zeiger auf die pfnCheckPresentDurationSupport(DXGI) Funktion des Treibers.
Bemerkungen
Weitere Informationen zur Verwendung dieser Struktur finden Sie unter Unterstützen der DXGI DDI-.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 8.1,WDDM 1.3 und höher |
mindestens unterstützte Server- | Windows Server 2012 R2 |
Header- | dxgiddi.h (include D3d10umddi.h) |