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 |