ユーザー定義型 (DirectX HLSL)

ユーザー定義型を宣言するには、次の構文を使用します。

typedef [const] Type Name[Index];

パラメーター

  • [const]
    (省略可能)このキーワードは、型を明示的に定数としてマークします。
  • Type
    データ型を識別します。HLSL 組み込みデータ型のいずれかである必要があります。
  • Name
    変数名を一意に識別する ASCII 文字列。
  • Index
    配列のサイズ (省略可能)。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)