Método ID3D11DeviceContext::GSSetConstantBuffers (d3d11.h)

Define os buffers constantes usados pelo estágio de pipeline do sombreador de geometria.

Sintaxe

void GSSetConstantBuffers(
  [in]           UINT         StartSlot,
  [in]           UINT         NumBuffers,
  [in, optional] ID3D11Buffer * const *ppConstantBuffers
);

Parâmetros

[in] StartSlot

Tipo: UINT

Indexe na matriz baseada em zero do dispositivo para começar a definir buffers constantes como (intervalos de 0 a D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1).

[in] NumBuffers

Tipo: UINT

Número de buffers a serem definidos (intervalos de 0 a D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot).

[in, optional] ppConstantBuffers

Tipo: ID3D11Buffer*

Matriz de buffers constantes (consulte ID3D11Buffer) sendo fornecido ao dispositivo.

Valor retornado

Nenhum

Comentários

O método conterá uma referência às interfaces passadas. Isso difere do comportamento do estado do dispositivo no Direct3D 10.

Você não pode usar a interface ID3D11ShaderReflectionConstantBuffer para obter informações sobre o que está associado atualmente ao pipeline no contexto do dispositivo. Mas você pode usar ID3D11ShaderReflectionConstantBuffer para obter informações de um sombreador compilado. Por exemplo, você pode usar ID3D11ShaderReflectionConstantBuffer e ID3D11ShaderReflectionVariable para determinar o slot no qual um sombreador de geometria espera um buffer constante. Em seguida, você pode passar esse número de slot para GSSetConstantBuffers para definir o buffer constante. Você pode chamar a função D3D11Reflect para recuperar o endereço de um ponteiro para a interface ID3D11ShaderReflection e, em seguida, chamar ID3D11ShaderReflection::GetConstantBufferByName para obter um ponteiro para ID3D11ShaderReflectionConstantBuffer.

O runtime do Direct3D 11.1, que está disponível a partir do Windows 8, pode associar um número maior de recursos ID3D11Buffer ao sombreador do que o tamanho máximo do buffer constante compatível com sombreadores (constantes 4096 –componentes de 4 32 bits cada). Quando você associa um buffer tão grande, o sombreador pode acessar apenas as primeiras constantes de componente de 4.096 432 bits no buffer, como se as constantes 4096 fosse o tamanho total do buffer.

Se o aplicativo quiser que o sombreador acesse outras partes do buffer, ele deverá chamar o método GSSetConstantBuffers1 .

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d11.h
Biblioteca D3D11.lib

Confira também

ID3D11DeviceContext