使用以下语法声明用户定义的类型。
| typedef [const] Type Name[Index]; | 
参数
| 项目 | 描述 | 
|---|---|
| [const] | 自选。 此关键字将类型显式标记为常量。 | 
| 类型 | 标识数据类型;必须是 HLSL 内部数据类型之一。 | 
| 名称 | 唯一标识变量名称的 ASCII 字符串。 | 
| 索引 | 可选数组大小。 必须是介于 1 和 4 之间的无符号整数。 | 
除了内置内部数据类型之外,HLSL 还支持遵循以下语法的用户定义或自定义类型:
言论
用户定义的类型不区分大小写。 为方便起见,以下类型在超全局范围内自动定义。
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#;
磅号 (#) 表示介于 1 和 4 之间的整数数字。
为了与 DirectX 8 效果兼容,以下类型在超全局范围内自动定义:
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;