Compartir a través de


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

Consulte también

ID3D11DeviceContext