User-Defined 类型

使用以下语法声明用户定义的类型。

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;

数据类型 (DirectX HLSL)