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) |