Partager via


ID3D10Device::CreateInputLayout, méthode (d3d10.h)

Créez un objet de disposition d’entrée pour décrire les données de mémoire tampon d’entrée pour la phase d’assembleur d’entrée.

Syntaxe

HRESULT CreateInputLayout(
  [in]  const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
  [in]  UINT                           NumElements,
  [in]  const void                     *pShaderBytecodeWithInputSignature,
  [in]  SIZE_T                         BytecodeLength,
  [out] ID3D10InputLayout              **ppInputLayout
);

Paramètres

[in] pInputElementDescs

Type : const D3D10_INPUT_ELEMENT_DESC*

Tableau des types de données d’entrée de l’étape d’assembleur d’entrée ; chaque type est décrit par une description d’élément (voir D3D10_INPUT_ELEMENT_DESC).

[in] NumElements

Type : UINT

Nombre de types de données d’entrée dans le tableau d’éléments d’entrée.

[in] pShaderBytecodeWithInputSignature

Type : const void*

Pointeur vers le nuanceur compilé. Pour obtenir ce pointeur, consultez Obtention d’un pointeur vers un nuanceur compilé. Le code de nuanceur compilé contient une signature d’entrée qui est validée par rapport au tableau d’éléments. Consultez la section Remarques.

[in] BytecodeLength

Type : SIZE_T

Taille du nuanceur compilé.

[out] ppInputLayout

Type : ID3D10InputLayout**

Pointeur vers l’objet de disposition d’entrée créé (voir INTERFACE ID3D10InputLayout). Pour valider les autres paramètres d’entrée, définissez ce pointeur sur NULL et vérifiez que la méthode retourne S_FALSE.

Valeur retournée

Type : HRESULT

Si la méthode réussit, le code de retour est S_OK. Pour connaître l’échec des codes d’erreur, consultez Codes de retour Direct3D 10 .

Remarques

Après avoir créé un objet de disposition d’entrée, il doit être lié à la phase d’assembleur d’entrée avant d’appeler une API de dessin. Pour obtenir un exemple de code, consultez Prise en main avec l’étape de Input-Assembler (Direct3D 10).

Une fois qu’un objet de disposition d’entrée est créé à partir d’une signature de nuanceur, l’objet de disposition d’entrée peut être réutilisé avec tout autre nuanceur ayant une signature d’entrée identique (sémantique incluse). Cela peut simplifier la création d’objets de disposition d’entrée lorsque vous utilisez de nombreux nuanceurs avec des entrées identiques.

Si un type de données dans la déclaration de disposition d’entrée ne correspond pas au type de données d’une signature d’entrée de nuanceur, CreateInputLayout génère un avertissement pendant la compilation. L’avertissement consiste simplement à attirer l’attention sur le fait que les données peuvent être réinterprétées lors de la lecture à partir d’un registre. Vous pouvez ignorer cet avertissement (si la réinterprétation est intentionnelle) ou faire correspondre les types de données dans les deux déclarations pour éliminer l’avertissement. La vue d’ensemble des règles de conversion de données décrit les règles appliquées pour la conversion de type de données.

Différences entre Direct3D 9 et Direct3D 10 :

Le mappage des données de vertex aux entrées du nuanceur avec une disposition d’entrée est une nouvelle façon de procéder dans Direct3D 10 qui améliore les performances.

Dans Direct3D 10, les données de vertex sont mappées aux entrées du nuanceur lors de la création de l’objet de disposition d’entrée, tandis que dans Direct3D 9, ce mappage a été effectué au moment du dessin en fonction des déclarations de vertex actuellement liées, des tampons de vertex et des nuanceurs de vertex. Le fait d’effectuer ce mappage lorsque l’objet de disposition d’entrée est créé réduit ou élimine le travail de liaison supplémentaire pour les pilotes au moment du dessin, car ce remapillage n’est plus nécessaire.

Configuration requise

   
Plateforme cible Windows
En-tête d3d10.h
Bibliothèque D3D10.lib

Voir aussi

ID3D10Device Interface