Tipo definido por el usuario
Use la sintaxis siguiente para declarar un tipo definido por el usuario.
typedef [const] Type Name[Index]; |
Parámetros
Elemento | Descripción |
---|---|
[const] |
Opcional. Esta palabra clave marca explícitamente el tipo como una constante. |
Tipo |
Identifica el tipo de datos; debe ser uno de los tipos de datos intrínsecos de HLSL. |
Nombre |
Cadena ASCII que identifica de forma única el nombre de la variable. |
Índice |
Tamaño de matriz opcional. Debe ser un entero sin signo entre 1 y 4 inclusive. |
Además de los tipos de datos intrínsecos integrados, HLSL admite tipos personalizados o definidos por el usuario que siguen esta sintaxis:
Comentarios
Los tipos definidos por el usuario no distinguen mayúsculas de minúsculas. Para mayor comodidad, los siguientes tipos se definen automáticamente en el ámbito super global.
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#;
El signo de libra (#) representa un dígito entero entre 1 y 4.
Para la compatibilidad con los efectos de DirectX 8, los siguientes tipos se definen automáticamente en el ámbito super global:
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;