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 |