Partager via


ID3D11DeviceContext::GSSetConstantBuffers, méthode (d3d11.h)

Définit les mémoires tampons constantes utilisées par l’étape de pipeline du nuanceur geometry.

Syntaxe

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

Paramètres

[in] StartSlot

Type : UINT

Indexez dans le tableau de base zéro de l’appareil pour commencer à définir les mémoires tampons constantes sur (comprises entre 0 et D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - 1).

[in] NumBuffers

Type : UINT

Nombre de mémoires tampons à définir (compris entre 0 et D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT - StartSlot).

[in, optional] ppConstantBuffers

Type : ID3D11Buffer*

Tableau de mémoires tampons constantes (voir ID3D11Buffer) données à l’appareil.

Valeur de retour

Aucune

Remarques

La méthode contient une référence aux interfaces passées. Cela diffère du comportement de l’état de l’appareil dans Direct3D 10.

Vous ne pouvez pas utiliser l’interface ID3D11ShaderReflectionConstantBuffer pour obtenir des informations sur ce qui est actuellement lié au pipeline dans le contexte de l’appareil. Toutefois, vous pouvez utiliser ID3D11ShaderReflectionConstantBuffer pour obtenir des informations à partir d’un nuanceur compilé. Par exemple, vous pouvez utiliser ID3D11ShaderReflectionConstantBuffer et ID3D11ShaderReflectionVariable pour déterminer l’emplacement dans lequel un nuanceur de géométrie attend une mémoire tampon constante. Vous pouvez ensuite passer ce numéro d’emplacement à GSSetConstantBuffers pour définir la mémoire tampon constante. Vous pouvez appeler la fonction D3D11Reflect pour récupérer l’adresse d’un pointeur vers l’interface ID3D11ShaderReflection , puis appeler ID3D11ShaderReflection::GetConstantBufferByName pour obtenir un pointeur vers ID3D11ShaderReflectionConstantBuffer.

Le runtime Direct3D 11.1, disponible à partir de Windows 8, peut lier un plus grand nombre de ressources ID3D11Buffer au nuanceur que la taille maximale de mémoire tampon constante prise en charge par les nuanceurs (4 096 constantes – 4composants 32 bits chacun). Lorsque vous liez une mémoire tampon aussi volumineuse, le nuanceur peut accéder uniquement aux premières constantes de composant 4096 432 bits dans la mémoire tampon, comme si les constantes 4096 correspond à la taille complète de la mémoire tampon.

Si l’application souhaite que le nuanceur accède à d’autres parties de la mémoire tampon, elle doit appeler la méthode GSSetConstantBuffers1 à la place.

Configuration requise

   
Plateforme cible Windows
En-tête d3d11.h
Bibliothèque D3D11.lib

Voir aussi

ID3D11DeviceContext