1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the QtOpenGL module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPL3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or (at your option) the GNU General
28** Public license version 3 or any later version approved by the KDE Free
29** Qt Foundation. The licenses are as published by the Free Software
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31** included in the packaging of this file. Please review the following
32** information to ensure the GNU General Public License requirements will
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34** https://www.gnu.org/licenses/gpl-3.0.html.
35**
36** $QT_END_LICENSE$
37**
38****************************************************************************/
39
40#ifndef QGLFUNCTIONS_H
41#define QGLFUNCTIONS_H
42
43#include <QtOpenGL/qgl.h>
44#include <QtGui/qopenglcontext.h>
45#include <QtGui/qopenglfunctions.h>
46
47QT_BEGIN_NAMESPACE
48
49struct QGLFunctionsPrivate;
50
51class Q_OPENGL_EXPORT QGLFunctions
52{
53public:
54 QGLFunctions();
55 explicit QGLFunctions(const QGLContext *context);
56 ~QGLFunctions() {}
57
58 enum OpenGLFeature
59 {
60 Multitexture = 0x0001,
61 Shaders = 0x0002,
62 Buffers = 0x0004,
63 Framebuffers = 0x0008,
64 BlendColor = 0x0010,
65 BlendEquation = 0x0020,
66 BlendEquationSeparate = 0x0040,
67 BlendFuncSeparate = 0x0080,
68 BlendSubtract = 0x0100,
69 CompressedTextures = 0x0200,
70 Multisample = 0x0400,
71 StencilSeparate = 0x0800,
72 NPOTTextures = 0x1000
73 };
74 Q_DECLARE_FLAGS(OpenGLFeatures, OpenGLFeature)
75
76 QGLFunctions::OpenGLFeatures openGLFeatures() const;
77 bool hasOpenGLFeature(QGLFunctions::OpenGLFeature feature) const;
78
79 void initializeGLFunctions(const QGLContext *context = nullptr);
80
81 void glActiveTexture(GLenum texture);
82 void glAttachShader(GLuint program, GLuint shader);
83 void glBindAttribLocation(GLuint program, GLuint index, const char* name);
84 void glBindBuffer(GLenum target, GLuint buffer);
85 void glBindFramebuffer(GLenum target, GLuint framebuffer);
86 void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
87 void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
88 void glBlendEquation(GLenum mode);
89 void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
90 void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
91 void glBufferData(GLenum target, qopengl_GLsizeiptr size, const void* data, GLenum usage);
92 void glBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, const void* data);
93 GLenum glCheckFramebufferStatus(GLenum target);
94 void glClearDepthf(GLclampf depth);
95 void glCompileShader(GLuint shader);
96 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
97 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
98 GLuint glCreateProgram();
99 GLuint glCreateShader(GLenum type);
100 void glDeleteBuffers(GLsizei n, const GLuint* buffers);
101 void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
102 void glDeleteProgram(GLuint program);
103 void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
104 void glDeleteShader(GLuint shader);
105 void glDepthRangef(GLclampf zNear, GLclampf zFar);
106 void glDetachShader(GLuint program, GLuint shader);
107 void glDisableVertexAttribArray(GLuint index);
108 void glEnableVertexAttribArray(GLuint index);
109 void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
110 void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
111 void glGenBuffers(GLsizei n, GLuint* buffers);
112 void glGenerateMipmap(GLenum target);
113 void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
114 void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
115 void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
116 void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
117 void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
118 int glGetAttribLocation(GLuint program, const char* name);
119 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
120 void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
121 void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
122 void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog);
123 void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
124 void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
125 void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog);
126 void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
127 void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source);
128 void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
129 void glGetUniformiv(GLuint program, GLint location, GLint* params);
130 int glGetUniformLocation(GLuint program, const char* name);
131 void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
132 void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
133 void glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer);
134 GLboolean glIsBuffer(GLuint buffer);
135 GLboolean glIsFramebuffer(GLuint framebuffer);
136 GLboolean glIsProgram(GLuint program);
137 GLboolean glIsRenderbuffer(GLuint renderbuffer);
138 GLboolean glIsShader(GLuint shader);
139 void glLinkProgram(GLuint program);
140 void glReleaseShaderCompiler();
141 void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
142 void glSampleCoverage(GLclampf value, GLboolean invert);
143 void glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length);
144 void glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length);
145 void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
146 void glStencilMaskSeparate(GLenum face, GLuint mask);
147 void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
148 void glUniform1f(GLint location, GLfloat x);
149 void glUniform1fv(GLint location, GLsizei count, const GLfloat* v);
150 void glUniform1i(GLint location, GLint x);
151 void glUniform1iv(GLint location, GLsizei count, const GLint* v);
152 void glUniform2f(GLint location, GLfloat x, GLfloat y);
153 void glUniform2fv(GLint location, GLsizei count, const GLfloat* v);
154 void glUniform2i(GLint location, GLint x, GLint y);
155 void glUniform2iv(GLint location, GLsizei count, const GLint* v);
156 void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
157 void glUniform3fv(GLint location, GLsizei count, const GLfloat* v);
158 void glUniform3i(GLint location, GLint x, GLint y, GLint z);
159 void glUniform3iv(GLint location, GLsizei count, const GLint* v);
160 void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
161 void glUniform4fv(GLint location, GLsizei count, const GLfloat* v);
162 void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
163 void glUniform4iv(GLint location, GLsizei count, const GLint* v);
164 void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
165 void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
166 void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
167 void glUseProgram(GLuint program);
168 void glValidateProgram(GLuint program);
169 void glVertexAttrib1f(GLuint indx, GLfloat x);
170 void glVertexAttrib1fv(GLuint indx, const GLfloat* values);
171 void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
172 void glVertexAttrib2fv(GLuint indx, const GLfloat* values);
173 void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
174 void glVertexAttrib3fv(GLuint indx, const GLfloat* values);
175 void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
176 void glVertexAttrib4fv(GLuint indx, const GLfloat* values);
177 void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
178
179private:
180 QGLFunctionsPrivate *d_ptr;
181 static bool isInitialized(const QGLFunctionsPrivate *d) { return d != nullptr; }
182};
183
184Q_DECLARE_OPERATORS_FOR_FLAGS(QGLFunctions::OpenGLFeatures)
185
186struct QGLFunctionsPrivate
187{
188 QGLFunctionsPrivate(const QGLContext *context = nullptr);
189 QOpenGLFunctions *funcs;
190};
191
192inline void QGLFunctions::glActiveTexture(GLenum texture)
193{
194 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
195 d_ptr->funcs->glActiveTexture(texture);
196}
197
198inline void QGLFunctions::glAttachShader(GLuint program, GLuint shader)
199{
200 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
201 d_ptr->funcs->glAttachShader(program, shader);
202}
203
204inline void QGLFunctions::glBindAttribLocation(GLuint program, GLuint index, const char* name)
205{
206 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
207 d_ptr->funcs->glBindAttribLocation(program, index, name);
208}
209
210inline void QGLFunctions::glBindBuffer(GLenum target, GLuint buffer)
211{
212 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
213 d_ptr->funcs->glBindBuffer(target, buffer);
214}
215
216inline void QGLFunctions::glBindFramebuffer(GLenum target, GLuint framebuffer)
217{
218 if (framebuffer == 0)
219 framebuffer = QOpenGLContext::currentContext()->defaultFramebufferObject();
220 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
221 d_ptr->funcs->glBindFramebuffer(target, framebuffer);
222}
223
224inline void QGLFunctions::glBindRenderbuffer(GLenum target, GLuint renderbuffer)
225{
226 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
227 d_ptr->funcs->glBindRenderbuffer(target, renderbuffer);
228}
229
230inline void QGLFunctions::glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
231{
232 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
233 d_ptr->funcs->glBlendColor(red, green, blue, alpha);
234}
235
236inline void QGLFunctions::glBlendEquation(GLenum mode)
237{
238 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
239 d_ptr->funcs->glBlendEquation(mode);
240}
241
242inline void QGLFunctions::glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
243{
244 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
245 d_ptr->funcs->glBlendEquationSeparate(modeRGB, modeAlpha);
246}
247
248inline void QGLFunctions::glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
249{
250 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
251 d_ptr->funcs->glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
252}
253
254inline void QGLFunctions::glBufferData(GLenum target, qopengl_GLsizeiptr size, const void* data, GLenum usage)
255{
256 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
257 d_ptr->funcs->glBufferData(target, size, data, usage);
258}
259
260inline void QGLFunctions::glBufferSubData(GLenum target, qopengl_GLintptr offset, qopengl_GLsizeiptr size, const void* data)
261{
262 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
263 d_ptr->funcs->glBufferSubData(target, offset, size, data);
264}
265
266inline GLenum QGLFunctions::glCheckFramebufferStatus(GLenum target)
267{
268 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
269 return d_ptr->funcs->glCheckFramebufferStatus(target);
270}
271
272inline void QGLFunctions::glClearDepthf(GLclampf depth)
273{
274 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
275 return d_ptr->funcs->glClearDepthf(depth);
276}
277
278inline void QGLFunctions::glCompileShader(GLuint shader)
279{
280 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
281 d_ptr->funcs->glCompileShader(shader);
282}
283
284inline void QGLFunctions::glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
285{
286 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
287 d_ptr->funcs->glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
288}
289
290inline void QGLFunctions::glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
291{
292 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
293 d_ptr->funcs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
294}
295
296inline GLuint QGLFunctions::glCreateProgram()
297{
298 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
299 return d_ptr->funcs->glCreateProgram();
300}
301
302inline GLuint QGLFunctions::glCreateShader(GLenum type)
303{
304 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
305 return d_ptr->funcs->glCreateShader(type);
306}
307
308inline void QGLFunctions::glDeleteBuffers(GLsizei n, const GLuint* buffers)
309{
310 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
311 d_ptr->funcs->glDeleteBuffers(n, buffers);
312}
313
314inline void QGLFunctions::glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
315{
316 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
317 d_ptr->funcs->glDeleteFramebuffers(n, framebuffers);
318}
319
320inline void QGLFunctions::glDeleteProgram(GLuint program)
321{
322 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
323 d_ptr->funcs->glDeleteProgram(program);
324}
325
326inline void QGLFunctions::glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
327{
328 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
329 d_ptr->funcs->glDeleteRenderbuffers(n, renderbuffers);
330}
331
332inline void QGLFunctions::glDeleteShader(GLuint shader)
333{
334 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
335 d_ptr->funcs->glDeleteShader(shader);
336}
337
338inline void QGLFunctions::glDepthRangef(GLclampf zNear, GLclampf zFar)
339{
340 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
341 return d_ptr->funcs->glDepthRangef(zNear, zFar);
342}
343
344inline void QGLFunctions::glDetachShader(GLuint program, GLuint shader)
345{
346 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
347 d_ptr->funcs->glDetachShader(program, shader);
348}
349
350inline void QGLFunctions::glDisableVertexAttribArray(GLuint index)
351{
352 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
353 d_ptr->funcs->glDisableVertexAttribArray(index);
354}
355
356inline void QGLFunctions::glEnableVertexAttribArray(GLuint index)
357{
358 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
359 d_ptr->funcs->glEnableVertexAttribArray(index);
360}
361
362inline void QGLFunctions::glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
363{
364 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
365 d_ptr->funcs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
366}
367
368inline void QGLFunctions::glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
369{
370 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
371 d_ptr->funcs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
372}
373
374inline void QGLFunctions::glGenBuffers(GLsizei n, GLuint* buffers)
375{
376 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
377 d_ptr->funcs->glGenBuffers(n, buffers);
378}
379
380inline void QGLFunctions::glGenerateMipmap(GLenum target)
381{
382 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
383 d_ptr->funcs->glGenerateMipmap(target);
384}
385
386inline void QGLFunctions::glGenFramebuffers(GLsizei n, GLuint* framebuffers)
387{
388 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
389 d_ptr->funcs->glGenFramebuffers(n, framebuffers);
390}
391
392inline void QGLFunctions::glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
393{
394 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
395 d_ptr->funcs->glGenRenderbuffers(n, renderbuffers);
396}
397
398inline void QGLFunctions::glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
399{
400 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
401 d_ptr->funcs->glGetActiveAttrib(program, index, bufsize, length, size, type, name);
402}
403
404inline void QGLFunctions::glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
405{
406 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
407 d_ptr->funcs->glGetActiveUniform(program, index, bufsize, length, size, type, name);
408}
409
410inline void QGLFunctions::glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
411{
412 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
413 d_ptr->funcs->glGetAttachedShaders(program, maxcount, count, shaders);
414}
415
416inline int QGLFunctions::glGetAttribLocation(GLuint program, const char* name)
417{
418 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
419 return d_ptr->funcs->glGetAttribLocation(program, name);
420}
421
422inline void QGLFunctions::glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
423{
424 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
425 d_ptr->funcs->glGetBufferParameteriv(target, pname, params);
426}
427
428inline void QGLFunctions::glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
429{
430 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
431 d_ptr->funcs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
432}
433
434inline void QGLFunctions::glGetProgramiv(GLuint program, GLenum pname, GLint* params)
435{
436 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
437 d_ptr->funcs->glGetProgramiv(program, pname, params);
438}
439
440inline void QGLFunctions::glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
441{
442 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
443 d_ptr->funcs->glGetProgramInfoLog(program, bufsize, length, infolog);
444}
445
446inline void QGLFunctions::glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
447{
448 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
449 d_ptr->funcs->glGetRenderbufferParameteriv(target, pname, params);
450}
451
452inline void QGLFunctions::glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
453{
454 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
455 d_ptr->funcs->glGetShaderiv(shader, pname, params);
456}
457
458inline void QGLFunctions::glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
459{
460 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
461 d_ptr->funcs->glGetShaderInfoLog(shader, bufsize, length, infolog);
462}
463
464inline void QGLFunctions::glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
465{
466 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
467 d_ptr->funcs->glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
468}
469
470inline void QGLFunctions::glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
471{
472 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
473 d_ptr->funcs->glGetShaderSource(shader, bufsize, length, source);
474}
475
476inline void QGLFunctions::glGetUniformfv(GLuint program, GLint location, GLfloat* params)
477{
478 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
479 d_ptr->funcs->glGetUniformfv(program, location, params);
480}
481
482inline void QGLFunctions::glGetUniformiv(GLuint program, GLint location, GLint* params)
483{
484 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
485 d_ptr->funcs->glGetUniformiv(program, location, params);
486}
487
488inline int QGLFunctions::glGetUniformLocation(GLuint program, const char* name)
489{
490 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
491 return d_ptr->funcs->glGetUniformLocation(program, name);
492}
493
494inline void QGLFunctions::glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
495{
496 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
497 d_ptr->funcs->glGetVertexAttribfv(index, pname, params);
498}
499
500inline void QGLFunctions::glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
501{
502 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
503 d_ptr->funcs->glGetVertexAttribiv(index, pname, params);
504}
505
506inline void QGLFunctions::glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
507{
508 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
509 d_ptr->funcs->glGetVertexAttribPointerv(index, pname, pointer);
510}
511
512inline GLboolean QGLFunctions::glIsBuffer(GLuint buffer)
513{
514 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
515 return d_ptr->funcs->glIsBuffer(buffer);
516}
517
518inline GLboolean QGLFunctions::glIsFramebuffer(GLuint framebuffer)
519{
520 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
521 return d_ptr->funcs->glIsFramebuffer(framebuffer);
522}
523
524inline GLboolean QGLFunctions::glIsProgram(GLuint program)
525{
526 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
527 return d_ptr->funcs->glIsProgram(program);
528}
529
530inline GLboolean QGLFunctions::glIsRenderbuffer(GLuint renderbuffer)
531{
532 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
533 return d_ptr->funcs->glIsRenderbuffer(renderbuffer);
534}
535
536inline GLboolean QGLFunctions::glIsShader(GLuint shader)
537{
538 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
539 return d_ptr->funcs->glIsShader(shader);
540}
541
542inline void QGLFunctions::glLinkProgram(GLuint program)
543{
544 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
545 d_ptr->funcs->glLinkProgram(program);
546}
547
548inline void QGLFunctions::glReleaseShaderCompiler()
549{
550 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
551 d_ptr->funcs->glReleaseShaderCompiler();
552}
553
554inline void QGLFunctions::glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
555{
556 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
557 d_ptr->funcs->glRenderbufferStorage(target, internalformat, width, height);
558}
559
560inline void QGLFunctions::glSampleCoverage(GLclampf value, GLboolean invert)
561{
562 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
563 d_ptr->funcs->glSampleCoverage(value, invert);
564}
565
566inline void QGLFunctions::glShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)
567{
568 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
569 d_ptr->funcs->glShaderBinary(n, shaders, binaryformat, binary, length);
570}
571
572inline void QGLFunctions::glShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
573{
574 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
575 d_ptr->funcs->glShaderSource(shader, count, string, length);
576}
577
578inline void QGLFunctions::glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
579{
580 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
581 d_ptr->funcs->glStencilFuncSeparate(face, func, ref, mask);
582}
583
584inline void QGLFunctions::glStencilMaskSeparate(GLenum face, GLuint mask)
585{
586 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
587 d_ptr->funcs->glStencilMaskSeparate(face, mask);
588}
589
590inline void QGLFunctions::glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
591{
592 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
593 d_ptr->funcs->glStencilOpSeparate(face, fail, zfail, zpass);
594}
595
596inline void QGLFunctions::glUniform1f(GLint location, GLfloat x)
597{
598 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
599 d_ptr->funcs->glUniform1f(location, x);
600}
601
602inline void QGLFunctions::glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
603{
604 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
605 d_ptr->funcs->glUniform1fv(location, count, v);
606}
607
608inline void QGLFunctions::glUniform1i(GLint location, GLint x)
609{
610 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
611 d_ptr->funcs->glUniform1i(location, x);
612}
613
614inline void QGLFunctions::glUniform1iv(GLint location, GLsizei count, const GLint* v)
615{
616 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
617 d_ptr->funcs->glUniform1iv(location, count, v);
618}
619
620inline void QGLFunctions::glUniform2f(GLint location, GLfloat x, GLfloat y)
621{
622 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
623 d_ptr->funcs->glUniform2f(location, x, y);
624}
625
626inline void QGLFunctions::glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
627{
628 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
629 d_ptr->funcs->glUniform2fv(location, count, v);
630}
631
632inline void QGLFunctions::glUniform2i(GLint location, GLint x, GLint y)
633{
634 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
635 d_ptr->funcs->glUniform2i(location, x, y);
636}
637
638inline void QGLFunctions::glUniform2iv(GLint location, GLsizei count, const GLint* v)
639{
640 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
641 d_ptr->funcs->glUniform2iv(location, count, v);
642}
643
644inline void QGLFunctions::glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
645{
646 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
647 d_ptr->funcs->glUniform3f(location, x, y, z);
648}
649
650inline void QGLFunctions::glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
651{
652 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
653 d_ptr->funcs->glUniform3fv(location, count, v);
654}
655
656inline void QGLFunctions::glUniform3i(GLint location, GLint x, GLint y, GLint z)
657{
658 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
659 d_ptr->funcs->glUniform3i(location, x, y, z);
660}
661
662inline void QGLFunctions::glUniform3iv(GLint location, GLsizei count, const GLint* v)
663{
664 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
665 d_ptr->funcs->glUniform3iv(location, count, v);
666}
667
668inline void QGLFunctions::glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
669{
670 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
671 d_ptr->funcs->glUniform4f(location, x, y, z, w);
672}
673
674inline void QGLFunctions::glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
675{
676 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
677 d_ptr->funcs->glUniform4fv(location, count, v);
678}
679
680inline void QGLFunctions::glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
681{
682 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
683 d_ptr->funcs->glUniform4i(location, x, y, z, w);
684}
685
686inline void QGLFunctions::glUniform4iv(GLint location, GLsizei count, const GLint* v)
687{
688 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
689 d_ptr->funcs->glUniform4iv(location, count, v);
690}
691
692inline void QGLFunctions::glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
693{
694 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
695 d_ptr->funcs->glUniformMatrix2fv(location, count, transpose, value);
696}
697
698inline void QGLFunctions::glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
699{
700 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
701 d_ptr->funcs->glUniformMatrix3fv(location, count, transpose, value);
702}
703
704inline void QGLFunctions::glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
705{
706 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
707 d_ptr->funcs->glUniformMatrix4fv(location, count, transpose, value);
708}
709
710inline void QGLFunctions::glUseProgram(GLuint program)
711{
712 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
713 d_ptr->funcs->glUseProgram(program);
714}
715
716inline void QGLFunctions::glValidateProgram(GLuint program)
717{
718 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
719 d_ptr->funcs->glValidateProgram(program);
720}
721
722inline void QGLFunctions::glVertexAttrib1f(GLuint indx, GLfloat x)
723{
724 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
725 d_ptr->funcs->glVertexAttrib1f(indx, x);
726}
727
728inline void QGLFunctions::glVertexAttrib1fv(GLuint indx, const GLfloat* values)
729{
730 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
731 d_ptr->funcs->glVertexAttrib1fv(indx, values);
732}
733
734inline void QGLFunctions::glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
735{
736 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
737 d_ptr->funcs->glVertexAttrib2f(indx, x, y);
738}
739
740inline void QGLFunctions::glVertexAttrib2fv(GLuint indx, const GLfloat* values)
741{
742 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
743 d_ptr->funcs->glVertexAttrib2fv(indx, values);
744}
745
746inline void QGLFunctions::glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
747{
748 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
749 d_ptr->funcs->glVertexAttrib3f(indx, x, y, z);
750}
751
752inline void QGLFunctions::glVertexAttrib3fv(GLuint indx, const GLfloat* values)
753{
754 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
755 d_ptr->funcs->glVertexAttrib3fv(indx, values);
756}
757
758inline void QGLFunctions::glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
759{
760 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
761 d_ptr->funcs->glVertexAttrib4f(indx, x, y, z, w);
762}
763
764inline void QGLFunctions::glVertexAttrib4fv(GLuint indx, const GLfloat* values)
765{
766 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
767 d_ptr->funcs->glVertexAttrib4fv(indx, values);
768}
769
770inline void QGLFunctions::glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)
771{
772 Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
773 d_ptr->funcs->glVertexAttribPointer(indx, size, type, normalized, stride, ptr);
774}
775
776#ifndef GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
777#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
778#endif
779#ifndef GL_ACTIVE_ATTRIBUTES
780#define GL_ACTIVE_ATTRIBUTES 0x8B89
781#endif
782#ifndef GL_ACTIVE_TEXTURE
783#define GL_ACTIVE_TEXTURE 0x84E0
784#endif
785#ifndef GL_ACTIVE_UNIFORM_MAX_LENGTH
786#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
787#endif
788#ifndef GL_ACTIVE_UNIFORMS
789#define GL_ACTIVE_UNIFORMS 0x8B86
790#endif
791#ifndef GL_ALIASED_LINE_WIDTH_RANGE
792#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
793#endif
794#ifndef GL_ALIASED_POINT_SIZE_RANGE
795#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
796#endif
797#ifndef GL_ALPHA
798#define GL_ALPHA 0x1906
799#endif
800#ifndef GL_ALPHA_BITS
801#define GL_ALPHA_BITS 0x0D55
802#endif
803#ifndef GL_ALWAYS
804#define GL_ALWAYS 0x0207
805#endif
806#ifndef GL_ARRAY_BUFFER
807#define GL_ARRAY_BUFFER 0x8892
808#endif
809#ifndef GL_ARRAY_BUFFER_BINDING
810#define GL_ARRAY_BUFFER_BINDING 0x8894
811#endif
812#ifndef GL_ATTACHED_SHADERS
813#define GL_ATTACHED_SHADERS 0x8B85
814#endif
815#ifndef GL_BACK
816#define GL_BACK 0x0405
817#endif
818#ifndef GL_BLEND
819#define GL_BLEND 0x0BE2
820#endif
821#ifndef GL_BLEND_COLOR
822#define GL_BLEND_COLOR 0x8005
823#endif
824#ifndef GL_BLEND_DST_ALPHA
825#define GL_BLEND_DST_ALPHA 0x80CA
826#endif
827#ifndef GL_BLEND_DST_RGB
828#define GL_BLEND_DST_RGB 0x80C8
829#endif
830#ifndef GL_BLEND_EQUATION
831#define GL_BLEND_EQUATION 0x8009
832#endif
833#ifndef GL_BLEND_EQUATION_ALPHA
834#define GL_BLEND_EQUATION_ALPHA 0x883D
835#endif
836#ifndef GL_BLEND_EQUATION_RGB
837#define GL_BLEND_EQUATION_RGB 0x8009
838#endif
839#ifndef GL_BLEND_SRC_ALPHA
840#define GL_BLEND_SRC_ALPHA 0x80CB
841#endif
842#ifndef GL_BLEND_SRC_RGB
843#define GL_BLEND_SRC_RGB 0x80C9
844#endif
845#ifndef GL_BLUE_BITS
846#define GL_BLUE_BITS 0x0D54
847#endif
848#ifndef GL_BOOL
849#define GL_BOOL 0x8B56
850#endif
851#ifndef GL_BOOL_VEC2
852#define GL_BOOL_VEC2 0x8B57
853#endif
854#ifndef GL_BOOL_VEC3
855#define GL_BOOL_VEC3 0x8B58
856#endif
857#ifndef GL_BOOL_VEC4
858#define GL_BOOL_VEC4 0x8B59
859#endif
860#ifndef GL_BUFFER_SIZE
861#define GL_BUFFER_SIZE 0x8764
862#endif
863#ifndef GL_BUFFER_USAGE
864#define GL_BUFFER_USAGE 0x8765
865#endif
866#ifndef GL_BYTE
867#define GL_BYTE 0x1400
868#endif
869#ifndef GL_CCW
870#define GL_CCW 0x0901
871#endif
872#ifndef GL_CLAMP_TO_EDGE
873#define GL_CLAMP_TO_EDGE 0x812F
874#endif
875#ifndef GL_COLOR_ATTACHMENT0
876#define GL_COLOR_ATTACHMENT0 0x8CE0
877#endif
878#ifndef GL_COLOR_BUFFER_BIT
879#define GL_COLOR_BUFFER_BIT 0x00004000
880#endif
881#ifndef GL_COLOR_CLEAR_VALUE
882#define GL_COLOR_CLEAR_VALUE 0x0C22
883#endif
884#ifndef GL_COLOR_WRITEMASK
885#define GL_COLOR_WRITEMASK 0x0C23
886#endif
887#ifndef GL_COMPILE_STATUS
888#define GL_COMPILE_STATUS 0x8B81
889#endif
890#ifndef GL_COMPRESSED_TEXTURE_FORMATS
891#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
892#endif
893#ifndef GL_CONSTANT_ALPHA
894#define GL_CONSTANT_ALPHA 0x8003
895#endif
896#ifndef GL_CONSTANT_COLOR
897#define GL_CONSTANT_COLOR 0x8001
898#endif
899#ifndef GL_CULL_FACE
900#define GL_CULL_FACE 0x0B44
901#endif
902#ifndef GL_CULL_FACE_MODE
903#define GL_CULL_FACE_MODE 0x0B45
904#endif
905#ifndef GL_CURRENT_PROGRAM
906#define GL_CURRENT_PROGRAM 0x8B8D
907#endif
908#ifndef GL_CURRENT_VERTEX_ATTRIB
909#define GL_CURRENT_VERTEX_ATTRIB 0x8626
910#endif
911#ifndef GL_CW
912#define GL_CW 0x0900
913#endif
914#ifndef GL_DECR
915#define GL_DECR 0x1E03
916#endif
917#ifndef GL_DECR_WRAP
918#define GL_DECR_WRAP 0x8508
919#endif
920#ifndef GL_DELETE_STATUS
921#define GL_DELETE_STATUS 0x8B80
922#endif
923#ifndef GL_DEPTH_ATTACHMENT
924#define GL_DEPTH_ATTACHMENT 0x8D00
925#endif
926#ifndef GL_DEPTH_BITS
927#define GL_DEPTH_BITS 0x0D56
928#endif
929#ifndef GL_DEPTH_BUFFER_BIT
930#define GL_DEPTH_BUFFER_BIT 0x00000100
931#endif
932#ifndef GL_DEPTH_CLEAR_VALUE
933#define GL_DEPTH_CLEAR_VALUE 0x0B73
934#endif
935#ifndef GL_DEPTH_COMPONENT
936#define GL_DEPTH_COMPONENT 0x1902
937#endif
938#ifndef GL_DEPTH_COMPONENT16
939#define GL_DEPTH_COMPONENT16 0x81A5
940#endif
941#ifndef GL_DEPTH_FUNC
942#define GL_DEPTH_FUNC 0x0B74
943#endif
944#ifndef GL_DEPTH_RANGE
945#define GL_DEPTH_RANGE 0x0B70
946#endif
947#ifndef GL_DEPTH_TEST
948#define GL_DEPTH_TEST 0x0B71
949#endif
950#ifndef GL_DEPTH_WRITEMASK
951#define GL_DEPTH_WRITEMASK 0x0B72
952#endif
953#ifndef GL_DITHER
954#define GL_DITHER 0x0BD0
955#endif
956#ifndef GL_DONT_CARE
957#define GL_DONT_CARE 0x1100
958#endif
959#ifndef GL_DST_ALPHA
960#define GL_DST_ALPHA 0x0304
961#endif
962#ifndef GL_DST_COLOR
963#define GL_DST_COLOR 0x0306
964#endif
965#ifndef GL_DYNAMIC_DRAW
966#define GL_DYNAMIC_DRAW 0x88E8
967#endif
968#ifndef GL_ELEMENT_ARRAY_BUFFER
969#define GL_ELEMENT_ARRAY_BUFFER 0x8893
970#endif
971#ifndef GL_ELEMENT_ARRAY_BUFFER_BINDING
972#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
973#endif
974#ifndef GL_EQUAL
975#define GL_EQUAL 0x0202
976#endif
977#ifndef GL_EXTENSIONS
978#define GL_EXTENSIONS 0x1F03
979#endif
980#ifndef GL_FALSE
981#define GL_FALSE 0
982#endif
983#ifndef GL_FASTEST
984#define GL_FASTEST 0x1101
985#endif
986#ifndef GL_FIXED
987#define GL_FIXED 0x140C
988#endif
989#ifndef GL_FLOAT
990#define GL_FLOAT 0x1406
991#endif
992#ifndef GL_FLOAT_MAT2
993#define GL_FLOAT_MAT2 0x8B5A
994#endif
995#ifndef GL_FLOAT_MAT3
996#define GL_FLOAT_MAT3 0x8B5B
997#endif
998#ifndef GL_FLOAT_MAT4
999#define GL_FLOAT_MAT4 0x8B5C
1000#endif
1001#ifndef GL_FLOAT_VEC2
1002#define GL_FLOAT_VEC2 0x8B50
1003#endif
1004#ifndef GL_FLOAT_VEC3
1005#define GL_FLOAT_VEC3 0x8B51
1006#endif
1007#ifndef GL_FLOAT_VEC4
1008#define GL_FLOAT_VEC4 0x8B52
1009#endif
1010#ifndef GL_FRAGMENT_SHADER
1011#define GL_FRAGMENT_SHADER 0x8B30
1012#endif
1013#ifndef GL_FRAMEBUFFER
1014#define GL_FRAMEBUFFER 0x8D40
1015#endif
1016#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
1017#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
1018#endif
1019#ifndef GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
1020#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
1021#endif
1022#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
1023#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
1024#endif
1025#ifndef GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
1026#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
1027#endif
1028#ifndef GL_FRAMEBUFFER_BINDING
1029#define GL_FRAMEBUFFER_BINDING 0x8CA6
1030#endif
1031#ifndef GL_FRAMEBUFFER_COMPLETE
1032#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
1033#endif
1034#ifndef GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT
1035#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
1036#endif
1037#ifndef GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS
1038#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
1039#endif
1040#ifndef GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
1041#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
1042#endif
1043#ifndef GL_FRAMEBUFFER_UNSUPPORTED
1044#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
1045#endif
1046#ifndef GL_FRONT
1047#define GL_FRONT 0x0404
1048#endif
1049#ifndef GL_FRONT_AND_BACK
1050#define GL_FRONT_AND_BACK 0x0408
1051#endif
1052#ifndef GL_FRONT_FACE
1053#define GL_FRONT_FACE 0x0B46
1054#endif
1055#ifndef GL_FUNC_ADD
1056#define GL_FUNC_ADD 0x8006
1057#endif
1058#ifndef GL_FUNC_REVERSE_SUBTRACT
1059#define GL_FUNC_REVERSE_SUBTRACT 0x800B
1060#endif
1061#ifndef GL_FUNC_SUBTRACT
1062#define GL_FUNC_SUBTRACT 0x800A
1063#endif
1064#ifndef GL_GENERATE_MIPMAP_HINT
1065#define GL_GENERATE_MIPMAP_HINT 0x8192
1066#endif
1067#ifndef GL_GEQUAL
1068#define GL_GEQUAL 0x0206
1069#endif
1070#ifndef GL_GREATER
1071#define GL_GREATER 0x0204
1072#endif
1073#ifndef GL_GREEN_BITS
1074#define GL_GREEN_BITS 0x0D53
1075#endif
1076#ifndef GL_HIGH_FLOAT
1077#define GL_HIGH_FLOAT 0x8DF2
1078#endif
1079#ifndef GL_HIGH_INT
1080#define GL_HIGH_INT 0x8DF5
1081#endif
1082#ifndef GL_IMPLEMENTATION_COLOR_READ_FORMAT
1083#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
1084#endif
1085#ifndef GL_IMPLEMENTATION_COLOR_READ_TYPE
1086#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
1087#endif
1088#ifndef GL_INCR
1089#define GL_INCR 0x1E02
1090#endif
1091#ifndef GL_INCR_WRAP
1092#define GL_INCR_WRAP 0x8507
1093#endif
1094#ifndef GL_INFO_LOG_LENGTH
1095#define GL_INFO_LOG_LENGTH 0x8B84
1096#endif
1097#ifndef GL_INT
1098#define GL_INT 0x1404
1099#endif
1100#ifndef GL_INT_VEC2
1101#define GL_INT_VEC2 0x8B53
1102#endif
1103#ifndef GL_INT_VEC3
1104#define GL_INT_VEC3 0x8B54
1105#endif
1106#ifndef GL_INT_VEC4
1107#define GL_INT_VEC4 0x8B55
1108#endif
1109#ifndef GL_INVALID_ENUM
1110#define GL_INVALID_ENUM 0x0500
1111#endif
1112#ifndef GL_INVALID_FRAMEBUFFER_OPERATION
1113#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
1114#endif
1115#ifndef GL_INVALID_OPERATION
1116#define GL_INVALID_OPERATION 0x0502
1117#endif
1118#ifndef GL_INVALID_VALUE
1119#define GL_INVALID_VALUE 0x0501
1120#endif
1121#ifndef GL_INVERT
1122#define GL_INVERT 0x150A
1123#endif
1124#ifndef GL_KEEP
1125#define GL_KEEP 0x1E00
1126#endif
1127#ifndef GL_LEQUAL
1128#define GL_LEQUAL 0x0203
1129#endif
1130#ifndef GL_LESS
1131#define GL_LESS 0x0201
1132#endif
1133#ifndef GL_LINEAR
1134#define GL_LINEAR 0x2601
1135#endif
1136#ifndef GL_LINEAR_MIPMAP_LINEAR
1137#define GL_LINEAR_MIPMAP_LINEAR 0x2703
1138#endif
1139#ifndef GL_LINEAR_MIPMAP_NEAREST
1140#define GL_LINEAR_MIPMAP_NEAREST 0x2701
1141#endif
1142#ifndef GL_LINE_LOOP
1143#define GL_LINE_LOOP 0x0002
1144#endif
1145#ifndef GL_LINES
1146#define GL_LINES 0x0001
1147#endif
1148#ifndef GL_LINE_STRIP
1149#define GL_LINE_STRIP 0x0003
1150#endif
1151#ifndef GL_LINE_WIDTH
1152#define GL_LINE_WIDTH 0x0B21
1153#endif
1154#ifndef GL_LINK_STATUS
1155#define GL_LINK_STATUS 0x8B82
1156#endif
1157#ifndef GL_LOW_FLOAT
1158#define GL_LOW_FLOAT 0x8DF0
1159#endif
1160#ifndef GL_LOW_INT
1161#define GL_LOW_INT 0x8DF3
1162#endif
1163#ifndef GL_LUMINANCE
1164#define GL_LUMINANCE 0x1909
1165#endif
1166#ifndef GL_LUMINANCE_ALPHA
1167#define GL_LUMINANCE_ALPHA 0x190A
1168#endif
1169#ifndef GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
1170#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
1171#endif
1172#ifndef GL_MAX_CUBE_MAP_TEXTURE_SIZE
1173#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
1174#endif
1175#ifndef GL_MAX_FRAGMENT_UNIFORM_VECTORS
1176#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
1177#endif
1178#ifndef GL_MAX_RENDERBUFFER_SIZE
1179#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
1180#endif
1181#ifndef GL_MAX_TEXTURE_IMAGE_UNITS
1182#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
1183#endif
1184#ifndef GL_MAX_TEXTURE_SIZE
1185#define GL_MAX_TEXTURE_SIZE 0x0D33
1186#endif
1187#ifndef GL_MAX_VARYING_VECTORS
1188#define GL_MAX_VARYING_VECTORS 0x8DFC
1189#endif
1190#ifndef GL_MAX_VERTEX_ATTRIBS
1191#define GL_MAX_VERTEX_ATTRIBS 0x8869
1192#endif
1193#ifndef GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
1194#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
1195#endif
1196#ifndef GL_MAX_VERTEX_UNIFORM_VECTORS
1197#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
1198#endif
1199#ifndef GL_MAX_VIEWPORT_DIMS
1200#define GL_MAX_VIEWPORT_DIMS 0x0D3A
1201#endif
1202#ifndef GL_MEDIUM_FLOAT
1203#define GL_MEDIUM_FLOAT 0x8DF1
1204#endif
1205#ifndef GL_MEDIUM_INT
1206#define GL_MEDIUM_INT 0x8DF4
1207#endif
1208#ifndef GL_MIRRORED_REPEAT
1209#define GL_MIRRORED_REPEAT 0x8370
1210#endif
1211#ifndef GL_NEAREST
1212#define GL_NEAREST 0x2600
1213#endif
1214#ifndef GL_NEAREST_MIPMAP_LINEAR
1215#define GL_NEAREST_MIPMAP_LINEAR 0x2702
1216#endif
1217#ifndef GL_NEAREST_MIPMAP_NEAREST
1218#define GL_NEAREST_MIPMAP_NEAREST 0x2700
1219#endif
1220#ifndef GL_NEVER
1221#define GL_NEVER 0x0200
1222#endif
1223#ifndef GL_NICEST
1224#define GL_NICEST 0x1102
1225#endif
1226#ifndef GL_NO_ERROR
1227#define GL_NO_ERROR 0
1228#endif
1229#ifndef GL_NONE
1230#define GL_NONE 0
1231#endif
1232#ifndef GL_NOTEQUAL
1233#define GL_NOTEQUAL 0x0205
1234#endif
1235#ifndef GL_NUM_COMPRESSED_TEXTURE_FORMATS
1236#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
1237#endif
1238#ifndef GL_NUM_SHADER_BINARY_FORMATS
1239#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
1240#endif
1241#ifndef GL_ONE
1242#define GL_ONE 1
1243#endif
1244#ifndef GL_ONE_MINUS_CONSTANT_ALPHA
1245#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
1246#endif
1247#ifndef GL_ONE_MINUS_CONSTANT_COLOR
1248#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
1249#endif
1250#ifndef GL_ONE_MINUS_DST_ALPHA
1251#define GL_ONE_MINUS_DST_ALPHA 0x0305
1252#endif
1253#ifndef GL_ONE_MINUS_DST_COLOR
1254#define GL_ONE_MINUS_DST_COLOR 0x0307
1255#endif
1256#ifndef GL_ONE_MINUS_SRC_ALPHA
1257#define GL_ONE_MINUS_SRC_ALPHA 0x0303
1258#endif
1259#ifndef GL_ONE_MINUS_SRC_COLOR
1260#define GL_ONE_MINUS_SRC_COLOR 0x0301
1261#endif
1262#ifndef GL_OUT_OF_MEMORY
1263#define GL_OUT_OF_MEMORY 0x0505
1264#endif
1265#ifndef GL_PACK_ALIGNMENT
1266#define GL_PACK_ALIGNMENT 0x0D05
1267#endif
1268#ifndef GL_POINTS
1269#define GL_POINTS 0x0000
1270#endif
1271#ifndef GL_POLYGON_OFFSET_FACTOR
1272#define GL_POLYGON_OFFSET_FACTOR 0x8038
1273#endif
1274#ifndef GL_POLYGON_OFFSET_FILL
1275#define GL_POLYGON_OFFSET_FILL 0x8037
1276#endif
1277#ifndef GL_POLYGON_OFFSET_UNITS
1278#define GL_POLYGON_OFFSET_UNITS 0x2A00
1279#endif
1280#ifndef GL_RED_BITS
1281#define GL_RED_BITS 0x0D52
1282#endif
1283#ifndef GL_RENDERBUFFER
1284#define GL_RENDERBUFFER 0x8D41
1285#endif
1286#ifndef GL_RENDERBUFFER_ALPHA_SIZE
1287#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
1288#endif
1289#ifndef GL_RENDERBUFFER_BINDING
1290#define GL_RENDERBUFFER_BINDING 0x8CA7
1291#endif
1292#ifndef GL_RENDERBUFFER_BLUE_SIZE
1293#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
1294#endif
1295#ifndef GL_RENDERBUFFER_DEPTH_SIZE
1296#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
1297#endif
1298#ifndef GL_RENDERBUFFER_GREEN_SIZE
1299#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
1300#endif
1301#ifndef GL_RENDERBUFFER_HEIGHT
1302#define GL_RENDERBUFFER_HEIGHT 0x8D43
1303#endif
1304#ifndef GL_RENDERBUFFER_INTERNAL_FORMAT
1305#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
1306#endif
1307#ifndef GL_RENDERBUFFER_RED_SIZE
1308#define GL_RENDERBUFFER_RED_SIZE 0x8D50
1309#endif
1310#ifndef GL_RENDERBUFFER_STENCIL_SIZE
1311#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
1312#endif
1313#ifndef GL_RENDERBUFFER_WIDTH
1314#define GL_RENDERBUFFER_WIDTH 0x8D42
1315#endif
1316#ifndef GL_RENDERER
1317#define GL_RENDERER 0x1F01
1318#endif
1319#ifndef GL_REPEAT
1320#define GL_REPEAT 0x2901
1321#endif
1322#ifndef GL_REPLACE
1323#define GL_REPLACE 0x1E01
1324#endif
1325#ifndef GL_RGB
1326#define GL_RGB 0x1907
1327#endif
1328#ifndef GL_RGB565
1329#define GL_RGB565 0x8D62
1330#endif
1331#ifndef GL_RGB5_A1
1332#define GL_RGB5_A1 0x8057
1333#endif
1334#ifndef GL_RGBA
1335#define GL_RGBA 0x1908
1336#endif
1337#ifndef GL_RGBA4
1338#define GL_RGBA4 0x8056
1339#endif
1340#ifndef GL_BGRA
1341#define GL_BGRA 0x80E1
1342#endif
1343#ifndef GL_SAMPLE_ALPHA_TO_COVERAGE
1344#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
1345#endif
1346#ifndef GL_SAMPLE_BUFFERS
1347#define GL_SAMPLE_BUFFERS 0x80A8
1348#endif
1349#ifndef GL_SAMPLE_COVERAGE
1350#define GL_SAMPLE_COVERAGE 0x80A0
1351#endif
1352#ifndef GL_SAMPLE_COVERAGE_INVERT
1353#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
1354#endif
1355#ifndef GL_SAMPLE_COVERAGE_VALUE
1356#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
1357#endif
1358#ifndef GL_SAMPLER_2D
1359#define GL_SAMPLER_2D 0x8B5E
1360#endif
1361#ifndef GL_SAMPLER_CUBE
1362#define GL_SAMPLER_CUBE 0x8B60
1363#endif
1364#ifndef GL_SAMPLES
1365#define GL_SAMPLES 0x80A9
1366#endif
1367#ifndef GL_SCISSOR_BOX
1368#define GL_SCISSOR_BOX 0x0C10
1369#endif
1370#ifndef GL_SCISSOR_TEST
1371#define GL_SCISSOR_TEST 0x0C11
1372#endif
1373#ifndef GL_SHADER_BINARY_FORMATS
1374#define GL_SHADER_BINARY_FORMATS 0x8DF8
1375#endif
1376#ifndef GL_SHADER_COMPILER
1377#define GL_SHADER_COMPILER 0x8DFA
1378#endif
1379#ifndef GL_SHADER_SOURCE_LENGTH
1380#define GL_SHADER_SOURCE_LENGTH 0x8B88
1381#endif
1382#ifndef GL_SHADER_TYPE
1383#define GL_SHADER_TYPE 0x8B4F
1384#endif
1385#ifndef GL_SHADING_LANGUAGE_VERSION
1386#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
1387#endif
1388#ifndef GL_SHORT
1389#define GL_SHORT 0x1402
1390#endif
1391#ifndef GL_SRC_ALPHA
1392#define GL_SRC_ALPHA 0x0302
1393#endif
1394#ifndef GL_SRC_ALPHA_SATURATE
1395#define GL_SRC_ALPHA_SATURATE 0x0308
1396#endif
1397#ifndef GL_SRC_COLOR
1398#define GL_SRC_COLOR 0x0300
1399#endif
1400#ifndef GL_STATIC_DRAW
1401#define GL_STATIC_DRAW 0x88E4
1402#endif
1403#ifndef GL_STENCIL_ATTACHMENT
1404#define GL_STENCIL_ATTACHMENT 0x8D20
1405#endif
1406#ifndef GL_STENCIL_BACK_FAIL
1407#define GL_STENCIL_BACK_FAIL 0x8801
1408#endif
1409#ifndef GL_STENCIL_BACK_FUNC
1410#define GL_STENCIL_BACK_FUNC 0x8800
1411#endif
1412#ifndef GL_STENCIL_BACK_PASS_DEPTH_FAIL
1413#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
1414#endif
1415#ifndef GL_STENCIL_BACK_PASS_DEPTH_PASS
1416#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
1417#endif
1418#ifndef GL_STENCIL_BACK_REF
1419#define GL_STENCIL_BACK_REF 0x8CA3
1420#endif
1421#ifndef GL_STENCIL_BACK_VALUE_MASK
1422#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
1423#endif
1424#ifndef GL_STENCIL_BACK_WRITEMASK
1425#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
1426#endif
1427#ifndef GL_STENCIL_BITS
1428#define GL_STENCIL_BITS 0x0D57
1429#endif
1430#ifndef GL_STENCIL_BUFFER_BIT
1431#define GL_STENCIL_BUFFER_BIT 0x00000400
1432#endif
1433#ifndef GL_STENCIL_CLEAR_VALUE
1434#define GL_STENCIL_CLEAR_VALUE 0x0B91
1435#endif
1436#ifndef GL_STENCIL_FAIL
1437#define GL_STENCIL_FAIL 0x0B94
1438#endif
1439#ifndef GL_STENCIL_FUNC
1440#define GL_STENCIL_FUNC 0x0B92
1441#endif
1442#ifndef GL_STENCIL_INDEX
1443#define GL_STENCIL_INDEX 0x1901
1444#endif
1445#ifndef GL_STENCIL_INDEX8
1446#define GL_STENCIL_INDEX8 0x8D48
1447#endif
1448#ifndef GL_STENCIL_PASS_DEPTH_FAIL
1449#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
1450#endif
1451#ifndef GL_STENCIL_PASS_DEPTH_PASS
1452#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
1453#endif
1454#ifndef GL_STENCIL_REF
1455#define GL_STENCIL_REF 0x0B97
1456#endif
1457#ifndef GL_STENCIL_TEST
1458#define GL_STENCIL_TEST 0x0B90
1459#endif
1460#ifndef GL_STENCIL_VALUE_MASK
1461#define GL_STENCIL_VALUE_MASK 0x0B93
1462#endif
1463#ifndef GL_STENCIL_WRITEMASK
1464#define GL_STENCIL_WRITEMASK 0x0B98
1465#endif
1466#ifndef GL_STREAM_DRAW
1467#define GL_STREAM_DRAW 0x88E0
1468#endif
1469#ifndef GL_SUBPIXEL_BITS
1470#define GL_SUBPIXEL_BITS 0x0D50
1471#endif
1472#ifndef GL_TEXTURE0
1473#define GL_TEXTURE0 0x84C0
1474#endif
1475#ifndef GL_TEXTURE
1476#define GL_TEXTURE 0x1702
1477#endif
1478#ifndef GL_TEXTURE10
1479#define GL_TEXTURE10 0x84CA
1480#endif
1481#ifndef GL_TEXTURE1
1482#define GL_TEXTURE1 0x84C1
1483#endif
1484#ifndef GL_TEXTURE11
1485#define GL_TEXTURE11 0x84CB
1486#endif
1487#ifndef GL_TEXTURE12
1488#define GL_TEXTURE12 0x84CC
1489#endif
1490#ifndef GL_TEXTURE13
1491#define GL_TEXTURE13 0x84CD
1492#endif
1493#ifndef GL_TEXTURE14
1494#define GL_TEXTURE14 0x84CE
1495#endif
1496#ifndef GL_TEXTURE15
1497#define GL_TEXTURE15 0x84CF
1498#endif
1499#ifndef GL_TEXTURE16
1500#define GL_TEXTURE16 0x84D0
1501#endif
1502#ifndef GL_TEXTURE17
1503#define GL_TEXTURE17 0x84D1
1504#endif
1505#ifndef GL_TEXTURE18
1506#define GL_TEXTURE18 0x84D2
1507#endif
1508#ifndef GL_TEXTURE19
1509#define GL_TEXTURE19 0x84D3
1510#endif
1511#ifndef GL_TEXTURE20
1512#define GL_TEXTURE20 0x84D4
1513#endif
1514#ifndef GL_TEXTURE2
1515#define GL_TEXTURE2 0x84C2
1516#endif
1517#ifndef GL_TEXTURE21
1518#define GL_TEXTURE21 0x84D5
1519#endif
1520#ifndef GL_TEXTURE22
1521#define GL_TEXTURE22 0x84D6
1522#endif
1523#ifndef GL_TEXTURE23
1524#define GL_TEXTURE23 0x84D7
1525#endif
1526#ifndef GL_TEXTURE24
1527#define GL_TEXTURE24 0x84D8
1528#endif
1529#ifndef GL_TEXTURE25
1530#define GL_TEXTURE25 0x84D9
1531#endif
1532#ifndef GL_TEXTURE26
1533#define GL_TEXTURE26 0x84DA
1534#endif
1535#ifndef GL_TEXTURE27
1536#define GL_TEXTURE27 0x84DB
1537#endif
1538#ifndef GL_TEXTURE28
1539#define GL_TEXTURE28 0x84DC
1540#endif
1541#ifndef GL_TEXTURE29
1542#define GL_TEXTURE29 0x84DD
1543#endif
1544#ifndef GL_TEXTURE_2D
1545#define GL_TEXTURE_2D 0x0DE1
1546#endif
1547#ifndef GL_TEXTURE30
1548#define GL_TEXTURE30 0x84DE
1549#endif
1550#ifndef GL_TEXTURE3
1551#define GL_TEXTURE3 0x84C3
1552#endif
1553#ifndef GL_TEXTURE31
1554#define GL_TEXTURE31 0x84DF
1555#endif
1556#ifndef GL_TEXTURE4
1557#define GL_TEXTURE4 0x84C4
1558#endif
1559#ifndef GL_TEXTURE5
1560#define GL_TEXTURE5 0x84C5
1561#endif
1562#ifndef GL_TEXTURE6
1563#define GL_TEXTURE6 0x84C6
1564#endif
1565#ifndef GL_TEXTURE7
1566#define GL_TEXTURE7 0x84C7
1567#endif
1568#ifndef GL_TEXTURE8
1569#define GL_TEXTURE8 0x84C8
1570#endif
1571#ifndef GL_TEXTURE9
1572#define GL_TEXTURE9 0x84C9
1573#endif
1574#ifndef GL_TEXTURE_BINDING_2D
1575#define GL_TEXTURE_BINDING_2D 0x8069
1576#endif
1577#ifndef GL_TEXTURE_BINDING_CUBE_MAP
1578#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
1579#endif
1580#ifndef GL_TEXTURE_CUBE_MAP
1581#define GL_TEXTURE_CUBE_MAP 0x8513
1582#endif
1583#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_X
1584#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
1585#endif
1586#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
1587#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
1588#endif
1589#ifndef GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
1590#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
1591#endif
1592#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_X
1593#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
1594#endif
1595#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Y
1596#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
1597#endif
1598#ifndef GL_TEXTURE_CUBE_MAP_POSITIVE_Z
1599#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
1600#endif
1601#ifndef GL_TEXTURE_MAG_FILTER
1602#define GL_TEXTURE_MAG_FILTER 0x2800
1603#endif
1604#ifndef GL_TEXTURE_MIN_FILTER
1605#define GL_TEXTURE_MIN_FILTER 0x2801
1606#endif
1607#ifndef GL_TEXTURE_WRAP_S
1608#define GL_TEXTURE_WRAP_S 0x2802
1609#endif
1610#ifndef GL_TEXTURE_WRAP_T
1611#define GL_TEXTURE_WRAP_T 0x2803
1612#endif
1613#ifndef GL_TRIANGLE_FAN
1614#define GL_TRIANGLE_FAN 0x0006
1615#endif
1616#ifndef GL_TRIANGLES
1617#define GL_TRIANGLES 0x0004
1618#endif
1619#ifndef GL_TRIANGLE_STRIP
1620#define GL_TRIANGLE_STRIP 0x0005
1621#endif
1622#ifndef GL_TRUE
1623#define GL_TRUE 1
1624#endif
1625#ifndef GL_UNPACK_ALIGNMENT
1626#define GL_UNPACK_ALIGNMENT 0x0CF5
1627#endif
1628#ifndef GL_UNSIGNED_BYTE
1629#define GL_UNSIGNED_BYTE 0x1401
1630#endif
1631#ifndef GL_UNSIGNED_INT
1632#define GL_UNSIGNED_INT 0x1405
1633#endif
1634#ifndef GL_UNSIGNED_SHORT
1635#define GL_UNSIGNED_SHORT 0x1403
1636#endif
1637#ifndef GL_UNSIGNED_SHORT_4_4_4_4
1638#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
1639#endif
1640#ifndef GL_UNSIGNED_SHORT_5_5_5_1
1641#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
1642#endif
1643#ifndef GL_UNSIGNED_SHORT_5_6_5
1644#define GL_UNSIGNED_SHORT_5_6_5 0x8363
1645#endif
1646#ifndef GL_VALIDATE_STATUS
1647#define GL_VALIDATE_STATUS 0x8B83
1648#endif
1649#ifndef GL_VENDOR
1650#define GL_VENDOR 0x1F00
1651#endif
1652#ifndef GL_VERSION
1653#define GL_VERSION 0x1F02
1654#endif
1655#ifndef GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
1656#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
1657#endif
1658#ifndef GL_VERTEX_ATTRIB_ARRAY_ENABLED
1659#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
1660#endif
1661#ifndef GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
1662#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
1663#endif
1664#ifndef GL_VERTEX_ATTRIB_ARRAY_POINTER
1665#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
1666#endif
1667#ifndef GL_VERTEX_ATTRIB_ARRAY_SIZE
1668#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
1669#endif
1670#ifndef GL_VERTEX_ATTRIB_ARRAY_STRIDE
1671#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
1672#endif
1673#ifndef GL_VERTEX_ATTRIB_ARRAY_TYPE
1674#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
1675#endif
1676#ifndef GL_VERTEX_SHADER
1677#define GL_VERTEX_SHADER 0x8B31
1678#endif
1679#ifndef GL_VIEWPORT
1680#define GL_VIEWPORT 0x0BA2
1681#endif
1682#ifndef GL_ZERO
1683#define GL_ZERO 0
1684#endif
1685
1686QT_END_NAMESPACE
1687
1688#endif
1689