ovr_sdk

view LibOVR/Src/CAPI/GL/CAPI_GLE.h @ 0:1b39a1b46319

initial 0.4.4
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 14 Jan 2015 06:51:16 +0200
parents
children
line source
1 /************************************************************************************
3 Filename : CAPI_GLE.h
4 Content : OpenGL extensions support. Implements a stripped down glew-like
5 interface with some additional functionality.
6 Copyright : Copyright 2014 Oculus VR, LLC All Rights reserved.
8 Licensed under the Apache License, Version 2.0 (the "License");
9 you may not use this file except in compliance with the License.
10 You may obtain a copy of the License at
12 http://www.apache.org/licenses/LICENSE-2.0
14 Unless required by applicable law or agreed to in writing, software
15 distributed under the License is distributed on an "AS IS" BASIS,
16 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 See the License for the specific language governing permissions and
18 limitations under the License.
20 ************************************************************************************/
22 // This file provides functionality similar to a reduced version of GLEW, plus some
23 // additional functionality that's useful to us, such as function hooking.
25 #ifndef INC_OVR_CAPI_GLE_h
26 #define INC_OVR_CAPI_GLE_h
29 #include "../../Kernel/OVR_Types.h"
30 #include "CAPI_GLE_GL.h"
33 ///////////////////////////////////////////////////////////////////////////////
34 // How to use this functionality
35 //
36 // - You #include this header instead of gl.h, glext.h, wglext.h (Windows), gl3.h (Apple), gl3ext.h (Apple), glx.h (Unix), and glxext.h (Unix).
37 // Currently you still would #include <Windows.h> for the base wgl functions on Windows and OpenGL.h or NSOpenGL for the
38 // base Apple cgl functions.
39 //
40 // - You call OpenGL functions just like you would if you were directly using OpenGL
41 // headers and declarations. The difference is that this module automatically loads
42 // extensions on init and so you should never need to use GetProcAddress, wglGetProcAddress, etc.
43 //
44 // - OpenGL 1.1 functions can be called unilaterally without checking if they are present,
45 // as it's assumed they are always present.
46 //
47 // - In order to use an OpenGL 1.2 or later function you can check the GLEContext::WholeVersion
48 // variable to tell what version of OpenGL is present and active. Example usage:
49 // if(GLEContext::GetCurrentContext()->WholeVersion >= 302) // If OpenGL 3.2 or later...
50 //
51 // - In order to use an OpenGL extension, you can check the GLE_ helper macro that exists for each
52 // extension. For example, in order to check of the KHR_debug is present you could do this:
53 // if(GLE_KHR_debug) ...
54 // You cannot check for the presence of extensions by testing the function pointer, because
55 // when hooking is enabled then we aren't using function pointers and thus all functions will
56 // look like they are present.
57 //
58 // - You can test if the OpenGL implementation is OpenGL ES by checking the GLEContext IsGLES
59 // member variable. For example: if(GLEContext::GetCurrentContext()->IsGLES) ...
60 //
61 // - You can test if the OpenGL implementation is a core profile ES by checking the GLEContext IsCoreProfile
62 // member variable. For example: if(GLEContext::GetCurrentContext()->IsCoreProfile) ...
63 //
64 ///////////////////////////////////////////////////////////////////////////////
67 ///////////////////////////////////////////////////////////////////////////////
68 // How to add support for additional functions to this module.
69 //
70 // For an example of how to do this, search the source files for all cases of KHR_Debug and just copy
71 // the things that it does but for your new extension.
72 //
73 // 1) Add the appropriate extension declaration to CAPI_GLE_GL.h, preferably by
74 // copying it from the standard header file it normally comes from. If it's
75 // platform-specific (e.g. a Windows wgl function) then make sure it's declared
76 // within the given platform section. Note that there are potentially #defines, typedefs,
77 // function typedefs, and function #defines. There is always a GLE_ macro declared which
78 // lets the user know at runtime whether the extension is present.
79 // e.g. #ifndef GL_KHR_debug
80 // #define GL_KHR_debug 1
81 // #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 etc.
82 // typedef void (GLAPIENTRY * PFNGLPOPDEBUGGROUPPROC) ();
83 // #define glPopDebugGroup GLEGetCurrentFunction(glPopDebugGroup)
84 // #define GLE_KHR_debug GLEGetCurrentVariable(gl_KHR_debug)
85 // #endif etc.
86 //
87 // 2) Add a hook function for in the hook section of the GLEContext class in this header,
88 // ideally in the same order it's declared in the CAPI_GLE_GL.h so it's easily readable.
89 // e.g. void glDebugMessageControl_Hook(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); etc.
90 //
91 // 3) Add a declaration for each interface function to the GLEContext class in this header.
92 // e.g. PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback_Impl; etc.
93 //
94 // 4) Add code to GLEContext::InitExtensionLoad to load the function pointer.
95 // e.g. GLELoadProc(glDebugMessageCallback_Impl, glDebugMessageCallback); etc.
96 //
97 // 5) Add code to GLEContext::InitExtensionSupport to detect the extension support.
98 // e.g. { gl_KHR_debug, "GL_KHR_debug" }, etc.
99 //
100 // 6) Implement the GLEContext hook function(s) you declared.
101 // e.g. void OVR::GLEContext::glDebugMessageControl_Hook(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled)
102 // {
103 // if(glDebugMessageControl_Impl)
104 // glDebugMessageControl_Impl(source, type, severity, count, ids, enabled);
105 // PostHook();
106 // }
107 //
108 // Note that if the extension is a WGL-, GLX-, or CGL-specific extension, they are handled like above
109 // but are in their own section below the section for regular OpenGL extensions.
110 //
111 // In some cases the given interface may already be present by currently commented out,
112 // in which case you can simply un-comment it to enable it.
113 ///////////////////////////////////////////////////////////////////////////////
116 namespace OVR
117 {
118 // Generic OpenGL GetProcAddress function interface. Maps to platform-specific functionality
119 // internally. On Windows this is equivalent to wglGetProcAddress as opposed to global GetProcAddress.
120 void* GLEGetProcAddress(const char* name);
123 // GLEContext
124 //
125 // Manages a collection of OpenGL extension interfaces.
126 // If the application has multiple OpenGL unrelated contexts then you will want to create a
127 // different instance of this class for each one you intend to use it with.
128 //
129 // Example usage:
130 // GLEContext gGLEContext;
131 //
132 // GLEContext::SetCurrentContext(&gGLEContext);
133 // gGLEContext.PlatformInit(); // Initializes WGL/GLX/etc. platform-specific OpenGL functionality
134 //
135 // if(GLE_WGL_ARB_create_context) // If wglCreateContextAttribsARB is available...
136 // {
137 // int attribList[] = { WGL_CONTEXT_MAJOR_VERSION_ARB, 3, WGL_CONTEXT_MINOR_VERSION_ARB, 2, WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_DEBUG_BIT_ARB, None };
138 // HGLRC h = wglCreateContextAttribsARB(hDC, 0, attribList);
139 // [...]
140 // }
141 //
142 // gGLEContext.Init(); // Must be called after an OpenGL context has been created.
143 //
144 // if(GLE_WHOLE_VERSION() >= 302) // If OpenGL 3.2 or later
145 // {
146 // glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, someTexture, 0); // This is an OpenGL 3.2 function.
147 // [...]
148 // }
149 //
150 // if(GLE_GL_ARB_texture_multisample) // If the GL_ARB_texture_multisample extension is available...
151 // {
152 // glEnable(GL_SAMPLE_MASK);
153 // glSampleMaski(0, 0x1);
154 // [...]
155 // }
156 //
157 // [...]
158 //
159 // gGLEContext.Shutdown();
160 //
161 GLE_CLASS_EXPORT class GLEContext
162 {
163 public:
164 GLEContext();
165 ~GLEContext();
167 // Initializes platform-specific functionality (e.g. Windows WGL, Unix GLX, Android EGL, Apple CGL).
168 // You would typically call this before creating an OpenGL context and using platform-specific functions.
169 void PlatformInit();
170 bool IsPlatformInitialized() const;
172 // Loads all the extensions from the current OpenGL context. This must be called after an OpenGL context
173 // has been created and made current.
174 void Init();
175 bool IsInitialized() const;
177 // Clears all the extensions initialized by PlatformInit and Init.
178 void Shutdown();
180 void SetEnableHookGetError(bool enabled)
181 { EnableHookGetError = enabled; }
183 // Returns the default instance of this class.
184 static GLEContext* GetCurrentContext();
186 // Sets the default instance of this class. This should be called after enabling a new OpenGL context.
187 // This sets the current GLEContext; it does not set the underlying OpenGL context itself.
188 static void SetCurrentContext(GLEContext*);
190 public:
191 // OpenGL version information
192 int MajorVersion; // Best guess at major version
193 int MinorVersion; // Best guess at minor version
194 int WholeVersion; // Equals ((MajorVersion * 100) + MinorVersion). Example usage: if(glv.WholeVersion >= 302) // If OpenGL v3.02+ ...
195 bool IsGLES; // Open GL ES?
196 bool IsCoreProfile; // Is the current OpenGL context a core profile context? Its trueness may be a false positive but will never be a false negative.
197 bool EnableHookGetError; // If enabled then hook functions call glGetError after making the call.
199 int PlatformMajorVersion; // GLX/WGL/EGL/CGL version. Not the same as OpenGL version.
200 int PlatformMinorVersion;
201 int PlatformWholeVersion;
203 void InitVersion(); // Initializes the version information (e.g. MajorVersion). Called by the public Init function.
204 void InitExtensionLoad(); // Loads the function addresses into the function pointers.
205 void InitExtensionSupport(); // Loads the boolean extension support booleans.
207 void InitPlatformVersion();
208 void InitPlatformExtensionLoad();
209 void InitPlatformExtensionSupport();
211 public:
212 // GL_VERSION_1_1
213 // Not normally included because all OpenGL 1.1 functionality is always present. But if we have
214 // hooking enabled then we implement our own version of each function.
215 #if defined(GLE_HOOKING_ENABLED)
216 //void PreHook(const char* functionName); // Called at the beginning of a hook function.
217 void PostHook(const char* functionName); // Called at the end of a hook function.
219 void glAccum_Hook(GLenum op, GLfloat value);
220 void glAlphaFunc_Hook(GLenum func, GLclampf ref);
221 GLboolean glAreTexturesResident_Hook(GLsizei n, const GLuint *textures, GLboolean *residences);
222 void glArrayElement_Hook(GLint i);
223 void glBegin_Hook(GLenum mode);
224 void glBindTexture_Hook(GLenum target, GLuint texture);
225 void glBitmap_Hook(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
226 void glBlendFunc_Hook(GLenum sfactor, GLenum dfactor);
227 void glCallList_Hook(GLuint list);
228 void glCallLists_Hook(GLsizei n, GLenum type, const void *lists);
229 void glClear_Hook(GLbitfield mask);
230 void glClearAccum_Hook(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
231 void glClearColor_Hook(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
232 void glClearDepth_Hook(GLclampd depth);
233 void glClearIndex_Hook(GLfloat c);
234 void glClearStencil_Hook(GLint s);
235 void glClipPlane_Hook(GLenum plane, const GLdouble *equation);
236 void glColor3b_Hook(GLbyte red, GLbyte green, GLbyte blue);
237 void glColor3bv_Hook(const GLbyte *v);
238 void glColor3d_Hook(GLdouble red, GLdouble green, GLdouble blue);
239 void glColor3dv_Hook(const GLdouble *v);
240 void glColor3f_Hook(GLfloat red, GLfloat green, GLfloat blue);
241 void glColor3fv_Hook(const GLfloat *v);
242 void glColor3i_Hook(GLint red, GLint green, GLint blue);
243 void glColor3iv_Hook(const GLint *v);
244 void glColor3s_Hook(GLshort red, GLshort green, GLshort blue);
245 void glColor3sv_Hook(const GLshort *v);
246 void glColor3ub_Hook(GLubyte red, GLubyte green, GLubyte blue);
247 void glColor3ubv_Hook(const GLubyte *v);
248 void glColor3ui_Hook(GLuint red, GLuint green, GLuint blue);
249 void glColor3uiv_Hook(const GLuint *v);
250 void glColor3us_Hook(GLushort red, GLushort green, GLushort blue);
251 void glColor3usv_Hook(const GLushort *v);
252 void glColor4b_Hook(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
253 void glColor4bv_Hook(const GLbyte *v);
254 void glColor4d_Hook(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
255 void glColor4dv_Hook(const GLdouble *v);
256 void glColor4f_Hook(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
257 void glColor4fv_Hook(const GLfloat *v);
258 void glColor4i_Hook(GLint red, GLint green, GLint blue, GLint alpha);
259 void glColor4iv_Hook(const GLint *v);
260 void glColor4s_Hook(GLshort red, GLshort green, GLshort blue, GLshort alpha);
261 void glColor4sv_Hook(const GLshort *v);
262 void glColor4ub_Hook(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
263 void glColor4ubv_Hook(const GLubyte *v);
264 void glColor4ui_Hook(GLuint red, GLuint green, GLuint blue, GLuint alpha);
265 void glColor4uiv_Hook(const GLuint *v);
266 void glColor4us_Hook(GLushort red, GLushort green, GLushort blue, GLushort alpha);
267 void glColor4usv_Hook(const GLushort *v);
268 void glColorMask_Hook(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
269 void glColorMaterial_Hook(GLenum face, GLenum mode);
270 void glColorPointer_Hook(GLint size, GLenum type, GLsizei stride, const void *pointer);
271 void glCopyPixels_Hook(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
272 void glCopyTexImage1D_Hook(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
273 void glCopyTexImage2D_Hook(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
274 void glCopyTexSubImage1D_Hook(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
275 void glCopyTexSubImage2D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
276 void glCullFace_Hook(GLenum mode);
277 void glDeleteLists_Hook(GLuint list, GLsizei range);
278 void glDeleteTextures_Hook(GLsizei n, const GLuint *textures);
279 void glDepthFunc_Hook(GLenum func);
280 void glDepthMask_Hook(GLboolean flag);
281 void glDepthRange_Hook(GLclampd zNear, GLclampd zFar);
282 void glDisable_Hook(GLenum cap);
283 void glDisableClientState_Hook(GLenum array);
284 void glDrawArrays_Hook(GLenum mode, GLint first, GLsizei count);
285 void glDrawBuffer_Hook(GLenum mode);
286 void glDrawElements_Hook(GLenum mode, GLsizei count, GLenum type, const void *indices);
287 void glDrawPixels_Hook(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
288 void glEdgeFlag_Hook(GLboolean flag);
289 void glEdgeFlagPointer_Hook(GLsizei stride, const void *pointer);
290 void glEdgeFlagv_Hook(const GLboolean *flag);
291 void glEnable_Hook(GLenum cap);
292 void glEnableClientState_Hook(GLenum array);
293 void glEnd_Hook(void);
294 void glEndList_Hook(void);
295 void glEvalCoord1d_Hook(GLdouble u);
296 void glEvalCoord1dv_Hook(const GLdouble *u);
297 void glEvalCoord1f_Hook(GLfloat u);
298 void glEvalCoord1fv_Hook(const GLfloat *u);
299 void glEvalCoord2d_Hook(GLdouble u, GLdouble v);
300 void glEvalCoord2dv_Hook(const GLdouble *u);
301 void glEvalCoord2f_Hook(GLfloat u, GLfloat v);
302 void glEvalCoord2fv_Hook(const GLfloat *u);
303 void glEvalMesh1_Hook(GLenum mode, GLint i1, GLint i2);
304 void glEvalMesh2_Hook(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
305 void glEvalPoint1_Hook(GLint i);
306 void glEvalPoint2_Hook(GLint i, GLint j);
307 void glFeedbackBuffer_Hook(GLsizei size, GLenum type, GLfloat *buffer);
308 void glFinish_Hook(void);
309 void glFlush_Hook(void);
310 void glFogf_Hook(GLenum pname, GLfloat param);
311 void glFogfv_Hook(GLenum pname, const GLfloat *params);
312 void glFogi_Hook(GLenum pname, GLint param);
313 void glFogiv_Hook(GLenum pname, const GLint *params);
314 void glFrontFace_Hook(GLenum mode);
315 void glFrustum_Hook(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
316 GLuint glGenLists_Hook(GLsizei range);
317 void glGenTextures_Hook(GLsizei n, GLuint *textures);
318 void glGetBooleanv_Hook(GLenum pname, GLboolean *params);
319 void glGetClipPlane_Hook(GLenum plane, GLdouble *equation);
320 void glGetDoublev_Hook(GLenum pname, GLdouble *params);
321 GLenum glGetError_Hook(void);
322 void glGetFloatv_Hook(GLenum pname, GLfloat *params);
323 void glGetIntegerv_Hook(GLenum pname, GLint *params);
324 void glGetLightfv_Hook(GLenum light, GLenum pname, GLfloat *params);
325 void glGetLightiv_Hook(GLenum light, GLenum pname, GLint *params);
326 void glGetMapdv_Hook(GLenum target, GLenum query, GLdouble *v);
327 void glGetMapfv_Hook(GLenum target, GLenum query, GLfloat *v);
328 void glGetMapiv_Hook(GLenum target, GLenum query, GLint *v);
329 void glGetMaterialfv_Hook(GLenum face, GLenum pname, GLfloat *params);
330 void glGetMaterialiv_Hook(GLenum face, GLenum pname, GLint *params);
331 void glGetPixelMapfv_Hook(GLenum map, GLfloat *values);
332 void glGetPixelMapuiv_Hook(GLenum map, GLuint *values);
333 void glGetPixelMapusv_Hook(GLenum map, GLushort *values);
334 void glGetPointerv_Hook(GLenum pname, void* *params);
335 void glGetPolygonStipple_Hook(GLubyte *mask);
336 const GLubyte * glGetString_Hook(GLenum name);
337 void glGetTexEnvfv_Hook(GLenum target, GLenum pname, GLfloat *params);
338 void glGetTexEnviv_Hook(GLenum target, GLenum pname, GLint *params);
339 void glGetTexGendv_Hook(GLenum coord, GLenum pname, GLdouble *params);
340 void glGetTexGenfv_Hook(GLenum coord, GLenum pname, GLfloat *params);
341 void glGetTexGeniv_Hook(GLenum coord, GLenum pname, GLint *params);
342 void glGetTexImage_Hook(GLenum target, GLint level, GLenum format, GLenum type, void *pixels);
343 void glGetTexLevelParameterfv_Hook(GLenum target, GLint level, GLenum pname, GLfloat *params);
344 void glGetTexLevelParameteriv_Hook(GLenum target, GLint level, GLenum pname, GLint *params);
345 void glGetTexParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params);
346 void glGetTexParameteriv_Hook(GLenum target, GLenum pname, GLint *params);
347 void glHint_Hook(GLenum target, GLenum mode);
348 void glIndexMask_Hook(GLuint mask);
349 void glIndexPointer_Hook(GLenum type, GLsizei stride, const void *pointer);
350 void glIndexd_Hook(GLdouble c);
351 void glIndexdv_Hook(const GLdouble *c);
352 void glIndexf_Hook(GLfloat c);
353 void glIndexfv_Hook(const GLfloat *c);
354 void glIndexi_Hook(GLint c);
355 void glIndexiv_Hook(const GLint *c);
356 void glIndexs_Hook(GLshort c);
357 void glIndexsv_Hook(const GLshort *c);
358 void glIndexub_Hook(GLubyte c);
359 void glIndexubv_Hook(const GLubyte *c);
360 void glInitNames_Hook(void);
361 void glInterleavedArrays_Hook(GLenum format, GLsizei stride, const void *pointer);
362 GLboolean glIsEnabled_Hook(GLenum cap);
363 GLboolean glIsList_Hook(GLuint list);
364 GLboolean glIsTexture_Hook(GLuint texture);
365 void glLightModelf_Hook(GLenum pname, GLfloat param);
366 void glLightModelfv_Hook(GLenum pname, const GLfloat *params);
367 void glLightModeli_Hook(GLenum pname, GLint param);
368 void glLightModeliv_Hook(GLenum pname, const GLint *params);
369 void glLightf_Hook(GLenum light, GLenum pname, GLfloat param);
370 void glLightfv_Hook(GLenum light, GLenum pname, const GLfloat *params);
371 void glLighti_Hook(GLenum light, GLenum pname, GLint param);
372 void glLightiv_Hook(GLenum light, GLenum pname, const GLint *params);
373 void glLineStipple_Hook(GLint factor, GLushort pattern);
374 void glLineWidth_Hook(GLfloat width);
375 void glListBase_Hook(GLuint base);
376 void glLoadIdentity_Hook(void);
377 void glLoadMatrixd_Hook(const GLdouble *m);
378 void glLoadMatrixf_Hook(const GLfloat *m);
379 void glLoadName_Hook(GLuint name);
380 void glLogicOp_Hook(GLenum opcode);
381 void glMap1d_Hook(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
382 void glMap1f_Hook(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
383 void glMap2d_Hook(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
384 void glMap2f_Hook(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
385 void glMapGrid1d_Hook(GLint un, GLdouble u1, GLdouble u2);
386 void glMapGrid1f_Hook(GLint un, GLfloat u1, GLfloat u2);
387 void glMapGrid2d_Hook(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
388 void glMapGrid2f_Hook(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
389 void glMaterialf_Hook(GLenum face, GLenum pname, GLfloat param);
390 void glMaterialfv_Hook(GLenum face, GLenum pname, const GLfloat *params);
391 void glMateriali_Hook(GLenum face, GLenum pname, GLint param);
392 void glMaterialiv_Hook(GLenum face, GLenum pname, const GLint *params);
393 void glMatrixMode_Hook(GLenum mode);
394 void glMultMatrixd_Hook(const GLdouble *m);
395 void glMultMatrixf_Hook(const GLfloat *m);
396 void glNewList_Hook(GLuint list, GLenum mode);
397 void glNormal3b_Hook(GLbyte nx, GLbyte ny, GLbyte nz);
398 void glNormal3bv_Hook(const GLbyte *v);
399 void glNormal3d_Hook(GLdouble nx, GLdouble ny, GLdouble nz);
400 void glNormal3dv_Hook(const GLdouble *v);
401 void glNormal3f_Hook(GLfloat nx, GLfloat ny, GLfloat nz);
402 void glNormal3fv_Hook(const GLfloat *v);
403 void glNormal3i_Hook(GLint nx, GLint ny, GLint nz);
404 void glNormal3iv_Hook(const GLint *v);
405 void glNormal3s_Hook(GLshort nx, GLshort ny, GLshort nz);
406 void glNormal3sv_Hook(const GLshort *v);
407 void glNormalPointer_Hook(GLenum type, GLsizei stride, const void *pointer);
408 void glOrtho_Hook(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
409 void glPassThrough_Hook(GLfloat token);
410 void glPixelMapfv_Hook(GLenum map, GLsizei mapsize, const GLfloat *values);
411 void glPixelMapuiv_Hook(GLenum map, GLsizei mapsize, const GLuint *values);
412 void glPixelMapusv_Hook(GLenum map, GLsizei mapsize, const GLushort *values);
413 void glPixelStoref_Hook(GLenum pname, GLfloat param);
414 void glPixelStorei_Hook(GLenum pname, GLint param);
415 void glPixelTransferf_Hook(GLenum pname, GLfloat param);
416 void glPixelTransferi_Hook(GLenum pname, GLint param);
417 void glPixelZoom_Hook(GLfloat xfactor, GLfloat yfactor);
418 void glPointSize_Hook(GLfloat size);
419 void glPolygonMode_Hook(GLenum face, GLenum mode);
420 void glPolygonOffset_Hook(GLfloat factor, GLfloat units);
421 void glPolygonStipple_Hook(const GLubyte *mask);
422 void glPopAttrib_Hook(void);
423 void glPopClientAttrib_Hook(void);
424 void glPopMatrix_Hook(void);
425 void glPopName_Hook(void);
426 void glPrioritizeTextures_Hook(GLsizei n, const GLuint *textures, const GLclampf *priorities);
427 void glPushAttrib_Hook(GLbitfield mask);
428 void glPushClientAttrib_Hook(GLbitfield mask);
429 void glPushMatrix_Hook(void);
430 void glPushName_Hook(GLuint name);
431 void glRasterPos2d_Hook(GLdouble x, GLdouble y);
432 void glRasterPos2dv_Hook(const GLdouble *v);
433 void glRasterPos2f_Hook(GLfloat x, GLfloat y);
434 void glRasterPos2fv_Hook(const GLfloat *v);
435 void glRasterPos2i_Hook(GLint x, GLint y);
436 void glRasterPos2iv_Hook(const GLint *v);
437 void glRasterPos2s_Hook(GLshort x, GLshort y);
438 void glRasterPos2sv_Hook(const GLshort *v);
439 void glRasterPos3d_Hook(GLdouble x, GLdouble y, GLdouble z);
440 void glRasterPos3dv_Hook(const GLdouble *v);
441 void glRasterPos3f_Hook(GLfloat x, GLfloat y, GLfloat z);
442 void glRasterPos3fv_Hook(const GLfloat *v);
443 void glRasterPos3i_Hook(GLint x, GLint y, GLint z);
444 void glRasterPos3iv_Hook(const GLint *v);
445 void glRasterPos3s_Hook(GLshort x, GLshort y, GLshort z);
446 void glRasterPos3sv_Hook(const GLshort *v);
447 void glRasterPos4d_Hook(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
448 void glRasterPos4dv_Hook(const GLdouble *v);
449 void glRasterPos4f_Hook(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
450 void glRasterPos4fv_Hook(const GLfloat *v);
451 void glRasterPos4i_Hook(GLint x, GLint y, GLint z, GLint w);
452 void glRasterPos4iv_Hook(const GLint *v);
453 void glRasterPos4s_Hook(GLshort x, GLshort y, GLshort z, GLshort w);
454 void glRasterPos4sv_Hook(const GLshort *v);
455 void glReadBuffer_Hook(GLenum mode);
456 void glReadPixels_Hook(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
457 void glRectd_Hook(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
458 void glRectdv_Hook(const GLdouble *v1, const GLdouble *v2);
459 void glRectf_Hook(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
460 void glRectfv_Hook(const GLfloat *v1, const GLfloat *v2);
461 void glRecti_Hook(GLint x1, GLint y1, GLint x2, GLint y2);
462 void glRectiv_Hook(const GLint *v1, const GLint *v2);
463 void glRects_Hook(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
464 void glRectsv_Hook(const GLshort *v1, const GLshort *v2);
465 GLint glRenderMode_Hook(GLenum mode);
466 void glRotated_Hook(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
467 void glRotatef_Hook(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
468 void glScaled_Hook(GLdouble x, GLdouble y, GLdouble z);
469 void glScalef_Hook(GLfloat x, GLfloat y, GLfloat z);
470 void glScissor_Hook(GLint x, GLint y, GLsizei width, GLsizei height);
471 void glSelectBuffer_Hook(GLsizei size, GLuint *buffer);
472 void glShadeModel_Hook(GLenum mode);
473 void glStencilFunc_Hook(GLenum func, GLint ref, GLuint mask);
474 void glStencilMask_Hook(GLuint mask);
475 void glStencilOp_Hook(GLenum fail, GLenum zfail, GLenum zpass);
476 void glTexCoord1d_Hook(GLdouble s);
477 void glTexCoord1dv_Hook(const GLdouble *v);
478 void glTexCoord1f_Hook(GLfloat s);
479 void glTexCoord1fv_Hook(const GLfloat *v);
480 void glTexCoord1i_Hook(GLint s);
481 void glTexCoord1iv_Hook(const GLint *v);
482 void glTexCoord1s_Hook(GLshort s);
483 void glTexCoord1sv_Hook(const GLshort *v);
484 void glTexCoord2d_Hook(GLdouble s, GLdouble t);
485 void glTexCoord2dv_Hook(const GLdouble *v);
486 void glTexCoord2f_Hook(GLfloat s, GLfloat t);
487 void glTexCoord2fv_Hook(const GLfloat *v);
488 void glTexCoord2i_Hook(GLint s, GLint t);
489 void glTexCoord2iv_Hook(const GLint *v);
490 void glTexCoord2s_Hook(GLshort s, GLshort t);
491 void glTexCoord2sv_Hook(const GLshort *v);
492 void glTexCoord3d_Hook(GLdouble s, GLdouble t, GLdouble r);
493 void glTexCoord3dv_Hook(const GLdouble *v);
494 void glTexCoord3f_Hook(GLfloat s, GLfloat t, GLfloat r);
495 void glTexCoord3fv_Hook(const GLfloat *v);
496 void glTexCoord3i_Hook(GLint s, GLint t, GLint r);
497 void glTexCoord3iv_Hook(const GLint *v);
498 void glTexCoord3s_Hook(GLshort s, GLshort t, GLshort r);
499 void glTexCoord3sv_Hook(const GLshort *v);
500 void glTexCoord4d_Hook(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
501 void glTexCoord4dv_Hook(const GLdouble *v);
502 void glTexCoord4f_Hook(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
503 void glTexCoord4fv_Hook(const GLfloat *v);
504 void glTexCoord4i_Hook(GLint s, GLint t, GLint r, GLint q);
505 void glTexCoord4iv_Hook(const GLint *v);
506 void glTexCoord4s_Hook(GLshort s, GLshort t, GLshort r, GLshort q);
507 void glTexCoord4sv_Hook(const GLshort *v);
508 void glTexCoordPointer_Hook(GLint size, GLenum type, GLsizei stride, const void *pointer);
509 void glTexEnvf_Hook(GLenum target, GLenum pname, GLfloat param);
510 void glTexEnvfv_Hook(GLenum target, GLenum pname, const GLfloat *params);
511 void glTexEnvi_Hook(GLenum target, GLenum pname, GLint param);
512 void glTexEnviv_Hook(GLenum target, GLenum pname, const GLint *params);
513 void glTexGend_Hook(GLenum coord, GLenum pname, GLdouble param);
514 void glTexGendv_Hook(GLenum coord, GLenum pname, const GLdouble *params);
515 void glTexGenf_Hook(GLenum coord, GLenum pname, GLfloat param);
516 void glTexGenfv_Hook(GLenum coord, GLenum pname, const GLfloat *params);
517 void glTexGeni_Hook(GLenum coord, GLenum pname, GLint param);
518 void glTexGeniv_Hook(GLenum coord, GLenum pname, const GLint *params);
519 void glTexImage1D_Hook(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels);
520 void glTexImage2D_Hook(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
521 void glTexParameterf_Hook(GLenum target, GLenum pname, GLfloat param);
522 void glTexParameterfv_Hook(GLenum target, GLenum pname, const GLfloat *params);
523 void glTexParameteri_Hook(GLenum target, GLenum pname, GLint param);
524 void glTexParameteriv_Hook(GLenum target, GLenum pname, const GLint *params);
525 void glTexSubImage1D_Hook(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
526 void glTexSubImage2D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
527 void glTranslated_Hook(GLdouble x, GLdouble y, GLdouble z);
528 void glTranslatef_Hook(GLfloat x, GLfloat y, GLfloat z);
529 void glVertex2d_Hook(GLdouble x, GLdouble y);
530 void glVertex2dv_Hook(const GLdouble *v);
531 void glVertex2f_Hook(GLfloat x, GLfloat y);
532 void glVertex2fv_Hook(const GLfloat *v);
533 void glVertex2i_Hook(GLint x, GLint y);
534 void glVertex2iv_Hook(const GLint *v);
535 void glVertex2s_Hook(GLshort x, GLshort y);
536 void glVertex2sv_Hook(const GLshort *v);
537 void glVertex3d_Hook(GLdouble x, GLdouble y, GLdouble z);
538 void glVertex3dv_Hook(const GLdouble *v);
539 void glVertex3f_Hook(GLfloat x, GLfloat y, GLfloat z);
540 void glVertex3fv_Hook(const GLfloat *v);
541 void glVertex3i_Hook(GLint x, GLint y, GLint z);
542 void glVertex3iv_Hook(const GLint *v);
543 void glVertex3s_Hook(GLshort x, GLshort y, GLshort z);
544 void glVertex3sv_Hook(const GLshort *v);
545 void glVertex4d_Hook(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
546 void glVertex4dv_Hook(const GLdouble *v);
547 void glVertex4f_Hook(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
548 void glVertex4fv_Hook(const GLfloat *v);
549 void glVertex4i_Hook(GLint x, GLint y, GLint z, GLint w);
550 void glVertex4iv_Hook(const GLint *v);
551 void glVertex4s_Hook(GLshort x, GLshort y, GLshort z, GLshort w);
552 void glVertex4sv_Hook(const GLshort *v);
553 void glVertexPointer_Hook(GLint size, GLenum type, GLsizei stride, const void *pointer);
554 void glViewport_Hook(GLint x, GLint y, GLsizei width, GLsizei height);
556 // GL_VERSION_1_2
557 void glBlendColor_Hook(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
558 void glBlendEquation_Hook(GLenum mode);
559 void glDrawRangeElements_Hook(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
560 void glTexImage3D_Hook(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
561 void glTexSubImage3D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
562 void glCopyTexSubImage3D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
564 // GL_VERSION_1_2 deprecated functions
565 /* Not currently supported
566 void glColorTable_Hook(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
567 void glColorTableParameterfv_Hook(GLenum target, GLenum pname, const GLfloat *params);
568 void glColorTableParameteriv_Hook(GLenum target, GLenum pname, const GLint *params);
569 void glCopyColorTable_Hook(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
570 void glGetColorTable_Hook(GLenum target, GLenum format, GLenum type, GLvoid *table);
571 void glGetColorTableParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params);
572 void glGetColorTableParameteriv_Hook(GLenum target, GLenum pname, GLint *params);
573 void glColorSubTable_Hook(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
574 void glCopyColorSubTable_Hook(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
575 void glConvolutionFilter1D_Hook(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
576 void glConvolutionFilter2D_Hook(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
577 void glConvolutionParameterf_Hook(GLenum target, GLenum pname, GLfloat params);
578 void glConvolutionParameterfv_Hook(GLenum target, GLenum pname, const GLfloat *params);
579 void glConvolutionParameteri_Hook(GLenum target, GLenum pname, GLint params);
580 void glConvolutionParameteriv_Hook(GLenum target, GLenum pname, const GLint *params);
581 void glCopyConvolutionFilter1D_Hook(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
582 void glCopyConvolutionFilter2D_Hook(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
583 void glGetConvolutionFilter_Hook(GLenum target, GLenum format, GLenum type, GLvoid *image);
584 void glGetConvolutionParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params);
585 void glGetConvolutionParameteriv_Hook(GLenum target, GLenum pname, GLint *params);
586 void glGetSeparableFilter_Hook(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
587 void glSeparableFilter2D_Hook(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
588 void glGetHistogram_Hook(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
589 void glGetHistogramParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params);
590 void glGetHistogramParameteriv_Hook(GLenum target, GLenum pname, GLint *params);
591 void glGetMinmax_Hook(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
592 void glGetMinmaxParameterfv_Hook(GLenum target, GLenum pname, GLfloat *params);
593 void glGetMinmaxParameteriv_Hook(GLenum target, GLenum pname, GLint *params);
594 void glHistogram_Hook(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
595 void glMinmax_Hook(GLenum target, GLenum internalformat, GLboolean sink);
596 void glResetHistogram_Hook(GLenum target);
597 void glResetMinmax_Hook(GLenum target);
598 */
600 // GL_VERSION_1_3
601 void glActiveTexture_Hook(GLenum texture);
602 void glSampleCoverage_Hook(GLclampf value, GLboolean invert);
603 void glCompressedTexImage3D_Hook(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
604 void glCompressedTexImage2D_Hook(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
605 void glCompressedTexImage1D_Hook(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
606 void glCompressedTexSubImage3D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
607 void glCompressedTexSubImage2D_Hook(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
608 void glCompressedTexSubImage1D_Hook(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
609 void glGetCompressedTexImage_Hook(GLenum target, GLint level, GLvoid *img);
611 // GL_VERSION_1_3 deprecated functions
612 void glClientActiveTexture_Hook(GLenum texture);
613 void glMultiTexCoord1d_Hook(GLenum target, GLdouble s);
614 void glMultiTexCoord1dv_Hook(GLenum target, const GLdouble *v);
615 void glMultiTexCoord1f_Hook(GLenum target, GLfloat s);
616 void glMultiTexCoord1fv_Hook(GLenum target, const GLfloat *v);
617 void glMultiTexCoord1i_Hook(GLenum target, GLint s);
618 void glMultiTexCoord1iv_Hook(GLenum target, const GLint *v);
619 void glMultiTexCoord1s_Hook(GLenum target, GLshort s);
620 void glMultiTexCoord1sv_Hook(GLenum target, const GLshort *v);
621 void glMultiTexCoord2d_Hook(GLenum target, GLdouble s, GLdouble t);
622 void glMultiTexCoord2dv_Hook(GLenum target, const GLdouble *v);
623 void glMultiTexCoord2f_Hook(GLenum target, GLfloat s, GLfloat t);
624 void glMultiTexCoord2fv_Hook(GLenum target, const GLfloat *v);
625 void glMultiTexCoord2i_Hook(GLenum target, GLint s, GLint t);
626 void glMultiTexCoord2iv_Hook(GLenum target, const GLint *v);
627 void glMultiTexCoord2s_Hook(GLenum target, GLshort s, GLshort t);
628 void glMultiTexCoord2sv_Hook(GLenum target, const GLshort *v);
629 void glMultiTexCoord3d_Hook(GLenum target, GLdouble s, GLdouble t, GLdouble r);
630 void glMultiTexCoord3dv_Hook(GLenum target, const GLdouble *v);
631 void glMultiTexCoord3f_Hook(GLenum target, GLfloat s, GLfloat t, GLfloat r);
632 void glMultiTexCoord3fv_Hook(GLenum target, const GLfloat *v);
633 void glMultiTexCoord3i_Hook(GLenum target, GLint s, GLint t, GLint r);
634 void glMultiTexCoord3iv_Hook(GLenum target, const GLint *v);
635 void glMultiTexCoord3s_Hook(GLenum target, GLshort s, GLshort t, GLshort r);
636 void glMultiTexCoord3sv_Hook(GLenum target, const GLshort *v);
637 void glMultiTexCoord4d_Hook(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
638 void glMultiTexCoord4dv_Hook(GLenum target, const GLdouble *v);
639 void glMultiTexCoord4f_Hook(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
640 void glMultiTexCoord4fv_Hook(GLenum target, const GLfloat *v);
641 void glMultiTexCoord4i_Hook(GLenum target, GLint s, GLint t, GLint r, GLint q);
642 void glMultiTexCoord4iv_Hook(GLenum target, const GLint *v);
643 void glMultiTexCoord4s_Hook(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
644 void glMultiTexCoord4sv_Hook(GLenum target, const GLshort *v);
645 void glLoadTransposeMatrixf_Hook(const GLfloat *m);
646 void glLoadTransposeMatrixd_Hook(const GLdouble *m);
647 void glMultTransposeMatrixf_Hook(const GLfloat *m);
648 void glMultTransposeMatrixd_Hook(const GLdouble *m);
650 // GL_VERSION_1_4
651 void glBlendFuncSeparate_Hook(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
652 void glMultiDrawArrays_Hook(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
653 void glMultiDrawElements_Hook(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
654 void glPointParameterf_Hook(GLenum pname, GLfloat param);
655 void glPointParameterfv_Hook(GLenum pname, const GLfloat *params);
656 void glPointParameteri_Hook(GLenum pname, GLint param);
657 void glPointParameteriv_Hook(GLenum pname, const GLint *params);
659 // GL_VERSION_1_4 deprecated functions
660 void glFogCoordf_Hook(GLfloat coord);
661 void glFogCoordfv_Hook(const GLfloat *coord);
662 void glFogCoordd_Hook(GLdouble coord);
663 void glFogCoorddv_Hook(const GLdouble *coord);
664 void glFogCoordPointer_Hook(GLenum type, GLsizei stride, const GLvoid *pointer);
665 void glSecondaryColor3b_Hook(GLbyte red, GLbyte green, GLbyte blue);
666 void glSecondaryColor3bv_Hook(const GLbyte *v);
667 void glSecondaryColor3d_Hook(GLdouble red, GLdouble green, GLdouble blue);
668 void glSecondaryColor3dv_Hook(const GLdouble *v);
669 void glSecondaryColor3f_Hook(GLfloat red, GLfloat green, GLfloat blue);
670 void glSecondaryColor3fv_Hook(const GLfloat *v);
671 void glSecondaryColor3i_Hook(GLint red, GLint green, GLint blue);
672 void glSecondaryColor3iv_Hook(const GLint *v);
673 void glSecondaryColor3s_Hook(GLshort red, GLshort green, GLshort blue);
674 void glSecondaryColor3sv_Hook(const GLshort *v);
675 void glSecondaryColor3ub_Hook(GLubyte red, GLubyte green, GLubyte blue);
676 void glSecondaryColor3ubv_Hook(const GLubyte *v);
677 void glSecondaryColor3ui_Hook(GLuint red, GLuint green, GLuint blue);
678 void glSecondaryColor3uiv_Hook(const GLuint *v);
679 void glSecondaryColor3us_Hook(GLushort red, GLushort green, GLushort blue);
680 void glSecondaryColor3usv_Hook(const GLushort *v);
681 void glSecondaryColorPointer_Hook(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
682 void glWindowPos2d_Hook(GLdouble x, GLdouble y);
683 void glWindowPos2dv_Hook(const GLdouble *v);
684 void glWindowPos2f_Hook(GLfloat x, GLfloat y);
685 void glWindowPos2fv_Hook(const GLfloat *v);
686 void glWindowPos2i_Hook(GLint x, GLint y);
687 void glWindowPos2iv_Hook(const GLint *v);
688 void glWindowPos2s_Hook(GLshort x, GLshort y);
689 void glWindowPos2sv_Hook(const GLshort *v);
690 void glWindowPos3d_Hook(GLdouble x, GLdouble y, GLdouble z);
691 void glWindowPos3dv_Hook(const GLdouble *v);
692 void glWindowPos3f_Hook(GLfloat x, GLfloat y, GLfloat z);
693 void glWindowPos3fv_Hook(const GLfloat *v);
694 void glWindowPos3i_Hook(GLint x, GLint y, GLint z);
695 void glWindowPos3iv_Hook(const GLint *v);
696 void glWindowPos3s_Hook(GLshort x, GLshort y, GLshort z);
697 void glWindowPos3sv_Hook(const GLshort *v);
699 // GL_VERSION_1_5
700 void glGenQueries_Hook(GLsizei n, GLuint *ids);
701 void glDeleteQueries_Hook(GLsizei n, const GLuint *ids);
702 GLboolean glIsQuery_Hook(GLuint id);
703 void glBeginQuery_Hook(GLenum target, GLuint id);
704 void glEndQuery_Hook(GLenum target);
705 void glGetQueryiv_Hook(GLenum target, GLenum pname, GLint *params);
706 void glGetQueryObjectiv_Hook(GLuint id, GLenum pname, GLint *params);
707 void glGetQueryObjectuiv_Hook(GLuint id, GLenum pname, GLuint *params);
708 void glBindBuffer_Hook(GLenum target, GLuint buffer);
709 void glDeleteBuffers_Hook(GLsizei n, const GLuint *buffers);
710 void glGenBuffers_Hook(GLsizei n, GLuint *buffers);
711 GLboolean glIsBuffer_Hook(GLuint buffer);
712 void glBufferData_Hook(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
713 void glBufferSubData_Hook(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
714 void glGetBufferSubData_Hook(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
715 GLvoid* glMapBuffer_Hook(GLenum target, GLenum access);
716 GLboolean glUnmapBuffer_Hook(GLenum target);
717 void glGetBufferParameteriv_Hook(GLenum target, GLenum pname, GLint *params);
718 void glGetBufferPointerv_Hook(GLenum target, GLenum pname, GLvoid* *params);
720 // GL_VERSION_2_0
721 void glBlendEquationSeparate_Hook(GLenum modeRGB, GLenum modeAlpha);
722 void glDrawBuffers_Hook(GLsizei n, const GLenum *bufs);
723 void glStencilOpSeparate_Hook(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
724 void glStencilFuncSeparate_Hook(GLenum face, GLenum func, GLint ref, GLuint mask);
725 void glStencilMaskSeparate_Hook(GLenum face, GLuint mask);
726 void glAttachShader_Hook(GLuint program, GLuint shader);
727 void glBindAttribLocation_Hook(GLuint program, GLuint index, const GLchar *name);
728 void glCompileShader_Hook(GLuint shader);
729 GLuint glCreateProgram_Hook(void);
730 GLuint glCreateShader_Hook(GLenum type);
731 void glDeleteProgram_Hook(GLuint program);
732 void glDeleteShader_Hook(GLuint shader);
733 void glDetachShader_Hook(GLuint program, GLuint shader);
734 void glDisableVertexAttribArray_Hook(GLuint index);
735 void glEnableVertexAttribArray_Hook(GLuint index);
736 void glGetActiveAttrib_Hook(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
737 void glGetActiveUniform_Hook(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
738 void glGetAttachedShaders_Hook(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj);
739 GLint glGetAttribLocation_Hook(GLuint program, const GLchar *name);
740 void glGetProgramiv_Hook(GLuint program, GLenum pname, GLint *params);
741 void glGetProgramInfoLog_Hook(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
742 void glGetShaderiv_Hook(GLuint shader, GLenum pname, GLint *params);
743 void glGetShaderInfoLog_Hook(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
744 void glGetShaderSource_Hook(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
745 GLint glGetUniformLocation_Hook(GLuint program, const GLchar *name);
746 void glGetUniformfv_Hook(GLuint program, GLint location, GLfloat *params);
747 void glGetUniformiv_Hook(GLuint program, GLint location, GLint *params);
748 void glGetVertexAttribdv_Hook(GLuint index, GLenum pname, GLdouble *params);
749 void glGetVertexAttribfv_Hook(GLuint index, GLenum pname, GLfloat *params);
750 void glGetVertexAttribiv_Hook(GLuint index, GLenum pname, GLint *params);
751 void glGetVertexAttribPointerv_Hook(GLuint index, GLenum pname, GLvoid* *pointer);
752 GLboolean glIsProgram_Hook(GLuint program);
753 GLboolean glIsShader_Hook(GLuint shader);
754 void glLinkProgram_Hook(GLuint program);
755 void glShaderSource_Hook(GLuint shader, GLsizei count, const GLchar* *string, const GLint *length);
756 void glUseProgram_Hook(GLuint program);
757 void glUniform1f_Hook(GLint location, GLfloat v0);
758 void glUniform2f_Hook(GLint location, GLfloat v0, GLfloat v1);
759 void glUniform3f_Hook(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
760 void glUniform4f_Hook(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
761 void glUniform1i_Hook(GLint location, GLint v0);
762 void glUniform2i_Hook(GLint location, GLint v0, GLint v1);
763 void glUniform3i_Hook(GLint location, GLint v0, GLint v1, GLint v2);
764 void glUniform4i_Hook(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
765 void glUniform1fv_Hook(GLint location, GLsizei count, const GLfloat *value);
766 void glUniform2fv_Hook(GLint location, GLsizei count, const GLfloat *value);
767 void glUniform3fv_Hook(GLint location, GLsizei count, const GLfloat *value);
768 void glUniform4fv_Hook(GLint location, GLsizei count, const GLfloat *value);
769 void glUniform1iv_Hook(GLint location, GLsizei count, const GLint *value);
770 void glUniform2iv_Hook(GLint location, GLsizei count, const GLint *value);
771 void glUniform3iv_Hook(GLint location, GLsizei count, const GLint *value);
772 void glUniform4iv_Hook(GLint location, GLsizei count, const GLint *value);
773 void glUniformMatrix2fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
774 void glUniformMatrix3fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
775 void glUniformMatrix4fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
776 void glValidateProgram_Hook(GLuint program);
777 void glVertexAttrib1d_Hook(GLuint index, GLdouble x);
778 void glVertexAttrib1dv_Hook(GLuint index, const GLdouble *v);
779 void glVertexAttrib1f_Hook(GLuint index, GLfloat x);
780 void glVertexAttrib1fv_Hook(GLuint index, const GLfloat *v);
781 void glVertexAttrib1s_Hook(GLuint index, GLshort x);
782 void glVertexAttrib1sv_Hook(GLuint index, const GLshort *v);
783 void glVertexAttrib2d_Hook(GLuint index, GLdouble x, GLdouble y);
784 void glVertexAttrib2dv_Hook(GLuint index, const GLdouble *v);
785 void glVertexAttrib2f_Hook(GLuint index, GLfloat x, GLfloat y);
786 void glVertexAttrib2fv_Hook(GLuint index, const GLfloat *v);
787 void glVertexAttrib2s_Hook(GLuint index, GLshort x, GLshort y);
788 void glVertexAttrib2sv_Hook(GLuint index, const GLshort *v);
789 void glVertexAttrib3d_Hook(GLuint index, GLdouble x, GLdouble y, GLdouble z);
790 void glVertexAttrib3dv_Hook(GLuint index, const GLdouble *v);
791 void glVertexAttrib3f_Hook(GLuint index, GLfloat x, GLfloat y, GLfloat z);
792 void glVertexAttrib3fv_Hook(GLuint index, const GLfloat *v);
793 void glVertexAttrib3s_Hook(GLuint index, GLshort x, GLshort y, GLshort z);
794 void glVertexAttrib3sv_Hook(GLuint index, const GLshort *v);
795 void glVertexAttrib4Nbv_Hook(GLuint index, const GLbyte *v);
796 void glVertexAttrib4Niv_Hook(GLuint index, const GLint *v);
797 void glVertexAttrib4Nsv_Hook(GLuint index, const GLshort *v);
798 void glVertexAttrib4Nub_Hook(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
799 void glVertexAttrib4Nubv_Hook(GLuint index, const GLubyte *v);
800 void glVertexAttrib4Nuiv_Hook(GLuint index, const GLuint *v);
801 void glVertexAttrib4Nusv_Hook(GLuint index, const GLushort *v);
802 void glVertexAttrib4bv_Hook(GLuint index, const GLbyte *v);
803 void glVertexAttrib4d_Hook(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
804 void glVertexAttrib4dv_Hook(GLuint index, const GLdouble *v);
805 void glVertexAttrib4f_Hook(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
806 void glVertexAttrib4fv_Hook(GLuint index, const GLfloat *v);
807 void glVertexAttrib4iv_Hook(GLuint index, const GLint *v);
808 void glVertexAttrib4s_Hook(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
809 void glVertexAttrib4sv_Hook(GLuint index, const GLshort *v);
810 void glVertexAttrib4ubv_Hook(GLuint index, const GLubyte *v);
811 void glVertexAttrib4uiv_Hook(GLuint index, const GLuint *v);
812 void glVertexAttrib4usv_Hook(GLuint index, const GLushort *v);
813 void glVertexAttribPointer_Hook(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
815 // GL_VERSION_2_1
816 void glUniformMatrix2x3fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
817 void glUniformMatrix3x2fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
818 void glUniformMatrix2x4fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
819 void glUniformMatrix4x2fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
820 void glUniformMatrix3x4fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
821 void glUniformMatrix4x3fv_Hook(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
823 // GL_VERSION_3_0
824 void glColorMaski_Hook(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
825 void glGetBooleani_v_Hook(GLenum target, GLuint index, GLboolean *data);
826 void glGetIntegeri_v_Hook(GLenum target, GLuint index, GLint *data);
827 void glEnablei_Hook(GLenum target, GLuint index);
828 void glDisablei_Hook(GLenum target, GLuint index);
829 GLboolean glIsEnabledi_Hook(GLenum target, GLuint index);
830 void glBeginTransformFeedback_Hook(GLenum primitiveMode);
831 void glEndTransformFeedback_Hook(void);
832 void glBindBufferRange_Hook(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
833 void glBindBufferBase_Hook(GLenum target, GLuint index, GLuint buffer);
834 void glTransformFeedbackVaryings_Hook(GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode);
835 void glGetTransformFeedbackVarying_Hook(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
836 void glClampColor_Hook(GLenum target, GLenum clamp);
837 void glBeginConditionalRender_Hook(GLuint id, GLenum mode);
838 void glEndConditionalRender_Hook(void);
839 void glVertexAttribIPointer_Hook(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
840 void glGetVertexAttribIiv_Hook(GLuint index, GLenum pname, GLint *params);
841 void glGetVertexAttribIuiv_Hook(GLuint index, GLenum pname, GLuint *params);
842 void glVertexAttribI1i_Hook(GLuint index, GLint x);
843 void glVertexAttribI2i_Hook(GLuint index, GLint x, GLint y);
844 void glVertexAttribI3i_Hook(GLuint index, GLint x, GLint y, GLint z);
845 void glVertexAttribI4i_Hook(GLuint index, GLint x, GLint y, GLint z, GLint w);
846 void glVertexAttribI1ui_Hook(GLuint index, GLuint x);
847 void glVertexAttribI2ui_Hook(GLuint index, GLuint x, GLuint y);
848 void glVertexAttribI3ui_Hook(GLuint index, GLuint x, GLuint y, GLuint z);
849 void glVertexAttribI4ui_Hook(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
850 void glVertexAttribI1iv_Hook(GLuint index, const GLint *v);
851 void glVertexAttribI2iv_Hook(GLuint index, const GLint *v);
852 void glVertexAttribI3iv_Hook(GLuint index, const GLint *v);
853 void glVertexAttribI4iv_Hook(GLuint index, const GLint *v);
854 void glVertexAttribI1uiv_Hook(GLuint index, const GLuint *v);
855 void glVertexAttribI2uiv_Hook(GLuint index, const GLuint *v);
856 void glVertexAttribI3uiv_Hook(GLuint index, const GLuint *v);
857 void glVertexAttribI4uiv_Hook(GLuint index, const GLuint *v);
858 void glVertexAttribI4bv_Hook(GLuint index, const GLbyte *v);
859 void glVertexAttribI4sv_Hook(GLuint index, const GLshort *v);
860 void glVertexAttribI4ubv_Hook(GLuint index, const GLubyte *v);
861 void glVertexAttribI4usv_Hook(GLuint index, const GLushort *v);
862 void glGetUniformuiv_Hook(GLuint program, GLint location, GLuint *params);
863 void glBindFragDataLocation_Hook(GLuint program, GLuint color, const GLchar *name);
864 GLint glGetFragDataLocation_Hook(GLuint program, const GLchar *name);
865 void glUniform1ui_Hook(GLint location, GLuint v0);
866 void glUniform2ui_Hook(GLint location, GLuint v0, GLuint v1);
867 void glUniform3ui_Hook(GLint location, GLuint v0, GLuint v1, GLuint v2);
868 void glUniform4ui_Hook(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
869 void glUniform1uiv_Hook(GLint location, GLsizei count, const GLuint *value);
870 void glUniform2uiv_Hook(GLint location, GLsizei count, const GLuint *value);
871 void glUniform3uiv_Hook(GLint location, GLsizei count, const GLuint *value);
872 void glUniform4uiv_Hook(GLint location, GLsizei count, const GLuint *value);
873 void glTexParameterIiv_Hook(GLenum target, GLenum pname, const GLint *params);
874 void glTexParameterIuiv_Hook(GLenum target, GLenum pname, const GLuint *params);
875 void glGetTexParameterIiv_Hook(GLenum target, GLenum pname, GLint *params);
876 void glGetTexParameterIuiv_Hook(GLenum target, GLenum pname, GLuint *params);
877 void glClearBufferiv_Hook(GLenum buffer, GLint drawbuffer, const GLint *value);
878 void glClearBufferuiv_Hook(GLenum buffer, GLint drawbuffer, const GLuint *value);
879 void glClearBufferfv_Hook(GLenum buffer, GLint drawbuffer, const GLfloat *value);
880 void glClearBufferfi_Hook(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
881 const GLubyte* glGetStringi_Hook(GLenum name, GLuint index);
883 // GL_VERSION_3_1
884 void glDrawArraysInstanced_Hook(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
885 void glDrawElementsInstanced_Hook(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
886 void glTexBuffer_Hook(GLenum target, GLenum internalformat, GLuint buffer);
887 void glPrimitiveRestartIndex_Hook(GLuint index);
889 // GL_VERSION_3_2
890 void glGetInteger64i_v_Hook(GLenum target, GLuint index, GLint64 *data);
891 void glGetBufferParameteri64v_Hook(GLenum target, GLenum pname, GLint64 *params);
892 void glFramebufferTexture_Hook(GLenum target, GLenum attachment, GLuint texture, GLint level);
894 // GL_VERSION_3_3
895 void glVertexAttribDivisor_Hook(GLuint index, GLuint divisor);
897 // GL_VERSION_4_0
898 void glMinSampleShading_Hook(GLclampf value);
899 void glBlendEquationi_Hook(GLuint buf, GLenum mode);
900 void glBlendEquationSeparatei_Hook(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
901 void glBlendFunci_Hook(GLuint buf, GLenum src, GLenum dst);
902 void glBlendFuncSeparatei_Hook(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
904 // GL_AMD_debug_output
905 void glDebugMessageEnableAMD_Hook(GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
906 void glDebugMessageInsertAMD_Hook(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
907 void glDebugMessageCallbackAMD_Hook(GLDEBUGPROCAMD callback, GLvoid *userParam);
908 GLuint glGetDebugMessageLogAMD_Hook(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
910 #if defined(GLE_CGL_ENABLED)
911 // GL_APPLE_element_array
912 void glElementPointerAPPLE_Hook(GLenum type, const GLvoid *pointer);
913 void glDrawElementArrayAPPLE_Hook(GLenum mode, GLint first, GLsizei count);
914 void glDrawRangeElementArrayAPPLE_Hook(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
915 void glMultiDrawElementArrayAPPLE_Hook(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
916 void glMultiDrawRangeElementArrayAPPLE_Hook(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
918 // GL_APPLE_fence
919 void glGenFencesAPPLE_Hook(GLsizei n, GLuint *fences);
920 void glDeleteFencesAPPLE_Hook(GLsizei n, const GLuint *fences);
921 void glSetFenceAPPLE_Hook(GLuint fence);
922 GLboolean glIsFenceAPPLE_Hook(GLuint fence);
923 GLboolean glTestFenceAPPLE_Hook(GLuint fence);
924 void glFinishFenceAPPLE_Hook(GLuint fence);
925 GLboolean glTestObjectAPPLE_Hook(GLenum object, GLuint name);
926 void glFinishObjectAPPLE_Hook(GLenum object, GLint name);
928 // GL_APPLE_flush_buffer_range
929 void glBufferParameteriAPPLE_Hook(GLenum target, GLenum pname, GLint param);
930 void glFlushMappedBufferRangeAPPLE_Hook(GLenum target, GLintptr offset, GLsizeiptr size);
932 // GL_APPLE_object_purgeable
933 GLenum glObjectPurgeableAPPLE_Hook(GLenum objectType, GLuint name, GLenum option);
934 GLenum glObjectUnpurgeableAPPLE_Hook(GLenum objectType, GLuint name, GLenum option);
935 void glGetObjectParameterivAPPLE_Hook(GLenum objectType, GLuint name, GLenum pname, GLint *params);
937 // GL_APPLE_texture_range
938 void glTextureRangeAPPLE_Hook(GLenum target, GLsizei length, const GLvoid *pointer);
939 void glGetTexParameterPointervAPPLE_Hook(GLenum target, GLenum pname, GLvoid **params);
941 // GL_APPLE_vertex_array_object
942 void glBindVertexArrayAPPLE_Hook(GLuint array);
943 void glDeleteVertexArraysAPPLE_Hook(GLsizei n, const GLuint *arrays);
944 void glGenVertexArraysAPPLE_Hook(GLsizei n, GLuint *arrays);
945 GLboolean glIsVertexArrayAPPLE_Hook(GLuint array);
947 // GL_APPLE_vertex_array_range
948 void glVertexArrayRangeAPPLE_Hook(GLsizei length, GLvoid *pointer);
949 void glFlushVertexArrayRangeAPPLE_Hook(GLsizei length, GLvoid *pointer);
950 void glVertexArrayParameteriAPPLE_Hook(GLenum pname, GLint param);
952 // GL_APPLE_vertex_program_evaluators
953 void glEnableVertexAttribAPPLE_Hook(GLuint index, GLenum pname);
954 void glDisableVertexAttribAPPLE_Hook(GLuint index, GLenum pname);
955 GLboolean glIsVertexAttribEnabledAPPLE_Hook(GLuint index, GLenum pname);
956 void glMapVertexAttrib1dAPPLE_Hook(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
957 void glMapVertexAttrib1fAPPLE_Hook(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
958 void glMapVertexAttrib2dAPPLE_Hook(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
959 void glMapVertexAttrib2fAPPLE_Hook(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
960 #endif // GLE_CGL_ENABLED
962 // GL_ARB_debug_output
963 void glDebugMessageControlARB_Hook(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
964 void glDebugMessageInsertARB_Hook(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
965 void glDebugMessageCallbackARB_Hook(GLDEBUGPROCARB callback, const GLvoid *userParam);
966 GLuint glGetDebugMessageLogARB_Hook(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
968 // GL_ARB_ES2_compatibility
969 void glReleaseShaderCompiler_Hook();
970 void glShaderBinary_Hook(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
971 void glGetShaderPrecisionFormat_Hook(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
972 void glDepthRangef_Hook(GLclampf n, GLclampf f);
973 void glClearDepthf_Hook(GLclampf d);
975 // GL_ARB_framebuffer_object
976 GLboolean glIsRenderbuffer_Hook(GLuint renderbuffer);
977 void glBindRenderbuffer_Hook(GLenum target, GLuint renderbuffer);
978 void glDeleteRenderbuffers_Hook(GLsizei n, const GLuint *renderbuffers);
979 void glGenRenderbuffers_Hook(GLsizei n, GLuint *renderbuffers);
980 void glRenderbufferStorage_Hook(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
981 void glGetRenderbufferParameteriv_Hook(GLenum target, GLenum pname, GLint *params);
982 GLboolean glIsFramebuffer_Hook(GLuint framebuffer);
983 void glBindFramebuffer_Hook(GLenum target, GLuint framebuffer);
984 void glDeleteFramebuffers_Hook(GLsizei n, const GLuint *framebuffers);
985 void glGenFramebuffers_Hook(GLsizei n, GLuint *framebuffers);
986 GLenum glCheckFramebufferStatus_Hook(GLenum target);
987 void glFramebufferTexture1D_Hook(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
988 void glFramebufferTexture2D_Hook(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
989 void glFramebufferTexture3D_Hook(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
990 void glFramebufferRenderbuffer_Hook(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
991 void glGetFramebufferAttachmentParameteriv_Hook(GLenum target, GLenum attachment, GLenum pname, GLint *params);
992 void glGenerateMipmap_Hook(GLenum target);
993 void glBlitFramebuffer_Hook(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
994 void glRenderbufferStorageMultisample_Hook(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
995 void glFramebufferTextureLayer_Hook(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
997 // GL_ARB_texture_multisample
998 void glTexImage2DMultisample_Hook(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
999 void glTexImage3DMultisample_Hook(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
1000 void glGetMultisamplefv_Hook(GLenum pname, GLuint index, GLfloat *val);
1001 void glSampleMaski_Hook(GLuint index, GLbitfield mask);
1003 // GL_ARB_timer_query
1004 void glQueryCounter_Hook(GLuint id, GLenum target);
1005 void glGetQueryObjecti64v_Hook(GLuint id, GLenum pname, GLint64 *params);
1006 void glGetQueryObjectui64v_Hook(GLuint id, GLenum pname, GLuint64 *params);
1008 // GL_ARB_vertex_array_object
1009 void glBindVertexArray_Hook(GLuint array);
1010 void glDeleteVertexArrays_Hook(GLsizei n, const GLuint *arrays);
1011 void glGenVertexArrays_Hook(GLsizei n, GLuint *arrays);
1012 GLboolean glIsVertexArray_Hook(GLuint array);
1014 // GL_EXT_draw_buffers2
1015 void glColorMaskIndexedEXT_Hook(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
1016 void glGetBooleanIndexedvEXT_Hook(GLenum target, GLuint index, GLboolean *data);
1017 void glGetIntegerIndexedvEXT_Hook(GLenum target, GLuint index, GLint *data);
1018 void glEnableIndexedEXT_Hook(GLenum target, GLuint index);
1019 void glDisableIndexedEXT_Hook(GLenum target, GLuint index);
1020 GLboolean glIsEnabledIndexedEXT_Hook(GLenum target, GLuint index);
1022 // GL_KHR_debug
1023 void glDebugMessageControl_Hook(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled);
1024 void glDebugMessageInsert_Hook(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* buf);
1025 void glDebugMessageCallback_Hook(GLDEBUGPROC callback, const void* userParam);
1026 GLuint glGetDebugMessageLog_Hook(GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, char* messageLog);
1027 void glPushDebugGroup_Hook(GLenum source, GLuint id, GLsizei length, const char * message);
1028 void glPopDebugGroup_Hook(void);
1029 void glObjectLabel_Hook(GLenum identifier, GLuint name, GLsizei length, const char *label);
1030 void glGetObjectLabel_Hook(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, char *label);
1031 void glObjectPtrLabel_Hook(void* ptr, GLsizei length, const char *label);
1032 void glGetObjectPtrLabel_Hook(void* ptr, GLsizei bufSize, GLsizei *length, char *label);
1034 // GL_WIN_swap_hint
1035 void glAddSwapHintRectWIN_Hook(GLint x, GLint y, GLsizei width, GLsizei height);
1037 #if defined(GLE_WGL_ENABLED)
1038 void PostWGLHook(const char* functionName);
1040 // WGL
1041 /* Hooking of these is currently disabled.
1042 BOOL wglCopyContext_Hook(HGLRC, HGLRC, UINT);
1043 HGLRC wglCreateContext_Hook(HDC);
1044 HGLRC wglCreateLayerContext_Hook(HDC, int);
1045 BOOL wglDeleteContext_Hook(HGLRC);
1046 HGLRC wglGetCurrentContext_Hook(VOID);
1047 HDC wglGetCurrentDC_Hook(VOID);
1048 PROC wglGetProcAddress_Hook(LPCSTR);
1049 BOOL wglMakeCurrent_Hook(HDC, HGLRC);
1050 BOOL wglShareLists_Hook(HGLRC, HGLRC);
1051 BOOL wglUseFontBitmapsA_Hook(HDC, DWORD, DWORD, DWORD);
1052 BOOL wglUseFontBitmapsW_Hook(HDC, DWORD, DWORD, DWORD);
1053 BOOL wglUseFontOutlinesA_Hook(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
1054 BOOL wglUseFontOutlinesW_Hook(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
1055 BOOL wglDescribeLayerPlane_Hook(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
1056 int wglSetLayerPaletteEntries_Hook(HDC, int, int, int, CONST COLORREF *);
1057 int wglGetLayerPaletteEntries_Hook(HDC, int, int, int, COLORREF *);
1058 BOOL wglRealizeLayerPalette_Hook(HDC, int, BOOL);
1059 BOOL wglSwapLayerBuffers_Hook(HDC, UINT);
1060 DWORD wglSwapMultipleBuffers_Hook(UINT, CONST WGLSWAP *);
1061 */
1063 // WGL_ARB_buffer_region
1064 HANDLE wglCreateBufferRegionARB_Hook (HDC hDC, int iLayerPlane, UINT uType);
1065 VOID wglDeleteBufferRegionARB_Hook (HANDLE hRegion);
1066 BOOL wglSaveBufferRegionARB_Hook (HANDLE hRegion, int x, int y, int width, int height);
1067 BOOL wglRestoreBufferRegionARB_Hook (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
1069 // WGL_ARB_extensions_string
1070 const char * wglGetExtensionsStringARB_Hook (HDC hdc);
1072 // WGL_ARB_pixel_format
1073 BOOL wglGetPixelFormatAttribivARB_Hook (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
1074 BOOL wglGetPixelFormatAttribfvARB_Hook (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
1075 BOOL wglChoosePixelFormatARB_Hook (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
1077 // WGL_ARB_make_current_read
1078 BOOL wglMakeContextCurrentARB_Hook (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
1079 HDC wglGetCurrentReadDCARB_Hook (void);
1081 // WGL_ARB_pbuffer
1082 HPBUFFERARB wglCreatePbufferARB_Hook (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
1083 HDC wglGetPbufferDCARB_Hook (HPBUFFERARB hPbuffer);
1084 int wglReleasePbufferDCARB_Hook (HPBUFFERARB hPbuffer, HDC hDC);
1085 BOOL wglDestroyPbufferARB_Hook (HPBUFFERARB hPbuffer);
1086 BOOL wglQueryPbufferARB_Hook (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
1088 // WGL_ARB_render_texture
1089 BOOL wglBindTexImageARB_Hook (HPBUFFERARB hPbuffer, int iBuffer);
1090 BOOL wglReleaseTexImageARB_Hook (HPBUFFERARB hPbuffer, int iBuffer);
1091 BOOL wglSetPbufferAttribARB_Hook (HPBUFFERARB hPbuffer, const int *piAttribList);
1093 // WGL_NV_present_video
1094 int wglEnumerateVideoDevicesNV_Hook (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
1095 BOOL wglBindVideoDeviceNV_Hook (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
1096 BOOL wglQueryCurrentContextNV_Hook (int iAttribute, int *piValue);
1098 // WGL_ARB_create_context
1099 HGLRC wglCreateContextAttribsARB_Hook (HDC hDC, HGLRC hShareContext, const int *attribList);
1101 // WGL_EXT_extensions_string
1102 const char * wglGetExtensionsStringEXT_Hook ();
1104 // WGL_EXT_swap_control
1105 BOOL wglSwapIntervalEXT_Hook(int interval);
1106 int wglGetSwapIntervalEXT_Hook();
1108 // WGL_OML_sync_control
1109 BOOL wglGetSyncValuesOML_Hook (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
1110 BOOL wglGetMscRateOML_Hook (HDC hdc, INT32 *numerator, INT32 *denominator);
1111 INT64 wglSwapBuffersMscOML_Hook (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
1112 INT64 wglSwapLayerBuffersMscOML_Hook (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
1113 BOOL wglWaitForMscOML_Hook (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
1114 BOOL wglWaitForSbcOML_Hook (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
1116 // WGL_NV_video_output
1117 BOOL wglGetVideoDeviceNV_Hook (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
1118 BOOL wglReleaseVideoDeviceNV_Hook (HPVIDEODEV hVideoDevice);
1119 BOOL wglBindVideoImageNV_Hook (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
1120 BOOL wglReleaseVideoImageNV_Hook (HPBUFFERARB hPbuffer, int iVideoBuffer);
1121 BOOL wglSendPbufferToVideoNV_Hook (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
1122 BOOL wglGetVideoInfoNV_Hook (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
1124 // WGL_NV_swap_group
1125 BOOL wglJoinSwapGroupNV_Hook (HDC hDC, GLuint group);
1126 BOOL wglBindSwapBarrierNV_Hook (GLuint group, GLuint barrier);
1127 BOOL wglQuerySwapGroupNV_Hook (HDC hDC, GLuint *group, GLuint *barrier);
1128 BOOL wglQueryMaxSwapGroupsNV_Hook (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
1129 BOOL wglQueryFrameCountNV_Hook (HDC hDC, GLuint *count);
1130 BOOL wglResetFrameCountNV_Hook (HDC hDC);
1132 // WGL_NV_video_capture
1133 BOOL wglBindVideoCaptureDeviceNV_Hook (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
1134 UINT wglEnumerateVideoCaptureDevicesNV_Hook (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
1135 BOOL wglLockVideoCaptureDeviceNV_Hook (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
1136 BOOL wglQueryVideoCaptureDeviceNV_Hook (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
1137 BOOL wglReleaseVideoCaptureDeviceNV_Hook (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
1139 // WGL_NV_copy_image
1140 BOOL wglCopyImageSubDataNV_Hook (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
1142 // WGL_NV_DX_interop
1143 BOOL wglDXSetResourceShareHandleNV_Hook(void *dxObject, HANDLE shareHandle);
1144 HANDLE wglDXOpenDeviceNV_Hook(void *dxDevice);
1145 BOOL wglDXCloseDeviceNV_Hook(HANDLE hDevice);
1146 HANDLE wglDXRegisterObjectNV_Hook(HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
1147 BOOL wglDXUnregisterObjectNV_Hook(HANDLE hDevice, HANDLE hObject);
1148 BOOL wglDXObjectAccessNV_Hook(HANDLE hObject, GLenum access);
1149 BOOL wglDXLockObjectsNV_Hook(HANDLE hDevice, GLint count, HANDLE *hObjects);
1150 BOOL wglDXUnlockObjectsNV_Hook(HANDLE hDevice, GLint count, HANDLE *hObjects);
1151 #endif // GLE_WGL_ENABLED
1153 #if defined(GLE_GLX_ENABLED)
1154 void PostGLXHook(const char* functionName);
1156 // GLX_VERSION_1_0
1157 // GLX_VERSION_1_1
1158 // We don't currently do hooking of these.
1160 // GLX_VERSION_1_2
1161 ::Display* glXGetCurrentDisplay_Hook(void);
1163 // GLX_VERSION_1_3
1164 GLXFBConfig* glXChooseFBConfig_Hook(::Display *dpy, int screen, const int *attrib_list, int *nelements);
1165 GLXContext glXCreateNewContext_Hook(::Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
1166 GLXPbuffer glXCreatePbuffer_Hook(::Display *dpy, GLXFBConfig config, const int *attrib_list);
1167 GLXPixmap glXCreatePixmap_Hook(::Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
1168 GLXWindow glXCreateWindow_Hook(::Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
1169 void glXDestroyPbuffer_Hook(::Display *dpy, GLXPbuffer pbuf);
1170 void glXDestroyPixmap_Hook(::Display *dpy, GLXPixmap pixmap);
1171 void glXDestroyWindow_Hook(::Display *dpy, GLXWindow win);
1172 GLXDrawable glXGetCurrentReadDrawable_Hook(void);
1173 int glXGetFBConfigAttrib_Hook(::Display *dpy, GLXFBConfig config, int attribute, int *value);
1174 GLXFBConfig* glXGetFBConfigs_Hook(::Display *dpy, int screen, int *nelements);
1175 void glXGetSelectedEvent_Hook(::Display *dpy, GLXDrawable draw, unsigned long *event_mask);
1176 XVisualInfo* glXGetVisualFromFBConfig_Hook(::Display *dpy, GLXFBConfig config);
1177 Bool glXMakeContextCurrent_Hook(::Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
1178 int glXQueryContext_Hook(::Display *dpy, GLXContext ctx, int attribute, int *value);
1179 void glXQueryDrawable_Hook(::Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
1180 void glXSelectEvent_Hook(::Display *dpy, GLXDrawable draw, unsigned long event_mask);
1182 // GLX_VERSION_1_4
1183 // We don't do hooking of this.
1185 // GLX_ARB_create_context
1186 GLXContext glXCreateContextAttribsARB_Hook(Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
1188 // GLX_EXT_swap_control
1189 void glXSwapIntervalEXT_Hook(::Display* dpy, GLXDrawable drawable, int interval);
1191 // GLX_OML_sync_control
1192 Bool glXGetMscRateOML_Hook(::Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
1193 Bool glXGetSyncValuesOML_Hook(::Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
1194 int64_t glXSwapBuffersMscOML_Hook(::Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
1195 Bool glXWaitForMscOML_Hook(::Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
1196 Bool glXWaitForSbcOML_Hook(::Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
1198 // GLX_MESA_swap_control
1199 int glXGetSwapIntervalMESA_Hook();
1200 int glXSwapIntervalMESA_Hook(unsigned int interval);
1202 #endif // GLE_GLX_ENABLED
1204 #endif // #if defined(GLE_HOOKING_ENABLED)
1206 // GL_VERSION_1_1
1207 // These are not represented by function pointers.
1209 // GL_VERSION_1_2
1210 PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D_Impl;
1211 PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements_Impl;
1212 PFNGLTEXIMAGE3DPROC glTexImage3D_Impl;
1213 PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D_Impl;
1215 // GL_VERSION_1_2 deprecated functions
1216 /* Not currently supported
1217 PFNGLCOLORTABLEPROC glColorTable_Impl;
1218 PFNGLCOLORTABLEPARAMETERFVPROC glColorTableParameterfv_Impl;
1219 PFNGLCOLORTABLEPARAMETERIVPROC glColorTableParameteriv_Impl;
1220 PFNGLCOPYCOLORTABLEPROC glCopyColorTable_Impl;
1221 PFNGLGETCOLORTABLEPROC glGetColorTable_Impl;
1222 PFNGLGETCOLORTABLEPARAMETERFVPROC glGetColorTableParameterfv_Impl;
1223 PFNGLGETCOLORTABLEPARAMETERIVPROC glGetColorTableParameteriv_Impl;
1224 PFNGLCOLORSUBTABLEPROC glColorSubTable_Impl;
1225 PFNGLCOPYCOLORSUBTABLEPROC glCopyColorSubTable_Impl;
1226 PFNGLCONVOLUTIONFILTER1DPROC glConvolutionFilter1D_Impl;
1227 PFNGLCONVOLUTIONFILTER2DPROC glConvolutionFilter2D_Impl;
1228 PFNGLCONVOLUTIONPARAMETERFPROC glConvolutionParameterf_Impl;
1229 PFNGLCONVOLUTIONPARAMETERFVPROC glConvolutionParameterfv_Impl;
1230 PFNGLCONVOLUTIONPARAMETERIPROC glConvolutionParameteri_Impl;
1231 PFNGLCONVOLUTIONPARAMETERIVPROC glConvolutionParameteriv_Impl;
1232 PFNGLCOPYCONVOLUTIONFILTER1DPROC glCopyConvolutionFilter1D_Impl;
1233 PFNGLCOPYCONVOLUTIONFILTER2DPROC glCopyConvolutionFilter2D_Impl;
1234 PFNGLGETCONVOLUTIONFILTERPROC glGetConvolutionFilter_Impl;
1235 PFNGLGETCONVOLUTIONPARAMETERFVPROC glGetConvolutionParameterfv_Impl;
1236 PFNGLGETCONVOLUTIONPARAMETERIVPROC glGetConvolutionParameteriv_Impl;
1237 PFNGLGETSEPARABLEFILTERPROC glGetSeparableFilter_Impl;
1238 PFNGLSEPARABLEFILTER2DPROC glSeparableFilter2D_Impl;
1239 PFNGLGETHISTOGRAMPROC glGetHistogram_Impl;
1240 PFNGLGETHISTOGRAMPARAMETERFVPROC glGetHistogramParameterfv_Impl;
1241 PFNGLGETHISTOGRAMPARAMETERIVPROC glGetHistogramParameteriv_Impl;
1242 PFNGLGETMINMAXPROC glGetMinmax_Impl;
1243 PFNGLGETMINMAXPARAMETERFVPROC glGetMinmaxParameterfv_Impl;
1244 PFNGLGETMINMAXPARAMETERIVPROC glGetMinmaxParameteriv_Impl;
1245 PFNGLHISTOGRAMPROC glHistogram_Impl;
1246 PFNGLMINMAXPROC glMinmax_Impl;
1247 PFNGLRESETHISTOGRAMPROC glResetHistogram_Impl;
1248 PFNGLRESETMINMAXPROC glResetMinmax_Impl;
1249 */
1251 // GL_VERSION_1_3
1252 PFNGLACTIVETEXTUREPROC glActiveTexture_Impl;
1253 PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture_Impl;
1254 PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D_Impl;
1255 PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D_Impl;
1256 PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D_Impl;
1257 PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D_Impl;
1258 PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D_Impl;
1259 PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D_Impl;
1260 PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage_Impl;
1261 PFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd_Impl;
1262 PFNGLLOADTRANSPOSEMATRIXFPROC glLoadTransposeMatrixf_Impl;
1263 PFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd_Impl;
1264 PFNGLMULTTRANSPOSEMATRIXFPROC glMultTransposeMatrixf_Impl;
1265 PFNGLMULTITEXCOORD1DPROC glMultiTexCoord1d_Impl;
1266 PFNGLMULTITEXCOORD1DVPROC glMultiTexCoord1dv_Impl;
1267 PFNGLMULTITEXCOORD1FPROC glMultiTexCoord1f_Impl;
1268 PFNGLMULTITEXCOORD1FVPROC glMultiTexCoord1fv_Impl;
1269 PFNGLMULTITEXCOORD1IPROC glMultiTexCoord1i_Impl;
1270 PFNGLMULTITEXCOORD1IVPROC glMultiTexCoord1iv_Impl;
1271 PFNGLMULTITEXCOORD1SPROC glMultiTexCoord1s_Impl;
1272 PFNGLMULTITEXCOORD1SVPROC glMultiTexCoord1sv_Impl;
1273 PFNGLMULTITEXCOORD2DPROC glMultiTexCoord2d_Impl;
1274 PFNGLMULTITEXCOORD2DVPROC glMultiTexCoord2dv_Impl;
1275 PFNGLMULTITEXCOORD2FPROC glMultiTexCoord2f_Impl;
1276 PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv_Impl;
1277 PFNGLMULTITEXCOORD2IPROC glMultiTexCoord2i_Impl;
1278 PFNGLMULTITEXCOORD2IVPROC glMultiTexCoord2iv_Impl;
1279 PFNGLMULTITEXCOORD2SPROC glMultiTexCoord2s_Impl;
1280 PFNGLMULTITEXCOORD2SVPROC glMultiTexCoord2sv_Impl;
1281 PFNGLMULTITEXCOORD3DPROC glMultiTexCoord3d_Impl;
1282 PFNGLMULTITEXCOORD3DVPROC glMultiTexCoord3dv_Impl;
1283 PFNGLMULTITEXCOORD3FPROC glMultiTexCoord3f_Impl;
1284 PFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv_Impl;
1285 PFNGLMULTITEXCOORD3IPROC glMultiTexCoord3i_Impl;
1286 PFNGLMULTITEXCOORD3IVPROC glMultiTexCoord3iv_Impl;
1287 PFNGLMULTITEXCOORD3SPROC glMultiTexCoord3s_Impl;
1288 PFNGLMULTITEXCOORD3SVPROC glMultiTexCoord3sv_Impl;
1289 PFNGLMULTITEXCOORD4DPROC glMultiTexCoord4d_Impl;
1290 PFNGLMULTITEXCOORD4DVPROC glMultiTexCoord4dv_Impl;
1291 PFNGLMULTITEXCOORD4FPROC glMultiTexCoord4f_Impl;
1292 PFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv_Impl;
1293 PFNGLMULTITEXCOORD4IPROC glMultiTexCoord4i_Impl;
1294 PFNGLMULTITEXCOORD4IVPROC glMultiTexCoord4iv_Impl;
1295 PFNGLMULTITEXCOORD4SPROC glMultiTexCoord4s_Impl;
1296 PFNGLMULTITEXCOORD4SVPROC glMultiTexCoord4sv_Impl;
1297 PFNGLSAMPLECOVERAGEPROC glSampleCoverage_Impl;
1299 // GL_VERSION_1_4
1300 PFNGLBLENDCOLORPROC glBlendColor_Impl;
1301 PFNGLBLENDEQUATIONPROC glBlendEquation_Impl;
1302 PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate_Impl;
1303 PFNGLFOGCOORDPOINTERPROC glFogCoordPointer_Impl;
1304 PFNGLFOGCOORDDPROC glFogCoordd_Impl;
1305 PFNGLFOGCOORDDVPROC glFogCoorddv_Impl;
1306 PFNGLFOGCOORDFPROC glFogCoordf_Impl;
1307 PFNGLFOGCOORDFVPROC glFogCoordfv_Impl;
1308 PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays_Impl;
1309 PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements_Impl;
1310 PFNGLPOINTPARAMETERFPROC glPointParameterf_Impl;
1311 PFNGLPOINTPARAMETERFVPROC glPointParameterfv_Impl;
1312 PFNGLPOINTPARAMETERIPROC glPointParameteri_Impl;
1313 PFNGLPOINTPARAMETERIVPROC glPointParameteriv_Impl;
1314 PFNGLSECONDARYCOLOR3BPROC glSecondaryColor3b_Impl;
1315 PFNGLSECONDARYCOLOR3BVPROC glSecondaryColor3bv_Impl;
1316 PFNGLSECONDARYCOLOR3DPROC glSecondaryColor3d_Impl;
1317 PFNGLSECONDARYCOLOR3DVPROC glSecondaryColor3dv_Impl;
1318 PFNGLSECONDARYCOLOR3FPROC glSecondaryColor3f_Impl;
1319 PFNGLSECONDARYCOLOR3FVPROC glSecondaryColor3fv_Impl;
1320 PFNGLSECONDARYCOLOR3IPROC glSecondaryColor3i_Impl;
1321 PFNGLSECONDARYCOLOR3IVPROC glSecondaryColor3iv_Impl;
1322 PFNGLSECONDARYCOLOR3SPROC glSecondaryColor3s_Impl;
1323 PFNGLSECONDARYCOLOR3SVPROC glSecondaryColor3sv_Impl;
1324 PFNGLSECONDARYCOLOR3UBPROC glSecondaryColor3ub_Impl;
1325 PFNGLSECONDARYCOLOR3UBVPROC glSecondaryColor3ubv_Impl;
1326 PFNGLSECONDARYCOLOR3UIPROC glSecondaryColor3ui_Impl;
1327 PFNGLSECONDARYCOLOR3UIVPROC glSecondaryColor3uiv_Impl;
1328 PFNGLSECONDARYCOLOR3USPROC glSecondaryColor3us_Impl;
1329 PFNGLSECONDARYCOLOR3USVPROC glSecondaryColor3usv_Impl;
1330 PFNGLSECONDARYCOLORPOINTERPROC glSecondaryColorPointer_Impl;
1331 PFNGLWINDOWPOS2DPROC glWindowPos2d_Impl;
1332 PFNGLWINDOWPOS2DVPROC glWindowPos2dv_Impl;
1333 PFNGLWINDOWPOS2FPROC glWindowPos2f_Impl;
1334 PFNGLWINDOWPOS2FVPROC glWindowPos2fv_Impl;
1335 PFNGLWINDOWPOS2IPROC glWindowPos2i_Impl;
1336 PFNGLWINDOWPOS2IVPROC glWindowPos2iv_Impl;
1337 PFNGLWINDOWPOS2SPROC glWindowPos2s_Impl;
1338 PFNGLWINDOWPOS2SVPROC glWindowPos2sv_Impl;
1339 PFNGLWINDOWPOS3DPROC glWindowPos3d_Impl;
1340 PFNGLWINDOWPOS3DVPROC glWindowPos3dv_Impl;
1341 PFNGLWINDOWPOS3FPROC glWindowPos3f_Impl;
1342 PFNGLWINDOWPOS3FVPROC glWindowPos3fv_Impl;
1343 PFNGLWINDOWPOS3IPROC glWindowPos3i_Impl;
1344 PFNGLWINDOWPOS3IVPROC glWindowPos3iv_Impl;
1345 PFNGLWINDOWPOS3SPROC glWindowPos3s_Impl;
1346 PFNGLWINDOWPOS3SVPROC glWindowPos3sv_Impl;
1348 // GL_VERSION_1_5
1349 PFNGLBEGINQUERYPROC glBeginQuery_Impl;
1350 PFNGLBINDBUFFERPROC glBindBuffer_Impl;
1351 PFNGLBUFFERDATAPROC glBufferData_Impl;
1352 PFNGLBUFFERSUBDATAPROC glBufferSubData_Impl;
1353 PFNGLDELETEBUFFERSPROC glDeleteBuffers_Impl;
1354 PFNGLDELETEQUERIESPROC glDeleteQueries_Impl;
1355 PFNGLENDQUERYPROC glEndQuery_Impl;
1356 PFNGLGENBUFFERSPROC glGenBuffers_Impl;
1357 PFNGLGENQUERIESPROC glGenQueries_Impl;
1358 PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv_Impl;
1359 PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv_Impl;
1360 PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData_Impl;
1361 PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv_Impl;
1362 PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv_Impl;
1363 PFNGLGETQUERYIVPROC glGetQueryiv_Impl;
1364 PFNGLISBUFFERPROC glIsBuffer_Impl;
1365 PFNGLISQUERYPROC glIsQuery_Impl;
1366 PFNGLMAPBUFFERPROC glMapBuffer_Impl;
1367 PFNGLUNMAPBUFFERPROC glUnmapBuffer_Impl;
1369 // GL_VERSION_2_0
1370 PFNGLATTACHSHADERPROC glAttachShader_Impl;
1371 PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation_Impl;
1372 PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate_Impl;
1373 PFNGLCOMPILESHADERPROC glCompileShader_Impl;
1374 PFNGLCREATEPROGRAMPROC glCreateProgram_Impl;
1375 PFNGLCREATESHADERPROC glCreateShader_Impl;
1376 PFNGLDELETEPROGRAMPROC glDeleteProgram_Impl;
1377 PFNGLDELETESHADERPROC glDeleteShader_Impl;
1378 PFNGLDETACHSHADERPROC glDetachShader_Impl;
1379 PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray_Impl;
1380 PFNGLDRAWBUFFERSPROC glDrawBuffers_Impl;
1381 PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray_Impl;
1382 PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib_Impl;
1383 PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform_Impl;
1384 PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders_Impl;
1385 PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation_Impl;
1386 PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog_Impl;
1387 PFNGLGETPROGRAMIVPROC glGetProgramiv_Impl;
1388 PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog_Impl;
1389 PFNGLGETSHADERSOURCEPROC glGetShaderSource_Impl;
1390 PFNGLGETSHADERIVPROC glGetShaderiv_Impl;
1391 PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation_Impl;
1392 PFNGLGETUNIFORMFVPROC glGetUniformfv_Impl;
1393 PFNGLGETUNIFORMIVPROC glGetUniformiv_Impl;
1394 PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv_Impl;
1395 PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv_Impl;
1396 PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv_Impl;
1397 PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv_Impl;
1398 PFNGLISPROGRAMPROC glIsProgram_Impl;
1399 PFNGLISSHADERPROC glIsShader_Impl;
1400 PFNGLLINKPROGRAMPROC glLinkProgram_Impl;
1401 PFNGLSHADERSOURCEPROC glShaderSource_Impl;
1402 PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate_Impl;
1403 PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate_Impl;
1404 PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate_Impl;
1405 PFNGLUNIFORM1FPROC glUniform1f_Impl;
1406 PFNGLUNIFORM1FVPROC glUniform1fv_Impl;
1407 PFNGLUNIFORM1IPROC glUniform1i_Impl;
1408 PFNGLUNIFORM1IVPROC glUniform1iv_Impl;
1409 PFNGLUNIFORM2FPROC glUniform2f_Impl;
1410 PFNGLUNIFORM2FVPROC glUniform2fv_Impl;
1411 PFNGLUNIFORM2IPROC glUniform2i_Impl;
1412 PFNGLUNIFORM2IVPROC glUniform2iv_Impl;
1413 PFNGLUNIFORM3FPROC glUniform3f_Impl;
1414 PFNGLUNIFORM3FVPROC glUniform3fv_Impl;
1415 PFNGLUNIFORM3IPROC glUniform3i_Impl;
1416 PFNGLUNIFORM3IVPROC glUniform3iv_Impl;
1417 PFNGLUNIFORM4FPROC glUniform4f_Impl;
1418 PFNGLUNIFORM4FVPROC glUniform4fv_Impl;
1419 PFNGLUNIFORM4IPROC glUniform4i_Impl;
1420 PFNGLUNIFORM4IVPROC glUniform4iv_Impl;
1421 PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv_Impl;
1422 PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv_Impl;
1423 PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv_Impl;
1424 PFNGLUSEPROGRAMPROC glUseProgram_Impl;
1425 PFNGLVALIDATEPROGRAMPROC glValidateProgram_Impl;
1426 PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d_Impl;
1427 PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv_Impl;
1428 PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f_Impl;
1429 PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv_Impl;
1430 PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s_Impl;
1431 PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv_Impl;
1432 PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d_Impl;
1433 PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv_Impl;
1434 PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f_Impl;
1435 PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv_Impl;
1436 PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s_Impl;
1437 PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv_Impl;
1438 PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d_Impl;
1439 PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv_Impl;
1440 PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f_Impl;
1441 PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv_Impl;
1442 PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s_Impl;
1443 PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv_Impl;
1444 PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv_Impl;
1445 PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv_Impl;
1446 PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv_Impl;
1447 PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub_Impl;
1448 PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv_Impl;
1449 PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv_Impl;
1450 PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv_Impl;
1451 PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv_Impl;
1452 PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d_Impl;
1453 PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv_Impl;
1454 PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f_Impl;
1455 PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv_Impl;
1456 PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv_Impl;
1457 PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s_Impl;
1458 PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv_Impl;
1459 PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv_Impl;
1460 PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv_Impl;
1461 PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv_Impl;
1462 PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer_Impl;
1464 // GL_VERSION_2_1
1465 PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv_Impl;
1466 PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv_Impl;
1467 PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv_Impl;
1468 PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv_Impl;
1469 PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv_Impl;
1470 PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv_Impl;
1472 // GL_VERSION_3_0
1473 PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender_Impl;
1474 PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback_Impl;
1475 PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation_Impl;
1476 PFNGLCLAMPCOLORPROC glClampColor_Impl;
1477 PFNGLCLEARBUFFERFIPROC glClearBufferfi_Impl;
1478 PFNGLCLEARBUFFERFVPROC glClearBufferfv_Impl;
1479 PFNGLCLEARBUFFERIVPROC glClearBufferiv_Impl;
1480 PFNGLCLEARBUFFERUIVPROC glClearBufferuiv_Impl;
1481 PFNGLCOLORMASKIPROC glColorMaski_Impl;
1482 PFNGLDISABLEIPROC glDisablei_Impl;
1483 PFNGLENABLEIPROC glEnablei_Impl;
1484 PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender_Impl;
1485 PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback_Impl;
1486 PFNGLBINDBUFFERRANGEPROC glBindBufferRange_Impl;
1487 PFNGLBINDBUFFERBASEPROC glBindBufferBase_Impl;
1488 PFNGLGETBOOLEANI_VPROC glGetBooleani_v_Impl;
1489 PFNGLGETINTEGERI_VPROC glGetIntegeri_v_Impl;
1490 PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation_Impl;
1491 PFNGLGETSTRINGIPROC glGetStringi_Impl;
1492 PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv_Impl;
1493 PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv_Impl;
1494 PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying_Impl;
1495 PFNGLGETUNIFORMUIVPROC glGetUniformuiv_Impl;
1496 PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv_Impl;
1497 PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv_Impl;
1498 PFNGLISENABLEDIPROC glIsEnabledi_Impl;
1499 PFNGLTEXPARAMETERIIVPROC glTexParameterIiv_Impl;
1500 PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv_Impl;
1501 PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings_Impl;
1502 PFNGLUNIFORM1UIPROC glUniform1ui_Impl;
1503 PFNGLUNIFORM1UIVPROC glUniform1uiv_Impl;
1504 PFNGLUNIFORM2UIPROC glUniform2ui_Impl;
1505 PFNGLUNIFORM2UIVPROC glUniform2uiv_Impl;
1506 PFNGLUNIFORM3UIPROC glUniform3ui_Impl;
1507 PFNGLUNIFORM3UIVPROC glUniform3uiv_Impl;
1508 PFNGLUNIFORM4UIPROC glUniform4ui_Impl;
1509 PFNGLUNIFORM4UIVPROC glUniform4uiv_Impl;
1510 PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i_Impl;
1511 PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv_Impl;
1512 PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui_Impl;
1513 PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv_Impl;
1514 PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i_Impl;
1515 PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv_Impl;
1516 PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui_Impl;
1517 PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv_Impl;
1518 PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i_Impl;
1519 PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv_Impl;
1520 PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui_Impl;
1521 PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv_Impl;
1522 PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv_Impl;
1523 PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i_Impl;
1524 PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv_Impl;
1525 PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv_Impl;
1526 PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv_Impl;
1527 PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui_Impl;
1528 PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv_Impl;
1529 PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv_Impl;
1530 PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer_Impl;
1532 // GL_VERSION_3_1
1533 PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced_Impl;
1534 PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced_Impl;
1535 PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex_Impl;
1536 PFNGLTEXBUFFERPROC glTexBuffer_Impl;
1538 // GL_VERSION_3_2
1539 PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture_Impl;
1540 PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v_Impl;
1541 PFNGLGETINTEGER64I_VPROC glGetInteger64i_v_Impl;
1543 // GL_VERSION_3_3
1544 PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor_Impl;
1546 // GL_VERSION_4_0
1547 PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei_Impl;
1548 PFNGLBLENDEQUATIONIPROC glBlendEquationi_Impl;
1549 PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei_Impl;
1550 PFNGLBLENDFUNCIPROC glBlendFunci_Impl;
1551 PFNGLMINSAMPLESHADINGPROC glMinSampleShading_Impl;
1553 // GL_AMD_debug_output
1554 PFNGLDEBUGMESSAGECALLBACKAMDPROC glDebugMessageCallbackAMD_Impl;
1555 PFNGLDEBUGMESSAGEENABLEAMDPROC glDebugMessageEnableAMD_Impl;
1556 PFNGLDEBUGMESSAGEINSERTAMDPROC glDebugMessageInsertAMD_Impl;
1557 PFNGLGETDEBUGMESSAGELOGAMDPROC glGetDebugMessageLogAMD_Impl;
1559 #if defined(GLE_CGL_ENABLED)
1560 // GL_APPLE_aux_depth_stencil
1561 // (no functions)
1563 // GL_APPLE_client_storage
1564 // (no functions)
1566 // GL_APPLE_element_array
1567 PFNGLDRAWELEMENTARRAYAPPLEPROC glDrawElementArrayAPPLE_Impl;
1568 PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC glDrawRangeElementArrayAPPLE_Impl;
1569 PFNGLELEMENTPOINTERAPPLEPROC glElementPointerAPPLE_Impl;
1570 PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC glMultiDrawElementArrayAPPLE_Impl;
1571 PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC glMultiDrawRangeElementArrayAPPLE_Impl;
1573 // GL_APPLE_fence
1574 PFNGLDELETEFENCESAPPLEPROC glDeleteFencesAPPLE_Impl;
1575 PFNGLFINISHFENCEAPPLEPROC glFinishFenceAPPLE_Impl;
1576 PFNGLFINISHOBJECTAPPLEPROC glFinishObjectAPPLE_Impl;
1577 PFNGLGENFENCESAPPLEPROC glGenFencesAPPLE_Impl;
1578 PFNGLISFENCEAPPLEPROC glIsFenceAPPLE_Impl;
1579 PFNGLSETFENCEAPPLEPROC glSetFenceAPPLE_Impl;
1580 PFNGLTESTFENCEAPPLEPROC glTestFenceAPPLE_Impl;
1581 PFNGLTESTOBJECTAPPLEPROC glTestObjectAPPLE_Impl;
1583 // GL_APPLE_float_pixels
1584 // (no functions)
1586 // GL_APPLE_flush_buffer_range
1587 PFNGLBUFFERPARAMETERIAPPLEPROC glBufferParameteriAPPLE_Impl;
1588 PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC glFlushMappedBufferRangeAPPLE_Impl;
1590 // GL_APPLE_object_purgeable
1591 PFNGLGETOBJECTPARAMETERIVAPPLEPROC glGetObjectParameterivAPPLE_Impl;
1592 PFNGLOBJECTPURGEABLEAPPLEPROC glObjectPurgeableAPPLE_Impl;
1593 PFNGLOBJECTUNPURGEABLEAPPLEPROC glObjectUnpurgeableAPPLE_Impl;
1595 // GL_APPLE_pixel_buffer
1596 // (no functions)
1598 // GL_APPLE_rgb_422
1599 // (no functions)
1601 // GL_APPLE_row_bytes
1602 // (no functions)
1604 // GL_APPLE_specular_vector
1605 // (no functions)
1607 // GL_APPLE_texture_range
1608 PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC glGetTexParameterPointervAPPLE_Impl;
1609 PFNGLTEXTURERANGEAPPLEPROC glTextureRangeAPPLE_Impl;
1611 // GL_APPLE_transform_hint
1612 // (no functions)
1614 // GL_APPLE_vertex_array_object
1615 PFNGLBINDVERTEXARRAYAPPLEPROC glBindVertexArrayAPPLE_Impl;
1616 PFNGLDELETEVERTEXARRAYSAPPLEPROC glDeleteVertexArraysAPPLE_Impl;
1617 PFNGLGENVERTEXARRAYSAPPLEPROC glGenVertexArraysAPPLE_Impl;
1618 PFNGLISVERTEXARRAYAPPLEPROC glIsVertexArrayAPPLE_Impl;
1620 // GL_APPLE_vertex_array_range
1621 PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC glFlushVertexArrayRangeAPPLE_Impl;
1622 PFNGLVERTEXARRAYPARAMETERIAPPLEPROC glVertexArrayParameteriAPPLE_Impl;
1623 PFNGLVERTEXARRAYRANGEAPPLEPROC glVertexArrayRangeAPPLE_Impl;
1625 // GL_APPLE_vertex_program_evaluators
1626 PFNGLDISABLEVERTEXATTRIBAPPLEPROC glDisableVertexAttribAPPLE_Impl;
1627 PFNGLENABLEVERTEXATTRIBAPPLEPROC glEnableVertexAttribAPPLE_Impl;
1628 PFNGLISVERTEXATTRIBENABLEDAPPLEPROC glIsVertexAttribEnabledAPPLE_Impl;
1629 PFNGLMAPVERTEXATTRIB1DAPPLEPROC glMapVertexAttrib1dAPPLE_Impl;
1630 PFNGLMAPVERTEXATTRIB1FAPPLEPROC glMapVertexAttrib1fAPPLE_Impl;
1631 PFNGLMAPVERTEXATTRIB2DAPPLEPROC glMapVertexAttrib2dAPPLE_Impl;
1632 PFNGLMAPVERTEXATTRIB2FAPPLEPROC glMapVertexAttrib2fAPPLE_Impl;
1633 #endif // GLE_CGL_ENABLED
1635 // GL_ARB_debug_output
1636 PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB_Impl;
1637 PFNGLDEBUGMESSAGECONTROLARBPROC glDebugMessageControlARB_Impl;
1638 PFNGLDEBUGMESSAGEINSERTARBPROC glDebugMessageInsertARB_Impl;
1639 PFNGLGETDEBUGMESSAGELOGARBPROC glGetDebugMessageLogARB_Impl;
1641 // GL_ARB_ES2_compatibility
1642 PFNGLCLEARDEPTHFPROC glClearDepthf_Impl;
1643 PFNGLDEPTHRANGEFPROC glDepthRangef_Impl;
1644 PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat_Impl;
1645 PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler_Impl;
1646 PFNGLSHADERBINARYPROC glShaderBinary_Impl;
1648 // GL_ARB_framebuffer_object
1649 PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer_Impl;
1650 PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer_Impl;
1651 PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer_Impl;
1652 PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus_Impl;
1653 PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers_Impl;
1654 PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers_Impl;
1655 PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer_Impl;
1656 PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D_Impl;
1657 PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D_Impl;
1658 PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D_Impl;
1659 PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer_Impl;
1660 PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers_Impl;
1661 PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers_Impl;
1662 PFNGLGENERATEMIPMAPPROC glGenerateMipmap_Impl;
1663 PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv_Impl;
1664 PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv_Impl;
1665 PFNGLISFRAMEBUFFERPROC glIsFramebuffer_Impl;
1666 PFNGLISRENDERBUFFERPROC glIsRenderbuffer_Impl;
1667 PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage_Impl;
1668 PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample_Impl;
1670 // GL_ARB_framebuffer_sRGB
1671 // (no functions)
1673 // GL_ARB_texture_multisample
1674 PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv_Impl;
1675 PFNGLSAMPLEMASKIPROC glSampleMaski_Impl;
1676 PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample_Impl;
1677 PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample_Impl;
1679 // GL_ARB_texture_non_power_of_two
1680 // (no functions)
1682 // GL_ARB_texture_rectangle
1683 // (no functions)
1685 // GL_ARB_timer_query
1686 PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v_Impl;
1687 PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v_Impl;
1688 PFNGLQUERYCOUNTERPROC glQueryCounter_Impl;
1690 // GL_ARB_vertex_array_object
1691 PFNGLBINDVERTEXARRAYPROC glBindVertexArray_Impl;
1692 PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays_Impl;
1693 PFNGLGENVERTEXARRAYSPROC glGenVertexArrays_Impl;
1694 PFNGLISVERTEXARRAYPROC glIsVertexArray_Impl;
1696 // GL_EXT_draw_buffers2
1697 PFNGLCOLORMASKINDEXEDEXTPROC glColorMaskIndexedEXT_Impl;
1698 PFNGLDISABLEINDEXEDEXTPROC glDisableIndexedEXT_Impl;
1699 PFNGLENABLEINDEXEDEXTPROC glEnableIndexedEXT_Impl;
1700 PFNGLGETBOOLEANINDEXEDVEXTPROC glGetBooleanIndexedvEXT_Impl;
1701 PFNGLGETINTEGERINDEXEDVEXTPROC glGetIntegerIndexedvEXT_Impl;
1702 PFNGLISENABLEDINDEXEDEXTPROC glIsEnabledIndexedEXT_Impl;
1704 // GL_EXT_texture_filter_anisotropic
1705 // (no functions)
1707 // GL_KHR_debug
1708 PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback_Impl;
1709 PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl_Impl;
1710 PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert_Impl;
1711 PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog_Impl;
1712 PFNGLGETOBJECTLABELPROC glGetObjectLabel_Impl;
1713 PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel_Impl;
1714 PFNGLOBJECTLABELPROC glObjectLabel_Impl;
1715 PFNGLOBJECTPTRLABELPROC glObjectPtrLabel_Impl;
1716 PFNGLPOPDEBUGGROUPPROC glPopDebugGroup_Impl;
1717 PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup_Impl;
1719 // GL_KHR_robust_buffer_access_behavior
1721 // GL_WIN_swap_hint
1722 PFNGLADDSWAPHINTRECTWINPROC glAddSwapHintRectWIN_Impl;
1724 #if defined(GLE_WGL_ENABLED)
1725 // WGL
1726 // We don't declare pointers for these because we statically link to the implementations, same as with the OpenGL 1.1 functions.
1727 // BOOL wglCopyContext_Hook(HGLRC, HGLRC, UINT);
1728 // HGLRC wglCreateContext_Hook(HDC);
1729 // HGLRC wglCreateLayerContext_Hook(HDC, int);
1730 // BOOL wglDeleteContext_Hook(HGLRC);
1731 // HGLRC wglGetCurrentContext_Hook(VOID);
1732 // HDC wglGetCurrentDC_Hook(VOID);
1733 // PROC wglGetProcAddress_Hook(LPCSTR);
1734 // BOOL wglMakeCurrent_Hook(HDC, HGLRC);
1735 // BOOL wglShareLists_Hook(HGLRC, HGLRC);
1736 // BOOL wglUseFontBitmapsA_Hook(HDC, DWORD, DWORD, DWORD);
1737 // BOOL wglUseFontBitmapsW_Hook(HDC, DWORD, DWORD, DWORD);
1738 // BOOL wglUseFontOutlinesA_Hook(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
1739 // BOOL wglUseFontOutlinesW_Hook(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
1740 // BOOL wglDescribeLayerPlane_Hook(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
1741 // int wglSetLayerPaletteEntries_Hook(HDC, int, int, int, CONST COLORREF *);
1742 // int wglGetLayerPaletteEntries_Hook(HDC, int, int, int, COLORREF *);
1743 // BOOL wglRealizeLayerPalette_Hook(HDC, int, BOOL);
1744 // BOOL wglSwapLayerBuffers_Hook(HDC, UINT);
1745 // DWORD wglSwapMultipleBuffers_Hook(UINT, CONST WGLSWAP *);
1747 #if 0
1748 PFNWGLCOPYCONTEXTPROC wglCopyContext_Impl;
1749 PFNWGLCREATECONTEXTPROC wglCreateContext_Impl;
1750 PFNWGLCREATELAYERCONTEXTPROC wglCreateLayerContext_Impl;
1751 PFNWGLDELETECONTEXTPROC wglDeleteContext_Impl;
1752 PFNWGLGETCURRENTCONTEXTPROC wglGetCurrentContext_Impl;
1753 PFNWGLGETCURRENTDCPROC wglGetCurrentDC_Impl;
1754 PFNWGLGETPROCADDRESSPROC wglGetProcAddress_Impl;
1755 PFNWGLMAKECURRENTPROC wglMakeCurrent_Impl;
1756 PFNWGLSHARELISTSPROC wglShareLists_Impl;
1757 PFNWGLUSEFONTBITMAPSAPROC wglUseFontBitmapsA_Impl;
1758 PFNWGLUSEFONTBITMAPSWPROC wglUseFontBitmapsW_Impl;
1759 PFNWGLUSEFONTOUTLINESAPROC wglUseFontOutlinesA_Impl;
1760 PFNWGLUSEFONTOUTLINESWPROC wglUseFontOutlinesW_Impl;
1761 PFNWGLDESCRIBELAYERPLANEPROC wglDescribeLayerPlane_Impl;
1762 PFNWGLSETLAYERPALETTEENTRIESPROC wglSetLayerPaletteEntries_Impl;
1763 PFNWGLGETLAYERPALETTEENTRIESPROC wglGetLayerPaletteEntries_Impl;
1764 PFNWGLREALIZELAYERPALETTEPROC wglRealizeLayerPalette_Impl;
1765 PFNWGLSWAPLAYERBUFFERSPROC wglSwapLayerBuffers_Impl;
1766 PFNWGLSWAPMULTIPLEBUFFERSPROC wglSwapMultipleBuffers_Impl;
1767 #endif
1769 // WGL_ARB_buffer_region
1770 PFNWGLCREATEBUFFERREGIONARBPROC wglCreateBufferRegionARB_Impl;
1771 PFNWGLDELETEBUFFERREGIONARBPROC wglDeleteBufferRegionARB_Impl;
1772 PFNWGLSAVEBUFFERREGIONARBPROC wglSaveBufferRegionARB_Impl;
1773 PFNWGLRESTOREBUFFERREGIONARBPROC wglRestoreBufferRegionARB_Impl;
1775 // WGL_ARB_extensions_string
1776 PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB_Impl;
1778 // WGL_ARB_pixel_format
1779 PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB_Impl;
1780 PFNWGLGETPIXELFORMATATTRIBFVARBPROC wglGetPixelFormatAttribfvARB_Impl;
1781 PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB_Impl;
1783 // WGL_ARB_make_current_read
1784 PFNWGLMAKECONTEXTCURRENTARBPROC wglMakeContextCurrentARB_Impl;
1785 PFNWGLGETCURRENTREADDCARBPROC wglGetCurrentReadDCARB_Impl;
1787 // WGL_ARB_pbuffer
1788 PFNWGLCREATEPBUFFERARBPROC wglCreatePbufferARB_Impl;
1789 PFNWGLGETPBUFFERDCARBPROC wglGetPbufferDCARB_Impl;
1790 PFNWGLRELEASEPBUFFERDCARBPROC wglReleasePbufferDCARB_Impl;
1791 PFNWGLDESTROYPBUFFERARBPROC wglDestroyPbufferARB_Impl;
1792 PFNWGLQUERYPBUFFERARBPROC wglQueryPbufferARB_Impl;
1794 // WGL_ARB_render_texture
1795 PFNWGLBINDTEXIMAGEARBPROC wglBindTexImageARB_Impl;
1796 PFNWGLRELEASETEXIMAGEARBPROC wglReleaseTexImageARB_Impl;
1797 PFNWGLSETPBUFFERATTRIBARBPROC wglSetPbufferAttribARB_Impl;
1799 // WGL_ARB_pixel_format_float
1800 // (no functions)
1802 // WGL_ARB_framebuffer_sRGB
1803 // (no functions)
1805 // WGL_NV_present_video
1806 PFNWGLENUMERATEVIDEODEVICESNVPROC wglEnumerateVideoDevicesNV_Impl;
1807 PFNWGLBINDVIDEODEVICENVPROC wglBindVideoDeviceNV_Impl;
1808 PFNWGLQUERYCURRENTCONTEXTNVPROC wglQueryCurrentContextNV_Impl;
1810 // WGL_ARB_create_context
1811 PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB_Impl;
1813 // WGL_ARB_create_context_profile
1814 // (no functions)
1816 // WGL_ARB_create_context_robustness
1817 // (no functions)
1819 // WGL_EXT_extensions_string
1820 PFNWGLGETEXTENSIONSSTRINGEXTPROC wglGetExtensionsStringEXT_Impl;
1822 // WGL_EXT_swap_control
1823 PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT_Impl;
1824 PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT_Impl;
1826 // WGL_OML_sync_control
1827 PFNWGLGETSYNCVALUESOMLPROC wglGetSyncValuesOML_Impl;
1828 PFNWGLGETMSCRATEOMLPROC wglGetMscRateOML_Impl;
1829 PFNWGLSWAPBUFFERSMSCOMLPROC wglSwapBuffersMscOML_Impl;
1830 PFNWGLSWAPLAYERBUFFERSMSCOMLPROC wglSwapLayerBuffersMscOML_Impl;
1831 PFNWGLWAITFORMSCOMLPROC wglWaitForMscOML_Impl;
1832 PFNWGLWAITFORSBCOMLPROC wglWaitForSbcOML_Impl;
1834 // WGL_NV_video_output
1835 PFNWGLGETVIDEODEVICENVPROC wglGetVideoDeviceNV_Impl;
1836 PFNWGLRELEASEVIDEODEVICENVPROC wglReleaseVideoDeviceNV_Impl;
1837 PFNWGLBINDVIDEOIMAGENVPROC wglBindVideoImageNV_Impl;
1838 PFNWGLRELEASEVIDEOIMAGENVPROC wglReleaseVideoImageNV_Impl;
1839 PFNWGLSENDPBUFFERTOVIDEONVPROC wglSendPbufferToVideoNV_Impl;
1840 PFNWGLGETVIDEOINFONVPROC wglGetVideoInfoNV_Impl;
1842 // WGL_NV_swap_group
1843 PFNWGLJOINSWAPGROUPNVPROC wglJoinSwapGroupNV_Impl;
1844 PFNWGLBINDSWAPBARRIERNVPROC wglBindSwapBarrierNV_Impl;
1845 PFNWGLQUERYSWAPGROUPNVPROC wglQuerySwapGroupNV_Impl;
1846 PFNWGLQUERYMAXSWAPGROUPSNVPROC wglQueryMaxSwapGroupsNV_Impl;
1847 PFNWGLQUERYFRAMECOUNTNVPROC wglQueryFrameCountNV_Impl;
1848 PFNWGLRESETFRAMECOUNTNVPROC wglResetFrameCountNV_Impl;
1850 // WGL_NV_video_capture
1851 PFNWGLBINDVIDEOCAPTUREDEVICENVPROC wglBindVideoCaptureDeviceNV_Impl;
1852 PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC wglEnumerateVideoCaptureDevicesNV_Impl;
1853 PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC wglLockVideoCaptureDeviceNV_Impl;
1854 PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC wglQueryVideoCaptureDeviceNV_Impl;
1855 PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC wglReleaseVideoCaptureDeviceNV_Impl;
1857 // WGL_NV_copy_image
1858 PFNWGLCOPYIMAGESUBDATANVPROC wglCopyImageSubDataNV_Impl;
1860 // WGL_NV_DX_interop
1861 PFNWGLDXCLOSEDEVICENVPROC wglDXCloseDeviceNV_Impl;
1862 PFNWGLDXLOCKOBJECTSNVPROC wglDXLockObjectsNV_Impl;
1863 PFNWGLDXOBJECTACCESSNVPROC wglDXObjectAccessNV_Impl;
1864 PFNWGLDXOPENDEVICENVPROC wglDXOpenDeviceNV_Impl;
1865 PFNWGLDXREGISTEROBJECTNVPROC wglDXRegisterObjectNV_Impl;
1866 PFNWGLDXSETRESOURCESHAREHANDLENVPROC wglDXSetResourceShareHandleNV_Impl;
1867 PFNWGLDXUNLOCKOBJECTSNVPROC wglDXUnlockObjectsNV_Impl;
1868 PFNWGLDXUNREGISTEROBJECTNVPROC wglDXUnregisterObjectNV_Impl;
1870 #endif // GLE_WGL_ENABLED
1872 #if defined(GLE_GLX_ENABLED)
1873 // GLX_VERSION_1_1
1874 // We don't create any pointers, because we assume these functions are always present.
1876 // GLX_VERSION_1_2
1877 PFNGLXGETCURRENTDISPLAYPROC glXGetCurrentDisplay_Impl;
1879 // GLX_VERSION_1_3
1880 PFNGLXCHOOSEFBCONFIGPROC glXChooseFBConfig_Impl;
1881 PFNGLXCREATENEWCONTEXTPROC glXCreateNewContext_Impl;
1882 PFNGLXCREATEPBUFFERPROC glXCreatePbuffer_Impl;
1883 PFNGLXCREATEPIXMAPPROC glXCreatePixmap_Impl;
1884 PFNGLXCREATEWINDOWPROC glXCreateWindow_Impl;
1885 PFNGLXDESTROYPBUFFERPROC glXDestroyPbuffer_Impl;
1886 PFNGLXDESTROYPIXMAPPROC glXDestroyPixmap_Impl;
1887 PFNGLXDESTROYWINDOWPROC glXDestroyWindow_Impl;
1888 PFNGLXGETCURRENTREADDRAWABLEPROC glXGetCurrentReadDrawable_Impl;
1889 PFNGLXGETFBCONFIGATTRIBPROC glXGetFBConfigAttrib_Impl;
1890 PFNGLXGETFBCONFIGSPROC glXGetFBConfigs_Impl;
1891 PFNGLXGETSELECTEDEVENTPROC glXGetSelectedEvent_Impl;
1892 PFNGLXGETVISUALFROMFBCONFIGPROC glXGetVisualFromFBConfig_Impl;
1893 PFNGLXMAKECONTEXTCURRENTPROC glXMakeContextCurrent_Impl;
1894 PFNGLXQUERYCONTEXTPROC glXQueryContext_Impl;
1895 PFNGLXQUERYDRAWABLEPROC glXQueryDrawable_Impl;
1896 PFNGLXSELECTEVENTPROC glXSelectEvent_Impl;
1898 // GLX_VERSION_1_4
1899 // Nothing to declare
1901 // GLX_ARB_create_context
1902 PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB_Impl;
1904 // GLX_EXT_swap_control
1905 PFNGLXSWAPINTERVALEXTPROC glXSwapIntervalEXT_Impl;
1907 // GLX_OML_sync_control
1908 PFNGLXGETMSCRATEOMLPROC glXGetMscRateOML_Impl;
1909 PFNGLXGETSYNCVALUESOMLPROC glXGetSyncValuesOML_Impl;
1910 PFNGLXSWAPBUFFERSMSCOMLPROC glXSwapBuffersMscOML_Impl;
1911 PFNGLXWAITFORMSCOMLPROC glXWaitForMscOML_Impl;
1912 PFNGLXWAITFORSBCOMLPROC glXWaitForSbcOML_Impl;
1914 // GLX_MESA_swap_control
1915 PFNGLXGETSWAPINTERVALMESAPROC glXGetSwapIntervalMESA_Impl;
1916 PFNGLXSWAPINTERVALMESAPROC glXSwapIntervalMESA_Impl;
1918 #endif // GLE_GLX_ENABLED
1921 // Boolean extension support indicators. Each of these identifies the
1922 // presence or absence of the given extension. A better solution here
1923 // might be to use an STL map<const char*, bool>.
1924 bool gle_AMD_debug_output;
1925 //bool gle_AMD_performance_monitor;
1926 bool gle_APPLE_aux_depth_stencil;
1927 bool gle_APPLE_client_storage;
1928 bool gle_APPLE_element_array;
1929 bool gle_APPLE_fence;
1930 bool gle_APPLE_float_pixels;
1931 bool gle_APPLE_flush_buffer_range;
1932 bool gle_APPLE_object_purgeable;
1933 bool gle_APPLE_pixel_buffer;
1934 bool gle_APPLE_rgb_422;
1935 bool gle_APPLE_row_bytes;
1936 bool gle_APPLE_specular_vector;
1937 bool gle_APPLE_texture_range;
1938 bool gle_APPLE_transform_hint;
1939 bool gle_APPLE_vertex_array_object;
1940 bool gle_APPLE_vertex_array_range;
1941 bool gle_APPLE_vertex_program_evaluators;
1942 bool gle_APPLE_ycbcr_422;
1943 bool gle_ARB_debug_output;
1944 bool gle_ARB_depth_buffer_float;
1945 //bool gle_ARB_direct_state_access;
1946 bool gle_ARB_ES2_compatibility;
1947 bool gle_ARB_framebuffer_object;
1948 bool gle_ARB_framebuffer_sRGB;
1949 bool gle_ARB_texture_multisample;
1950 bool gle_ARB_texture_non_power_of_two;
1951 bool gle_ARB_texture_rectangle;
1952 bool gle_ARB_timer_query;
1953 bool gle_ARB_vertex_array_object;
1954 //bool gle_ARB_vertex_attrib_binding;
1955 bool gle_EXT_draw_buffers2;
1956 bool gle_EXT_texture_compression_s3tc;
1957 bool gle_EXT_texture_filter_anisotropic;
1958 //bool gle_KHR_context_flush_control;
1959 bool gle_KHR_debug;
1960 //bool gle_KHR_robust_buffer_access_behavior;
1961 //bool gle_KHR_robustness;
1962 bool gle_WIN_swap_hint;
1964 #if defined(GLE_WGL_ENABLED)
1965 bool gle_WGL_ARB_buffer_region;
1966 bool gle_WGL_ARB_create_context;
1967 bool gle_WGL_ARB_create_context_profile;
1968 bool gle_WGL_ARB_create_context_robustness;
1969 bool gle_WGL_ARB_extensions_string;
1970 bool gle_WGL_ARB_framebuffer_sRGB;
1971 bool gle_WGL_ARB_make_current_read;
1972 bool gle_WGL_ARB_pbuffer;
1973 bool gle_WGL_ARB_pixel_format;
1974 bool gle_WGL_ARB_pixel_format_float;
1975 bool gle_WGL_ARB_render_texture;
1976 bool gle_WGL_ATI_render_texture_rectangle;
1977 bool gle_WGL_EXT_extensions_string;
1978 bool gle_WGL_EXT_swap_control;
1979 bool gle_WGL_NV_copy_image;
1980 bool gle_WGL_NV_DX_interop;
1981 bool gle_WGL_NV_DX_interop2;
1982 bool gle_WGL_NV_present_video;
1983 bool gle_WGL_NV_render_texture_rectangle;
1984 bool gle_WGL_NV_swap_group;
1985 bool gle_WGL_NV_video_capture;
1986 bool gle_WGL_NV_video_output;
1987 bool gle_WGL_OML_sync_control;
1988 #elif defined(GLE_GLX_ENABLED)
1989 bool gle_GLX_ARB_create_context;
1990 bool gle_GLX_ARB_create_context_profile;
1991 bool gle_GLX_ARB_create_context_robustness;
1992 bool gle_GLX_EXT_swap_control;
1993 bool gle_GLX_OML_sync_control;
1994 bool gle_MESA_swap_control;
1995 #endif
1997 }; // class GLEContext
2000 } // namespace OVR
2003 #endif // Header include guard