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;

Types de données (DirectX HLSL)