用户定义类型
使用以下语法声明用户定义类型。
typedef [const] Type Name[Index]; |
参数
项 | 说明 |
---|---|
[const] |
可选。 此关键字 (keyword) 显式将类型标记为常量。 |
类型 |
标识数据类型;必须是 HLSL 内部数据类型之一。 |
名字 |
唯一标识变量名称的 ASCII 字符串。 |
指数 |
可选数组大小。 必须是介于 1 和 4(含 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;