Freigeben über


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;

Datentypen (DirectX HLSL)