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;
  [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;

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 para a 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 no 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 comando 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.

[out] pNewCommandBuffer

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 deve sempre 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 sinalizadores do .

[in/out] NewCommandBufferSize

O tamanho, em bytes, que o OpenGL ICD solicita para o próximo buffer de comando se o ResizeCommandBuffer sinalizador de campo de bits for especificado no membro sinalizadores do . 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 de entrada.

[out] pNewAllocationList

Uma matriz de estruturas D3DDDI_ALLOCATIONLIST que o OpenGL ICD recebe para usar como a lista de alocação em sua próxima chamada para a função D3DKMTRender. O driver sempre deve atualizar seu ponteiro para a lista de alocação 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 a lista de alocação a ser renderizada se o sinalizador RenderKm estiver definido no membro sinalizadores do .

[in/out] NewAllocationListSize

O número de elementos que o OpenGL ICD solicita para a próxima lista de alocação se o ResizeAllocationList sinalizador de campo de bits for especificado no Flags membro. 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 comandos for enviado.

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

[out] pNewPatchLocationList

Uma matriz de estruturas de D3DDDI_PATCHLOCATIONLIST que o OpenGL ICD recebe para usar como a lista de locais de patch em sua próxima chamada para a função D3DKMTRender. O driver sempre deve atualizar seu ponteiro para a lista de locais de patch após qualquer chamada para D3DKMTRender, independentemente de a chamada ser bem-sucedida.

[in/out] NewPatchLocationListSize

O número de elementos que o OpenGL ICD solicita para a próxima lista de locais de patch se o ResizePatchLocationList sinalizador de campo de bits for especificado no Flags membro. 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 comandos for enviado.

Dependendo das condições de memória atuais, o tamanho da saída pode não corresponder ao tamanho de 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 miniport de exibição.

Um token de histórico presente é 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 back da cadeia de troca está pronto para ser apresentado.

[in] BroadcastContextCount

O número de contextos adicionais na matriz que o BroadcastContext especifica.

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

Uma matriz de tipos de dados D3DKMT_HANDLE 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 ICD opengl pode transmitir o buffer de comando atual.

O contexto original especificado pelo membro do hContext 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 de DMA que são enfileirados no contexto que o hContext membro 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 deve sempre 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 sinalizadores do .

pPrivateDriverData

Esse membro é reservado e deve ser definido como zero.

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

PrivateDriverDataSize

Esse membro é reservado e deve ser definido como zero.

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

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
cabeçalho d3dkmthk.h (inclua D3dkmthk.h)

Consulte também

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent