Freigeben über


DXGKARG_PRESENT Struktur (d3dkmddi.h)

Die DXGKARG_PRESENT-Struktur beschreibt einen Quell-zu-Primärkopie-Vorgang.

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;

Angehörige

[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 aus 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 (ein Byte über den Pufferraum hinaus) verweisen, wenn kein weiterer Speicherplatz verfügbar ist. Dieser Speicherort wäre korrekt 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 treiberbasierte private Datenstruktur, die dem DMA-Puffer zugeordnet ist , auf den pDmaBuffer verweist.

[in] DmaBufferPrivateDataSize

Die Anzahl der Bytes, die in der privaten Datenstruktur verbleiben, 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 Member des pAllocationList[DXGK_PRESENT_SOURCE_INDEX]-Element (d. h. Element 1) auf das Quellzuordnungshandle zu. Der Treiber greift über das hDeviceSpecificAllocation Member des pAllocationList-Elements[DXGK_PRESENT_DESTINATION_INDEX]-Element (d. h. Element 2) auf das Zielzuweisungshandle zu.

Die Ziehpunkte, die in den Elementen der Zuordnungsliste angegeben sind, sind die gerätespezifischen Handles, die die DxgkDdiOpenAllocation--Funktion zurückgegeben werden, wenn die Zuordnungen geöffnet wurden. Wenn eine Quelle oder ein Ziel für den Vorgang nicht vorhanden ist, ist das hDeviceSpecificAllocation Member des jeweiligen Elements NULL-. Dieses Mitglied ist ab Windows 7 verfügbar.

Anmerkung

Das hDeviceSpecificAllocation Element des ersten Elements in der Zuordnungsliste (Element 0) ist immer NULL-.

[in] pAllocationInfo

Reserviert für die Systemverwendung. Der Miniporttreiber für die Anzeige sollte dieses Element ignorieren. Dieses Mitglied ist ab Windows 7 verfügbar.

[in] pPresentMultiPlaneOverlayInfo

Ein Zeiger auf eine Struktur vom Typ DXGK_PRESENTMULTIPLANEOVERLAYINFO, die Informationen zu einer VidPN-Eingabe und einer anzuzeigenden Überlagerungsebene angibt.

Wird ab Windows 8 unterstützt.

[in/out] pPatchLocationListOut

Ein Array von D3DDDI_PATCHLOCATIONLIST Strukturen für die Patchpositionsliste, die der Anzeigeminiporttreiber ausfüllt. Bevor der Treiber von einem Aufruf an die 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 Patchspeicherortliste, die "pPatchLocationListOut" angibt. Der Miniporttreiber für die Anzeige ist nicht erforderlich, um alle Elemente in der gesamten Liste auszufüllen; Der Treiber darf nur Elemente verwenden, die zum Beschreiben der Patchposition innerhalb des DMA-Puffers erforderlich sind.

[in/out] MultipassOffset

Ein UINT-Wert, der den Fortschritt des Kopiervorgangs angibt, wenn die DxgkDdiPresent-Funktion des Anzeigeminiporttreibers funktion STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER zurückgeben muss, um einen neuen DMA-Puffer abzurufen. Wenn die DxgkDdiPresent- Funktion des Treibers zuerst mit einer neuen RECT--Liste aufgerufen wird, wird MultipassOffset- auf Null initialisiert. Bevor der Treiber aus dem DxgkDdiPresent--Aufruf zurückkehrt, legt der Treiber MultipassOffset- fest, um den Kopierstatus für nachfolgende DxgkDdi Present-Aufrufe mit demselben Befehlspuffer anzuzeigen. Das Microsoft DirectX-Grafik-Kernelsubsystem ändert den Wert nicht weiter.

[in] Color

Die A8R8G8B8 Farbe in einem Farbfüllvorgang, der durch das ColorFill- Bitfeld-Flag im Flags Element oder durch einen Farbschlüsselvorgang angegeben wird, der entweder durch den SrcColorKey oder DstColorKey Bitfeldflagge angegeben wird. Beachten Sie, dass immer nur eine der ColorFill-, SrcColorKey-und DstColorKey Bitfeldflags festgelegt ist.

Wenn das primäre Format RGB palettisiert ist, enthält Color den Palettenindex anstelle des D3DDDIFMT_A8R8G8B8 Werts 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 das die DxgkDdiPresent-Funktion kopiert wird.

[in] FlipInterval

Ein D3DDDI_FLIPINTERVAL_TYPE-typisierter Wert, der das Flip-Intervall angibt (d. a., wenn der Flip nach Null, 1, zwei, drei oder vier vertikalen Synchronisierungen erfolgt).

[in] Flags

Eine DXGK_PRESENTFLAGS Struktur, die in Bitfeldkennzeichnungen den auszuführenden Typ des auszuführenden Vorgangs identifiziert. Beachten Sie, dass die ColorFill-, SrcColorKey-und DstColorKey Bitfeld-Flags in Flags sich 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äß eingeblattt.

[in] DmaBufferPhysicalAddress

Ein PHYSICAL_ADDRESS Datentyp (der als LARGE_INTEGERdefiniert ist), der die physische Adresse angibt, in der der DMA-Puffer ausgelagert wurde. Wenn die physische Adresse 0 ist, wird der DMA-Puffer nicht korrekt ausgelagert.

[in] Reserved

Reserviert für die Systemverwendung. Der Treiber sollte dieses Element ignorieren.

DmaBufferGpuVirtualAddress

Ein D3DGPU_VIRTUAL_ADDRESS Datentyp, der die virtuelle Adresse angibt, in der der DMA-Puffer ausgelagert wurde. Wenn die physische Adresse 0 ist, wird der DMA-Puffer nicht korrekt ausgelagert.

NumSrcAllocations

Die Anzahl der Kontextzuordnungen in der Quelle.

NumDstAllocations

Die Anzahl der Kontextzuweisungen im Ziel.

PrivateDriverDataSize

Die Größe pPrivateDriverData-.

pPrivateDriverData

Zeigen Sie auf einen Puffer, der optionale private Treiberdaten enthält.

Bemerkungen

Das Verhältnis der rechteckigen Quell- und Zielbereiche, die die SrcRect- und DstRect- elemente 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 einen Clipping durchzuführen. Das Microsoft DirectX-Grafik-Kernelsubsystem stellt die Liste der Zielunterrechtecke vor, die das pDstSubRects-Element Member angibt, um die Koordinaten des Zielrechtecks an, das vom DstRect Member angegeben und an den Bildschirm (primär). Beachten Sie, dass der Treiber nur SrcRect- und DstRect- verwenden sollte, um den Stretchfaktor zu berechnen und die Koordinaten der Zielunterrechtecke für den tatsächlichen Kopiervorgang zu verwenden, wenn eine Liste von Ziel-Unterrechtecks in pDstSubRectsangegeben wird.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
Header- d3dkmddi.h (einschließlich D3dkmddi.h)

Siehe auch

D3DDDI_FLIPINTERVAL_TYPE

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DXGK_PRESENTFLAGS

DXGK_PRESENTMULTIPLANEOVERLAYINFO

DxgkDdiPresent-

RECT-