Tipo definido por el usuario

Use la siguiente sintaxis 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:

Observaciones

Los tipos definidos por el usuario no distinguen mayúsculas de minúsculas. Por 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;

Tipos de datos (DirectX HLSL)