DXGI1_1_DDI_BASE_FUNCTIONS-Struktur (dxgiddi.h)
Die DXGI1_1_DDI_BASE_FUNCTIONS-Struktur enthält Zeiger auf Funktionen, die der 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 GDI-Oberflächen und die Verwaltung eines Vollbildübergangs.
Syntax
typedef struct DXGI1_1_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;
} DXGI1_1_DDI_BASE_FUNCTIONS;
Member
pfnPresent
Ein Zeiger auf die PresentDXGI-Funktion des Treibers.
pfnGetGammaCaps
Ein Zeiger auf die GetGammaCapsDXGI-Funktion des Treibers.
pfnSetDisplayMode
Die SetDisplayModeDXGI-Funktion wechselt zu einem Anzeigemodus oder primären Modus, den der GDI-Desktop nicht unterstützt.
Die Microsoft Direct3D-Runtime ruft SetDisplayModeDXGI auf, um zu einem Anzeigemodus oder primären Modus zu wechseln, den der GDI-Desktop nicht unterstützt. In der folgenden Liste werden Beispiele für solche Vorwahlen beschrieben:
- Primärries, die mit 10-Bits-pro-Kanal (10:10:10:2) erstellt werden, anzeige- und renderzielformate (z. B. D3DFMT_A2R10G10B10)
- Primaries mit mehreren Stichproben, bei denen die mehrfache Stichprobenentnahme während des Ausscannens durchgeführt wird
- Persistente Primaries, die Von Microsoft DirectX Version 10-Anwendungen im Vollbildmodus verwendet werden
Der Benutzermodus-Anzeigetreiber kann den hPrimaryAllocation-Member der D3DDDICB_SETDISPLAYMODE-Struktur im Aufruf von pfnSetDisplayModeCb festlegen, um jede Zuordnung zu überprüfen. Die Zuordnung muss jedoch als primär markiert werden (d. a. der Anzeigetreiber für den Benutzermodus muss das Flag primäres Bitfeld im Flags-Member der D3DDDI_ALLOCATIONINFO-Struktur in einem Aufruf der pfnAllocateCb-Funktion festgelegt haben, um die Zuordnung zu erstellen).
pDisplayModeData
Ein Zeiger auf eine DXGI_DDI_ARG_SETDISPLAYMODE-Struktur , die Parameter zum Festlegen des Anzeigemodus angibt.
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
Die ResolveSharedResourceDXGI-Funktion informiert einen Anzeigetreiber im Benutzermodus darüber, dass sich der Besitz einer freigegebenen Oberfläche geändert hat oder dass eine Oberfläche für die GDI-Interoperation verwendet wird.
Die Direct3D-Runtime ruft ResolveSharedResourceDXGI auf, wenn eine Anwendung eine der folgenden Funktionen aufruft:
- IDXGIKeyedMutex::ReleaseSynch auf einer synchronisierten freigegebenen Oberfläche
- IDXGISurface1::GetDC für eine interoperable GDI-Oberfläche
Der Treiber implementiert ResolveSharedResourceDXGI , um Ressourcen für mehrere GPU-Szenarien angemessen zu verwalten. Jede Ressource kann auf den Arbeitsspeicher aufgeteilt werden, auf dem mehrere GPUs gerendert werden sollen. Der Treiber kann ResolveSharedResourceDXGI implementieren, um jede Ressource zu remerieren, damit der neue Ressourcenbesitzer über die zusammengeführte Ressource verfügt. Der Treiber muss alle teilweise erstellten Befehlspuffer leeren, die die Ressource möglicherweise ändern.
Windows 7 stellt das IS_DXGI1_1_BASE_FUNCTIONS Makro bereit (das in der Headerdatei D3D10umddi.h definiert ist), damit der Benutzermodus-Anzeigetreiber bestimmen kann, ob er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS - oder DXGI_DDI_BASE_FUNCTIONS-Struktur in einem Aufruf seiner CreateDevice(D3D10) -Funktion empfängt. Die DXGI1_1_DDI_BASE_FUNCTIONS-Struktur enthält den pfnResolveSharedResource-Member , den der Treiber mit einem Zeiger auf seine ResolveSharedResourceDXGI-Funktion füllen kann. Wenn IS_DXGI1_1_BASE_FUNCTIONS TRUE zurückgibt, erwartet der Treiber, dass er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS-Struktur im pDXGIDDIBaseFunctions-Member der DXGI_DDI_BASE_ARGS Struktur empfängt, die das DXGIBaseDDI-Element der D3D10DDIARG_CREATEDEVICE-Struktur angibt. Andernfalls erwartet der Treiber, wenn IS_DXGI1_1_BASE_FUNCTIONS FALSE zurückgibt, einen Zeiger auf eine DXGI_DDI_BASE_FUNCTIONS-Struktur zu erhalten. Windows 7 stellt das makro IS_DXGI1_1_BASE_FUNCTIONS bereit, damit Treiber neuerer Versionen mit älteren Runtimeversionen verwendet werden können. Die Treiber können dann bestimmen, ob sie den Arbeitsspeicher beschädigen, wenn sie versuchen, das pfnResolveSharedResource-Element von DXGI1_1_DDI_BASE_FUNCTIONS mit einem Zeiger auf die ResolveSharedResourceDXGI-Funktion zu füllen.
pResourceData
Ein Zeiger auf eine DXGI_DDI_ARG_RESOLVESHAREDRESOURCE-Struktur , die Parameter für das Anzeigegerät und die Dem Anzeigegerät zugeordnete Oberfläche angibt.
Hinweise
Windows 7 stellt das IS_DXGI1_1_BASE_FUNCTIONS Makro bereit (das in der Headerdatei D3D10umddi.h definiert ist), damit der Benutzermodus-Anzeigetreiber bestimmen kann, ob er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS- oder DXGI_DDI_BASE_FUNCTIONS-Struktur in einem Aufruf seiner CreateDevice(D3D10) -Funktion empfängt. Die DXGI1_1_DDI_BASE_FUNCTIONS-Struktur enthält den pfnResolveSharedResource-Member , den der Treiber mit einem Zeiger auf seine ResolveSharedResourceDXGI-Funktion füllen kann. Wenn IS_DXGI1_1_BASE_FUNCTIONS TRUE zurückgibt, erwartet der Treiber, dass er einen Zeiger auf eine DXGI1_1_DDI_BASE_FUNCTIONS-Struktur im pDXGIDDIBaseFunctions-Member der DXGI_DDI_BASE_ARGS Struktur empfängt, die das DXGIBaseDDI-Element der D3D10DDIARG_CREATEDEVICE-Struktur angibt. Andernfalls erwartet der Treiber, wenn IS_DXGI1_1_BASE_FUNCTIONS FALSE zurückgibt, einen Zeiger auf eine DXGI_DDI_BASE_FUNCTIONS-Struktur zu erhalten. Windows 7 stellt das makro IS_DXGI1_1_BASE_FUNCTIONS bereit, damit Treiber neuerer Versionen mit älteren Runtimeversionen verwendet werden können. Die Treiber können dann bestimmen, ob sie den Arbeitsspeicher beschädigen, wenn sie versuchen, das pfnResolveSharedResource-Element von DXGI1_1_DDI_BASE_FUNCTIONS mit einem Zeiger auf eine ResolveSharedResourceDXGI-Funktion zu füllen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | DXGI1_1_DDI_BASE_FUNCTIONS wird ab dem Windows 7-Betriebssystem unterstützt. |
Kopfzeile | dxgiddi.h (include D3d10umddi.h) |