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 
47 QT_BEGIN_NAMESPACE
48 
49 struct QGLFunctionsPrivate;
50 
51 class Q_OPENGL_EXPORT QGLFunctions
52 {
53 public:
54     QGLFunctions();
55     explicit QGLFunctions(const QGLContext *context);
~QGLFunctions()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 
179 private:
180     QGLFunctionsPrivate *d_ptr;
isInitialized(const QGLFunctionsPrivate * d)181     static bool isInitialized(const QGLFunctionsPrivate *d) { return d != nullptr; }
182 };
183 
184 Q_DECLARE_OPERATORS_FOR_FLAGS(QGLFunctions::OpenGLFeatures)
185 
186 struct QGLFunctionsPrivate
187 {
188     QGLFunctionsPrivate(const QGLContext *context = nullptr);
189     QOpenGLFunctions *funcs;
190 };
191 
glActiveTexture(GLenum texture)192 inline void QGLFunctions::glActiveTexture(GLenum texture)
193 {
194     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
195     d_ptr->funcs->glActiveTexture(texture);
196 }
197 
glAttachShader(GLuint program,GLuint shader)198 inline void QGLFunctions::glAttachShader(GLuint program, GLuint shader)
199 {
200     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
201     d_ptr->funcs->glAttachShader(program, shader);
202 }
203 
glBindAttribLocation(GLuint program,GLuint index,const char * name)204 inline 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 
glBindBuffer(GLenum target,GLuint buffer)210 inline void QGLFunctions::glBindBuffer(GLenum target, GLuint buffer)
211 {
212     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
213     d_ptr->funcs->glBindBuffer(target, buffer);
214 }
215 
glBindFramebuffer(GLenum target,GLuint framebuffer)216 inline 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 
glBindRenderbuffer(GLenum target,GLuint renderbuffer)224 inline void QGLFunctions::glBindRenderbuffer(GLenum target, GLuint renderbuffer)
225 {
226     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
227     d_ptr->funcs->glBindRenderbuffer(target, renderbuffer);
228 }
229 
glBlendColor(GLclampf red,GLclampf green,GLclampf blue,GLclampf alpha)230 inline 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 
glBlendEquation(GLenum mode)236 inline void QGLFunctions::glBlendEquation(GLenum mode)
237 {
238     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
239     d_ptr->funcs->glBlendEquation(mode);
240 }
241 
glBlendEquationSeparate(GLenum modeRGB,GLenum modeAlpha)242 inline void QGLFunctions::glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
243 {
244     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
245     d_ptr->funcs->glBlendEquationSeparate(modeRGB, modeAlpha);
246 }
247 
glBlendFuncSeparate(GLenum srcRGB,GLenum dstRGB,GLenum srcAlpha,GLenum dstAlpha)248 inline 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 
glBufferData(GLenum target,qopengl_GLsizeiptr size,const void * data,GLenum usage)254 inline 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 
glBufferSubData(GLenum target,qopengl_GLintptr offset,qopengl_GLsizeiptr size,const void * data)260 inline 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 
glCheckFramebufferStatus(GLenum target)266 inline GLenum QGLFunctions::glCheckFramebufferStatus(GLenum target)
267 {
268     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
269     return d_ptr->funcs->glCheckFramebufferStatus(target);
270 }
271 
glClearDepthf(GLclampf depth)272 inline void QGLFunctions::glClearDepthf(GLclampf depth)
273 {
274     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
275     return d_ptr->funcs->glClearDepthf(depth);
276 }
277 
glCompileShader(GLuint shader)278 inline void QGLFunctions::glCompileShader(GLuint shader)
279 {
280     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
281     d_ptr->funcs->glCompileShader(shader);
282 }
283 
glCompressedTexImage2D(GLenum target,GLint level,GLenum internalformat,GLsizei width,GLsizei height,GLint border,GLsizei imageSize,const void * data)284 inline 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 
glCompressedTexSubImage2D(GLenum target,GLint level,GLint xoffset,GLint yoffset,GLsizei width,GLsizei height,GLenum format,GLsizei imageSize,const void * data)290 inline 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 
glCreateProgram()296 inline GLuint QGLFunctions::glCreateProgram()
297 {
298     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
299     return d_ptr->funcs->glCreateProgram();
300 }
301 
glCreateShader(GLenum type)302 inline GLuint QGLFunctions::glCreateShader(GLenum type)
303 {
304     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
305     return d_ptr->funcs->glCreateShader(type);
306 }
307 
glDeleteBuffers(GLsizei n,const GLuint * buffers)308 inline 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 
glDeleteFramebuffers(GLsizei n,const GLuint * framebuffers)314 inline 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 
glDeleteProgram(GLuint program)320 inline void QGLFunctions::glDeleteProgram(GLuint program)
321 {
322     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
323     d_ptr->funcs->glDeleteProgram(program);
324 }
325 
glDeleteRenderbuffers(GLsizei n,const GLuint * renderbuffers)326 inline 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 
glDeleteShader(GLuint shader)332 inline void QGLFunctions::glDeleteShader(GLuint shader)
333 {
334     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
335     d_ptr->funcs->glDeleteShader(shader);
336 }
337 
glDepthRangef(GLclampf zNear,GLclampf zFar)338 inline 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 
glDetachShader(GLuint program,GLuint shader)344 inline void QGLFunctions::glDetachShader(GLuint program, GLuint shader)
345 {
346     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
347     d_ptr->funcs->glDetachShader(program, shader);
348 }
349 
glDisableVertexAttribArray(GLuint index)350 inline void QGLFunctions::glDisableVertexAttribArray(GLuint index)
351 {
352     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
353     d_ptr->funcs->glDisableVertexAttribArray(index);
354 }
355 
glEnableVertexAttribArray(GLuint index)356 inline void QGLFunctions::glEnableVertexAttribArray(GLuint index)
357 {
358     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
359     d_ptr->funcs->glEnableVertexAttribArray(index);
360 }
361 
glFramebufferRenderbuffer(GLenum target,GLenum attachment,GLenum renderbuffertarget,GLuint renderbuffer)362 inline 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 
glFramebufferTexture2D(GLenum target,GLenum attachment,GLenum textarget,GLuint texture,GLint level)368 inline 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 
glGenBuffers(GLsizei n,GLuint * buffers)374 inline void QGLFunctions::glGenBuffers(GLsizei n, GLuint* buffers)
375 {
376     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
377     d_ptr->funcs->glGenBuffers(n, buffers);
378 }
379 
glGenerateMipmap(GLenum target)380 inline void QGLFunctions::glGenerateMipmap(GLenum target)
381 {
382     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
383     d_ptr->funcs->glGenerateMipmap(target);
384 }
385 
glGenFramebuffers(GLsizei n,GLuint * framebuffers)386 inline void QGLFunctions::glGenFramebuffers(GLsizei n, GLuint* framebuffers)
387 {
388     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
389     d_ptr->funcs->glGenFramebuffers(n, framebuffers);
390 }
391 
glGenRenderbuffers(GLsizei n,GLuint * renderbuffers)392 inline void QGLFunctions::glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
393 {
394     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
395     d_ptr->funcs->glGenRenderbuffers(n, renderbuffers);
396 }
397 
glGetActiveAttrib(GLuint program,GLuint index,GLsizei bufsize,GLsizei * length,GLint * size,GLenum * type,char * name)398 inline 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 
glGetActiveUniform(GLuint program,GLuint index,GLsizei bufsize,GLsizei * length,GLint * size,GLenum * type,char * name)404 inline 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 
glGetAttachedShaders(GLuint program,GLsizei maxcount,GLsizei * count,GLuint * shaders)410 inline 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 
glGetAttribLocation(GLuint program,const char * name)416 inline 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 
glGetBufferParameteriv(GLenum target,GLenum pname,GLint * params)422 inline 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 
glGetFramebufferAttachmentParameteriv(GLenum target,GLenum attachment,GLenum pname,GLint * params)428 inline 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 
glGetProgramiv(GLuint program,GLenum pname,GLint * params)434 inline 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 
glGetProgramInfoLog(GLuint program,GLsizei bufsize,GLsizei * length,char * infolog)440 inline 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 
glGetRenderbufferParameteriv(GLenum target,GLenum pname,GLint * params)446 inline 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 
glGetShaderiv(GLuint shader,GLenum pname,GLint * params)452 inline 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 
glGetShaderInfoLog(GLuint shader,GLsizei bufsize,GLsizei * length,char * infolog)458 inline 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 
glGetShaderPrecisionFormat(GLenum shadertype,GLenum precisiontype,GLint * range,GLint * precision)464 inline 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 
glGetShaderSource(GLuint shader,GLsizei bufsize,GLsizei * length,char * source)470 inline 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 
glGetUniformfv(GLuint program,GLint location,GLfloat * params)476 inline 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 
glGetUniformiv(GLuint program,GLint location,GLint * params)482 inline 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 
glGetUniformLocation(GLuint program,const char * name)488 inline 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 
glGetVertexAttribfv(GLuint index,GLenum pname,GLfloat * params)494 inline 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 
glGetVertexAttribiv(GLuint index,GLenum pname,GLint * params)500 inline 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 
glGetVertexAttribPointerv(GLuint index,GLenum pname,void ** pointer)506 inline 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 
glIsBuffer(GLuint buffer)512 inline GLboolean QGLFunctions::glIsBuffer(GLuint buffer)
513 {
514     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
515     return d_ptr->funcs->glIsBuffer(buffer);
516 }
517 
glIsFramebuffer(GLuint framebuffer)518 inline GLboolean QGLFunctions::glIsFramebuffer(GLuint framebuffer)
519 {
520     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
521     return d_ptr->funcs->glIsFramebuffer(framebuffer);
522 }
523 
glIsProgram(GLuint program)524 inline GLboolean QGLFunctions::glIsProgram(GLuint program)
525 {
526     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
527     return d_ptr->funcs->glIsProgram(program);
528 }
529 
glIsRenderbuffer(GLuint renderbuffer)530 inline GLboolean QGLFunctions::glIsRenderbuffer(GLuint renderbuffer)
531 {
532     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
533     return d_ptr->funcs->glIsRenderbuffer(renderbuffer);
534 }
535 
glIsShader(GLuint shader)536 inline GLboolean QGLFunctions::glIsShader(GLuint shader)
537 {
538     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
539     return d_ptr->funcs->glIsShader(shader);
540 }
541 
glLinkProgram(GLuint program)542 inline void QGLFunctions::glLinkProgram(GLuint program)
543 {
544     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
545     d_ptr->funcs->glLinkProgram(program);
546 }
547 
glReleaseShaderCompiler()548 inline void QGLFunctions::glReleaseShaderCompiler()
549 {
550     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
551     d_ptr->funcs->glReleaseShaderCompiler();
552 }
553 
glRenderbufferStorage(GLenum target,GLenum internalformat,GLsizei width,GLsizei height)554 inline 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 
glSampleCoverage(GLclampf value,GLboolean invert)560 inline void QGLFunctions::glSampleCoverage(GLclampf value, GLboolean invert)
561 {
562     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
563     d_ptr->funcs->glSampleCoverage(value, invert);
564 }
565 
glShaderBinary(GLint n,const GLuint * shaders,GLenum binaryformat,const void * binary,GLint length)566 inline 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 
glShaderSource(GLuint shader,GLsizei count,const char ** string,const GLint * length)572 inline 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 
glStencilFuncSeparate(GLenum face,GLenum func,GLint ref,GLuint mask)578 inline 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 
glStencilMaskSeparate(GLenum face,GLuint mask)584 inline void QGLFunctions::glStencilMaskSeparate(GLenum face, GLuint mask)
585 {
586     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
587     d_ptr->funcs->glStencilMaskSeparate(face, mask);
588 }
589 
glStencilOpSeparate(GLenum face,GLenum fail,GLenum zfail,GLenum zpass)590 inline 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 
glUniform1f(GLint location,GLfloat x)596 inline void QGLFunctions::glUniform1f(GLint location, GLfloat x)
597 {
598     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
599     d_ptr->funcs->glUniform1f(location, x);
600 }
601 
glUniform1fv(GLint location,GLsizei count,const GLfloat * v)602 inline 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 
glUniform1i(GLint location,GLint x)608 inline void QGLFunctions::glUniform1i(GLint location, GLint x)
609 {
610     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
611     d_ptr->funcs->glUniform1i(location, x);
612 }
613 
glUniform1iv(GLint location,GLsizei count,const GLint * v)614 inline 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 
glUniform2f(GLint location,GLfloat x,GLfloat y)620 inline 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 
glUniform2fv(GLint location,GLsizei count,const GLfloat * v)626 inline 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 
glUniform2i(GLint location,GLint x,GLint y)632 inline 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 
glUniform2iv(GLint location,GLsizei count,const GLint * v)638 inline 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 
glUniform3f(GLint location,GLfloat x,GLfloat y,GLfloat z)644 inline 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 
glUniform3fv(GLint location,GLsizei count,const GLfloat * v)650 inline 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 
glUniform3i(GLint location,GLint x,GLint y,GLint z)656 inline 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 
glUniform3iv(GLint location,GLsizei count,const GLint * v)662 inline 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 
glUniform4f(GLint location,GLfloat x,GLfloat y,GLfloat z,GLfloat w)668 inline 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 
glUniform4fv(GLint location,GLsizei count,const GLfloat * v)674 inline 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 
glUniform4i(GLint location,GLint x,GLint y,GLint z,GLint w)680 inline 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 
glUniform4iv(GLint location,GLsizei count,const GLint * v)686 inline 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 
glUniformMatrix2fv(GLint location,GLsizei count,GLboolean transpose,const GLfloat * value)692 inline 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 
glUniformMatrix3fv(GLint location,GLsizei count,GLboolean transpose,const GLfloat * value)698 inline 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 
glUniformMatrix4fv(GLint location,GLsizei count,GLboolean transpose,const GLfloat * value)704 inline 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 
glUseProgram(GLuint program)710 inline void QGLFunctions::glUseProgram(GLuint program)
711 {
712     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
713     d_ptr->funcs->glUseProgram(program);
714 }
715 
glValidateProgram(GLuint program)716 inline void QGLFunctions::glValidateProgram(GLuint program)
717 {
718     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
719     d_ptr->funcs->glValidateProgram(program);
720 }
721 
glVertexAttrib1f(GLuint indx,GLfloat x)722 inline void QGLFunctions::glVertexAttrib1f(GLuint indx, GLfloat x)
723 {
724     Q_ASSERT(QGLFunctions::isInitialized(d_ptr));
725     d_ptr->funcs->glVertexAttrib1f(indx, x);
726 }
727 
glVertexAttrib1fv(GLuint indx,const GLfloat * values)728 inline 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 
glVertexAttrib2f(GLuint indx,GLfloat x,GLfloat y)734 inline 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 
glVertexAttrib2fv(GLuint indx,const GLfloat * values)740 inline 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 
glVertexAttrib3f(GLuint indx,GLfloat x,GLfloat y,GLfloat z)746 inline 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 
glVertexAttrib3fv(GLuint indx,const GLfloat * values)752 inline 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 
glVertexAttrib4f(GLuint indx,GLfloat x,GLfloat y,GLfloat z,GLfloat w)758 inline 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 
glVertexAttrib4fv(GLuint indx,const GLfloat * values)764 inline 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 
glVertexAttribPointer(GLuint indx,GLint size,GLenum type,GLboolean normalized,GLsizei stride,const void * ptr)770 inline 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 
1686 QT_END_NAMESPACE
1687 
1688 #endif
1689