Поделиться через


Определяемый пользователем тип

Используйте следующий синтаксис для объявления определяемого пользователем типа.

typedef [const] Имя типа[Индекс];

Параметры

Элемент Описание
[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)