Metodo ID3D11DeviceContext::GSSetConstantBuffers (d3d11.h)

Imposta i buffer costanti utilizzati dalla fase della pipeline geometry shader.

Sintassi

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

Parametri

[in] StartSlot

Tipo: UINT

Indicizzare nella matrice in base zero del dispositivo per iniziare a impostare buffer costanti su (intervallo compreso tra 0 e D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1).

[in] NumBuffers

Tipo: UINT

Numero di buffer da impostare (compreso tra 0 e D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot).

[in, optional] ppConstantBuffers

Tipo: ID3D11Buffer*

Matrice di buffer costanti (vedere ID3D11Buffer) assegnati al dispositivo.

Valore restituito

nessuno

Osservazioni

Il metodo conterrà un riferimento alle interfacce passate. Questo comportamento differisce dal comportamento dello stato del dispositivo in Direct3D 10.

Non è possibile usare l'interfaccia ID3D11ShaderReflectionConstantBuffer per ottenere informazioni su ciò che è attualmente associato alla pipeline nel contesto del dispositivo. È tuttavia possibile usare ID3D11ShaderReflectionConstantBuffer per ottenere informazioni da uno shader compilato. Ad esempio, è possibile usare ID3D11ShaderReflectionConstantBuffer e ID3D11ShaderReflectionVariable per determinare lo slot in cui un geometry shader prevede un buffer costante. È quindi possibile passare questo numero di slot a GSSetConstantBuffers per impostare il buffer costante. È possibile chiamare la funzione D3D11Reflect per recuperare l'indirizzo di un puntatore all'interfaccia ID3D11ShaderReflection e quindi chiamare ID3D11ShaderReflection::GetConstantBufferByName per ottenere un puntatore a ID3D11ShaderReflectionConstantBuffer.

Il runtime Direct3D 11.1, disponibile a partire da Windows 8, può associare un numero maggiore di risorse ID3D11Buffer allo shader rispetto alle dimensioni massime del buffer costante supportate dagli shader (costanti 4096 -componenti a 32 bit ciascuno). Quando si associa un buffer di grandi dimensioni, lo shader può accedere solo alle prime costanti del componente a 32 bit a 4096 4nel buffer, come se 4096 costanti corrispondano alle dimensioni complete del buffer.

Se l'applicazione vuole che lo shader acceda ad altre parti del buffer, deve chiamare invece il metodo GSSetConstantBuffers1 .

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d11.h
Libreria D3D11.lib

Vedi anche

ID3D11DeviceContext