1 /*
2 ** Copyright (c) 2013-2015 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 #include "Common/GL/GLExtensions/gl_common.h"
25 
26 /* multitexture */
27 #define GL_TEXTURE0 0x84C0
28 #define GL_TEXTURE1 0x84C1
29 #define GL_TEXTURE2 0x84C2
30 #define GL_TEXTURE3 0x84C3
31 #define GL_TEXTURE4 0x84C4
32 #define GL_TEXTURE5 0x84C5
33 #define GL_TEXTURE6 0x84C6
34 #define GL_TEXTURE7 0x84C7
35 #define GL_TEXTURE8 0x84C8
36 #define GL_TEXTURE9 0x84C9
37 #define GL_TEXTURE10 0x84CA
38 #define GL_TEXTURE11 0x84CB
39 #define GL_TEXTURE12 0x84CC
40 #define GL_TEXTURE13 0x84CD
41 #define GL_TEXTURE14 0x84CE
42 #define GL_TEXTURE15 0x84CF
43 #define GL_TEXTURE16 0x84D0
44 #define GL_TEXTURE17 0x84D1
45 #define GL_TEXTURE18 0x84D2
46 #define GL_TEXTURE19 0x84D3
47 #define GL_TEXTURE20 0x84D4
48 #define GL_TEXTURE21 0x84D5
49 #define GL_TEXTURE22 0x84D6
50 #define GL_TEXTURE23 0x84D7
51 #define GL_TEXTURE24 0x84D8
52 #define GL_TEXTURE25 0x84D9
53 #define GL_TEXTURE26 0x84DA
54 #define GL_TEXTURE27 0x84DB
55 #define GL_TEXTURE28 0x84DC
56 #define GL_TEXTURE29 0x84DD
57 #define GL_TEXTURE30 0x84DE
58 #define GL_TEXTURE31 0x84DF
59 #define GL_ACTIVE_TEXTURE 0x84E0
60 #define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
61 #define GL_MAX_TEXTURE_UNITS 0x84E2
62 /* texture_cube_map */
63 #define GL_NORMAL_MAP 0x8511
64 #define GL_REFLECTION_MAP 0x8512
65 #define GL_TEXTURE_CUBE_MAP 0x8513
66 #define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
67 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
68 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
69 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
70 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
71 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
72 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
73 #define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
74 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
75 /* texture_compression */
76 #define GL_COMPRESSED_ALPHA 0x84E9
77 #define GL_COMPRESSED_LUMINANCE 0x84EA
78 #define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
79 #define GL_COMPRESSED_INTENSITY 0x84EC
80 #define GL_COMPRESSED_RGB 0x84ED
81 #define GL_COMPRESSED_RGBA 0x84EE
82 #define GL_TEXTURE_COMPRESSION_HINT 0x84EF
83 #define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
84 #define GL_TEXTURE_COMPRESSED 0x86A1
85 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
86 #define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
87 /* multisample */
88 #define GL_MULTISAMPLE 0x809D
89 #define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
90 #define GL_SAMPLE_ALPHA_TO_ONE 0x809F
91 #define GL_SAMPLE_COVERAGE 0x80A0
92 #define GL_SAMPLE_BUFFERS 0x80A8
93 #define GL_SAMPLES 0x80A9
94 #define GL_SAMPLE_COVERAGE_VALUE 0x80AA
95 #define GL_SAMPLE_COVERAGE_INVERT 0x80AB
96 #define GL_MULTISAMPLE_BIT 0x20000000
97 /* transpose_matrix */
98 #define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
99 #define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
100 #define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
101 #define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
102 /* texture_env_combine */
103 #define GL_COMBINE 0x8570
104 #define GL_COMBINE_RGB 0x8571
105 #define GL_COMBINE_ALPHA 0x8572
106 #define GL_SOURCE0_RGB 0x8580
107 #define GL_SOURCE1_RGB 0x8581
108 #define GL_SOURCE2_RGB 0x8582
109 #define GL_SOURCE0_ALPHA 0x8588
110 #define GL_SOURCE1_ALPHA 0x8589
111 #define GL_SOURCE2_ALPHA 0x858A
112 #define GL_OPERAND0_RGB 0x8590
113 #define GL_OPERAND1_RGB 0x8591
114 #define GL_OPERAND2_RGB 0x8592
115 #define GL_OPERAND0_ALPHA 0x8598
116 #define GL_OPERAND1_ALPHA 0x8599
117 #define GL_OPERAND2_ALPHA 0x859A
118 #define GL_RGB_SCALE 0x8573
119 #define GL_ADD_SIGNED 0x8574
120 #define GL_INTERPOLATE 0x8575
121 #define GL_SUBTRACT 0x84E7
122 #define GL_CONSTANT 0x8576
123 #define GL_PRIMARY_COLOR 0x8577
124 #define GL_PREVIOUS 0x8578
125 /* texture_env_dot3 */
126 #define GL_DOT3_RGB 0x86AE
127 #define GL_DOT3_RGBA 0x86AF
128 /* texture_border_clamp */
129 #define GL_CLAMP_TO_BORDER 0x812D
130 
131 typedef void(APIENTRYP PFNDOLACTIVETEXTUREPROC)(GLenum texture);
132 typedef void(APIENTRYP PFNDOLSAMPLECOVERAGEPROC)(GLclampf value, GLboolean invert);
133 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level,
134                                                        GLenum internalformat, GLsizei width,
135                                                        GLsizei height, GLsizei depth, GLint border,
136                                                        GLsizei imageSize, const GLvoid* data);
137 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level,
138                                                        GLenum internalformat, GLsizei width,
139                                                        GLsizei height, GLint border,
140                                                        GLsizei imageSize, const GLvoid* data);
141 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level,
142                                                        GLenum internalformat, GLsizei width,
143                                                        GLint border, GLsizei imageSize,
144                                                        const GLvoid* data);
145 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset,
146                                                           GLint yoffset, GLint zoffset,
147                                                           GLsizei width, GLsizei height,
148                                                           GLsizei depth, GLenum format,
149                                                           GLsizei imageSize, const GLvoid* data);
150 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset,
151                                                           GLint yoffset, GLsizei width,
152                                                           GLsizei height, GLenum format,
153                                                           GLsizei imageSize, const GLvoid* data);
154 typedef void(APIENTRYP PFNDOLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset,
155                                                           GLsizei width, GLenum format,
156                                                           GLsizei imageSize, const GLvoid* data);
157 typedef void(APIENTRYP PFNDOLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, GLvoid* img);
158 
159 typedef void(APIENTRYP PFNDOLACTIVETEXTUREARBPROC)(GLenum texture);
160 typedef void(APIENTRYP PFNDOLCLIENTACTIVETEXTUREARBPROC)(GLenum texture);
161 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s);
162 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble* v);
163 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s);
164 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat* v);
165 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s);
166 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint* v);
167 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s);
168 typedef void(APIENTRYP PFNDOLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort* v);
169 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t);
170 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble* v);
171 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t);
172 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat* v);
173 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t);
174 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint* v);
175 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t);
176 typedef void(APIENTRYP PFNDOLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort* v);
177 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t,
178                                                      GLdouble r);
179 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble* v);
180 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t,
181                                                      GLfloat r);
182 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat* v);
183 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r);
184 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint* v);
185 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t,
186                                                      GLshort r);
187 typedef void(APIENTRYP PFNDOLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort* v);
188 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t,
189                                                      GLdouble r, GLdouble q);
190 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble* v);
191 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r,
192                                                      GLfloat q);
193 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat* v);
194 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r,
195                                                      GLint q);
196 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint* v);
197 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r,
198                                                      GLshort q);
199 typedef void(APIENTRYP PFNDOLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort* v);
200 typedef void(APIENTRYP PFNDOLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat* m);
201 typedef void(APIENTRYP PFNDOLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble* m);
202 typedef void(APIENTRYP PFNDOLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat* m);
203 typedef void(APIENTRYP PFNDOLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble* m);
204 typedef void(APIENTRYP PFNDOLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert);
205 
206 extern PFNDOLACTIVETEXTUREARBPROC dolActiveTexture;
207 extern PFNDOLCLIENTACTIVETEXTUREARBPROC dolClientActiveTexture;
208 extern PFNDOLCOMPRESSEDTEXIMAGE1DPROC dolCompressedTexImage1D;
209 extern PFNDOLCOMPRESSEDTEXIMAGE2DPROC dolCompressedTexImage2D;
210 extern PFNDOLCOMPRESSEDTEXIMAGE3DPROC dolCompressedTexImage3D;
211 extern PFNDOLCOMPRESSEDTEXSUBIMAGE1DPROC dolCompressedTexSubImage1D;
212 extern PFNDOLCOMPRESSEDTEXSUBIMAGE2DPROC dolCompressedTexSubImage2D;
213 extern PFNDOLCOMPRESSEDTEXSUBIMAGE3DPROC dolCompressedTexSubImage3D;
214 extern PFNDOLGETCOMPRESSEDTEXIMAGEPROC dolGetCompressedTexImage;
215 extern PFNDOLLOADTRANSPOSEMATRIXDARBPROC dolLoadTransposeMatrixd;
216 extern PFNDOLLOADTRANSPOSEMATRIXFARBPROC dolLoadTransposeMatrixf;
217 extern PFNDOLMULTTRANSPOSEMATRIXDARBPROC dolMultTransposeMatrixd;
218 extern PFNDOLMULTTRANSPOSEMATRIXFARBPROC dolMultTransposeMatrixf;
219 extern PFNDOLMULTITEXCOORD1DARBPROC dolMultiTexCoord1d;
220 extern PFNDOLMULTITEXCOORD1DVARBPROC dolMultiTexCoord1dv;
221 extern PFNDOLMULTITEXCOORD1FARBPROC dolMultiTexCoord1f;
222 extern PFNDOLMULTITEXCOORD1FVARBPROC dolMultiTexCoord1fv;
223 extern PFNDOLMULTITEXCOORD1IARBPROC dolMultiTexCoord1i;
224 extern PFNDOLMULTITEXCOORD1IVARBPROC dolMultiTexCoord1iv;
225 extern PFNDOLMULTITEXCOORD1SARBPROC dolMultiTexCoord1s;
226 extern PFNDOLMULTITEXCOORD1SVARBPROC dolMultiTexCoord1sv;
227 extern PFNDOLMULTITEXCOORD2DARBPROC dolMultiTexCoord2d;
228 extern PFNDOLMULTITEXCOORD2DVARBPROC dolMultiTexCoord2dv;
229 extern PFNDOLMULTITEXCOORD2FARBPROC dolMultiTexCoord2f;
230 extern PFNDOLMULTITEXCOORD2FVARBPROC dolMultiTexCoord2fv;
231 extern PFNDOLMULTITEXCOORD2IARBPROC dolMultiTexCoord2i;
232 extern PFNDOLMULTITEXCOORD2IVARBPROC dolMultiTexCoord2iv;
233 extern PFNDOLMULTITEXCOORD2SARBPROC dolMultiTexCoord2s;
234 extern PFNDOLMULTITEXCOORD2SVARBPROC dolMultiTexCoord2sv;
235 extern PFNDOLMULTITEXCOORD3DARBPROC dolMultiTexCoord3d;
236 extern PFNDOLMULTITEXCOORD3DVARBPROC dolMultiTexCoord3dv;
237 extern PFNDOLMULTITEXCOORD3FARBPROC dolMultiTexCoord3f;
238 extern PFNDOLMULTITEXCOORD3FVARBPROC dolMultiTexCoord3fv;
239 extern PFNDOLMULTITEXCOORD3IARBPROC dolMultiTexCoord3i;
240 extern PFNDOLMULTITEXCOORD3IVARBPROC dolMultiTexCoord3iv;
241 extern PFNDOLMULTITEXCOORD3SARBPROC dolMultiTexCoord3s;
242 extern PFNDOLMULTITEXCOORD3SVARBPROC dolMultiTexCoord3sv;
243 extern PFNDOLMULTITEXCOORD4DARBPROC dolMultiTexCoord4d;
244 extern PFNDOLMULTITEXCOORD4DVARBPROC dolMultiTexCoord4dv;
245 extern PFNDOLMULTITEXCOORD4FARBPROC dolMultiTexCoord4f;
246 extern PFNDOLMULTITEXCOORD4FVARBPROC dolMultiTexCoord4fv;
247 extern PFNDOLMULTITEXCOORD4IARBPROC dolMultiTexCoord4i;
248 extern PFNDOLMULTITEXCOORD4IVARBPROC dolMultiTexCoord4iv;
249 extern PFNDOLMULTITEXCOORD4SARBPROC dolMultiTexCoord4s;
250 extern PFNDOLMULTITEXCOORD4SVARBPROC dolMultiTexCoord4sv;
251 extern PFNDOLSAMPLECOVERAGEARBPROC dolSampleCoverage;
252 
253 #define glActiveTexture dolActiveTexture
254 #define glClientActiveTexture dolClientActiveTexture
255 #define glCompressedTexImage1D dolCompressedTexImage1D
256 #define glCompressedTexImage2D dolCompressedTexImage2D
257 #define glCompressedTexImage3D dolCompressedTexImage3D
258 #define glCompressedTexSubImage1D dolCompressedTexSubImage1D
259 #define glCompressedTexSubImage2D dolCompressedTexSubImage2D
260 #define glCompressedTexSubImage3D dolCompressedTexSubImage3D
261 #define glGetCompressedTexImage dolGetCompressedTexImage
262 #define glLoadTransposeMatrixd dolLoadTransposeMatrixd
263 #define glLoadTransposeMatrixf dolLoadTransposeMatrixf
264 #define glMultTransposeMatrixd dolMultTransposeMatrixd
265 #define glMultTransposeMatrixf dolMultTransposeMatrixf
266 #define glMultiTexCoord1d dolMultiTexCoord1d
267 #define glMultiTexCoord1dv dolMultiTexCoord1dv
268 #define glMultiTexCoord1f dolMultiTexCoord1f
269 #define glMultiTexCoord1fv dolMultiTexCoord1fv
270 #define glMultiTexCoord1i dolMultiTexCoord1i
271 #define glMultiTexCoord1iv dolMultiTexCoord1iv
272 #define glMultiTexCoord1s dolMultiTexCoord1s
273 #define glMultiTexCoord1sv dolMultiTexCoord1sv
274 #define glMultiTexCoord2d dolMultiTexCoord2d
275 #define glMultiTexCoord2dv dolMultiTexCoord2dv
276 #define glMultiTexCoord2f dolMultiTexCoord2f
277 #define glMultiTexCoord2fv dolMultiTexCoord2fv
278 #define glMultiTexCoord2i dolMultiTexCoord2i
279 #define glMultiTexCoord2iv dolMultiTexCoord2iv
280 #define glMultiTexCoord2s dolMultiTexCoord2s
281 #define glMultiTexCoord2sv dolMultiTexCoord2sv
282 #define glMultiTexCoord3d dolMultiTexCoord3d
283 #define glMultiTexCoord3dv dolMultiTexCoord3dv
284 #define glMultiTexCoord3f dolMultiTexCoord3f
285 #define glMultiTexCoord3fv dolMultiTexCoord3fv
286 #define glMultiTexCoord3i dolMultiTexCoord3i
287 #define glMultiTexCoord3iv dolMultiTexCoord3iv
288 #define glMultiTexCoord3s dolMultiTexCoord3s
289 #define glMultiTexCoord3sv dolMultiTexCoord3sv
290 #define glMultiTexCoord4d dolMultiTexCoord4d
291 #define glMultiTexCoord4dv dolMultiTexCoord4dv
292 #define glMultiTexCoord4f dolMultiTexCoord4f
293 #define glMultiTexCoord4fv dolMultiTexCoord4fv
294 #define glMultiTexCoord4i dolMultiTexCoord4i
295 #define glMultiTexCoord4iv dolMultiTexCoord4iv
296 #define glMultiTexCoord4s dolMultiTexCoord4s
297 #define glMultiTexCoord4sv dolMultiTexCoord4sv
298 #define glSampleCoverage dolSampleCoverage
299