Tipo definito dall'utente
Usare la sintassi seguente per dichiarare un tipo definito dall'utente.
typedef [const] Type Name[Index]; |
Parametri
Elemento | Descrizione |
---|---|
[const] |
Facoltativa. Questa parola chiave contrassegna in modo esplicito il tipo come costante. |
Digitare |
Identifica il tipo di dati; deve essere uno dei tipi di dati intrinseci HLSL. |
Nome |
Stringa ASCII che identifica in modo univoco il nome della variabile. |
Indice |
Dimensioni facoltative della matrice. Deve essere un intero senza segno compreso tra 1 e 4 inclusivo. |
Oltre ai tipi di dati intrinseci predefiniti, HLSL supporta tipi definiti dall'utente o personalizzati che seguono questa sintassi:
Commenti
I tipi definiti dall'utente non sono distinzione tra maiuscole e minuscole. Per praticità, i tipi seguenti vengono definiti automaticamente nell'ambito 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#;
Il segno di sterlina (#) rappresenta una cifra intero compresa tra 1 e 4.
Per la compatibilità con gli effetti DirectX 8, i tipi seguenti vengono definiti automaticamente nell'ambito 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;