@@ -23,52 +23,98 @@ namespace hlsl {
23
23
// 16-bit integer.
24
24
typedef unsigned short uint16_t ;
25
25
typedef short int16_t ;
26
+
27
+ // 16-bit floating point.
28
+ typedef half float16_t ;
26
29
#endif
27
30
31
+ // 32-bit integer.
32
+ typedef int int32_t ;
33
+
28
34
// unsigned 32-bit integer.
29
35
typedef unsigned int uint;
36
+ typedef unsigned int uint32_t ;
37
+
38
+ // 32-bit floating point.
39
+ typedef float float32_t ;
30
40
31
41
// 64-bit integer.
32
42
typedef unsigned long uint64_t ;
33
43
typedef long int64_t ;
34
44
45
+ // 64-bit floating point
46
+ typedef double float64_t ;
47
+
35
48
// built-in vector data types:
36
49
37
50
#ifdef __HLSL_ENABLE_16_BIT
51
+ typedef vector<int16_t , 1 > int16_t1;
38
52
typedef vector<int16_t , 2 > int16_t2;
39
53
typedef vector<int16_t , 3 > int16_t3;
40
54
typedef vector<int16_t , 4 > int16_t4;
55
+ typedef vector<uint16_t , 1 > uint16_t1;
41
56
typedef vector<uint16_t , 2 > uint16_t2;
42
57
typedef vector<uint16_t , 3 > uint16_t3;
43
58
typedef vector<uint16_t , 4 > uint16_t4;
44
59
#endif
60
+ typedef vector<bool , 1 > bool1;
45
61
typedef vector<bool , 2 > bool2;
46
62
typedef vector<bool , 3 > bool3;
47
63
typedef vector<bool , 4 > bool4;
64
+ typedef vector<int , 1 > int1;
48
65
typedef vector<int , 2 > int2;
49
66
typedef vector<int , 3 > int3;
50
67
typedef vector<int , 4 > int4;
68
+ typedef vector<uint, 1 > uint1;
51
69
typedef vector<uint, 2 > uint2;
52
70
typedef vector<uint, 3 > uint3;
53
71
typedef vector<uint, 4 > uint4;
72
+ typedef vector<int32_t , 1 > int32_t1;
73
+ typedef vector<int32_t , 2 > int32_t2;
74
+ typedef vector<int32_t , 3 > int32_t3;
75
+ typedef vector<int32_t , 4 > int32_t4;
76
+ typedef vector<uint32_t , 1 > uint32_t1;
77
+ typedef vector<uint32_t , 2 > uint32_t2;
78
+ typedef vector<uint32_t , 3 > uint32_t3;
79
+ typedef vector<uint32_t , 4 > uint32_t4;
80
+ typedef vector<int64_t , 1 > int64_t1;
54
81
typedef vector<int64_t , 2 > int64_t2;
55
82
typedef vector<int64_t , 3 > int64_t3;
56
83
typedef vector<int64_t , 4 > int64_t4;
84
+ typedef vector<uint64_t , 1 > uint64_t1;
57
85
typedef vector<uint64_t , 2 > uint64_t2;
58
86
typedef vector<uint64_t , 3 > uint64_t3;
59
87
typedef vector<uint64_t , 4 > uint64_t4;
60
88
89
+ typedef vector<half, 1 > half1;
61
90
typedef vector<half, 2 > half2;
62
91
typedef vector<half, 3 > half3;
63
92
typedef vector<half, 4 > half4;
64
-
93
+ typedef vector< float , 1 > float1;
65
94
typedef vector<float , 2 > float2;
66
95
typedef vector<float , 3 > float3;
67
96
typedef vector<float , 4 > float4;
97
+ typedef vector<double , 1 > double1;
68
98
typedef vector<double , 2 > double2;
69
99
typedef vector<double , 3 > double3;
70
100
typedef vector<double , 4 > double4;
71
101
102
+ #ifdef __HLSL_ENABLE_16_BIT
103
+ typedef vector<float16_t , 1 > float16_t1;
104
+ typedef vector<float16_t , 2 > float16_t2;
105
+ typedef vector<float16_t , 3 > float16_t3;
106
+ typedef vector<float16_t , 4 > float16_t4;
107
+ #endif
108
+
109
+ typedef vector<float32_t , 1 > float32_t1;
110
+ typedef vector<float32_t , 2 > float32_t2;
111
+ typedef vector<float32_t , 3 > float32_t3;
112
+ typedef vector<float32_t , 4 > float32_t4;
113
+ typedef vector<float64_t , 1 > float64_t1;
114
+ typedef vector<float64_t , 2 > float64_t2;
115
+ typedef vector<float64_t , 3 > float64_t3;
116
+ typedef vector<float64_t , 4 > float64_t4;
117
+
72
118
} // namespace hlsl
73
119
74
120
#endif // _HLSL_HLSL_BASIC_TYPES_H_
0 commit comments