Freigeben über


D3DKMT_RENDER Struktur (d3dkmthk.h)

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

Syntax

typedef struct _D3DKMT_RENDER {
  union {
    [in]     D3DKMT_HANDLE hDevice;
    [in]     D3DKMT_HANDLE hContext;
  };
  [in]     UINT                                  CommandOffset;
  [in]     UINT                                  CommandLength;
  [in]     UINT                                  AllocationCount;
  [in]     UINT                                  PatchLocationCount;
  [out]    VOID                                  *pNewCommandBuffer;
  [in/out] UINT                                  NewCommandBufferSize;
  [out]    D3DDDI_ALLOCATIONLIST                 *pNewAllocationList;
  [in/out] UINT                                  NewAllocationListSize;
  [out]    D3DDDI_PATCHLOCATIONLIST              *pNewPatchLocationList;
  [in/out] UINT                                  NewPatchLocationListSize;
  [in]     D3DKMT_RENDERFLAGS                    Flags;
  [in]     D3DKMT_ALIGN64 ULONGLONG              PresentHistoryToken;
  [in]     ULONG                                 BroadcastContextCount;
           D3DKMT_HANDLE                         BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  [out]    ULONG                                 QueuedBufferCount;
  [out]    D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
           VOID                                  *pPrivateDriverData;
           UINT                                  PrivateDriverDataSize;
} D3DKMT_RENDER;

Angehörige

[in] hDevice

Ein D3DKMT_HANDLE Datentyp, der ein Kernelmodushandle für das Gerät darstellt, in das der Befehlspuffer gerendert wird. Ein Gerätehandle wird an die D3DKMTRender-Funktion in der Union bereitgestellt, die D3DKMT_RENDER zur Kompatibilität mit Microsoft Direct3D Version 10 enthält.

[in] hContext

Ein D3DKMT_HANDLE Datentyp, der ein Kernelmodushandle für den Gerätekontext darstellt, in den der Befehlspuffer gerendert wird.

[in] CommandOffset

Der Offset in Byte zum ersten Befehl im Befehlspuffer.

[in] CommandLength

Die Größe des Befehlspuffers in Bytes, beginnend mit Offset 0.

[in] AllocationCount

Die Anzahl der Elemente in der übermittelten Zuordnungsliste.

[in] PatchLocationCount

Die Anzahl der Elemente in der übermittelten Patchspeicherortliste.

[out] pNewCommandBuffer

Ein Zeiger auf einen Befehlspuffer, den der OpenGL ICD beim nächsten Aufruf der D3DKMTRender-Funktion empfängt. Der Treiber muss den Zeiger immer auf den Befehlspuffer aktualisieren, nachdem ein Aufruf von D3DKMTRender erfolgt, unabhängig davon, ob der Aufruf erfolgreich ist.

Unterstützt in Windows 7 und höheren Versionen:

[in] Ein Zeiger auf den Befehlspuffer, der gerendert werden soll, wenn das RenderKm Flag im Flags Member festgelegt ist.

[in/out] NewCommandBufferSize

Die Größe in Bytes, die der OpenGL ICD für den nächsten Befehlspuffer anfordert, wenn das ResizeCommandBuffer Bitfeld-Flag im Flags Member angegeben wird. Wenn ResizeCommandBuffer nicht angegeben ist, wird der Wert in NewCommandBufferSize ignoriert. Bei der Ausgabe empfängt der Treiber die Größe des nächsten zu verwendenden Befehlspuffers in Bytes.

Je nach aktuellen Arbeitsspeicherbedingungen entspricht die Ausgabegröße möglicherweise nicht der Eingabegröße.

[out] pNewAllocationList

Ein Array von D3DDDI_ALLOCATIONLIST Strukturen, die die OpenGL ICD empfängt, die als Zuordnungsliste im nächsten Aufruf der D3DKMTRender-Funktion verwendet werden soll. Der Treiber muss seinen Zeiger immer nach jedem Aufruf von D3DKMTRender aktualisieren, unabhängig davon, ob der Anruf erfolgreich ist.

Unterstützt in Windows 7 und höheren Versionen:

[in] Ein Zeiger auf die Zuordnungsliste, die gerendert werden soll, wenn das RenderKm Flag im Flags Member festgelegt ist.

[in/out] NewAllocationListSize

