clang  16.0.0git
hlsl_basic_types.h
Go to the documentation of this file.
1 //===----- hlsl_basic_types.h - HLSL definitions for basic types ----------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef _HLSL_HLSL_BASIC_TYPES_H_
10 #define _HLSL_HLSL_BASIC_TYPES_H_
11 
12 namespace hlsl {
13 // built-in scalar data types:
14 
15 #ifdef __HLSL_ENABLE_16_BIT
16 // 16-bit integer.
17 typedef unsigned short uint16_t;
18 typedef short int16_t;
19 #endif
20 
21 // unsigned 32-bit integer.
22 typedef unsigned int uint;
23 
24 // 64-bit integer.
25 typedef unsigned long uint64_t;
26 typedef long int64_t;
27 
28 // built-in vector data types:
29 
30 #ifdef __HLSL_ENABLE_16_BIT
31 typedef vector<int16_t, 2> int16_t2;
32 typedef vector<int16_t, 3> int16_t3;
33 typedef vector<int16_t, 4> int16_t4;
34 typedef vector<uint16_t, 2> uint16_t2;
35 typedef vector<uint16_t, 3> uint16_t3;
36 typedef vector<uint16_t, 4> uint16_t4;
37 #endif
38 
39 typedef vector<int, 2> int2;
40 typedef vector<int, 3> int3;
41 typedef vector<int, 4> int4;
42 typedef vector<uint, 2> uint2;
43 typedef vector<uint, 3> uint3;
44 typedef vector<uint, 4> uint4;
45 typedef vector<int64_t, 2> int64_t2;
46 typedef vector<int64_t, 3> int64_t3;
47 typedef vector<int64_t, 4> int64_t4;
48 typedef vector<uint64_t, 2> uint64_t2;
49 typedef vector<uint64_t, 3> uint64_t3;
50 typedef vector<uint64_t, 4> uint64_t4;
51 
52 #ifdef __HLSL_ENABLE_16_BIT
53 typedef vector<half, 2> half2;
54 typedef vector<half, 3> half3;
55 typedef vector<half, 4> half4;
56 #endif
57 
58 typedef vector<float, 2> float2;
59 typedef vector<float, 3> float3;
60 typedef vector<float, 4> float4;
61 typedef vector<double, 2> double2;
62 typedef vector<double, 3> double3;
63 typedef vector<double, 4> double4;
64 
65 } // namespace hlsl
66 
67 #endif //_HLSL_HLSL_BASIC_TYPES_H_
hlsl::float4
vector< float, 4 > float4
Definition: hlsl_basic_types.h:60
hlsl
Definition: hlsl_basic_types.h:12
hlsl::int4
vector< int, 4 > int4
Definition: hlsl_basic_types.h:41
hlsl::int64_t2
vector< int64_t, 2 > int64_t2
Definition: hlsl_basic_types.h:45
hlsl::double4
vector< double, 4 > double4
Definition: hlsl_basic_types.h:63
hlsl::uint64_t4
vector< uint64_t, 4 > uint64_t4
Definition: hlsl_basic_types.h:50
hlsl::uint64_t3
vector< uint64_t, 3 > uint64_t3
Definition: hlsl_basic_types.h:49
hlsl::uint
unsigned int uint
Definition: hlsl_basic_types.h:22
hlsl::uint64_t2
vector< uint64_t, 2 > uint64_t2
Definition: hlsl_basic_types.h:48
hlsl::uint64_t
unsigned long uint64_t
Definition: hlsl_basic_types.h:25
hlsl::int64_t3
vector< int64_t, 3 > int64_t3
Definition: hlsl_basic_types.h:46
hlsl::int64_t4
vector< int64_t, 4 > int64_t4
Definition: hlsl_basic_types.h:47
hlsl::float3
vector< float, 3 > float3
Definition: hlsl_basic_types.h:59
hlsl::uint4
vector< uint, 4 > uint4
Definition: hlsl_basic_types.h:44
hlsl::int2
vector< int, 2 > int2
Definition: hlsl_basic_types.h:39
hlsl::uint2
vector< uint, 2 > uint2
Definition: hlsl_basic_types.h:42
hlsl::double2
vector< double, 2 > double2
Definition: hlsl_basic_types.h:61
hlsl::float2
vector< float, 2 > float2
Definition: hlsl_basic_types.h:58
hlsl::int64_t
long int64_t
Definition: hlsl_basic_types.h:26
hlsl::double3
vector< double, 3 > double3
Definition: hlsl_basic_types.h:62
hlsl::int3
vector< int, 3 > int3
Definition: hlsl_basic_types.h:40
hlsl::uint3
vector< uint, 3 > uint3
Definition: hlsl_basic_types.h:43