Condividi tramite


struttura D3DKMT_RENDER (d3dkmthk.h)

La struttura D3DKMT_RENDER descrive il buffer dei comandi corrente di cui eseguire il rendering.

Sintassi

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;

Membri

[in] hDevice

Tipo di dati D3DKMT_HANDLE che rappresenta un handle in modalità kernel nel dispositivo in cui viene eseguito il rendering del buffer dei comandi. Un handle di dispositivo viene fornito alla funzione D3DKMTRender nell'unione che D3DKMT_RENDER contiene per la compatibilità con Microsoft Direct3D versione 10.

[in] hContext

Oggetto D3DKMT_HANDLE tipo di dati che rappresenta un handle in modalità kernel nel contesto di dispositivo in cui viene eseguito il rendering del buffer dei comandi.

[in] CommandOffset

Offset, in byte, al primo comando nel buffer dei comandi.

[in] CommandLength

Dimensioni, in byte, del buffer dei comandi a partire dall'offset zero.

[in] AllocationCount

Numero di elementi nell'elenco di allocazione inviato.

[in] PatchLocationCount

Numero di elementi nell'elenco patch-location inviato.

[out] pNewCommandBuffer

Puntatore a un buffer dei comandi ricevuto da OpenGL ICD nella chiamata successiva alla funzione D3DKMTRender . Il driver deve sempre aggiornare il puntatore al buffer dei comandi dopo qualsiasi chiamata a D3DKMTRender indipendentemente dal fatto che la chiamata abbia esito positivo.

Supportato in Windows 7 e versioni successive:

[in] Puntatore al buffer dei comandi di cui eseguire il rendering se il flag RenderKm è impostato nel membro flag .

[in/out] NewCommandBufferSize

Dimensioni, in byte, richieste da Progettazione immagine e configurazione OpenGL per il buffer dei comandi successivo se il flag ResizeCommandBuffer flag di campo di bit viene specificato nel membro flag Flag. Se ResizeCommandBuffer non viene specificato, il valore in NewCommandBufferSize viene ignorato. Nell'output, il driver riceve le dimensioni, in byte, del buffer dei comandi successivo da usare.

A seconda delle condizioni di memoria correnti, le dimensioni dell'output potrebbero non corrispondere alle dimensioni di input.

[out] pNewAllocationList

Matrice di strutture D3DDDI_ALLOCATIONLIST ricevute dalla progettazione immagine e configurazione OpenGL da usare come elenco di allocazioni nella chiamata successiva alla funzione D3DKMTRender . Il driver deve sempre aggiornare il puntatore all'elenco di allocazione dopo qualsiasi chiamata a D3DKMTRender indipendentemente dal fatto che la chiamata abbia esito positivo.

Supportato in Windows 7 e versioni successive:

[in] Puntatore all'elenco di allocazioni di cui eseguire il rendering se il flag RenderKm è impostato nel membro flag .

[in/out] NewAllocationListSize

Numero di elementi che l'ICD OpenGL richiede per l'elenco di allocazione successivo se il flag ResizeAllocationList campo di bit viene specificato nel membro flag di . Se ResizeAllocationList non viene specificato, il valore in NewAllocationListSize viene ignorato. In caso di output, il driver riceve il numero di elementi che saranno disponibili in una matrice di allocazioni quando viene inviato il buffer dei comandi successivo.

A seconda delle condizioni di memoria correnti, le dimensioni dell'output potrebbero non corrispondere alle dimensioni di input.

[out] pNewPatchLocationList

Matrice di strutture D3DDDI_PATCHLOCATIONLIST ricevute dalla progettazione immagine e configurazione OpenGL da usare come elenco di percorsi patch nella chiamata successiva alla funzione D3DKMTRender. Il driver deve sempre aggiornare il puntatore all'elenco dei percorsi patch dopo qualsiasi chiamata a D3DKMTRender indipendentemente dal fatto che la chiamata abbia esito positivo.

[in/out] NewPatchLocationListSize

Numero di elementi che l'ICD OpenGL richiede per l'elenco patch-location successivo se il ResizePatchLocationList flag di campo di bit viene specificato nel membro Flags. Se ResizePatchLocationList non viene specificato, il valore in NewPatchLocationListSize viene ignorato. Nell'output, il driver riceve il numero di elementi che saranno disponibili in una matrice di posizioni patch quando viene inviato il buffer dei comandi successivo.

A seconda delle condizioni di memoria correnti, le dimensioni dell'output potrebbero non corrispondere alle dimensioni di input.

[in] Flags

Struttura D3DKMT_RENDERFLAGS che indica il tipo di buffer dei comandi, in flag di campo di bit, di cui eseguire il rendering.

[in] PresentHistoryToken

Token di cronologia attuale per le chiamate reindirizzate alla funzione del driver miniport di visualizzazione dxgkDdiPresent.

Un token di cronologia presente è un pacchetto di dati inviato dall'app di rendering per informare Desktop Window Manager (DWM) che il rendering è completo e che il buffer back della catena di scambio è pronto per essere presentato.

[in] BroadcastContextCount

Numero di contesti aggiuntivi nella matrice specificata BroadcastContext.

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Matrice di D3DKMT_HANDLE tipi di dati che rappresentano handle in modalità kernel nei contesti aggiuntivi a cui trasmettere il buffer dei comandi corrente. La costante D3DDDI_MAX_BROADCAST_CONTEXT, definita come 64, definisce il numero massimo di contesti a cui OpenGL ICD può trasmettere il buffer dei comandi corrente.

Il contesto originale specificato dal membro hContext e proprietario del buffer dei comandi non è un elemento nella matrice BroadcastContext. Ad esempio, se la matrice BroadcastContext contiene un elemento, La progettazione immagine e configurazione openGL invia il buffer dei comandi al contesto proprietario (hContext) e trasmette a tale contesto aggiuntivo.

[out] QueuedBufferCount

Numero di buffer DMA accodati al contesto specificato dal membro hContext dopo l'invio.

[out] NewCommandBuffer

Puntatore a un buffer dei comandi ricevuto da OpenGL ICD nella chiamata successiva alla funzione D3DKMTRender . Il driver deve sempre aggiornare il puntatore al buffer dei comandi dopo qualsiasi chiamata a D3DKMTRender indipendentemente dal fatto che la chiamata abbia esito positivo.

Supportato in Windows 7 e versioni successive:

[in] Puntatore al buffer dei comandi di cui eseguire il rendering se il flag RenderKm è impostato nel membro flag .

pPrivateDriverData

Questo membro è riservato e deve essere impostato su zero.

Questo membro è disponibile a partire da Windows 7.

PrivateDriverDataSize

Questo membro è riservato e deve essere impostato su zero.

Questo membro è disponibile a partire da Windows 7.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
intestazione d3dkmthk.h (include D3dkmthk.h)

Vedere anche

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent