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