使用者自訂類型
使用下列語法來宣告使用者定義型別。
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;