Type défini par l'utilisateur
Utilisez la syntaxe suivante pour déclarer un type défini par l’utilisateur.
typedef [const] Type Name[Index]; |
Paramètres
Élément | Description |
---|---|
[const] |
Optionnel. Cette mot clé marque explicitement le type en tant que constante. |
Type |
Identifie le type de données ; doit être l’un des types de données intrinsèques HLSL. |
Nom |
Chaîne ASCII qui identifie de manière unique le nom de la variable. |
Index |
Taille de tableau facultative. Doit être un entier non signé compris entre 1 et 4 inclus. |
En plus des types de données intrinsèques intégrés, HLSL prend en charge les types personnalisés ou définis par l’utilisateur qui suivent cette syntaxe :
Notes
Les types définis par l’utilisateur ne respectent pas la casse. Pour plus de commodité, les types suivants sont automatiquement définis dans une étendue super-globale.
typedef vector <bool, #> bool#;
typedef vector <int, #> int#;
typedef vector <uint, #> uint#;
typedef vector <half, #> half#;
typedef vector <float, #> float#;
typedef vector <double, #> double#;
typedef matrix <bool, #, #> bool#x#;
typedef matrix <int, #, #> int#x#;
typedef matrix <uint, #, #> uint#x#;
typedef matrix <half, #, #> half#x#;
typedef matrix <float, #, #> float#x#;
typedef matrix <double, #, #> double#x#;
Le signe de livre (#) représente un chiffre entier compris entre 1 et 4.
Pour la compatibilité avec les effets DirectX 8, les types suivants sont automatiquement définis à l’étendue super-globale :
typedef int DWORD;
typedef float FLOAT;
typedef vector <float, 4> VECTOR;
typedef matrix <float, 4, 4> MATRIX;
typedef string STRING;
typedef texture TEXTURE;
typedef pixelshader PIXELSHADER;
typedef vertexshader VERTEXSHADER;