Use SDL_opengl.h and SDL_opengl_ext.h headers instead of doing our own defines -...
[xonotic/darkplaces.git] / glquake.h
1 #ifndef GLQUAKE_H
2 #define GLQUAKE_H
3
4 #include <stddef.h>
5
6 #ifdef USE_GLES2
7 #include <SDL_opengles2.h>
8 #else
9 #include <SDL_opengl.h>
10 #include <SDL_opengl_glext.h>
11 #endif
12
13 // disable data conversion warnings
14
15 #ifdef _MSC_VER
16 #pragma warning(disable : 4310) // LadyHavoc: MSVC++ 2008 x86: cast truncates constant value
17 #pragma warning(disable : 4245) // LadyHavoc: MSVC++ 2008 x86: 'initializing' : conversion from 'int' to 'unsigned char', signed/unsigned mismatch
18 #pragma warning(disable : 4204) // LadyHavoc: MSVC++ 2008 x86: nonstandard extension used : non-constant aggregate initializer
19 //#pragma warning(disable : 4267) // LadyHavoc: MSVC++ 2008 x64, conversion from 'size_t' to 'int', possible loss of data
20 //#pragma warning(disable : 4244) // LadyHavoc: MSVC++ 4 x86, double/float
21 //#pragma warning(disable : 4305) // LadyHavoc: MSVC++ 6 x86, double/float
22 //#pragma warning(disable : 4706) // LadyHavoc: MSVC++ 2008 x86, assignment within conditional expression
23 //#pragma warning(disable : 4127) // LadyHavoc: MSVC++ 2008 x86, conditional expression is constant
24 //#pragma warning(disable : 4100) // LadyHavoc: MSVC++ 2008 x86, unreferenced formal parameter
25 //#pragma warning(disable : 4055) // LadyHavoc: MSVC++ 2008 x86, 'type cast' from data pointer   to function pointer
26 //#pragma warning(disable : 4054) // LadyHavoc: MSVC++ 2008 x86, 'type cast' from function pointer   to data pointer
27 #endif
28
29
30 //====================================================
31
32 #define DEBUGGL
33
34 #ifdef DEBUGGL
35 #ifdef USE_GLES2
36 #define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);gl_errornumber = glGetError();if (gl_errornumber) GL_PrintError(gl_errornumber, __FILE__, __LINE__);}}
37 #else
38 #define CHECKGLERROR {if (gl_paranoid.integer){if (gl_printcheckerror.integer) Con_Printf("CHECKGLERROR at %s:%d\n", __FILE__, __LINE__);gl_errornumber = qglGetError ? qglGetError() : 0;if (gl_errornumber) GL_PrintError(gl_errornumber, __FILE__, __LINE__);}}
39 #endif
40 extern int gl_errornumber;
41 void GL_PrintError(int errornumber, const char *filename, int linenumber);
42 #else
43 #define CHECKGLERROR
44 #endif
45
46 #ifndef USE_GLES2
47 extern GLboolean(GLAPIENTRY *qglIsBuffer) (GLuint buffer);
48 extern GLboolean(GLAPIENTRY *qglIsEnabled)(GLenum cap);
49 extern GLboolean(GLAPIENTRY *qglIsFramebuffer)(GLuint framebuffer);
50 extern GLboolean(GLAPIENTRY *qglIsQuery)(GLuint qid);
51 extern GLboolean(GLAPIENTRY *qglIsRenderbuffer)(GLuint renderbuffer);
52 extern GLboolean(GLAPIENTRY *qglUnmapBuffer) (GLenum target);
53 extern GLenum(GLAPIENTRY *qglCheckFramebufferStatus)(GLenum target);
54 extern GLenum(GLAPIENTRY *qglGetError)(void);
55 extern GLint(GLAPIENTRY *qglGetAttribLocation)(GLuint programObj, const GLchar *name);
56 extern GLint(GLAPIENTRY *qglGetUniformLocation)(GLuint programObj, const GLchar *name);
57 extern GLuint(GLAPIENTRY *qglCreateProgram)(void);
58 extern GLuint(GLAPIENTRY *qglCreateShader)(GLenum shaderType);
59 extern GLuint(GLAPIENTRY *qglGetDebugMessageLogARB)(GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
60 extern GLuint(GLAPIENTRY *qglGetUniformBlockIndex)(GLuint program, const char* uniformBlockName);
61 extern GLvoid(GLAPIENTRY *qglBindFramebuffer)(GLenum target, GLuint framebuffer);
62 extern GLvoid(GLAPIENTRY *qglBindRenderbuffer)(GLenum target, GLuint renderbuffer);
63 extern GLvoid(GLAPIENTRY *qglBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
64 extern GLvoid(GLAPIENTRY *qglDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers);
65 extern GLvoid(GLAPIENTRY *qglDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers);
66 extern GLvoid(GLAPIENTRY *qglFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
67 extern GLvoid(GLAPIENTRY *qglFramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
68 extern GLvoid(GLAPIENTRY *qglFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
69 extern GLvoid(GLAPIENTRY *qglFramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
70 extern GLvoid(GLAPIENTRY *qglFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
71 extern GLvoid(GLAPIENTRY *qglGenFramebuffers)(GLsizei n, GLuint *framebuffers);
72 extern GLvoid(GLAPIENTRY *qglGenRenderbuffers)(GLsizei n, GLuint *renderbuffers);
73 extern GLvoid(GLAPIENTRY *qglGenerateMipmap)(GLenum target);
74 extern GLvoid(GLAPIENTRY *qglGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
75 extern GLvoid(GLAPIENTRY *qglGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params);
76 extern GLvoid(GLAPIENTRY *qglRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
77 extern GLvoid(GLAPIENTRY *qglRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
78 extern GLvoid* (GLAPIENTRY *qglMapBuffer) (GLenum target, GLenum access);
79 extern const GLubyte* (GLAPIENTRY *qglGetString)(GLenum name);
80 extern void (GLAPIENTRY *qglActiveTexture)(GLenum texture);
81 extern void (GLAPIENTRY *qglAttachShader)(GLuint containerObj, GLuint obj);
82 extern void (GLAPIENTRY *qglBeginQuery)(GLenum target, GLuint qid);
83 extern void (GLAPIENTRY *qglBindAttribLocation)(GLuint programObj, GLuint index, const GLchar *name);
84 extern void (GLAPIENTRY *qglBindBuffer) (GLenum target, GLuint buffer);
85 extern void (GLAPIENTRY *qglBindBufferBase)(GLenum target, GLuint index, GLuint buffer);
86 extern void (GLAPIENTRY *qglBindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
87 extern void (GLAPIENTRY *qglBindFragDataLocation)(GLuint programObj, GLuint index, const GLchar *name);
88 extern void (GLAPIENTRY *qglBindTexture)(GLenum target, GLuint texture);
89 extern void (GLAPIENTRY *qglBlendEquation)(GLenum); // also supplied by GL_blend_subtract
90 extern void (GLAPIENTRY *qglBlendFunc)(GLenum sfactor, GLenum dfactor);
91 extern void (GLAPIENTRY *qglBlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
92 extern void (GLAPIENTRY *qglBufferData) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
93 extern void (GLAPIENTRY *qglBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
94 extern void (GLAPIENTRY *qglClear)(GLbitfield mask);
95 extern void (GLAPIENTRY *qglClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
96 extern void (GLAPIENTRY *qglClearDepth)(GLclampd depth);
97 extern void (GLAPIENTRY *qglClearStencil)(GLint s);
98 extern void (GLAPIENTRY *qglColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
99 extern void (GLAPIENTRY *qglCompileShader)(GLuint shaderObj);
100 extern void (GLAPIENTRY *qglCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
101 extern void (GLAPIENTRY *qglCompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data);
102 extern void (GLAPIENTRY *qglCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
103 extern void (GLAPIENTRY *qglCompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
104 extern void (GLAPIENTRY *qglCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
105 extern void (GLAPIENTRY *qglCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
106 extern void (GLAPIENTRY *qglCopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
107 extern void (GLAPIENTRY *qglCullFace)(GLenum mode);
108 extern void (GLAPIENTRY *qglDebugMessageCallbackARB)(GLDEBUGPROCARB callback, const GLvoid* userParam);
109 extern void (GLAPIENTRY *qglDebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
110 extern void (GLAPIENTRY *qglDebugMessageInsertARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf);
111 extern void (GLAPIENTRY *qglDeleteBuffers) (GLsizei n, const GLuint *buffers);
112 extern void (GLAPIENTRY *qglDeleteProgram)(GLuint obj);
113 extern void (GLAPIENTRY *qglDeleteQueries)(GLsizei n, const GLuint *ids);
114 extern void (GLAPIENTRY *qglDeleteShader)(GLuint obj);
115 extern void (GLAPIENTRY *qglDeleteTextures)(GLsizei n, const GLuint *textures);
116 extern void (GLAPIENTRY *qglDepthFunc)(GLenum func);
117 extern void (GLAPIENTRY *qglDepthMask)(GLboolean flag);
118 extern void (GLAPIENTRY *qglDepthRange)(GLclampd near_val, GLclampd far_val);
119 extern void (GLAPIENTRY *qglDepthRangef)(GLclampf near_val, GLclampf far_val);
120 extern void (GLAPIENTRY *qglDetachShader)(GLuint containerObj, GLuint attachedObj);
121 extern void (GLAPIENTRY *qglDisable)(GLenum cap);
122 extern void (GLAPIENTRY *qglDisableVertexAttribArray)(GLuint index);
123 extern void (GLAPIENTRY *qglDrawArrays)(GLenum mode, GLint first, GLsizei count);
124 extern void (GLAPIENTRY *qglDrawBuffer)(GLenum mode);
125 extern void (GLAPIENTRY *qglDrawBuffers)(GLsizei n, const GLenum *bufs);
126 extern void (GLAPIENTRY *qglDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
127 extern void (GLAPIENTRY *qglEnable)(GLenum cap);
128 extern void (GLAPIENTRY *qglEnableVertexAttribArray)(GLuint index);
129 extern void (GLAPIENTRY *qglEndQuery)(GLenum target);
130 extern void (GLAPIENTRY *qglFinish)(void);
131 extern void (GLAPIENTRY *qglFlush)(void);
132 extern void (GLAPIENTRY *qglGenBuffers) (GLsizei n, GLuint *buffers);
133 extern void (GLAPIENTRY *qglGenQueries)(GLsizei n, GLuint *ids);
134 extern void (GLAPIENTRY *qglGenTextures)(GLsizei n, GLuint *textures);
135 extern void (GLAPIENTRY *qglGetActiveAttrib)(GLuint programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
136 extern void (GLAPIENTRY *qglGetActiveUniform)(GLuint programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
137 extern void (GLAPIENTRY *qglGetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, char* uniformBlockName);
138 extern void (GLAPIENTRY *qglGetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
139 extern void (GLAPIENTRY *qglGetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, char* uniformName);
140 extern void (GLAPIENTRY *qglGetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
141 extern void (GLAPIENTRY *qglGetAttachedShaders)(GLuint containerObj, GLsizei maxCount, GLsizei *count, GLuint *obj);
142 extern void (GLAPIENTRY *qglGetBooleanv)(GLenum pname, GLboolean *params);
143 extern void (GLAPIENTRY *qglGetCompressedTexImage)(GLenum target, GLint lod, void *img);
144 extern void (GLAPIENTRY *qglGetDoublev)(GLenum pname, GLdouble *params);
145 extern void (GLAPIENTRY *qglGetFloatv)(GLenum pname, GLfloat *params);
146 extern void (GLAPIENTRY *qglGetIntegeri_v)(GLenum target, GLuint index, GLint* data);
147 extern void (GLAPIENTRY *qglGetIntegerv)(GLenum pname, GLint *params);
148 extern void (GLAPIENTRY *qglGetPointerv)(GLenum pname, GLvoid** params);
149 extern void (GLAPIENTRY *qglGetProgramInfoLog)(GLuint obj, GLsizei maxLength, GLsizei *length, GLchar *infoLog);
150 extern void (GLAPIENTRY *qglGetProgramiv)(GLuint obj, GLenum pname, GLint *params);
151 extern void (GLAPIENTRY *qglGetQueryObjectiv)(GLuint qid, GLenum pname, GLint *params);
152 extern void (GLAPIENTRY *qglGetQueryObjectuiv)(GLuint qid, GLenum pname, GLuint *params);
153 extern void (GLAPIENTRY *qglGetQueryiv)(GLenum target, GLenum pname, GLint *params);
154 extern void (GLAPIENTRY *qglGetShaderInfoLog)(GLuint obj, GLsizei maxLength, GLsizei *length, GLchar *infoLog);
155 extern void (GLAPIENTRY *qglGetShaderSource)(GLuint obj, GLsizei maxLength, GLsizei *length, GLchar *source);
156 extern void (GLAPIENTRY *qglGetShaderiv)(GLuint obj, GLenum pname, GLint *params);
157 extern void (GLAPIENTRY *qglGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
158 extern void (GLAPIENTRY *qglGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
159 extern void (GLAPIENTRY *qglGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
160 extern void (GLAPIENTRY *qglGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
161 extern void (GLAPIENTRY *qglGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
162 extern void (GLAPIENTRY *qglGetUniformIndices)(GLuint program, GLsizei uniformCount, const char** uniformNames, GLuint* uniformIndices);
163 extern void (GLAPIENTRY *qglGetUniformfv)(GLuint programObj, GLint location, GLfloat *params);
164 extern void (GLAPIENTRY *qglGetUniformiv)(GLuint programObj, GLint location, GLint *params);
165 extern void (GLAPIENTRY *qglGetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid **pointer);
166 extern void (GLAPIENTRY *qglGetVertexAttribdv)(GLuint index, GLenum pname, GLdouble *params);
167 extern void (GLAPIENTRY *qglGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat *params);
168 extern void (GLAPIENTRY *qglGetVertexAttribiv)(GLuint index, GLenum pname, GLint *params);
169 extern void (GLAPIENTRY *qglHint)(GLenum target, GLenum mode);
170 extern void (GLAPIENTRY *qglLinkProgram)(GLuint programObj);
171 extern void (GLAPIENTRY *qglPixelStorei)(GLenum pname, GLint param);
172 extern void (GLAPIENTRY *qglPointSize)(GLfloat size);
173 extern void (GLAPIENTRY *qglPolygonMode)(GLenum face, GLenum mode);
174 extern void (GLAPIENTRY *qglPolygonOffset)(GLfloat factor, GLfloat units);
175 extern void (GLAPIENTRY *qglReadBuffer)(GLenum mode);
176 extern void (GLAPIENTRY *qglReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
177 extern void (GLAPIENTRY *qglSampleCoverage)(GLclampf value, GLboolean invert);
178 extern void (GLAPIENTRY *qglScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
179 extern void (GLAPIENTRY *qglShaderSource)(GLuint shaderObj, GLsizei count, const GLchar **string, const GLint *length);
180 extern void (GLAPIENTRY *qglStencilFunc)(GLenum func, GLint ref, GLuint mask);
181 extern void (GLAPIENTRY *qglStencilMask)(GLuint mask);
182 extern void (GLAPIENTRY *qglStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
183 extern void (GLAPIENTRY *qglTexImage2D)(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
184 extern void (GLAPIENTRY *qglTexImage3D)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
185 extern void (GLAPIENTRY *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param);
186 extern void (GLAPIENTRY *qglTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
187 extern void (GLAPIENTRY *qglTexParameteri)(GLenum target, GLenum pname, GLint param);
188 extern void (GLAPIENTRY *qglTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
189 extern void (GLAPIENTRY *qglTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
190 extern void (GLAPIENTRY *qglUniform1f)(GLint location, GLfloat v0);
191 extern void (GLAPIENTRY *qglUniform1fv)(GLint location, GLsizei count, const GLfloat *value);
192 extern void (GLAPIENTRY *qglUniform1i)(GLint location, GLint v0);
193 extern void (GLAPIENTRY *qglUniform1iv)(GLint location, GLsizei count, const GLint *value);
194 extern void (GLAPIENTRY *qglUniform2f)(GLint location, GLfloat v0, GLfloat v1);
195 extern void (GLAPIENTRY *qglUniform2fv)(GLint location, GLsizei count, const GLfloat *value);
196 extern void (GLAPIENTRY *qglUniform2i)(GLint location, GLint v0, GLint v1);
197 extern void (GLAPIENTRY *qglUniform2iv)(GLint location, GLsizei count, const GLint *value);
198 extern void (GLAPIENTRY *qglUniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
199 extern void (GLAPIENTRY *qglUniform3fv)(GLint location, GLsizei count, const GLfloat *value);
200 extern void (GLAPIENTRY *qglUniform3i)(GLint location, GLint v0, GLint v1, GLint v2);
201 extern void (GLAPIENTRY *qglUniform3iv)(GLint location, GLsizei count, const GLint *value);
202 extern void (GLAPIENTRY *qglUniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
203 extern void (GLAPIENTRY *qglUniform4fv)(GLint location, GLsizei count, const GLfloat *value);
204 extern void (GLAPIENTRY *qglUniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
205 extern void (GLAPIENTRY *qglUniform4iv)(GLint location, GLsizei count, const GLint *value);
206 extern void (GLAPIENTRY *qglUniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
207 extern void (GLAPIENTRY *qglUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
208 extern void (GLAPIENTRY *qglUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
209 extern void (GLAPIENTRY *qglUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
210 extern void (GLAPIENTRY *qglUseProgram)(GLuint programObj);
211 extern void (GLAPIENTRY *qglValidateProgram)(GLuint programObj);
212 extern void (GLAPIENTRY *qglVertexAttrib1d)(GLuint index, GLdouble v0);
213 extern void (GLAPIENTRY *qglVertexAttrib1dv)(GLuint index, const GLdouble *v);
214 extern void (GLAPIENTRY *qglVertexAttrib1f)(GLuint index, GLfloat v0);
215 extern void (GLAPIENTRY *qglVertexAttrib1fv)(GLuint index, const GLfloat *v);
216 extern void (GLAPIENTRY *qglVertexAttrib1s)(GLuint index, GLshort v0);
217 extern void (GLAPIENTRY *qglVertexAttrib1sv)(GLuint index, const GLshort *v);
218 extern void (GLAPIENTRY *qglVertexAttrib2d)(GLuint index, GLdouble v0, GLdouble v1);
219 extern void (GLAPIENTRY *qglVertexAttrib2dv)(GLuint index, const GLdouble *v);
220 extern void (GLAPIENTRY *qglVertexAttrib2f)(GLuint index, GLfloat v0, GLfloat v1);
221 extern void (GLAPIENTRY *qglVertexAttrib2fv)(GLuint index, const GLfloat *v);
222 extern void (GLAPIENTRY *qglVertexAttrib2s)(GLuint index, GLshort v0, GLshort v1);
223 extern void (GLAPIENTRY *qglVertexAttrib2sv)(GLuint index, const GLshort *v);
224 extern void (GLAPIENTRY *qglVertexAttrib3d)(GLuint index, GLdouble v0, GLdouble v1, GLdouble v2);
225 extern void (GLAPIENTRY *qglVertexAttrib3dv)(GLuint index, const GLdouble *v);
226 extern void (GLAPIENTRY *qglVertexAttrib3f)(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2);
227 extern void (GLAPIENTRY *qglVertexAttrib3fv)(GLuint index, const GLfloat *v);
228 extern void (GLAPIENTRY *qglVertexAttrib3s)(GLuint index, GLshort v0, GLshort v1, GLshort v2);
229 extern void (GLAPIENTRY *qglVertexAttrib3sv)(GLuint index, const GLshort *v);
230 extern void (GLAPIENTRY *qglVertexAttrib4Nbv)(GLuint index, const GLbyte *v);
231 extern void (GLAPIENTRY *qglVertexAttrib4Niv)(GLuint index, const GLint *v);
232 extern void (GLAPIENTRY *qglVertexAttrib4Nsv)(GLuint index, const GLshort *v);
233 extern void (GLAPIENTRY *qglVertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
234 extern void (GLAPIENTRY *qglVertexAttrib4Nubv)(GLuint index, const GLubyte *v);
235 extern void (GLAPIENTRY *qglVertexAttrib4Nuiv)(GLuint index, const GLuint *v);
236 extern void (GLAPIENTRY *qglVertexAttrib4Nusv)(GLuint index, const GLushort *v);
237 extern void (GLAPIENTRY *qglVertexAttrib4bv)(GLuint index, const GLbyte *v);
238 extern void (GLAPIENTRY *qglVertexAttrib4d)(GLuint index, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
239 extern void (GLAPIENTRY *qglVertexAttrib4dv)(GLuint index, const GLdouble *v);
240 extern void (GLAPIENTRY *qglVertexAttrib4f)(GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
241 extern void (GLAPIENTRY *qglVertexAttrib4fv)(GLuint index, const GLfloat *v);
242 extern void (GLAPIENTRY *qglVertexAttrib4iv)(GLuint index, const GLint *v);
243 extern void (GLAPIENTRY *qglVertexAttrib4s)(GLuint index, GLshort v0, GLshort v1, GLshort v2, GLshort v3);
244 extern void (GLAPIENTRY *qglVertexAttrib4sv)(GLuint index, const GLshort *v);
245 extern void (GLAPIENTRY *qglVertexAttrib4ubv)(GLuint index, const GLubyte *v);
246 extern void (GLAPIENTRY *qglVertexAttrib4uiv)(GLuint index, const GLuint *v);
247 extern void (GLAPIENTRY *qglVertexAttrib4usv)(GLuint index, const GLushort *v);
248 extern void (GLAPIENTRY *qglVertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
249 extern void (GLAPIENTRY *qglViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
250 typedef void (GLAPIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const GLvoid* userParam);
251 #else
252 #define qglActiveTexture glActiveTexture
253 #define qglAttachShader glAttachShader
254 #define qglBeginQuery glBeginQuery
255 #define qglBindAttribLocation glBindAttribLocation
256 #define qglBindBuffer glBindBuffer
257 #define qglBindBufferBase glBindBufferBase
258 #define qglBindBufferRange glBindBufferRange
259 #define qglBindFragDataLocation glBindFragDataLocation
260 #define qglBindFramebuffer glBindFramebuffer
261 #define qglBindRenderbuffer glBindRenderbuffer
262 #define qglBindTexture glBindTexture
263 #define qglBlendEquation glBlendEquation
264 #define qglBlendFunc glBlendFunc
265 #define qglBlendFuncSeparate glBlendFuncSeparate
266 #define qglBlitFramebuffer glBlitFramebuffer
267 #define qglBufferData glBufferData
268 #define qglBufferSubData glBufferSubData
269 #define qglCheckFramebufferStatus glCheckFramebufferStatus
270 #define qglClear glClear
271 #define qglClearColor glClearColor
272 #define qglClearDepth glClearDepth
273 #define qglClearStencil glClearStencil
274 #define qglColorMask glColorMask
275 #define qglCompileShader glCompileShader
276 #define qglCompressedTexImage2D glCompressedTexImage2D
277 #define qglCompressedTexImage3D glCompressedTexImage3D
278 #define qglCompressedTexSubImage2D glCompressedTexSubImage2D
279 #define qglCompressedTexSubImage3D glCompressedTexSubImage3D
280 #define qglCopyTexImage2D glCopyTexImage2D
281 #define qglCopyTexSubImage2D glCopyTexSubImage2D
282 #define qglCopyTexSubImage3D glCopyTexSubImage3D
283 #define qglCreateProgram glCreateProgram
284 #define qglCreateShader glCreateShader
285 #define qglCullFace glCullFace
286 #define qglDebugMessageCallbackARB glDebugMessageCallbackARB
287 #define qglDebugMessageControlARB glDebugMessageControlARB
288 #define qglDebugMessageInsertARB glDebugMessageInsertARB
289 #define qglDeleteBuffers glDeleteBuffers
290 #define qglDeleteFramebuffers glDeleteFramebuffers
291 #define qglDeleteProgram glDeleteProgram
292 #define qglDeleteQueries glDeleteQueries
293 #define qglDeleteRenderbuffers glDeleteRenderbuffers
294 #define qglDeleteShader glDeleteShader
295 #define qglDeleteTextures glDeleteTextures
296 #define qglDepthFunc glDepthFunc
297 #define qglDepthMask glDepthMask
298 #define qglDepthRange glDepthRange
299 #define qglDepthRangef glDepthRangef
300 #define qglDetachShader glDetachShader
301 #define qglDisable glDisable
302 #define qglDisableVertexAttribArray glDisableVertexAttribArray
303 #define qglDrawArrays glDrawArrays
304 #define qglDrawBuffer glDrawBuffer
305 #define qglDrawBuffers glDrawBuffers
306 #define qglDrawElements glDrawElements
307 #define qglEnable glEnable
308 #define qglEnableVertexAttribArray glEnableVertexAttribArray
309 #define qglEndQuery glEndQuery
310 #define qglFinish glFinish
311 #define qglFlush glFlush
312 #define qglFramebufferRenderbuffer glFramebufferRenderbuffer
313 #define qglFramebufferTexture1D glFramebufferTexture1D
314 #define qglFramebufferTexture2D glFramebufferTexture2D
315 #define qglFramebufferTexture3D glFramebufferTexture3D
316 #define qglFramebufferTextureLayer glFramebufferTextureLayer
317 #define qglGenBuffers glGenBuffers
318 #define qglGenFramebuffers glGenFramebuffers
319 #define qglGenQueries glGenQueries
320 #define qglGenRenderbuffers glGenRenderbuffers
321 #define qglGenTextures glGenTextures
322 #define qglGenerateMipmap glGenerateMipmap
323 #define qglGetActiveAttrib glGetActiveAttrib
324 #define qglGetActiveUniform glGetActiveUniform
325 #define qglGetActiveUniformBlockName glGetActiveUniformBlockName
326 #define qglGetActiveUniformBlockiv glGetActiveUniformBlockiv
327 #define qglGetActiveUniformName glGetActiveUniformName
328 #define qglGetActiveUniformsiv glGetActiveUniformsiv
329 #define qglGetAttachedShaders glGetAttachedShaders
330 #define qglGetAttribLocation glGetAttribLocation
331 #define qglGetBooleanv glGetBooleanv
332 #define qglGetCompressedTexImage glGetCompressedTexImage
333 #define qglGetDebugMessageLogARB glGetDebugMessageLogARB
334 #define qglGetDoublev glGetDoublev
335 #define qglGetError glGetError
336 #define qglGetFloatv glGetFloatv
337 #define qglGetFramebufferAttachmentParameteriv glGetFramebufferAttachmentParameteriv
338 #define qglGetIntegeri_v glGetIntegeri_v
339 #define qglGetIntegerv glGetIntegerv
340 #define qglGetPointerv glGetPointerv
341 #define qglGetProgramInfoLog glGetProgramInfoLog
342 #define qglGetProgramiv glGetProgramiv
343 #define qglGetQueryObjectiv glGetQueryObjectiv
344 #define qglGetQueryObjectuiv glGetQueryObjectuiv
345 #define qglGetQueryiv glGetQueryiv
346 #define qglGetRenderbufferParameteriv glGetRenderbufferParameteriv
347 #define qglGetShaderInfoLog glGetShaderInfoLog
348 #define qglGetShaderSource glGetShaderSource
349 #define qglGetShaderiv glGetShaderiv
350 #define qglGetString glGetString
351 #define qglGetTexImage glGetTexImage
352 #define qglGetTexLevelParameterfv glGetTexLevelParameterfv
353 #define qglGetTexLevelParameteriv glGetTexLevelParameteriv
354 #define qglGetTexParameterfv glGetTexParameterfv
355 #define qglGetTexParameteriv glGetTexParameteriv
356 #define qglGetUniformBlockIndex glGetUniformBlockIndex
357 #define qglGetUniformIndices glGetUniformIndices
358 #define qglGetUniformLocation glGetUniformLocation
359 #define qglGetUniformfv glGetUniformfv
360 #define qglGetUniformiv glGetUniformiv
361 #define qglGetVertexAttribPointerv glGetVertexAttribPointerv
362 #define qglGetVertexAttribdv glGetVertexAttribdv
363 #define qglGetVertexAttribfv glGetVertexAttribfv
364 #define qglGetVertexAttribiv glGetVertexAttribiv
365 #define qglHint glHint
366 #define qglIsBuffer glIsBuffer
367 #define qglIsEnabled glIsEnabled
368 #define qglIsFramebuffer glIsFramebuffer
369 #define qglIsQuery glIsQuery
370 #define qglIsRenderbuffer glIsRenderbuffer
371 #define qglLinkProgram glLinkProgram
372 #define qglMapBuffer glMapBuffer
373 #define qglPixelStorei glPixelStorei
374 #define qglPointSize glPointSize
375 #define qglPolygonMode glPolygonMode
376 #define qglPolygonOffset glPolygonOffset
377 #define qglReadBuffer glReadBuffer
378 #define qglReadPixels glReadPixels
379 #define qglRenderbufferStorage glRenderbufferStorage
380 #define qglRenderbufferStorageMultisample glRenderbufferStorageMultisample
381 #define qglSampleCoverage glSampleCoverage
382 #define qglScissor glScissor
383 #define qglShaderSource glShaderSource
384 #define qglStencilFunc glStencilFunc
385 #define qglStencilMask glStencilMask
386 #define qglStencilOp glStencilOp
387 #define qglTexImage2D glTexImage2D
388 #define qglTexImage3D glTexImage3D
389 #define qglTexParameterf glTexParameterf
390 #define qglTexParameterfv glTexParameterfv
391 #define qglTexParameteri glTexParameteri
392 #define qglTexSubImage2D glTexSubImage2D
393 #define qglTexSubImage3D glTexSubImage3D
394 #define qglUniform1f glUniform1f
395 #define qglUniform1fv glUniform1fv
396 #define qglUniform1i glUniform1i
397 #define qglUniform1iv glUniform1iv
398 #define qglUniform2f glUniform2f
399 #define qglUniform2fv glUniform2fv
400 #define qglUniform2i glUniform2i
401 #define qglUniform2iv glUniform2iv
402 #define qglUniform3f glUniform3f
403 #define qglUniform3fv glUniform3fv
404 #define qglUniform3i glUniform3i
405 #define qglUniform3iv glUniform3iv
406 #define qglUniform4f glUniform4f
407 #define qglUniform4fv glUniform4fv
408 #define qglUniform4i glUniform4i
409 #define qglUniform4iv glUniform4iv
410 #define qglUniformBlockBinding glUniformBlockBinding
411 #define qglUniformMatrix2fv glUniformMatrix2fv
412 #define qglUniformMatrix3fv glUniformMatrix3fv
413 #define qglUniformMatrix4fv glUniformMatrix4fv
414 #define qglUnmapBuffer glUnmapBuffer
415 #define qglUseProgram glUseProgram
416 #define qglValidateProgram glValidateProgram
417 #define qglVertexAttrib1d glVertexAttrib1d
418 #define qglVertexAttrib1dv glVertexAttrib1dv
419 #define qglVertexAttrib1f glVertexAttrib1f
420 #define qglVertexAttrib1fv glVertexAttrib1fv
421 #define qglVertexAttrib1s glVertexAttrib1s
422 #define qglVertexAttrib1sv glVertexAttrib1sv
423 #define qglVertexAttrib2d glVertexAttrib2d
424 #define qglVertexAttrib2dv glVertexAttrib2dv
425 #define qglVertexAttrib2f glVertexAttrib2f
426 #define qglVertexAttrib2fv glVertexAttrib2fv
427 #define qglVertexAttrib2s glVertexAttrib2s
428 #define qglVertexAttrib2sv glVertexAttrib2sv
429 #define qglVertexAttrib3d glVertexAttrib3d
430 #define qglVertexAttrib3dv glVertexAttrib3dv
431 #define qglVertexAttrib3f glVertexAttrib3f
432 #define qglVertexAttrib3fv glVertexAttrib3fv
433 #define qglVertexAttrib3s glVertexAttrib3s
434 #define qglVertexAttrib3sv glVertexAttrib3sv
435 #define qglVertexAttrib4Nbv glVertexAttrib4Nbv
436 #define qglVertexAttrib4Niv glVertexAttrib4Niv
437 #define qglVertexAttrib4Nsv glVertexAttrib4Nsv
438 #define qglVertexAttrib4Nub glVertexAttrib4Nub
439 #define qglVertexAttrib4Nubv glVertexAttrib4Nubv
440 #define qglVertexAttrib4Nuiv glVertexAttrib4Nuiv
441 #define qglVertexAttrib4Nusv glVertexAttrib4Nusv
442 #define qglVertexAttrib4bv glVertexAttrib4bv
443 #define qglVertexAttrib4d glVertexAttrib4d
444 #define qglVertexAttrib4dv glVertexAttrib4dv
445 #define qglVertexAttrib4f glVertexAttrib4f
446 #define qglVertexAttrib4fv glVertexAttrib4fv
447 #define qglVertexAttrib4iv glVertexAttrib4iv
448 #define qglVertexAttrib4s glVertexAttrib4s
449 #define qglVertexAttrib4sv glVertexAttrib4sv
450 #define qglVertexAttrib4ubv glVertexAttrib4ubv
451 #define qglVertexAttrib4uiv glVertexAttrib4uiv
452 #define qglVertexAttrib4usv glVertexAttrib4usv
453 #define qglVertexAttribPointer glVertexAttribPointer
454 #define qglViewport glViewport
455 #endif
456
457 #endif