Compartilhar via


estrutura D3DKMT_RENDER (d3dkmthk.h)

A estrutura D3DKMT_RENDER descreve o buffer de comando atual a ser renderizado.

Sintaxe

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;

Membros

[in] hDevice

Um tipo de dados D3DKMT_HANDLE que representa um identificador de modo kernel para o dispositivo para o qual o buffer de comando é renderizado. Um identificador de dispositivo é fornecido à função D3DKMTRender na união que D3DKMT_RENDER contém para compatibilidade com o Microsoft Direct3D versão 10.

[in] hContext

Um tipo de dados D3DKMT_HANDLE que representa um identificador de modo kernel para o contexto do dispositivo para o qual o buffer de comando é renderizado.

[in] CommandOffset

O deslocamento, em bytes, para o primeiro comando no buffer de comando.

[in] CommandLength

O tamanho, em bytes, do buffer de comandos começando do deslocamento zero.

[in] AllocationCount

O número de elementos na lista de alocação enviada.

[in] PatchLocationCount

O número de elementos na lista de locais de patch enviados.

void D3DKMT_PTR( VOID *unnamedParam1, pNewCommandBuffer unnamedParam2)

[in/out] NewCommandBufferSize

O tamanho, em bytes, que o OpenGL ICD solicita para o próximo buffer de comando se o sinalizador de campo de bits ResizeCommandBuffer for especificado no membro Flags . Se ResizeCommandBuffer não for especificado, o valor em NewCommandBufferSize será ignorado. Na saída, o driver recebe o tamanho, em bytes, do próximo buffer de comando a ser usado.

Dependendo das condições de memória atuais, o tamanho da saída pode não corresponder ao tamanho da entrada.

void D3DKMT_PTR( D3DDDI_ALLOCATIONLIST *unnamedParam1, pNewAllocationList unnamedParam2)

[in/out] NewAllocationListSize

O número de elementos que o OpenGL ICD solicita para a próxima lista de alocação se o sinalizador de campo de bits ResizeAllocationList for especificado no membro Flags . Se ResizeAllocationList não for especificado, o valor em NewAllocationListSize será ignorado. Na saída, o driver recebe o número de elementos que estarão disponíveis em uma matriz de alocações quando o próximo buffer de comando for enviado.

Dependendo das condições de memória atuais, o tamanho da saída pode não corresponder ao tamanho da entrada.

void D3DKMT_PTR( D3DDDI_PATCHLOCATIONLIST *unnamedParam1, pNewPatchLocationList unnamedParam2)

[in/out] NewPatchLocationListSize

O número de elementos que o OpenGL ICD solicita para a próxima lista de locais de patch se o sinalizador de campo de bits ResizePatchLocationList for especificado no membro Flags . Se ResizePatchLocationList não for especificado, o valor em NewPatchLocationListSize será ignorado. Na saída, o driver recebe o número de elementos que estarão disponíveis em uma matriz de locais de patch quando o próximo buffer de comando for enviado.

Dependendo das condições de memória atuais, o tamanho da saída pode não corresponder ao tamanho da entrada.

[in] Flags

Uma estrutura D3DKMT_RENDERFLAGS que indica o tipo de buffer de comando, em sinalizadores de campo de bit, a ser renderizado.

[in] PresentHistoryToken

O token de histórico atual para chamadas redirecionadas para a função DxgkDdiPresent do driver de miniporta de exibição.

Um token de histórico atual é um pacote de dados que o aplicativo de renderização envia para informar ao DWM (Gerenciador de Janelas da Área de Trabalho) que a renderização está concluída e que o buffer de fundo da cadeia de troca está pronto para ser apresentado.

[in] BroadcastContextCount

O número de contextos adicionais na matriz especificada por BroadcastContext .

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Uma matriz de D3DKMT_HANDLE tipos de dados que representam identificadores de modo kernel para os contextos adicionais para os quais transmitir o buffer de comando atual. A constante D3DDDI_MAX_BROADCAST_CONTEXT, que é definida como 64, define o número máximo de contextos para os quais o OpenGL ICD pode transmitir o buffer de comando atual.

O contexto original que o membro hContext especifica e que possui o buffer de comando não é um elemento na matriz BroadcastContext . Por exemplo, se a matriz BroadcastContext contiver um elemento, o OpenGL ICD enviará o buffer de comando para o contexto proprietário (hContext) e transmitirá para esse contexto adicional.

[out] QueuedBufferCount

O número de buffers DMA que são enfileirados para o contexto que o membro hContext especifica após o envio.

[out] NewCommandBuffer

Um ponteiro para um buffer de comando que o OpenGL ICD recebe para usar em sua próxima chamada para a função D3DKMTRender . O driver sempre deve atualizar seu ponteiro para o buffer de comando após qualquer chamada para D3DKMTRender , independentemente de a chamada ser bem-sucedida.

Com suporte no Windows 7 e versões posteriores:

[in] Um ponteiro para o buffer de comando a ser renderizado se o sinalizador RenderKm estiver definido no membro Flags .

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

Esse membro é reservado e deve ser definido como zero.

Este membro está disponível a partir do Windows 7.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Cabeçalho d3dkmthk.h (inclua D3dkmthk.h)

Confira também

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent