DXGKARG_PRESENT Struktur (d3dkmddi.h)
Die DXGKARG_PRESENT-Struktur beschreibt einen Quell-zu-Primär-Kopiervorgang.
Syntax
typedef struct _DXGKARG_PRESENT {
[out] VOID *pDmaBuffer;
[in] UINT DmaSize;
[in] VOID *pDmaBufferPrivateData;
[in] UINT DmaBufferPrivateDataSize;
union {
[in] DXGK_ALLOCATIONLIST *pAllocationList;
[in] DXGK_PRESENTALLOCATIONINFO *pAllocationInfo;
[in] DXGK_PRESENTMULTIPLANEOVERLAYINFO *pPresentMultiPlaneOverlayInfo;
};
#if ...
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#if ...
[in] UINT PatchLocationListOutSize;
[in] DXGK_ALLOCATIONLIST *pAllocationList;
#else
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
#endif
#else
[in] UINT PatchLocationListOutSize;
#endif
[in/out] UINT MultipassOffset;
[in] UINT Color;
[in] RECT DstRect;
[in] RECT SrcRect;
[in] UINT SubRectCnt;
[in] const RECT *pDstSubRects;
[in] D3DDDI_FLIPINTERVAL_TYPE FlipInterval;
[in] DXGK_PRESENTFLAGS Flags;
[in] UINT DmaBufferSegmentId;
[in] PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
[in] UINT Reserved;
D3DGPU_VIRTUAL_ADDRESS DmaBufferGpuVirtualAddress;
UINT NumSrcAllocations;
UINT NumDstAllocations;
UINT PrivateDriverDataSize;
PVOID pPrivateDriverData;
} DXGKARG_PRESENT;
Member
[out] pDmaBuffer
Ein Zeiger auf den Anfang des DMA-Puffers, der auf 4 KB ausgerichtet ist. Dieser Puffer kann über DMA an die Grafikhardware gesendet werden. Bevor der Anzeigeminiporttreiber von der DxgkDdiPresent-Funktion zurückkehrt, sollte der Treiber pDmaBuffer auf das nächste leere Byte festlegen, das dem letzten Byte folgt, an das der Treiber geschrieben hat, oder der Treiber sollte auf die Position zeigen (ein Byte außerhalb des Pufferraums), wenn kein weiterer Speicherplatz verfügbar ist. Dieser Speicherort wäre richtig gewesen, wenn der Puffer groß genug war.
[in] DmaSize
Die Größe des DMA-Puffers in Bytes, auf den pDmaBuffer verweist.
[in] pDmaBufferPrivateData
Ein Zeiger auf eine treiberresidente private Datenstruktur, die dem DMA-Puffer zugeordnet ist, auf den pDmaBuffer verweist.
[in] DmaBufferPrivateDataSize
Die Anzahl der Bytes, die in der privaten Datenstruktur verbleiben, auf die pDmaBufferPrivateData für den aktuellen Vorgang verweist.
[in] pAllocationList
Ein Array von DXGK_ALLOCATIONLIST Strukturen, die die Quelle, das Ziel oder beides für den Kopiervorgang beschreiben. Der Treiber greift über das hDeviceSpecificAllocation-Element des pAllocationList[DXGK_PRESENT_SOURCE_INDEX]-Elements (d. h. Element 1) auf das Quellzuordnungshandle zu. Der Treiber greift über das hDeviceSpecificAllocation-Element des pAllocationList[DXGK_PRESENT_DESTINATION_INDEX]-Elements (d. h. Element 2) auf das Zielzuordnungshandle zu.
Die In den Elementen der Zuordnungsliste angegebenen Handles sind die gerätespezifischen Handles, die die DxgkDdiOpenAllocation-Funktion des Treibers beim Öffnen der Zuordnungen zurückgegeben hat. Wenn keine Quelle oder ein Ziel für den Vorgang vorhanden ist, ist der hDeviceSpecificAllocation-Member des jeweiligen Elements NULL. Dieses Mitglied ist ab Windows 7 verfügbar.
Hinweis
Das hDeviceSpecificAllocation-Element des ersten Elements in der Zuordnungsliste (Element 0) ist immer NULL.
[in] pAllocationInfo
Ist für das System reserviert. Der Anzeigeminiporttreiber sollte diesen Member ignorieren. Dieses Mitglied ist ab Windows 7 verfügbar.
[in] pPresentMultiPlaneOverlayInfo
Ein Zeiger auf eine Struktur vom Typ DXGK_PRESENTMULTIPLANEOVERLAYINFO , die Informationen für eine VidPN-Eingabe und eine anzuzeigende Überlagerungsebene angibt.
Wird ab Windows 8 unterstützt.
[in/out] pPatchLocationListOut
Ein Array von D3DDDI_PATCHLOCATIONLIST Strukturen für die Patchspeicherortliste, die der Anzeigeminiporttreiber füllt. Bevor der Treiber von einem Aufruf seiner DxgkDdiPresent-Funktion zurückkehrt, muss der Treiber pPatchLocationListOut auf das nächste D3DDDI_PATCHLOCATIONLIST-Element festlegen, das dem letzten D3DDDI_PATCHLOCATIONLIST-Element folgt, das der Treiber aktualisiert hat.
[in] PatchLocationListOutSize
Die Anzahl der Elemente in der Patch-Location-Liste, die pPatchLocationListOut angibt. Der Anzeigeminiporttreiber ist nicht erforderlich, um alle Elemente in der gesamten Liste auszufüllen. Der Treiber darf nur Elemente verwenden, die zum Beschreiben des Patchspeicherorts im DMA-Puffer erforderlich sind.
[in/out] MultipassOffset
Ein UINT-Wert, der den Fortschritt des Kopiervorgangs angibt, wenn die DxgkDdiPresent-Funktion des Anzeigeminiporttreibers STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER zurückgeben muss, um einen neuen DMA-Puffer zu erhalten. Wenn die DxgkDdiPresent-Funktion des Treibers zuerst mit einer neuen RECT-Liste aufgerufen wird, wird MultipassOffset mit 0 initialisiert. Bevor der Treiber vom DxgkDdiPresent-Aufruf zurückkehrt, legt der Treiber MultipassOffset fest, um den Kopierstatus für nachfolgende DxgkDdiPresent-Aufrufe mit demselben Befehlspuffer anzuzeigen. Das Microsoft DirectX-Grafikkernsubsystem ändert den Wert nicht weiter.
[in] Color
Die A8R8G8B8 Farbe entweder in einem Farbfüllvorgang, der durch das ColorFill-Bitfeldflag im Flags-Element festgelegt wird, oder in einem Farbtastenvorgang, der entweder durch das Bitfeldflag SrcColorKey oder DstColorKey angegeben wird. Beachten Sie, dass jederzeit nur eines der Bitfeldflags ColorFill, SrcColorKey und DstColorKey festgelegt ist.
Wenn das primäre Format palettisiert RGB ist, enthält Color den Palettenindex und nicht den D3DDDIFMT_A8R8G8B8 Wert aus dem D3DDDIFORMAT Enumerationstyp.
[in] DstRect
Eine RECT-Struktur für das Zielrechteck, das zum Berechnen des Stretchfaktors verwendet wird.
[in] SrcRect
Eine RECT-Struktur für das Quellrechteck, das zum Berechnen des Stretchfaktors verwendet wird.
[in] SubRectCnt
Die Anzahl der Zielunterrechtecke im Array, das pDstSubRects angibt.
[in] pDstSubRects
Ein Array von RECT-Strukturen für die Liste der Zielunterrechtecke, in die die DxgkDdiPresent-Funktion kopiert wird.
[in] FlipInterval
Ein D3DDDI_FLIPINTERVAL_TYPE typisierter Wert, der das Flipintervall angibt (d. a. wenn die Synchronisierung nach null, 1, zwei, drei oder vier vertikalen Synchronisierungen erfolgt).
[in] Flags
Eine DXGK_PRESENTFLAGS-Struktur , die in Bitfeldflags den Typ des auszuführenden Vorgangs identifiziert. Beachten Sie, dass sich die Bitfeldflags ColorFill, SrcColorKey und DstColorKey in Flags gegenseitig ausschließen.
[in] DmaBufferSegmentId
Der Bezeichner des Speichersegments, in dem der DMA-Puffer ausgelagert wurde. Wenn der Bezeichner 0 ist, wird der DMA-Puffer nicht ordnungsgemäß ausgelagert.
[in] DmaBufferPhysicalAddress
Ein PHYSICAL_ADDRESS Datentyp (definiert als LARGE_INTEGER), der die physische Adresse angibt, in der der DMA-Puffer ausgelagert wurde. Wenn die physische Adresse 0 ist, wird der DMA-Puffer nicht ordnungsgemäß ausgelagert.
[in] Reserved
Ist für das System reserviert. Der Treiber sollte diesen Member ignorieren.
DmaBufferGpuVirtualAddress
Ein D3DGPU_VIRTUAL_ADDRESS Datentyp, der die virtuelle Adresse angibt, an der der DMA-Puffer ausgelagert wurde. Wenn die physische Adresse 0 ist, wird der DMA-Puffer nicht ordnungsgemäß ausgelagert.
NumSrcAllocations
Die Anzahl der Kontextzuordnungen in der Quelle.
NumDstAllocations
Die Anzahl der Kontextzuordnungen im Ziel.
PrivateDriverDataSize
Die Größe von pPrivateDriverData.
pPrivateDriverData
Zeiger auf einen Puffer, der optionale private Treiberdaten enthält.
Hinweise
Das Verhältnis der rechteckigen Quell- und Zielbereiche, die die Elemente SrcRect und DstRect angeben, wird verwendet, um einen Stretchfaktor zu berechnen. Der Treiber kann die Dehnungsfaktorberechnung berücksichtigen, wenn er den Kopiervorgang ausführt.
Der Treiber ist nicht erforderlich, um clipping durchzuführen. Das Microsoft DirectX-Grafikkernsubsystem stellt die Liste der Zielunterrechtecke, die das pDstSubRects-Mitglied angibt, mit den Koordinaten des Zielrechtecks vor, das das DstRect-Element angibt, und auf dem Bildschirm (primär). Beachten Sie, dass der Treiber nur SrcRect und DstRect verwenden sollte, wenn in pDstSubRects eine Liste von Unterrechten des Ziels angegeben wird, um den Stretchfaktor zu berechnen, und die Koordinaten der Zielunterrechtecke für den tatsächlichen Kopiervorgang verwenden sollte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Kopfzeile | d3dkmddi.h (einschließlich D3dkmddi.h) |