1 /*
2 ** Copyright (c) 2013 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a
5 ** copy of this software and/or associated documentation files (the
6 ** "Materials"), to deal in the Materials without restriction, including
7 ** without limitation the rights to use, copy, modify, merge, publish,
8 ** distribute, sublicense, and/or sell copies of the Materials, and to
9 ** permit persons to whom the Materials are furnished to do so, subject to
10 ** the following conditions:
11 **
12 ** The above copyright notice and this permission notice shall be included
13 ** in all copies or substantial portions of the Materials.
14 **
15 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
22 */
23 
24 #pragma once
25 
26 #define GL_FLOAT                          0x1406
27 #define GL_FLOAT_VEC2                     0x8B50
28 #define GL_FLOAT_VEC3                     0x8B51
29 #define GL_FLOAT_VEC4                     0x8B52
30 
31 #define GL_DOUBLE                         0x140A
32 #define GL_DOUBLE_VEC2                    0x8FFC
33 #define GL_DOUBLE_VEC3                    0x8FFD
34 #define GL_DOUBLE_VEC4                    0x8FFE
35 
36 #define GL_INT                            0x1404
37 #define GL_INT_VEC2                       0x8B53
38 #define GL_INT_VEC3                       0x8B54
39 #define GL_INT_VEC4                       0x8B55
40 
41 #define GL_UNSIGNED_INT                   0x1405
42 #define GL_UNSIGNED_INT_VEC2              0x8DC6
43 #define GL_UNSIGNED_INT_VEC3              0x8DC7
44 #define GL_UNSIGNED_INT_VEC4              0x8DC8
45 
46 #define GL_INT64_ARB                      0x140E
47 #define GL_INT64_VEC2_ARB                 0x8FE9
48 #define GL_INT64_VEC3_ARB                 0x8FEA
49 #define GL_INT64_VEC4_ARB                 0x8FEB
50 
51 #define GL_UNSIGNED_INT64_ARB             0x140F
52 #define GL_UNSIGNED_INT64_VEC2_ARB        0x8FE5
53 #define GL_UNSIGNED_INT64_VEC3_ARB        0x8FE6
54 #define GL_UNSIGNED_INT64_VEC4_ARB        0x8FE7
55 #define GL_UNSIGNED_INT16_VEC2_NV         0x8FF1
56 #define GL_UNSIGNED_INT16_VEC3_NV         0x8FF2
57 #define GL_UNSIGNED_INT16_VEC4_NV         0x8FF3
58 
59 #define GL_INT16_NV                       0x8FE4
60 #define GL_INT16_VEC2_NV                  0x8FE5
61 #define GL_INT16_VEC3_NV                  0x8FE6
62 #define GL_INT16_VEC4_NV                  0x8FE7
63 
64 #define GL_BOOL                           0x8B56
65 #define GL_BOOL_VEC2                      0x8B57
66 #define GL_BOOL_VEC3                      0x8B58
67 #define GL_BOOL_VEC4                      0x8B59
68 
69 #define GL_FLOAT_MAT2                     0x8B5A
70 #define GL_FLOAT_MAT3                     0x8B5B
71 #define GL_FLOAT_MAT4                     0x8B5C
72 #define GL_FLOAT_MAT2x3                   0x8B65
73 #define GL_FLOAT_MAT2x4                   0x8B66
74 #define GL_FLOAT_MAT3x2                   0x8B67
75 #define GL_FLOAT_MAT3x4                   0x8B68
76 #define GL_FLOAT_MAT4x2                   0x8B69
77 #define GL_FLOAT_MAT4x3                   0x8B6A
78 
79 #define GL_DOUBLE_MAT2                    0x8F46
80 #define GL_DOUBLE_MAT3                    0x8F47
81 #define GL_DOUBLE_MAT4                    0x8F48
82 #define GL_DOUBLE_MAT2x3                  0x8F49
83 #define GL_DOUBLE_MAT2x4                  0x8F4A
84 #define GL_DOUBLE_MAT3x2                  0x8F4B
85 #define GL_DOUBLE_MAT3x4                  0x8F4C
86 #define GL_DOUBLE_MAT4x2                  0x8F4D
87 #define GL_DOUBLE_MAT4x3                  0x8F4E
88 
89 // Those constants are borrowed from extension NV_gpu_shader5
90 #define GL_FLOAT16_NV                     0x8FF8
91 #define GL_FLOAT16_VEC2_NV                0x8FF9
92 #define GL_FLOAT16_VEC3_NV                0x8FFA
93 #define GL_FLOAT16_VEC4_NV                0x8FFB
94 
95 #define GL_FLOAT16_MAT2_AMD               0x91C5
96 #define GL_FLOAT16_MAT3_AMD               0x91C6
97 #define GL_FLOAT16_MAT4_AMD               0x91C7
98 #define GL_FLOAT16_MAT2x3_AMD             0x91C8
99 #define GL_FLOAT16_MAT2x4_AMD             0x91C9
100 #define GL_FLOAT16_MAT3x2_AMD             0x91CA
101 #define GL_FLOAT16_MAT3x4_AMD             0x91CB
102 #define GL_FLOAT16_MAT4x2_AMD             0x91CC
103 #define GL_FLOAT16_MAT4x3_AMD             0x91CD
104 
105 #define GL_SAMPLER_1D                     0x8B5D
106 #define GL_SAMPLER_2D                     0x8B5E
107 #define GL_SAMPLER_3D                     0x8B5F
108 #define GL_SAMPLER_CUBE                   0x8B60
109 #define GL_SAMPLER_BUFFER                 0x8DC2
110 #define GL_SAMPLER_1D_ARRAY               0x8DC0
111 #define GL_SAMPLER_2D_ARRAY               0x8DC1
112 #define GL_SAMPLER_1D_ARRAY_SHADOW        0x8DC3
113 #define GL_SAMPLER_2D_ARRAY_SHADOW        0x8DC4
114 #define GL_SAMPLER_CUBE_SHADOW            0x8DC5
115 #define GL_SAMPLER_1D_SHADOW              0x8B61
116 #define GL_SAMPLER_2D_SHADOW              0x8B62
117 #define GL_SAMPLER_2D_RECT                0x8B63
118 #define GL_SAMPLER_2D_RECT_SHADOW         0x8B64
119 #define GL_SAMPLER_2D_MULTISAMPLE         0x9108
120 #define GL_SAMPLER_2D_MULTISAMPLE_ARRAY   0x910B
121 #define GL_SAMPLER_CUBE_MAP_ARRAY         0x900C
122 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW  0x900D
123 #define GL_SAMPLER_CUBE_MAP_ARRAY_ARB     0x900C
124 #define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D
125 
126 #define GL_FLOAT16_SAMPLER_1D_AMD                       0x91CE
127 #define GL_FLOAT16_SAMPLER_2D_AMD                       0x91CF
128 #define GL_FLOAT16_SAMPLER_3D_AMD                       0x91D0
129 #define GL_FLOAT16_SAMPLER_CUBE_AMD                     0x91D1
130 #define GL_FLOAT16_SAMPLER_2D_RECT_AMD                  0x91D2
131 #define GL_FLOAT16_SAMPLER_1D_ARRAY_AMD                 0x91D3
132 #define GL_FLOAT16_SAMPLER_2D_ARRAY_AMD                 0x91D4
133 #define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_AMD           0x91D5
134 #define GL_FLOAT16_SAMPLER_BUFFER_AMD                   0x91D6
135 #define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_AMD           0x91D7
136 #define GL_FLOAT16_SAMPLER_2D_MULTISAMPLE_ARRAY_AMD     0x91D8
137 
138 #define GL_FLOAT16_SAMPLER_1D_SHADOW_AMD                0x91D9
139 #define GL_FLOAT16_SAMPLER_2D_SHADOW_AMD                0x91DA
140 #define GL_FLOAT16_SAMPLER_2D_RECT_SHADOW_AMD           0x91DB
141 #define GL_FLOAT16_SAMPLER_1D_ARRAY_SHADOW_AMD          0x91DC
142 #define GL_FLOAT16_SAMPLER_2D_ARRAY_SHADOW_AMD          0x91DD
143 #define GL_FLOAT16_SAMPLER_CUBE_SHADOW_AMD              0x91DE
144 #define GL_FLOAT16_SAMPLER_CUBE_MAP_ARRAY_SHADOW_AMD    0x91DF
145 
146 #define GL_FLOAT16_IMAGE_1D_AMD                         0x91E0
147 #define GL_FLOAT16_IMAGE_2D_AMD                         0x91E1
148 #define GL_FLOAT16_IMAGE_3D_AMD                         0x91E2
149 #define GL_FLOAT16_IMAGE_2D_RECT_AMD                    0x91E3
150 #define GL_FLOAT16_IMAGE_CUBE_AMD                       0x91E4
151 #define GL_FLOAT16_IMAGE_1D_ARRAY_AMD                   0x91E5
152 #define GL_FLOAT16_IMAGE_2D_ARRAY_AMD                   0x91E6
153 #define GL_FLOAT16_IMAGE_CUBE_MAP_ARRAY_AMD             0x91E7
154 #define GL_FLOAT16_IMAGE_BUFFER_AMD                     0x91E8
155 #define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_AMD             0x91E9
156 #define GL_FLOAT16_IMAGE_2D_MULTISAMPLE_ARRAY_AMD       0x91EA
157 
158 #define GL_INT_SAMPLER_1D                 0x8DC9
159 #define GL_INT_SAMPLER_2D                 0x8DCA
160 #define GL_INT_SAMPLER_3D                 0x8DCB
161 #define GL_INT_SAMPLER_CUBE               0x8DCC
162 #define GL_INT_SAMPLER_1D_ARRAY           0x8DCE
163 #define GL_INT_SAMPLER_2D_ARRAY           0x8DCF
164 #define GL_INT_SAMPLER_2D_RECT            0x8DCD
165 #define GL_INT_SAMPLER_BUFFER             0x8DD0
166 #define GL_INT_SAMPLER_2D_MULTISAMPLE     0x9109
167 #define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
168 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY     0x900E
169 #define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E
170 
171 #define GL_UNSIGNED_INT_SAMPLER_1D        0x8DD1
172 #define GL_UNSIGNED_INT_SAMPLER_2D        0x8DD2
173 #define GL_UNSIGNED_INT_SAMPLER_3D        0x8DD3
174 #define GL_UNSIGNED_INT_SAMPLER_CUBE      0x8DD4
175 #define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY  0x8DD6
176 #define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY  0x8DD7
177 #define GL_UNSIGNED_INT_SAMPLER_2D_RECT   0x8DD5
178 #define GL_UNSIGNED_INT_SAMPLER_BUFFER    0x8DD8
179 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
180 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
181 #define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
182 #define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
183 
184 #define GL_IMAGE_1D                       0x904C
185 #define GL_IMAGE_2D                       0x904D
186 #define GL_IMAGE_3D                       0x904E
187 #define GL_IMAGE_2D_RECT                  0x904F
188 #define GL_IMAGE_CUBE                     0x9050
189 #define GL_IMAGE_BUFFER                   0x9051
190 #define GL_IMAGE_1D_ARRAY                 0x9052
191 #define GL_IMAGE_2D_ARRAY                 0x9053
192 #define GL_IMAGE_CUBE_MAP_ARRAY           0x9054
193 #define GL_IMAGE_2D_MULTISAMPLE           0x9055
194 #define GL_IMAGE_2D_MULTISAMPLE_ARRAY     0x9056
195 #define GL_INT_IMAGE_1D                   0x9057
196 #define GL_INT_IMAGE_2D                   0x9058
197 #define GL_INT_IMAGE_3D                   0x9059
198 #define GL_INT_IMAGE_2D_RECT              0x905A
199 #define GL_INT_IMAGE_CUBE                 0x905B
200 #define GL_INT_IMAGE_BUFFER               0x905C
201 #define GL_INT_IMAGE_1D_ARRAY             0x905D
202 #define GL_INT_IMAGE_2D_ARRAY             0x905E
203 #define GL_INT_IMAGE_CUBE_MAP_ARRAY       0x905F
204 #define GL_INT_IMAGE_2D_MULTISAMPLE       0x9060
205 #define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
206 #define GL_UNSIGNED_INT_IMAGE_1D          0x9062
207 #define GL_UNSIGNED_INT_IMAGE_2D          0x9063
208 #define GL_UNSIGNED_INT_IMAGE_3D          0x9064
209 #define GL_UNSIGNED_INT_IMAGE_2D_RECT     0x9065
210 #define GL_UNSIGNED_INT_IMAGE_CUBE        0x9066
211 #define GL_UNSIGNED_INT_IMAGE_BUFFER      0x9067
212 #define GL_UNSIGNED_INT_IMAGE_1D_ARRAY    0x9068
213 #define GL_UNSIGNED_INT_IMAGE_2D_ARRAY    0x9069
214 #define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
215 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
216 #define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
217 
218 #define GL_UNSIGNED_INT_ATOMIC_COUNTER    0x92DB
219