Benutzerdefinierter Typ
Verwenden Sie die folgende Syntax, um einen benutzerdefinierten Typ zu deklarieren.
typedef [const] Type Name[Index]; |
Parameter
Element | Beschreibung |
---|---|
[const] |
Optional. Dieser Schlüsselwort (keyword) markiert den Typ explizit als Konstante. |
Typ |
Identifiziert den Datentyp; muss einer der systeminternen HLSL-Datentypen sein. |
Namen |
Eine ASCII-Zeichenfolge, die den Variablennamen eindeutig identifiziert. |
Index |
Optionale Arraygröße. Muss eine ganze Zahl ohne Vorzeichen zwischen 1 und 4 einschließlich sein. |
Zusätzlich zu den integrierten systeminternen Datentypen unterstützt HLSL benutzerdefinierte oder benutzerdefinierte Typen, die dieser Syntax folgen:
Bemerkungen
Bei benutzerdefinierten Typen wird die Groß-/Kleinschreibung nicht beachtet. Der Einfachheit halber werden die folgenden Typen automatisch im super-globalen Bereich definiert.
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#;
Das Pfundzeichen (#) stellt eine ganzzahlige Zahl zwischen 1 und 4 dar.
Aus Gründen der Kompatibilität mit DirectX 8-Effekten werden die folgenden Typen automatisch im super-globalen Bereich definiert:
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;