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;
  void                                  D3DKMT_PTR(
    VOID              *unnamedParam1,
    pNewCommandBuffer unnamedParam2
  );
  [in/out] UINT                                  NewCommandBufferSize;
  void                                  D3DKMT_PTR(
    D3DDDI_ALLOCATIONLIST *unnamedParam1,
    pNewAllocationList    unnamedParam2
  );
  [in/out] UINT                                  NewAllocationListSize;
  void                                  D3DKMT_PTR(
    D3DDDI_PATCHLOCATIONLIST *unnamedParam1,
    pNewPatchLocationList    unnamedParam2
  );
  [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                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
           UINT                                  PrivateDriverDataSize;
} D3DKMT_RENDER;

Members

[in] hDevice

Tipo di dati D3DKMT_HANDLE che rappresenta un handle in modalità kernel per il 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

Tipo di dati D3DKMT_HANDLE che rappresenta un handle in modalità kernel per il contesto di dispositivo su 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 da zero offset.

[in] AllocationCount

Numero di elementi nell'elenco di allocazione inviato.

[in] PatchLocationCount

Numero di elementi nell'elenco patch-location inviato.

void D3DKMT_PTR( VOID *unnamedParam1, pNewCommandBuffer unnamedParam2)

[in/out] NewCommandBufferSize

Dimensioni, in byte, richieste da Progettazione immagine e configurazione OpenGL per il buffer dei comandi successivo se il flag di campo di bit ResizeCommandBuffer viene specificato nel membro Flags . Se ResizeCommandBuffer non è 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.

void D3DKMT_PTR( D3DDDI_ALLOCATIONLIST *unnamedParam1, pNewAllocationList unnamedParam2)

[in/out] NewAllocationListSize

Numero di elementi che OpenGL ICD richiede per l'elenco di allocazione successivo se il flag di campo di bit ResizeAllocationList è specificato nel membro Flags . Se ResizeAllocationList non viene specificato, il valore in NewAllocationListSize viene ignorato. Nell'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.

void D3DKMT_PTR( D3DDDI_PATCHLOCATIONLIST *unnamedParam1, pNewPatchLocationList unnamedParam2)

[in/out] NewPatchLocationListSize

Numero di elementi che OpenGL ICD richiede per l'elenco patch-location successivo se il flag di campo di bit ResizePatchLocationList è 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 percorsi delle 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 DxgkDdiPresent del driver miniport di visualizzazione.

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 da 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 del comando 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, OpenGL ICD 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 di comando ricevuto dalla progettazione immagine e configurazione OpenGL da usare 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 Flags .

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

Questo membro è riservato e deve essere impostato su zero.

Questo membro è disponibile a partire da Windows 7.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Intestazione d3dkmthk.h (include D3dkmthk.h)

Vedi anche

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent