Método ID3D11DeviceContext::GSSetConstantBuffers (d3d11.h)
Establece los búferes de constantes utilizados por la fase de canalización del sombreador de geometría.
Sintaxis
void GSSetConstantBuffers(
[in] UINT StartSlot,
[in] UINT NumBuffers,
[in, optional] ID3D11Buffer * const *ppConstantBuffers
);
Parámetros
[in] StartSlot
Tipo: UINT
Indexe en la matriz de base cero del dispositivo para empezar a establecer búferes de constantes en (intervalos de 0 a D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1).
[in] NumBuffers
Tipo: UINT
Número de búferes que se van a establecer (oscila entre 0 y D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot).
[in, optional] ppConstantBuffers
Tipo: ID3D11Buffer*
Matriz de búferes de constantes (vea ID3D11Buffer) que se asigna al dispositivo.
Valor devuelto
None
Observaciones
El método contendrá una referencia a las interfaces pasadas. Esto difiere del comportamiento del estado del dispositivo en Direct3D 10.
No puede usar la interfaz ID3D11ShaderReflectionConstantBuffer para obtener información sobre lo que está enlazado actualmente a la canalización en el contexto del dispositivo. Pero puede usar ID3D11ShaderReflectionConstantBuffer para obtener información de un sombreador compilado. Por ejemplo, puede usar ID3D11ShaderReflectionConstantBuffer e ID3D11ShaderReflectionVariable para determinar la ranura en la que un sombreador de geometría espera un búfer de constantes. A continuación, puede pasar este número de ranura a GSSetConstantBuffers para establecer el búfer de constantes. Puede llamar a la función D3D11Reflect para recuperar la dirección de un puntero a la interfaz ID3D11ShaderReflection y, a continuación, llamar a ID3D11ShaderReflection::GetConstantBufferByName para obtener un puntero a ID3D11ShaderReflectionConstantBuffer.
El entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8, puede enlazar un mayor número de recursos ID3D11Buffer al sombreador que el tamaño máximo del búfer de constante compatible con sombreadores (constantes de 4096 : 4componentes de 32 bits cada uno). Cuando se enlaza un búfer de gran tamaño, el sombreador solo puede tener acceso a las primeras constantes de componentes de 4096 de32 bits en el búfer, como si 4096 constantes fuera el tamaño completo del búfer.
Si la aplicación quiere que el sombreador acceda a otras partes del búfer, debe llamar al método GSSetConstantBuffers1 en su lugar.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d11.h |
Library | D3D11.lib |