Die Anzahl der Elemente, die die OpenGL ICD für die nächste Zuordnungsliste anfordert, wenn das ResizeAllocationList- Bitfeld-Flag im Flags Member angegeben ist. Wenn ResizeAllocationList- nicht angegeben ist, wird der Wert in NewAllocationListSize ignoriert. Bei der Ausgabe empfängt der Treiber die Anzahl der Elemente, die in einem Array von Zuordnungen verfügbar sind, wenn der nächste Befehlspuffer übermittelt wird.

Je nach aktuellen Arbeitsspeicherbedingungen entspricht die Ausgabegröße möglicherweise nicht der Eingabegröße.

[out] pNewPatchLocationList

Ein Array von D3DDDI_PATCHLOCATIONLIST Strukturen, die die OpenGL ICD empfängt, um sie als Patch-Location-Liste im nächsten Aufruf der D3DKMTRender-Funktion zu verwenden. Der Treiber muss den Zeiger immer auf die Patchpositionsliste aktualisieren, nachdem ein Aufruf von D3DKMTRender unabhängig davon erfolgt, ob der Aufruf erfolgreich ist.

[in/out] NewPatchLocationListSize

Die Anzahl der Elemente, die die OpenGL ICD für die nächste Patchspeicherortliste anfordert, wenn das ResizePatchLocationList Bitfeld-Flag im Flags Member angegeben ist. Wenn ResizePatchLocationList- nicht angegeben ist, wird der Wert in NewPatchLocationListSize ignoriert. Bei der Ausgabe empfängt der Treiber die Anzahl der Elemente, die in einem Array von Patchspeicherorten verfügbar sind, wenn der nächste Befehlspuffer übermittelt wird.

Je nach aktuellen Arbeitsspeicherbedingungen entspricht die Ausgabegröße möglicherweise nicht der Eingabegröße.

[in] Flags

Eine D3DKMT_RENDERFLAGS Struktur, die den Typ des Befehlspuffers in Bitfeldkennzeichnungen angibt, die gerendert werden sollen.

[in] PresentHistoryToken

Das aktuelle Verlaufstoken für umgeleitete Aufrufe an die DxgkDdiPresent-Funktion des Anzeigeminiporttreibers.

Ein aktuelles Verlaufstoken ist ein Datenpaket, das von der Render-App übermittelt wird, um den Desktop Window Manager (DWM) darüber zu informieren, dass das Rendern abgeschlossen ist und der Swapchain-Hintergrundpuffer zur Darstellung bereit ist.

[in] BroadcastContextCount

Die Anzahl zusätzlicher Kontexte im Array, das BroadcastContext- angibt.

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Ein Array von D3DKMT_HANDLE Datentypen, die Kernelmodushandles für die zusätzlichen Kontexte darstellen, um den aktuellen Befehlspuffer zu übertragen. Die D3DDDI_MAX_BROADCAST_CONTEXT Konstante, die als 64 definiert ist, definiert die maximale Anzahl von Kontexten, in die der OpenGL ICD den aktuellen Befehlspuffer übertragen kann.

Der ursprüngliche Kontext, den das hContext-element-Member angibt und der besitzer des Befehlspuffers ist kein Element im BroadcastContext Array. Wenn beispielsweise das BroadcastContext Array ein Element enthält, sendet das OpenGL ICD den Befehlspuffer an den eigenen Kontext (hContext) und sendet an diesen zusätzlichen Kontext.

[out] QueuedBufferCount

Die Anzahl der DMA-Puffer, die im Kontext in die Warteschlange gestellt werden, den das hContext-element nach der Übermittlung angibt.

[out] NewCommandBuffer

Ein Zeiger auf einen Befehlspuffer, den der OpenGL ICD beim nächsten Aufruf der D3DKMTRender-Funktion empfängt. Der Treiber muss den Zeiger immer auf den Befehlspuffer aktualisieren, nachdem ein Aufruf von D3DKMTRender erfolgt, unabhängig davon, ob der Aufruf erfolgreich ist.

Unterstützt in Windows 7 und höheren Versionen:

[in] Ein Zeiger auf den Befehlspuffer, der gerendert werden soll, wenn das RenderKm Flag im Flags Member festgelegt ist.

pPrivateDriverData

Dieses Element ist reserviert und sollte auf Null festgelegt werden.

Dieses Mitglied ist ab Windows 7 verfügbar.

PrivateDriverDataSize

Dieses Element ist reserviert und sollte auf Null festgelegt werden.

Dieses Mitglied ist ab Windows 7 verfügbar.

Anforderungen

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

Siehe auch

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent-