Freigeben über


D3DDDICB_RENDER Struktur (d3dumddi.h)

Die D3DDDICB_RENDER-Struktur beschreibt den aktuellen Befehlspuffer, der gerendert werden soll.

Syntax

typedef struct _D3DDDICB_RENDER {
  UINT                     CommandLength;
  UINT                     CommandOffset;
  UINT                     NumAllocations;
  UINT                     NumPatchLocations;
  VOID                     *pNewCommandBuffer;
  UINT                     NewCommandBufferSize;
  D3DDDI_ALLOCATIONLIST    *pNewAllocationList;
  UINT                     NewAllocationListSize;
  D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
  UINT                     NewPatchLocationListSize;
  D3DDDICB_RENDERFLAGS     Flags;
  HANDLE                   hContext;
  UINT                     BroadcastContextCount;
  HANDLE                   BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  ULONG                    QueuedBufferCount;
  D3DGPU_VIRTUAL_ADDRESS   NewCommandBuffer;
  VOID                     *pPrivateDriverData;
  UINT                     PrivateDriverDataSize;
  D3DDDI_MARKERLOGTYPE     MarkerLogType;
  UINT                     RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
} D3DDDICB_RENDER;

Member

CommandLength

[in] Die Größe des Befehlspuffers in Bytes ab Offset null.

CommandOffset

[in] Der Offset in Bytes auf den ersten Befehl im Befehlspuffer.

NumAllocations

[in] Die Anzahl der Elemente in der Zuordnungsliste.

NumPatchLocations

[in] Die Anzahl der Elemente in der Patchspeicherortliste.

pNewCommandBuffer

[out] Ein Zeiger auf einen Befehlspuffer, den der Benutzermodusanzeigetreiber empfängt, um ihn beim nächsten Aufruf der PfnRenderCb-Funktion zu verwenden.

NewCommandBufferSize

[ein/aus] Die Größe in Bytes, die der Benutzermodusanzeigetreiber für den nächsten Befehlspuffer anfordert.

Der Treiber empfängt die Größe des zu verwendenden Befehlspuffers in Bytes.

pNewAllocationList

[out] Ein Array von D3DDDI_ALLOCATIONLIST Strukturen, die der Benutzermodusanzeigetreiber empfängt, um als Zuordnungsliste in seinem nächsten Aufruf der pfnRenderCb-Funktion zu verwenden.

NewAllocationListSize

[ein/aus] Die Anzahl der Elemente, die der Benutzermodusanzeigetreiber für die nächste Zuordnungsliste anfordert.

Der Treiber empfängt die Anzahl der Elemente für die Zuordnungsliste, die verfügbar ist, wenn der nächste Befehlspuffer übermittelt wird.

pNewPatchLocationList

[out] Ein Array von D3DDDI_PATCHLOCATIONLIST Strukturen, die der Benutzermodusanzeigetreiber empfängt, um als Patch-Location-Liste in seinem nächsten Aufruf der pfnRenderCb-Funktion zu verwenden.

NewPatchLocationListSize

[ein/aus] Die Anzahl der Elemente, die der Benutzermodustreiber für die nächste Patchspeicherortliste anfordert.

Der Treiber empfängt die Anzahl der Elemente für die Patchspeicherortliste, die verfügbar ist, wenn der nächste Befehlspuffer übermittelt wird.

Flags

[in] Eine D3DDDICB_RENDERFLAGS Struktur, die Informationen zu einem zu rendernden Befehlspuffer angibt.

hContext

[in] Ein Handle für den Kontext, an den der Treiber den Renderingvorgang übermittelt. Der Benutzermodusanzeigetreiber hat diesen Kontext zuvor durch Aufrufen der Funktion pfnCreateContextCb erstellt.

BroadcastContextCount

[in] Die Anzahl zusätzlicher Kontexte in dem Array, die das BroadcastContext-Mitglied angibt.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

[in] Ein Array von Handles für die zusätzlichen Kontexte, an die der aktuelle Befehlspuffer gesendet werden soll. Die D3DDDI_MAX_BROADCAST_CONTEXT-Konstante, die als 64 definiert ist, definiert die maximale Anzahl zusätzlicher Kontexte, an die der Benutzermodusanzeigetreiber den aktuellen Befehlspuffer übertragen kann.

Der ursprüngliche Kontext, den das hContext-Mitglied angibt und der den Befehlspuffer besitzt, ist kein Element im BroadcastContext-Array . Wenn das BroadcastContext-Array beispielsweise ein Element enthält, sendet der Benutzermodusanzeigetreiber den Befehlspuffer an den besitzereigenen Kontext (hContext) und sendet an diesen zusätzlichen Kontext.

QueuedBufferCount

[out] Die Anzahl der DMA-Puffer, die in der Warteschlange für den Kontext stehen, den das hContext-Mitglied nach der aktuellen Übermittlung angibt.

NewCommandBuffer

Dieser Member ist reserviert und sollte auf null festgelegt werden.

Dieses Mitglied ist ab Windows 7 verfügbar.

pPrivateDriverData

[in] Dieser Member ist reserviert und sollte auf null festgelegt werden.

Dieses Mitglied ist ab Windows 7 verfügbar.

PrivateDriverDataSize

[in] Dieser Member ist reserviert und sollte auf null festgelegt werden.

Dieses Mitglied ist ab Windows 7 verfügbar.

MarkerLogType

Eine D3DDDI_MARKERLOGTYPE-Enumeration , die den Typ des Markers im ETW-Protokoll (Event Tracing for Windows) angibt, den der Benutzermodusanzeigetreiber unterstützt.

RenderCBSequence

Ein eindeutiger Bezeichner für jeden pfnRenderCb-Funktionsaufruf . Beginnt bei einem Wert von 1 für Kontexte, die Singlethread-Benutzermodus-DDIs zugeordnet sind, und reicht bis zum Wert 0x80000001 für Kontexte, die DDIs im Freethread-Benutzermodus zugeordnet sind. Der Benutzermodusanzeigetreiber muss den Wert für jeden pfnRenderCb-Aufruf inkrementieren, der für eine beliebige Engine ausgeführt wird.

FirstAPISequenceNumberHigh

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

CompletedAPISequenceNumberLow0Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

CompletedAPISequenceNumberLow1Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

BegunAPISequenceNumberLow0Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

BegunAPISequenceNumberLow1Size

Wird vom Treiber verwendet, um die API-Sequenznummer des Kontexts zu übergeben.

BatchedMarkerDataCount

pCompletedAPISequenceNumberLow0

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pCompletedAPISequenceNumberLow1

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pBegunAPISequenceNumberLow0

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pBegunAPISequenceNumberLow1

Ein Zeiger, der vom Treiber verwendet wird, um die API-Sequenznummer des Kontexts zu übergeben.

pBatchedMarkerData

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Kopfzeile d3dumddi.h (include D3dumddi.h)

Weitere Informationen

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb