Udostępnij za pośrednictwem


typ User-Defined

Użyj następującej składni, aby zadeklarować typ zdefiniowany przez użytkownika.

typedef [const] Type Name[Index];

Parametry

Przedmiot Opis
[const]
Fakultatywny. To słowo kluczowe jawnie oznacza typ jako stałą.
typ
Identyfikuje typ danych; musi być jednym z typów danych wewnętrznych HLSL.
nazwa
Ciąg ASCII, który jednoznacznie identyfikuje nazwę zmiennej.
indeksu
Opcjonalny rozmiar tablicy. Musi być niepodpisaną liczbą całkowitą z zakresu od 1 do 4 włącznie.

Oprócz wbudowanych typów danych wewnętrznych biblioteka HLSL obsługuje typy zdefiniowane przez użytkownika lub niestandardowe, które są zgodne z następującą składnią:

Uwagi

Typy zdefiniowane przez użytkownika nie są uwzględniane wielkości liter. Dla wygody następujące typy są automatycznie definiowane w zakresie superglobalnym.

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#;

Znak funta (#) reprezentuje cyfrę całkowitą z zakresu od 1 do 4.

W celu zapewnienia zgodności z efektami DirectX 8 następujące typy są automatycznie definiowane w zakresie superglobalnym:

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;

typy danych (DirectX HLSL)