Browse Source

Merge pull request #32 from jp9000/alt-ogl-loader

Alternative OGL loader. GLEW was bulky, slow, and sometimes didn't do its job that well. This is the replacement.
computerquip 11 years ago
parent
commit
2d5758f758
100 changed files with 6291 additions and 3730 deletions
  1. 1 0
      .gitignore
  2. 5 3
      libobs-opengl/CMakeLists.txt
  3. 20 0
      libobs-opengl/GL/.hgignore
  4. 12 0
      libobs-opengl/GL/.hgtags
  5. 2192 0
      libobs-opengl/GL/gl_obs.c
  6. 2984 0
      libobs-opengl/GL/gl_obs.h
  7. 266 0
      libobs-opengl/GL/glx_obs.c
  8. 220 0
      libobs-opengl/GL/glx_obs.h
  9. 303 0
      libobs-opengl/GL/wgl_obs.c
  10. 231 0
      libobs-opengl/GL/wgl_obs.h
  11. 1 20
      libobs-opengl/gl-cocoa.m
  12. 17 16
      libobs-opengl/gl-subsystem.c
  13. 1 5
      libobs-opengl/gl-subsystem.h
  14. 23 10
      libobs-opengl/gl-windows.c
  15. 15 30
      libobs-opengl/gl-x11.c
  16. 0 7
      libobs-opengl/glew/.gitignore
  17. 0 73
      libobs-opengl/glew/LICENSE.txt
  18. 0 402
      libobs-opengl/glew/Makefile
  19. 0 24
      libobs-opengl/glew/README.txt
  20. 0 12
      libobs-opengl/glew/TODO.txt
  21. 0 389
      libobs-opengl/glew/auto/Makefile
  22. 0 476
      libobs-opengl/glew/auto/bin/filter_gl_ext.sh
  23. 0 19
      libobs-opengl/glew/auto/bin/filter_gles_ext.sh
  24. 0 187
      libobs-opengl/glew/auto/bin/make.pl
  25. 0 35
      libobs-opengl/glew/auto/bin/make_def_fun.pl
  26. 0 31
      libobs-opengl/glew/auto/bin/make_def_var.pl
  27. 0 71
      libobs-opengl/glew/auto/bin/make_header.pl
  28. 0 55
      libobs-opengl/glew/auto/bin/make_html.pl
  29. 0 59
      libobs-opengl/glew/auto/bin/make_info.pl
  30. 0 47
      libobs-opengl/glew/auto/bin/make_info_list.pl
  31. 0 55
      libobs-opengl/glew/auto/bin/make_init.pl
  32. 0 66
      libobs-opengl/glew/auto/bin/make_list.pl
  33. 0 53
      libobs-opengl/glew/auto/bin/make_str.pl
  34. 0 36
      libobs-opengl/glew/auto/bin/make_struct_fun.pl
  35. 0 31
      libobs-opengl/glew/auto/bin/make_struct_var.pl
  36. 0 353
      libobs-opengl/glew/auto/bin/parse_spec.pl
  37. 0 25
      libobs-opengl/glew/auto/bin/update_ext.sh
  38. 0 14
      libobs-opengl/glew/auto/blacklist
  39. 0 22
      libobs-opengl/glew/auto/core/gl/GLX_AMD_gpu_association
  40. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_ARB_get_proc_address
  41. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_ATI_pixel_format_float
  42. 0 41
      libobs-opengl/glew/auto/core/gl/GLX_ATI_render_texture
  43. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_EXT_create_context_es2_profile
  44. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_EXT_create_context_es_profile
  45. 0 5
      libobs-opengl/glew/auto/core/gl/GLX_EXT_fbconfig_packed_float
  46. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_EXT_framebuffer_sRGB
  47. 0 5
      libobs-opengl/glew/auto/core/gl/GLX_MESA_swap_control
  48. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_NV_float_buffer
  49. 0 5
      libobs-opengl/glew/auto/core/gl/GLX_NV_vertex_array_range
  50. 0 5
      libobs-opengl/glew/auto/core/gl/GLX_SGIS_shared_multisample
  51. 0 25
      libobs-opengl/glew/auto/core/gl/GLX_SGIX_hyperpipe
  52. 0 5
      libobs-opengl/glew/auto/core/gl/GLX_SGIX_swap_barrier
  53. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_SGIX_swap_group
  54. 0 5
      libobs-opengl/glew/auto/core/gl/GLX_SGI_video_sync
  55. 0 7
      libobs-opengl/glew/auto/core/gl/GLX_SUN_video_resize
  56. 0 4
      libobs-opengl/glew/auto/core/gl/GLX_VERSION_1_2
  57. 0 82
      libobs-opengl/glew/auto/core/gl/GLX_VERSION_1_3
  58. 0 6
      libobs-opengl/glew/auto/core/gl/GLX_VERSION_1_4
  59. 0 17
      libobs-opengl/glew/auto/core/gl/GL_APPLE_float_pixels
  60. 0 4
      libobs-opengl/glew/auto/core/gl/GL_APPLE_pixel_buffer
  61. 0 12
      libobs-opengl/glew/auto/core/gl/GL_APPLE_texture_range
  62. 0 3
      libobs-opengl/glew/auto/core/gl/GL_ARB_draw_instanced
  63. 0 112
      libobs-opengl/glew/auto/core/gl/GL_ARB_imaging
  64. 0 7
      libobs-opengl/glew/auto/core/gl/GL_ARB_instanced_arrays
  65. 0 103
      libobs-opengl/glew/auto/core/gl/GL_ARB_internalformat_query2
  66. 0 18
      libobs-opengl/glew/auto/core/gl/GL_ARB_matrix_palette
  67. 0 72
      libobs-opengl/glew/auto/core/gl/GL_ARB_multitexture
  68. 0 30
      libobs-opengl/glew/auto/core/gl/GL_ARB_robustness
  69. 0 72
      libobs-opengl/glew/auto/core/gl/GL_ARB_separate_shader_objects
  70. 0 13
      libobs-opengl/glew/auto/core/gl/GL_ARB_vertex_attrib_64bit
  71. 0 55
      libobs-opengl/glew/auto/core/gl/GL_ARB_vertex_blend
  72. 0 9
      libobs-opengl/glew/auto/core/gl/GL_ATIX_point_sprites
  73. 0 6
      libobs-opengl/glew/auto/core/gl/GL_ATIX_texture_env_combine3
  74. 0 6
      libobs-opengl/glew/auto/core/gl/GL_ATIX_texture_env_route
  75. 0 4
      libobs-opengl/glew/auto/core/gl/GL_ATIX_vertex_shader_output_point_size
  76. 0 15
      libobs-opengl/glew/auto/core/gl/GL_ATI_envmap_bumpmap
  77. 0 5
      libobs-opengl/glew/auto/core/gl/GL_ATI_map_object_buffer
  78. 0 14
      libobs-opengl/glew/auto/core/gl/GL_ATI_pn_triangles
  79. 0 9
      libobs-opengl/glew/auto/core/gl/GL_ATI_separate_stencil
  80. 0 3
      libobs-opengl/glew/auto/core/gl/GL_ATI_shader_texture_lod
  81. 0 4
      libobs-opengl/glew/auto/core/gl/GL_ATI_texture_compression_3dc
  82. 0 58
      libobs-opengl/glew/auto/core/gl/GL_ATI_vertex_streams
  83. 0 5
      libobs-opengl/glew/auto/core/gl/GL_EXT_Cg_shader
  84. 0 12
      libobs-opengl/glew/auto/core/gl/GL_EXT_bindable_uniform
  85. 0 6
      libobs-opengl/glew/auto/core/gl/GL_EXT_debug_marker
  86. 0 6
      libobs-opengl/glew/auto/core/gl/GL_EXT_depth_bounds_test
  87. 0 5
      libobs-opengl/glew/auto/core/gl/GL_EXT_draw_instanced
  88. 0 6
      libobs-opengl/glew/auto/core/gl/GL_EXT_draw_range_elements
  89. 0 16
      libobs-opengl/glew/auto/core/gl/GL_EXT_fog_coord
  90. 0 5
      libobs-opengl/glew/auto/core/gl/GL_EXT_framebuffer_sRGB
  91. 0 26
      libobs-opengl/glew/auto/core/gl/GL_EXT_geometry_shader4
  92. 0 5
      libobs-opengl/glew/auto/core/gl/GL_EXT_gpu_program_parameters
  93. 0 63
      libobs-opengl/glew/auto/core/gl/GL_EXT_gpu_shader4
  94. 0 6
      libobs-opengl/glew/auto/core/gl/GL_EXT_packed_float
  95. 0 7
      libobs-opengl/glew/auto/core/gl/GL_EXT_pixel_buffer_object
  96. 0 27
      libobs-opengl/glew/auto/core/gl/GL_EXT_secondary_color
  97. 0 12
      libobs-opengl/glew/auto/core/gl/GL_EXT_texture_array
  98. 0 9
      libobs-opengl/glew/auto/core/gl/GL_EXT_texture_buffer_object
  99. 0 7
      libobs-opengl/glew/auto/core/gl/GL_EXT_texture_compression_latc
  100. 0 7
      libobs-opengl/glew/auto/core/gl/GL_EXT_texture_compression_rgtc

+ 1 - 0
.gitignore

@@ -46,6 +46,7 @@ ltmain.sh
 *.app
 .DS_Store
 
+.hg
 .depend
 tags
 *.trace

+ 5 - 3
libobs-opengl/CMakeLists.txt

@@ -11,7 +11,8 @@ add_definitions(-DLIBOBS_EXPORTS)
 
 if(WIN32)
 	set(libobs-opengl_PLATFORM_SOURCES
-		gl-windows.c)
+		gl-windows.c
+		GL/wgl_obs.c)
 elseif(APPLE)
 	set(libobs-opengl_PLATFORM_SOURCES
 		gl-cocoa.m)
@@ -33,7 +34,8 @@ elseif(APPLE)
 		${IOSURF})
 else()
 	set(libobs-opengl_PLATFORM_SOURCES
-		gl-x11.c)
+		gl-x11.c
+		GL/glx_obs.c)
 endif()
 
 set(libobs-opengl_SOURCES
@@ -48,7 +50,7 @@ set(libobs-opengl_SOURCES
 	gl-texturecube.c
 	gl-vertexbuffer.c
 	gl-zstencil.c
-	glew/src/glew.c)
+	GL/gl_obs.c)
 
 set(libobs-opengl_HEADERS
 	gl-exports.h

+ 20 - 0
libobs-opengl/GL/.hgignore

@@ -0,0 +1,20 @@
+syntax: glob
+test/glsdk/*
+*.idb
+*.sln
+*.suo
+*.ncb
+*.vcproj
+*.user
+*.pdb
+test/obj
+docs/*.wiki
+obj/*
+*.exe
+*.ilk
+*.workspace
+allwgl.txt
+allglx.txt
+allgl.txt
+test/*
+modules/UserStyles.lua

+ 12 - 0
libobs-opengl/GL/.hgtags

@@ -0,0 +1,12 @@
+e80ca78f0d522aa89dd8efcf2d89824254a57a03 0.3
+daece2f41ef8ddbf0be8bcdb03b88feae0376077 0.3.1
+71be8cc83edca94737f5fd60ab0b0a0ef16ea8ce 1.0.0
+60193bab2f45c94fd16d555d91b32762850bed80 1.0.1
+09c56e6be87e62671c389774236e773a05b60ebb 1.0.2
+
+001b6789ff2ad62e61da7ee4bdfc763c82ada849 1.0.3
+c76a5cd7bdeee53f233e65f006fd43eeac0f155b 1.1.0
+c76a5cd7bdeee53f233e65f006fd43eeac0f155b 1.1.0
+b6fd46d21996792756f3d72c6c89e798c0a2dfcd 1.1.0
+3afee3d983167126cc3aad84414f285edc1ca7d9 1.1.1
+3f8908c5addcf15e44afa35151b6692febf14e5d 2.0.0rc1

+ 2192 - 0
libobs-opengl/GL/gl_obs.c

@@ -0,0 +1,2192 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stddef.h>
+#include "gl_obs.h"
+
+#if defined(__APPLE__)
+#include <dlfcn.h>
+
+static void* AppleGLGetProcAddress (const char *name)
+{
+	static void* image = NULL;
+
+	if (image == NULL)
+		image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
+
+	return (image ? dlsym(image, name) : NULL);
+}
+#endif /* __APPLE__ */
+
+#if defined(__sgi) || defined (__sun)
+#include <dlfcn.h>
+#include <stdio.h>
+
+static void* SunGetProcAddress (const GLubyte* name)
+{
+  static void* h = NULL;
+  static void* gpa;
+
+  if (h == NULL)
+  {
+    if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
+    gpa = dlsym(h, "glXGetProcAddress");
+  }
+
+  if (gpa != NULL)
+    return ((void*(*)(const GLubyte*))gpa)(name);
+  else
+    return dlsym(h, (const char*)name);
+}
+#endif /* __sgi || __sun */
+
+#if defined(_WIN32)
+
+#ifdef _MSC_VER
+#pragma warning(disable: 4055)
+#pragma warning(disable: 4054)
+#pragma warning(disable: 4996)
+#endif
+
+static int TestPointer(const PROC pTest)
+{
+	ptrdiff_t iTest;
+	if(!pTest) return 0;
+	iTest = (ptrdiff_t)pTest;
+	
+	if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0;
+	
+	return 1;
+}
+
+static PROC WinGetProcAddress(const char *name)
+{
+	HMODULE glMod = NULL;
+	PROC pFunc = wglGetProcAddress((LPCSTR)name);
+	if(TestPointer(pFunc))
+	{
+		return pFunc;
+	}
+	glMod = GetModuleHandleA("OpenGL32.dll");
+	return (PROC)GetProcAddress(glMod, (LPCSTR)name);
+}
+	
+#define IntGetProcAddress(name) WinGetProcAddress(name)
+#else
+	#if defined(__APPLE__)
+		#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
+	#else
+		#if defined(__sgi) || defined(__sun)
+			#define IntGetProcAddress(name) SunGetProcAddress(name)
+		#else /* GLX */
+		    #include <GL/glx.h>
+
+			#define IntGetProcAddress(name) (*glXGetProcAddressARB)((const GLubyte*)name)
+		#endif
+	#endif
+#endif
+
+int ogl_ext_EXT_texture_compression_s3tc = ogl_LOAD_FAILED;
+int ogl_ext_EXT_texture_sRGB = ogl_LOAD_FAILED;
+int ogl_ext_EXT_texture_filter_anisotropic = ogl_LOAD_FAILED;
+int ogl_ext_ARB_framebuffer_object = ogl_LOAD_FAILED;
+int ogl_ext_ARB_seamless_cube_map = ogl_LOAD_FAILED;
+int ogl_ext_ARB_separate_shader_objects = ogl_LOAD_FAILED;
+int ogl_ext_ARB_debug_output = ogl_LOAD_FAILED;
+int ogl_ext_ARB_copy_image = ogl_LOAD_FAILED;
+int ogl_ext_NV_copy_image = ogl_LOAD_FAILED;
+int ogl_ext_EXT_texture_mirror_clamp = ogl_LOAD_FAILED;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBindFramebuffer)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindRenderbuffer)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum) = NULL;
+GLenum (CODEGEN_FUNCPTR *_ptrc_glCheckFramebufferStatus)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteFramebuffers)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteRenderbuffers)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFramebufferRenderbuffer)(GLenum, GLenum, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture1D)(GLenum, GLenum, GLenum, GLuint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture2D)(GLenum, GLenum, GLenum, GLuint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture3D)(GLenum, GLenum, GLenum, GLuint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenFramebuffers)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenRenderbuffers)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenerateMipmap)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferAttachmentParameteriv)(GLenum, GLenum, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsFramebuffer)(GLuint) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsRenderbuffer)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = NULL;
+
+static int Load_ARB_framebuffer_object()
+{
+	int numFailed = 0;
+	_ptrc_glBindFramebuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindFramebuffer");
+	if(!_ptrc_glBindFramebuffer) numFailed++;
+	_ptrc_glBindRenderbuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindRenderbuffer");
+	if(!_ptrc_glBindRenderbuffer) numFailed++;
+	_ptrc_glBlitFramebuffer = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum))IntGetProcAddress("glBlitFramebuffer");
+	if(!_ptrc_glBlitFramebuffer) numFailed++;
+	_ptrc_glCheckFramebufferStatus = (GLenum (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glCheckFramebufferStatus");
+	if(!_ptrc_glCheckFramebufferStatus) numFailed++;
+	_ptrc_glDeleteFramebuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteFramebuffers");
+	if(!_ptrc_glDeleteFramebuffers) numFailed++;
+	_ptrc_glDeleteRenderbuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteRenderbuffers");
+	if(!_ptrc_glDeleteRenderbuffers) numFailed++;
+	_ptrc_glFramebufferRenderbuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint))IntGetProcAddress("glFramebufferRenderbuffer");
+	if(!_ptrc_glFramebufferRenderbuffer) numFailed++;
+	_ptrc_glFramebufferTexture1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture1D");
+	if(!_ptrc_glFramebufferTexture1D) numFailed++;
+	_ptrc_glFramebufferTexture2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture2D");
+	if(!_ptrc_glFramebufferTexture2D) numFailed++;
+	_ptrc_glFramebufferTexture3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint, GLint))IntGetProcAddress("glFramebufferTexture3D");
+	if(!_ptrc_glFramebufferTexture3D) numFailed++;
+	_ptrc_glFramebufferTextureLayer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLint, GLint))IntGetProcAddress("glFramebufferTextureLayer");
+	if(!_ptrc_glFramebufferTextureLayer) numFailed++;
+	_ptrc_glGenFramebuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenFramebuffers");
+	if(!_ptrc_glGenFramebuffers) numFailed++;
+	_ptrc_glGenRenderbuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenRenderbuffers");
+	if(!_ptrc_glGenRenderbuffers) numFailed++;
+	_ptrc_glGenerateMipmap = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glGenerateMipmap");
+	if(!_ptrc_glGenerateMipmap) numFailed++;
+	_ptrc_glGetFramebufferAttachmentParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLint *))IntGetProcAddress("glGetFramebufferAttachmentParameteriv");
+	if(!_ptrc_glGetFramebufferAttachmentParameteriv) numFailed++;
+	_ptrc_glGetRenderbufferParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetRenderbufferParameteriv");
+	if(!_ptrc_glGetRenderbufferParameteriv) numFailed++;
+	_ptrc_glIsFramebuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsFramebuffer");
+	if(!_ptrc_glIsFramebuffer) numFailed++;
+	_ptrc_glIsRenderbuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsRenderbuffer");
+	if(!_ptrc_glIsRenderbuffer) numFailed++;
+	_ptrc_glRenderbufferStorage = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLsizei, GLsizei))IntGetProcAddress("glRenderbufferStorage");
+	if(!_ptrc_glRenderbufferStorage) numFailed++;
+	_ptrc_glRenderbufferStorageMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei))IntGetProcAddress("glRenderbufferStorageMultisample");
+	if(!_ptrc_glRenderbufferStorageMultisample) numFailed++;
+	return numFailed;
+}
+
+void (CODEGEN_FUNCPTR *_ptrc_glActiveShaderProgram)(GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindProgramPipeline)(GLuint) = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShaderProgramv)(GLenum, GLsizei, const GLchar *const*) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgramPipelines)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenProgramPipelines)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineiv)(GLuint, GLenum, GLint *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgramPipeline)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1d)(GLuint, GLint, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1f)(GLuint, GLint, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1i)(GLuint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1iv)(GLuint, GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1ui)(GLuint, GLint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2d)(GLuint, GLint, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2f)(GLuint, GLint, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2i)(GLuint, GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2iv)(GLuint, GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2ui)(GLuint, GLint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3d)(GLuint, GLint, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3f)(GLuint, GLint, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3i)(GLuint, GLint, GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3iv)(GLuint, GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3ui)(GLuint, GLint, GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4d)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4dv)(GLuint, GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4f)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4fv)(GLuint, GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4i)(GLuint, GLint, GLint, GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4iv)(GLuint, GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4ui)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4uiv)(GLuint, GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUseProgramStages)(GLuint, GLbitfield, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glValidateProgramPipeline)(GLuint) = NULL;
+
+static int Load_ARB_separate_shader_objects()
+{
+	int numFailed = 0;
+	_ptrc_glActiveShaderProgram = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glActiveShaderProgram");
+	if(!_ptrc_glActiveShaderProgram) numFailed++;
+	_ptrc_glBindProgramPipeline = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glBindProgramPipeline");
+	if(!_ptrc_glBindProgramPipeline) numFailed++;
+	_ptrc_glCreateShaderProgramv = (GLuint (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLchar *const*))IntGetProcAddress("glCreateShaderProgramv");
+	if(!_ptrc_glCreateShaderProgramv) numFailed++;
+	_ptrc_glDeleteProgramPipelines = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteProgramPipelines");
+	if(!_ptrc_glDeleteProgramPipelines) numFailed++;
+	_ptrc_glGenProgramPipelines = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenProgramPipelines");
+	if(!_ptrc_glGenProgramPipelines) numFailed++;
+	_ptrc_glGetProgramPipelineInfoLog = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetProgramPipelineInfoLog");
+	if(!_ptrc_glGetProgramPipelineInfoLog) numFailed++;
+	_ptrc_glGetProgramPipelineiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetProgramPipelineiv");
+	if(!_ptrc_glGetProgramPipelineiv) numFailed++;
+	_ptrc_glIsProgramPipeline = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsProgramPipeline");
+	if(!_ptrc_glIsProgramPipeline) numFailed++;
+	_ptrc_glProgramUniform1d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble))IntGetProcAddress("glProgramUniform1d");
+	if(!_ptrc_glProgramUniform1d) numFailed++;
+	_ptrc_glProgramUniform1dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform1dv");
+	if(!_ptrc_glProgramUniform1dv) numFailed++;
+	_ptrc_glProgramUniform1f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat))IntGetProcAddress("glProgramUniform1f");
+	if(!_ptrc_glProgramUniform1f) numFailed++;
+	_ptrc_glProgramUniform1fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform1fv");
+	if(!_ptrc_glProgramUniform1fv) numFailed++;
+	_ptrc_glProgramUniform1i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint))IntGetProcAddress("glProgramUniform1i");
+	if(!_ptrc_glProgramUniform1i) numFailed++;
+	_ptrc_glProgramUniform1iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform1iv");
+	if(!_ptrc_glProgramUniform1iv) numFailed++;
+	_ptrc_glProgramUniform1ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint))IntGetProcAddress("glProgramUniform1ui");
+	if(!_ptrc_glProgramUniform1ui) numFailed++;
+	_ptrc_glProgramUniform1uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform1uiv");
+	if(!_ptrc_glProgramUniform1uiv) numFailed++;
+	_ptrc_glProgramUniform2d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform2d");
+	if(!_ptrc_glProgramUniform2d) numFailed++;
+	_ptrc_glProgramUniform2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform2dv");
+	if(!_ptrc_glProgramUniform2dv) numFailed++;
+	_ptrc_glProgramUniform2f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform2f");
+	if(!_ptrc_glProgramUniform2f) numFailed++;
+	_ptrc_glProgramUniform2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform2fv");
+	if(!_ptrc_glProgramUniform2fv) numFailed++;
+	_ptrc_glProgramUniform2i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform2i");
+	if(!_ptrc_glProgramUniform2i) numFailed++;
+	_ptrc_glProgramUniform2iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform2iv");
+	if(!_ptrc_glProgramUniform2iv) numFailed++;
+	_ptrc_glProgramUniform2ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint))IntGetProcAddress("glProgramUniform2ui");
+	if(!_ptrc_glProgramUniform2ui) numFailed++;
+	_ptrc_glProgramUniform2uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform2uiv");
+	if(!_ptrc_glProgramUniform2uiv) numFailed++;
+	_ptrc_glProgramUniform3d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform3d");
+	if(!_ptrc_glProgramUniform3d) numFailed++;
+	_ptrc_glProgramUniform3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform3dv");
+	if(!_ptrc_glProgramUniform3dv) numFailed++;
+	_ptrc_glProgramUniform3f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform3f");
+	if(!_ptrc_glProgramUniform3f) numFailed++;
+	_ptrc_glProgramUniform3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform3fv");
+	if(!_ptrc_glProgramUniform3fv) numFailed++;
+	_ptrc_glProgramUniform3i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform3i");
+	if(!_ptrc_glProgramUniform3i) numFailed++;
+	_ptrc_glProgramUniform3iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform3iv");
+	if(!_ptrc_glProgramUniform3iv) numFailed++;
+	_ptrc_glProgramUniform3ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint, GLuint))IntGetProcAddress("glProgramUniform3ui");
+	if(!_ptrc_glProgramUniform3ui) numFailed++;
+	_ptrc_glProgramUniform3uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform3uiv");
+	if(!_ptrc_glProgramUniform3uiv) numFailed++;
+	_ptrc_glProgramUniform4d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform4d");
+	if(!_ptrc_glProgramUniform4d) numFailed++;
+	_ptrc_glProgramUniform4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform4dv");
+	if(!_ptrc_glProgramUniform4dv) numFailed++;
+	_ptrc_glProgramUniform4f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform4f");
+	if(!_ptrc_glProgramUniform4f) numFailed++;
+	_ptrc_glProgramUniform4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform4fv");
+	if(!_ptrc_glProgramUniform4fv) numFailed++;
+	_ptrc_glProgramUniform4i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform4i");
+	if(!_ptrc_glProgramUniform4i) numFailed++;
+	_ptrc_glProgramUniform4iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform4iv");
+	if(!_ptrc_glProgramUniform4iv) numFailed++;
+	_ptrc_glProgramUniform4ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glProgramUniform4ui");
+	if(!_ptrc_glProgramUniform4ui) numFailed++;
+	_ptrc_glProgramUniform4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform4uiv");
+	if(!_ptrc_glProgramUniform4uiv) numFailed++;
+	_ptrc_glProgramUniformMatrix2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2dv");
+	if(!_ptrc_glProgramUniformMatrix2dv) numFailed++;
+	_ptrc_glProgramUniformMatrix2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2fv");
+	if(!_ptrc_glProgramUniformMatrix2fv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2x3dv");
+	if(!_ptrc_glProgramUniformMatrix2x3dv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2x3fv");
+	if(!_ptrc_glProgramUniformMatrix2x3fv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2x4dv");
+	if(!_ptrc_glProgramUniformMatrix2x4dv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2x4fv");
+	if(!_ptrc_glProgramUniformMatrix2x4fv) numFailed++;
+	_ptrc_glProgramUniformMatrix3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3dv");
+	if(!_ptrc_glProgramUniformMatrix3dv) numFailed++;
+	_ptrc_glProgramUniformMatrix3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3fv");
+	if(!_ptrc_glProgramUniformMatrix3fv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3x2dv");
+	if(!_ptrc_glProgramUniformMatrix3x2dv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3x2fv");
+	if(!_ptrc_glProgramUniformMatrix3x2fv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3x4dv");
+	if(!_ptrc_glProgramUniformMatrix3x4dv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3x4fv");
+	if(!_ptrc_glProgramUniformMatrix3x4fv) numFailed++;
+	_ptrc_glProgramUniformMatrix4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4dv");
+	if(!_ptrc_glProgramUniformMatrix4dv) numFailed++;
+	_ptrc_glProgramUniformMatrix4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4fv");
+	if(!_ptrc_glProgramUniformMatrix4fv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4x2dv");
+	if(!_ptrc_glProgramUniformMatrix4x2dv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4x2fv");
+	if(!_ptrc_glProgramUniformMatrix4x2fv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4x3dv");
+	if(!_ptrc_glProgramUniformMatrix4x3dv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4x3fv");
+	if(!_ptrc_glProgramUniformMatrix4x3fv) numFailed++;
+	_ptrc_glUseProgramStages = (void (CODEGEN_FUNCPTR *)(GLuint, GLbitfield, GLuint))IntGetProcAddress("glUseProgramStages");
+	if(!_ptrc_glUseProgramStages) numFailed++;
+	_ptrc_glValidateProgramPipeline = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glValidateProgramPipeline");
+	if(!_ptrc_glValidateProgramPipeline) numFailed++;
+	return numFailed;
+}
+
+void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageCallbackARB)(GLDEBUGPROCARB, const void *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageControlARB)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageInsertARB)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *) = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glGetDebugMessageLogARB)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *) = NULL;
+
+static int Load_ARB_debug_output()
+{
+	int numFailed = 0;
+	_ptrc_glDebugMessageCallbackARB = (void (CODEGEN_FUNCPTR *)(GLDEBUGPROCARB, const void *))IntGetProcAddress("glDebugMessageCallbackARB");
+	if(!_ptrc_glDebugMessageCallbackARB) numFailed++;
+	_ptrc_glDebugMessageControlARB = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean))IntGetProcAddress("glDebugMessageControlARB");
+	if(!_ptrc_glDebugMessageControlARB) numFailed++;
+	_ptrc_glDebugMessageInsertARB = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *))IntGetProcAddress("glDebugMessageInsertARB");
+	if(!_ptrc_glDebugMessageInsertARB) numFailed++;
+	_ptrc_glGetDebugMessageLogARB = (GLuint (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *))IntGetProcAddress("glGetDebugMessageLogARB");
+	if(!_ptrc_glGetDebugMessageLogARB) numFailed++;
+	return numFailed;
+}
+
+void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubData)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) = NULL;
+
+static int Load_ARB_copy_image()
+{
+	int numFailed = 0;
+	_ptrc_glCopyImageSubData = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glCopyImageSubData");
+	if(!_ptrc_glCopyImageSubData) numFailed++;
+	return numFailed;
+}
+
+void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubDataNV)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) = NULL;
+
+static int Load_NV_copy_image()
+{
+	int numFailed = 0;
+	_ptrc_glCopyImageSubDataNV = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glCopyImageSubDataNV");
+	if(!_ptrc_glCopyImageSubDataNV) numFailed++;
+	return numFailed;
+}
+
+void (CODEGEN_FUNCPTR *_ptrc_glBlendFunc)(GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClear)(GLbitfield) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearColor)(GLfloat, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearDepth)(GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearStencil)(GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glColorMask)(GLboolean, GLboolean, GLboolean, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCullFace)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDepthFunc)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDepthMask)(GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDepthRange)(GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDisable)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffer)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glEnable)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFinish)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFlush)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFrontFace)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetBooleanv)(GLenum, GLboolean *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetDoublev)(GLenum, GLdouble *) = NULL;
+GLenum (CODEGEN_FUNCPTR *_ptrc_glGetError)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetFloatv)(GLenum, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetIntegerv)(GLenum, GLint *) = NULL;
+const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetString)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterfv)(GLenum, GLenum, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameteriv)(GLenum, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glHint)(GLenum, GLenum) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabled)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glLineWidth)(GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glLogicOp)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPixelStoref)(GLenum, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPixelStorei)(GLenum, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPointSize)(GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPolygonMode)(GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glReadBuffer)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glScissor)(GLint, GLint, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glStencilFunc)(GLenum, GLint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glStencilMask)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glStencilOp)(GLenum, GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexParameterf)(GLenum, GLenum, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexParameterfv)(GLenum, GLenum, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexParameteri)(GLenum, GLenum, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexParameteriv)(GLenum, GLenum, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glViewport)(GLint, GLint, GLsizei, GLsizei) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBindTexture)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteTextures)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawArrays)(GLenum, GLint, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawElements)(GLenum, GLsizei, GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenTextures)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetPointerv)(GLenum, GLvoid **) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTexture)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPolygonOffset)(GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBlendColor)(GLfloat, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBlendEquation)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glActiveTexture)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage1D)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage2D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetCompressedTexImage)(GLenum, GLint, GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSampleCoverage)(GLfloat, GLboolean) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparate)(GLenum, GLenum, GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArrays)(GLenum, const GLint *, const GLsizei *, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElements)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPointParameterf)(GLenum, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPointParameterfv)(GLenum, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPointParameteri)(GLenum, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPointParameteriv)(GLenum, const GLint *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBeginQuery)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindBuffer)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBufferData)(GLenum, GLsizeiptr, const GLvoid *, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBufferSubData)(GLenum, GLintptr, GLsizeiptr, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteBuffers)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteQueries)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glEndQuery)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenBuffers)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenQueries)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteriv)(GLenum, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetBufferPointerv)(GLenum, GLenum, GLvoid **) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetBufferSubData)(GLenum, GLintptr, GLsizeiptr, GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectiv)(GLuint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectuiv)(GLuint, GLenum, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetQueryiv)(GLenum, GLenum, GLint *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsBuffer)(GLuint) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsQuery)(GLuint) = NULL;
+void * (CODEGEN_FUNCPTR *_ptrc_glMapBuffer)(GLenum, GLenum) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glUnmapBuffer)(GLenum) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glAttachShader)(GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindAttribLocation)(GLuint, GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparate)(GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glCompileShader)(GLuint) = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateProgram)() = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShader)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgram)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteShader)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDetachShader)(GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDisableVertexAttribArray)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffers)(GLsizei, const GLenum *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glEnableVertexAttribArray)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAttrib)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniform)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetAttachedShaders)(GLuint, GLsizei, GLsizei *, GLuint *) = NULL;
+GLint (CODEGEN_FUNCPTR *_ptrc_glGetAttribLocation)(GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramiv)(GLuint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetShaderiv)(GLuint, GLenum, GLint *) = NULL;
+GLint (CODEGEN_FUNCPTR *_ptrc_glGetUniformLocation)(GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetUniformfv)(GLuint, GLint, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetUniformiv)(GLuint, GLint, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribPointerv)(GLuint, GLenum, GLvoid **) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribdv)(GLuint, GLenum, GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribfv)(GLuint, GLenum, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribiv)(GLuint, GLenum, GLint *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgram)(GLuint) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsShader)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glLinkProgram)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glShaderSource)(GLuint, GLsizei, const GLchar *const*, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glStencilMaskSeparate)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glStencilOpSeparate)(GLenum, GLenum, GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1f)(GLint, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1fv)(GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1i)(GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1iv)(GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2f)(GLint, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2fv)(GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2i)(GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2iv)(GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3f)(GLint, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3fv)(GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3i)(GLint, GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3iv)(GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4f)(GLint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4fv)(GLint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4i)(GLint, GLint, GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4iv)(GLint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUseProgram)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glValidateProgram)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1d)(GLuint, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1f)(GLuint, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1fv)(GLuint, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1s)(GLuint, GLshort) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1sv)(GLuint, const GLshort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2d)(GLuint, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2f)(GLuint, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2fv)(GLuint, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2s)(GLuint, GLshort, GLshort) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2sv)(GLuint, const GLshort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3d)(GLuint, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3f)(GLuint, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3fv)(GLuint, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3s)(GLuint, GLshort, GLshort, GLshort) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3sv)(GLuint, const GLshort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nbv)(GLuint, const GLbyte *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Niv)(GLuint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nsv)(GLuint, const GLshort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nub)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nubv)(GLuint, const GLubyte *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nuiv)(GLuint, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nusv)(GLuint, const GLushort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4bv)(GLuint, const GLbyte *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4f)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4fv)(GLuint, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4iv)(GLuint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4s)(GLuint, GLshort, GLshort, GLshort, GLshort) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4sv)(GLuint, const GLshort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4ubv)(GLuint, const GLubyte *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4uiv)(GLuint, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4usv)(GLuint, const GLushort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBeginConditionalRender)(GLuint, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBeginTransformFeedback)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindBufferBase)(GLenum, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocation)(GLuint, GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindVertexArray)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClampColor)(GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfi)(GLenum, GLint, GLfloat, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfv)(GLenum, GLint, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearBufferiv)(GLenum, GLint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearBufferuiv)(GLenum, GLint, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glColorMaski)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteVertexArrays)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDisablei)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glEnablei)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glEndConditionalRender)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glEndTransformFeedback)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenVertexArrays)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetBooleani_v)(GLenum, GLuint, GLboolean *) = NULL;
+GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataLocation)(GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetIntegeri_v)(GLenum, GLuint, GLint *) = NULL;
+const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetStringi)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIiv)(GLenum, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIuiv)(GLenum, GLenum, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetUniformuiv)(GLuint, GLint, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIiv)(GLuint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabledi)(GLenum, GLuint) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsVertexArray)(GLuint) = NULL;
+void * (CODEGEN_FUNCPTR *_ptrc_glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIiv)(GLenum, GLenum, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIuiv)(GLenum, GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar *const*, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1ui)(GLint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1uiv)(GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2ui)(GLint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2uiv)(GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3ui)(GLint, GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3uiv)(GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4uiv)(GLint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1i)(GLuint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1iv)(GLuint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1ui)(GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1uiv)(GLuint, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2i)(GLuint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2iv)(GLuint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2ui)(GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2uiv)(GLuint, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3i)(GLuint, GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3iv)(GLuint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3ui)(GLuint, GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3uiv)(GLuint, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4bv)(GLuint, const GLbyte *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4iv)(GLuint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4sv)(GLuint, const GLshort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ubv)(GLuint, const GLubyte *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4uiv)(GLuint, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4usv)(GLuint, const GLushort *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *) = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glGetUniformBlockIndex)(GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetUniformIndices)(GLuint, GLsizei, const GLchar *const*, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPrimitiveRestartIndex)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexBuffer)(GLenum, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformBlockBinding)(GLuint, GLuint, GLuint) = NULL;
+
+GLenum (CODEGEN_FUNCPTR *_ptrc_glClientWaitSync)(GLsync, GLbitfield, GLuint64) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteSync)(GLsync) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElementsBaseVertex)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint) = NULL;
+GLsync (CODEGEN_FUNCPTR *_ptrc_glFenceSync)(GLenum, GLbitfield) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture)(GLenum, GLenum, GLuint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64i_v)(GLenum, GLuint, GLint64 *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64v)(GLenum, GLint64 *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetMultisamplefv)(GLenum, GLuint, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSync)(GLsync) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsBaseVertex)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProvokingVertex)(GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSampleMaski)(GLuint, GLbitfield) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexImage2DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexImage3DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glWaitSync)(GLsync, GLbitfield, GLuint64) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocationIndexed)(GLuint, GLuint, GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindSampler)(GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glColorP3ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glColorP3uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glColorP4ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glColorP4uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteSamplers)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenSamplers)(GLsizei, GLuint *) = NULL;
+GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataIndex)(GLuint, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjecti64v)(GLuint, GLenum, GLint64 *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectui64v)(GLuint, GLenum, GLuint64 *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIiv)(GLuint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIuiv)(GLuint, GLenum, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameteriv)(GLuint, GLenum, GLint *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSampler)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1ui)(GLenum, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1uiv)(GLenum, GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2ui)(GLenum, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2uiv)(GLenum, GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3ui)(GLenum, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3uiv)(GLenum, GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4ui)(GLenum, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4uiv)(GLenum, GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glNormalP3ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glNormalP3uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glQueryCounter)(GLuint, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIiv)(GLuint, GLenum, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIuiv)(GLuint, GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterf)(GLuint, GLenum, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterfv)(GLuint, GLenum, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteri)(GLuint, GLenum, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteriv)(GLuint, GLenum, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribDivisor)(GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1ui)(GLuint, GLenum, GLboolean, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2ui)(GLuint, GLenum, GLboolean, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3ui)(GLuint, GLenum, GLboolean, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4ui)(GLuint, GLenum, GLboolean, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4uiv)(GLuint, GLenum, GLboolean, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexP2ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexP2uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexP3ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexP3uiv)(GLenum, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexP4ui)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexP4uiv)(GLenum, const GLuint *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBeginQueryIndexed)(GLenum, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindTransformFeedback)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparatei)(GLuint, GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationi)(GLuint, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparatei)(GLuint, GLenum, GLenum, GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBlendFunci)(GLuint, GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDeleteTransformFeedbacks)(GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysIndirect)(GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsIndirect)(GLenum, GLenum, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedback)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStream)(GLenum, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glEndQueryIndexed)(GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGenTransformFeedbacks)(GLsizei, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformiv)(GLuint, GLenum, GLuint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramStageiv)(GLuint, GLenum, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetQueryIndexediv)(GLenum, GLuint, GLenum, GLint *) = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineIndex)(GLuint, GLenum, const GLchar *) = NULL;
+GLint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineUniformLocation)(GLuint, GLenum, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetUniformSubroutineuiv)(GLenum, GLint, GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetUniformdv)(GLuint, GLint, GLdouble *) = NULL;
+GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTransformFeedback)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMinSampleShading)(GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPatchParameterfv)(GLenum, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPatchParameteri)(GLenum, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPauseTransformFeedback)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glResumeTransformFeedback)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1d)(GLint, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform1dv)(GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2d)(GLint, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform2dv)(GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3d)(GLint, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform3dv)(GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4d)(GLint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniform4dv)(GLint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3dv)(GLint, GLsizei, GLboolean, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glUniformSubroutinesuiv)(GLenum, GLsizei, const GLuint *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glClearDepthf)(GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeArrayv)(GLuint, GLsizei, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeIndexed)(GLuint, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDepthRangef)(GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetDoublei_v)(GLenum, GLuint, GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetFloati_v)(GLenum, GLuint, GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribLdv)(GLuint, GLenum, GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glProgramParameteri)(GLuint, GLenum, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glReleaseShaderCompiler)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glScissorArrayv)(GLuint, GLsizei, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexed)(GLuint, GLint, GLint, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexedv)(GLuint, const GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1d)(GLuint, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2d)(GLuint, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3d)(GLuint, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4dv)(GLuint, const GLdouble *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glViewportArrayv)(GLuint, GLsizei, const GLfloat *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedf)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedfv)(GLuint, const GLfloat *) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBindImageTexture)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstancedBaseInstance)(GLenum, GLint, GLsizei, GLsizei, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertexBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackInstanced)(GLenum, GLuint, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStreamInstanced)(GLenum, GLuint, GLuint, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAtomicCounterBufferiv)(GLuint, GLuint, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetInternalformati64v)(GLenum, GLenum, GLenum, GLsizei, GLint64 *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMemoryBarrier)(GLbitfield) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexStorage1D)(GLenum, GLsizei, GLenum, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffer)(GLuint, GLuint, GLintptr, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearBufferData)(GLenum, GLenum, GLenum, GLenum, const void *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearBufferSubData)(GLenum, GLenum, GLintptr, GLsizeiptr, GLenum, GLenum, const void *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageCallback)(GLDEBUGPROC, const void *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageControl)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageInsert)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDispatchCompute)(GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glDispatchComputeIndirect)(GLintptr) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glFramebufferParameteri)(GLenum, GLenum, GLint) = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glGetDebugMessageLog)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferParameteriv)(GLenum, GLenum, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetObjectLabel)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetObjectPtrLabel)(const void *, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInterfaceiv)(GLuint, GLenum, GLenum, GLint *) = NULL;
+GLuint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceIndex)(GLuint, GLenum, const GLchar *) = NULL;
+GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocation)(GLuint, GLenum, const GLchar *) = NULL;
+GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocationIndex)(GLuint, GLenum, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceiv)(GLuint, GLenum, GLuint, GLsizei, const GLenum *, GLsizei, GLsizei *, GLint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferData)(GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferSubData)(GLuint, GLintptr, GLsizeiptr) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexImage)(GLuint, GLint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArraysIndirect)(GLenum, const void *, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsIndirect)(GLenum, GLenum, const void *, GLsizei, GLsizei) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glObjectLabel)(GLenum, GLuint, GLsizei, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glObjectPtrLabel)(const void *, GLsizei, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPopDebugGroup)() = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glPushDebugGroup)(GLenum, GLuint, GLsizei, const GLchar *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glShaderStorageBlockBinding)(GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexBufferRange)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glTextureView)(GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribBinding)(GLuint, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribFormat)(GLuint, GLint, GLenum, GLboolean, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIFormat)(GLuint, GLint, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLFormat)(GLuint, GLint, GLenum, GLuint) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glVertexBindingDivisor)(GLuint, GLuint) = NULL;
+
+void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersBase)(GLenum, GLuint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersRange)(GLenum, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizeiptr *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindImageTextures)(GLuint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindSamplers)(GLuint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindTextures)(GLuint, GLsizei, const GLuint *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffers)(GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glBufferStorage)(GLenum, GLsizeiptr, const void *, GLbitfield) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearTexImage)(GLuint, GLint, GLenum, GLenum, const void *) = NULL;
+void (CODEGEN_FUNCPTR *_ptrc_glClearTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *) = NULL;
+
+static int Load_Version_4_4()
+{
+	int numFailed = 0;
+	_ptrc_glBlendFunc = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glBlendFunc");
+	if(!_ptrc_glBlendFunc) numFailed++;
+	_ptrc_glClear = (void (CODEGEN_FUNCPTR *)(GLbitfield))IntGetProcAddress("glClear");
+	if(!_ptrc_glClear) numFailed++;
+	_ptrc_glClearColor = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glClearColor");
+	if(!_ptrc_glClearColor) numFailed++;
+	_ptrc_glClearDepth = (void (CODEGEN_FUNCPTR *)(GLdouble))IntGetProcAddress("glClearDepth");
+	if(!_ptrc_glClearDepth) numFailed++;
+	_ptrc_glClearStencil = (void (CODEGEN_FUNCPTR *)(GLint))IntGetProcAddress("glClearStencil");
+	if(!_ptrc_glClearStencil) numFailed++;
+	_ptrc_glColorMask = (void (CODEGEN_FUNCPTR *)(GLboolean, GLboolean, GLboolean, GLboolean))IntGetProcAddress("glColorMask");
+	if(!_ptrc_glColorMask) numFailed++;
+	_ptrc_glCullFace = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glCullFace");
+	if(!_ptrc_glCullFace) numFailed++;
+	_ptrc_glDepthFunc = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glDepthFunc");
+	if(!_ptrc_glDepthFunc) numFailed++;
+	_ptrc_glDepthMask = (void (CODEGEN_FUNCPTR *)(GLboolean))IntGetProcAddress("glDepthMask");
+	if(!_ptrc_glDepthMask) numFailed++;
+	_ptrc_glDepthRange = (void (CODEGEN_FUNCPTR *)(GLdouble, GLdouble))IntGetProcAddress("glDepthRange");
+	if(!_ptrc_glDepthRange) numFailed++;
+	_ptrc_glDisable = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glDisable");
+	if(!_ptrc_glDisable) numFailed++;
+	_ptrc_glDrawBuffer = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glDrawBuffer");
+	if(!_ptrc_glDrawBuffer) numFailed++;
+	_ptrc_glEnable = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glEnable");
+	if(!_ptrc_glEnable) numFailed++;
+	_ptrc_glFinish = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glFinish");
+	if(!_ptrc_glFinish) numFailed++;
+	_ptrc_glFlush = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glFlush");
+	if(!_ptrc_glFlush) numFailed++;
+	_ptrc_glFrontFace = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glFrontFace");
+	if(!_ptrc_glFrontFace) numFailed++;
+	_ptrc_glGetBooleanv = (void (CODEGEN_FUNCPTR *)(GLenum, GLboolean *))IntGetProcAddress("glGetBooleanv");
+	if(!_ptrc_glGetBooleanv) numFailed++;
+	_ptrc_glGetDoublev = (void (CODEGEN_FUNCPTR *)(GLenum, GLdouble *))IntGetProcAddress("glGetDoublev");
+	if(!_ptrc_glGetDoublev) numFailed++;
+	_ptrc_glGetError = (GLenum (CODEGEN_FUNCPTR *)())IntGetProcAddress("glGetError");
+	if(!_ptrc_glGetError) numFailed++;
+	_ptrc_glGetFloatv = (void (CODEGEN_FUNCPTR *)(GLenum, GLfloat *))IntGetProcAddress("glGetFloatv");
+	if(!_ptrc_glGetFloatv) numFailed++;
+	_ptrc_glGetIntegerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint *))IntGetProcAddress("glGetIntegerv");
+	if(!_ptrc_glGetIntegerv) numFailed++;
+	_ptrc_glGetString = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glGetString");
+	if(!_ptrc_glGetString) numFailed++;
+	_ptrc_glGetTexImage = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLenum, GLvoid *))IntGetProcAddress("glGetTexImage");
+	if(!_ptrc_glGetTexImage) numFailed++;
+	_ptrc_glGetTexLevelParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLfloat *))IntGetProcAddress("glGetTexLevelParameterfv");
+	if(!_ptrc_glGetTexLevelParameterfv) numFailed++;
+	_ptrc_glGetTexLevelParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLint *))IntGetProcAddress("glGetTexLevelParameteriv");
+	if(!_ptrc_glGetTexLevelParameteriv) numFailed++;
+	_ptrc_glGetTexParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLfloat *))IntGetProcAddress("glGetTexParameterfv");
+	if(!_ptrc_glGetTexParameterfv) numFailed++;
+	_ptrc_glGetTexParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetTexParameteriv");
+	if(!_ptrc_glGetTexParameteriv) numFailed++;
+	_ptrc_glHint = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glHint");
+	if(!_ptrc_glHint) numFailed++;
+	_ptrc_glIsEnabled = (GLboolean (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glIsEnabled");
+	if(!_ptrc_glIsEnabled) numFailed++;
+	_ptrc_glLineWidth = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glLineWidth");
+	if(!_ptrc_glLineWidth) numFailed++;
+	_ptrc_glLogicOp = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glLogicOp");
+	if(!_ptrc_glLogicOp) numFailed++;
+	_ptrc_glPixelStoref = (void (CODEGEN_FUNCPTR *)(GLenum, GLfloat))IntGetProcAddress("glPixelStoref");
+	if(!_ptrc_glPixelStoref) numFailed++;
+	_ptrc_glPixelStorei = (void (CODEGEN_FUNCPTR *)(GLenum, GLint))IntGetProcAddress("glPixelStorei");
+	if(!_ptrc_glPixelStorei) numFailed++;
+	_ptrc_glPointSize = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glPointSize");
+	if(!_ptrc_glPointSize) numFailed++;
+	_ptrc_glPolygonMode = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glPolygonMode");
+	if(!_ptrc_glPolygonMode) numFailed++;
+	_ptrc_glReadBuffer = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glReadBuffer");
+	if(!_ptrc_glReadBuffer) numFailed++;
+	_ptrc_glReadPixels = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *))IntGetProcAddress("glReadPixels");
+	if(!_ptrc_glReadPixels) numFailed++;
+	_ptrc_glScissor = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glScissor");
+	if(!_ptrc_glScissor) numFailed++;
+	_ptrc_glStencilFunc = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLuint))IntGetProcAddress("glStencilFunc");
+	if(!_ptrc_glStencilFunc) numFailed++;
+	_ptrc_glStencilMask = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glStencilMask");
+	if(!_ptrc_glStencilMask) numFailed++;
+	_ptrc_glStencilOp = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum))IntGetProcAddress("glStencilOp");
+	if(!_ptrc_glStencilOp) numFailed++;
+	_ptrc_glTexImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexImage1D");
+	if(!_ptrc_glTexImage1D) numFailed++;
+	_ptrc_glTexImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexImage2D");
+	if(!_ptrc_glTexImage2D) numFailed++;
+	_ptrc_glTexParameterf = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLfloat))IntGetProcAddress("glTexParameterf");
+	if(!_ptrc_glTexParameterf) numFailed++;
+	_ptrc_glTexParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLfloat *))IntGetProcAddress("glTexParameterfv");
+	if(!_ptrc_glTexParameterfv) numFailed++;
+	_ptrc_glTexParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint))IntGetProcAddress("glTexParameteri");
+	if(!_ptrc_glTexParameteri) numFailed++;
+	_ptrc_glTexParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLint *))IntGetProcAddress("glTexParameteriv");
+	if(!_ptrc_glTexParameteriv) numFailed++;
+	_ptrc_glViewport = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glViewport");
+	if(!_ptrc_glViewport) numFailed++;
+	_ptrc_glBindTexture = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindTexture");
+	if(!_ptrc_glBindTexture) numFailed++;
+	_ptrc_glCopyTexImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint))IntGetProcAddress("glCopyTexImage1D");
+	if(!_ptrc_glCopyTexImage1D) numFailed++;
+	_ptrc_glCopyTexImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint))IntGetProcAddress("glCopyTexImage2D");
+	if(!_ptrc_glCopyTexImage2D) numFailed++;
+	_ptrc_glCopyTexSubImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLsizei))IntGetProcAddress("glCopyTexSubImage1D");
+	if(!_ptrc_glCopyTexSubImage1D) numFailed++;
+	_ptrc_glCopyTexSubImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glCopyTexSubImage2D");
+	if(!_ptrc_glCopyTexSubImage2D) numFailed++;
+	_ptrc_glDeleteTextures = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteTextures");
+	if(!_ptrc_glDeleteTextures) numFailed++;
+	_ptrc_glDrawArrays = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLsizei))IntGetProcAddress("glDrawArrays");
+	if(!_ptrc_glDrawArrays) numFailed++;
+	_ptrc_glDrawElements = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *))IntGetProcAddress("glDrawElements");
+	if(!_ptrc_glDrawElements) numFailed++;
+	_ptrc_glGenTextures = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenTextures");
+	if(!_ptrc_glGenTextures) numFailed++;
+	_ptrc_glGetPointerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLvoid **))IntGetProcAddress("glGetPointerv");
+	if(!_ptrc_glGetPointerv) numFailed++;
+	_ptrc_glIsTexture = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsTexture");
+	if(!_ptrc_glIsTexture) numFailed++;
+	_ptrc_glPolygonOffset = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat))IntGetProcAddress("glPolygonOffset");
+	if(!_ptrc_glPolygonOffset) numFailed++;
+	_ptrc_glTexSubImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexSubImage1D");
+	if(!_ptrc_glTexSubImage1D) numFailed++;
+	_ptrc_glTexSubImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexSubImage2D");
+	if(!_ptrc_glTexSubImage2D) numFailed++;
+	_ptrc_glBlendColor = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glBlendColor");
+	if(!_ptrc_glBlendColor) numFailed++;
+	_ptrc_glBlendEquation = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glBlendEquation");
+	if(!_ptrc_glBlendEquation) numFailed++;
+	_ptrc_glCopyTexSubImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glCopyTexSubImage3D");
+	if(!_ptrc_glCopyTexSubImage3D) numFailed++;
+	_ptrc_glDrawRangeElements = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *))IntGetProcAddress("glDrawRangeElements");
+	if(!_ptrc_glDrawRangeElements) numFailed++;
+	_ptrc_glTexImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexImage3D");
+	if(!_ptrc_glTexImage3D) numFailed++;
+	_ptrc_glTexSubImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *))IntGetProcAddress("glTexSubImage3D");
+	if(!_ptrc_glTexSubImage3D) numFailed++;
+	_ptrc_glActiveTexture = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glActiveTexture");
+	if(!_ptrc_glActiveTexture) numFailed++;
+	_ptrc_glCompressedTexImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexImage1D");
+	if(!_ptrc_glCompressedTexImage1D) numFailed++;
+	_ptrc_glCompressedTexImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexImage2D");
+	if(!_ptrc_glCompressedTexImage2D) numFailed++;
+	_ptrc_glCompressedTexImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexImage3D");
+	if(!_ptrc_glCompressedTexImage3D) numFailed++;
+	_ptrc_glCompressedTexSubImage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexSubImage1D");
+	if(!_ptrc_glCompressedTexSubImage1D) numFailed++;
+	_ptrc_glCompressedTexSubImage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexSubImage2D");
+	if(!_ptrc_glCompressedTexSubImage2D) numFailed++;
+	_ptrc_glCompressedTexSubImage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glCompressedTexSubImage3D");
+	if(!_ptrc_glCompressedTexSubImage3D) numFailed++;
+	_ptrc_glGetCompressedTexImage = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLvoid *))IntGetProcAddress("glGetCompressedTexImage");
+	if(!_ptrc_glGetCompressedTexImage) numFailed++;
+	_ptrc_glSampleCoverage = (void (CODEGEN_FUNCPTR *)(GLfloat, GLboolean))IntGetProcAddress("glSampleCoverage");
+	if(!_ptrc_glSampleCoverage) numFailed++;
+	_ptrc_glBlendFuncSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLenum))IntGetProcAddress("glBlendFuncSeparate");
+	if(!_ptrc_glBlendFuncSeparate) numFailed++;
+	_ptrc_glMultiDrawArrays = (void (CODEGEN_FUNCPTR *)(GLenum, const GLint *, const GLsizei *, GLsizei))IntGetProcAddress("glMultiDrawArrays");
+	if(!_ptrc_glMultiDrawArrays) numFailed++;
+	_ptrc_glMultiDrawElements = (void (CODEGEN_FUNCPTR *)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei))IntGetProcAddress("glMultiDrawElements");
+	if(!_ptrc_glMultiDrawElements) numFailed++;
+	_ptrc_glPointParameterf = (void (CODEGEN_FUNCPTR *)(GLenum, GLfloat))IntGetProcAddress("glPointParameterf");
+	if(!_ptrc_glPointParameterf) numFailed++;
+	_ptrc_glPointParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLfloat *))IntGetProcAddress("glPointParameterfv");
+	if(!_ptrc_glPointParameterfv) numFailed++;
+	_ptrc_glPointParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLint))IntGetProcAddress("glPointParameteri");
+	if(!_ptrc_glPointParameteri) numFailed++;
+	_ptrc_glPointParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLint *))IntGetProcAddress("glPointParameteriv");
+	if(!_ptrc_glPointParameteriv) numFailed++;
+	_ptrc_glBeginQuery = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBeginQuery");
+	if(!_ptrc_glBeginQuery) numFailed++;
+	_ptrc_glBindBuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindBuffer");
+	if(!_ptrc_glBindBuffer) numFailed++;
+	_ptrc_glBufferData = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizeiptr, const GLvoid *, GLenum))IntGetProcAddress("glBufferData");
+	if(!_ptrc_glBufferData) numFailed++;
+	_ptrc_glBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr, const GLvoid *))IntGetProcAddress("glBufferSubData");
+	if(!_ptrc_glBufferSubData) numFailed++;
+	_ptrc_glDeleteBuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteBuffers");
+	if(!_ptrc_glDeleteBuffers) numFailed++;
+	_ptrc_glDeleteQueries = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteQueries");
+	if(!_ptrc_glDeleteQueries) numFailed++;
+	_ptrc_glEndQuery = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glEndQuery");
+	if(!_ptrc_glEndQuery) numFailed++;
+	_ptrc_glGenBuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenBuffers");
+	if(!_ptrc_glGenBuffers) numFailed++;
+	_ptrc_glGenQueries = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenQueries");
+	if(!_ptrc_glGenQueries) numFailed++;
+	_ptrc_glGetBufferParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetBufferParameteriv");
+	if(!_ptrc_glGetBufferParameteriv) numFailed++;
+	_ptrc_glGetBufferPointerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLvoid **))IntGetProcAddress("glGetBufferPointerv");
+	if(!_ptrc_glGetBufferPointerv) numFailed++;
+	_ptrc_glGetBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr, GLvoid *))IntGetProcAddress("glGetBufferSubData");
+	if(!_ptrc_glGetBufferSubData) numFailed++;
+	_ptrc_glGetQueryObjectiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetQueryObjectiv");
+	if(!_ptrc_glGetQueryObjectiv) numFailed++;
+	_ptrc_glGetQueryObjectuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint *))IntGetProcAddress("glGetQueryObjectuiv");
+	if(!_ptrc_glGetQueryObjectuiv) numFailed++;
+	_ptrc_glGetQueryiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetQueryiv");
+	if(!_ptrc_glGetQueryiv) numFailed++;
+	_ptrc_glIsBuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsBuffer");
+	if(!_ptrc_glIsBuffer) numFailed++;
+	_ptrc_glIsQuery = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsQuery");
+	if(!_ptrc_glIsQuery) numFailed++;
+	_ptrc_glMapBuffer = (void * (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glMapBuffer");
+	if(!_ptrc_glMapBuffer) numFailed++;
+	_ptrc_glUnmapBuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glUnmapBuffer");
+	if(!_ptrc_glUnmapBuffer) numFailed++;
+	_ptrc_glAttachShader = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glAttachShader");
+	if(!_ptrc_glAttachShader) numFailed++;
+	_ptrc_glBindAttribLocation = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, const GLchar *))IntGetProcAddress("glBindAttribLocation");
+	if(!_ptrc_glBindAttribLocation) numFailed++;
+	_ptrc_glBlendEquationSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glBlendEquationSeparate");
+	if(!_ptrc_glBlendEquationSeparate) numFailed++;
+	_ptrc_glCompileShader = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glCompileShader");
+	if(!_ptrc_glCompileShader) numFailed++;
+	_ptrc_glCreateProgram = (GLuint (CODEGEN_FUNCPTR *)())IntGetProcAddress("glCreateProgram");
+	if(!_ptrc_glCreateProgram) numFailed++;
+	_ptrc_glCreateShader = (GLuint (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glCreateShader");
+	if(!_ptrc_glCreateShader) numFailed++;
+	_ptrc_glDeleteProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glDeleteProgram");
+	if(!_ptrc_glDeleteProgram) numFailed++;
+	_ptrc_glDeleteShader = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glDeleteShader");
+	if(!_ptrc_glDeleteShader) numFailed++;
+	_ptrc_glDetachShader = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glDetachShader");
+	if(!_ptrc_glDetachShader) numFailed++;
+	_ptrc_glDisableVertexAttribArray = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glDisableVertexAttribArray");
+	if(!_ptrc_glDisableVertexAttribArray) numFailed++;
+	_ptrc_glDrawBuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLenum *))IntGetProcAddress("glDrawBuffers");
+	if(!_ptrc_glDrawBuffers) numFailed++;
+	_ptrc_glEnableVertexAttribArray = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glEnableVertexAttribArray");
+	if(!_ptrc_glEnableVertexAttribArray) numFailed++;
+	_ptrc_glGetActiveAttrib = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *))IntGetProcAddress("glGetActiveAttrib");
+	if(!_ptrc_glGetActiveAttrib) numFailed++;
+	_ptrc_glGetActiveUniform = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *))IntGetProcAddress("glGetActiveUniform");
+	if(!_ptrc_glGetActiveUniform) numFailed++;
+	_ptrc_glGetAttachedShaders = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLuint *))IntGetProcAddress("glGetAttachedShaders");
+	if(!_ptrc_glGetAttachedShaders) numFailed++;
+	_ptrc_glGetAttribLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetAttribLocation");
+	if(!_ptrc_glGetAttribLocation) numFailed++;
+	_ptrc_glGetProgramInfoLog = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetProgramInfoLog");
+	if(!_ptrc_glGetProgramInfoLog) numFailed++;
+	_ptrc_glGetProgramiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetProgramiv");
+	if(!_ptrc_glGetProgramiv) numFailed++;
+	_ptrc_glGetShaderInfoLog = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetShaderInfoLog");
+	if(!_ptrc_glGetShaderInfoLog) numFailed++;
+	_ptrc_glGetShaderSource = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetShaderSource");
+	if(!_ptrc_glGetShaderSource) numFailed++;
+	_ptrc_glGetShaderiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetShaderiv");
+	if(!_ptrc_glGetShaderiv) numFailed++;
+	_ptrc_glGetUniformLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetUniformLocation");
+	if(!_ptrc_glGetUniformLocation) numFailed++;
+	_ptrc_glGetUniformfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat *))IntGetProcAddress("glGetUniformfv");
+	if(!_ptrc_glGetUniformfv) numFailed++;
+	_ptrc_glGetUniformiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint *))IntGetProcAddress("glGetUniformiv");
+	if(!_ptrc_glGetUniformiv) numFailed++;
+	_ptrc_glGetVertexAttribPointerv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLvoid **))IntGetProcAddress("glGetVertexAttribPointerv");
+	if(!_ptrc_glGetVertexAttribPointerv) numFailed++;
+	_ptrc_glGetVertexAttribdv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLdouble *))IntGetProcAddress("glGetVertexAttribdv");
+	if(!_ptrc_glGetVertexAttribdv) numFailed++;
+	_ptrc_glGetVertexAttribfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLfloat *))IntGetProcAddress("glGetVertexAttribfv");
+	if(!_ptrc_glGetVertexAttribfv) numFailed++;
+	_ptrc_glGetVertexAttribiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetVertexAttribiv");
+	if(!_ptrc_glGetVertexAttribiv) numFailed++;
+	_ptrc_glIsProgram = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsProgram");
+	if(!_ptrc_glIsProgram) numFailed++;
+	_ptrc_glIsShader = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsShader");
+	if(!_ptrc_glIsShader) numFailed++;
+	_ptrc_glLinkProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glLinkProgram");
+	if(!_ptrc_glLinkProgram) numFailed++;
+	_ptrc_glShaderSource = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLchar *const*, const GLint *))IntGetProcAddress("glShaderSource");
+	if(!_ptrc_glShaderSource) numFailed++;
+	_ptrc_glStencilFuncSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint, GLuint))IntGetProcAddress("glStencilFuncSeparate");
+	if(!_ptrc_glStencilFuncSeparate) numFailed++;
+	_ptrc_glStencilMaskSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glStencilMaskSeparate");
+	if(!_ptrc_glStencilMaskSeparate) numFailed++;
+	_ptrc_glStencilOpSeparate = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLenum))IntGetProcAddress("glStencilOpSeparate");
+	if(!_ptrc_glStencilOpSeparate) numFailed++;
+	_ptrc_glUniform1f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat))IntGetProcAddress("glUniform1f");
+	if(!_ptrc_glUniform1f) numFailed++;
+	_ptrc_glUniform1fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform1fv");
+	if(!_ptrc_glUniform1fv) numFailed++;
+	_ptrc_glUniform1i = (void (CODEGEN_FUNCPTR *)(GLint, GLint))IntGetProcAddress("glUniform1i");
+	if(!_ptrc_glUniform1i) numFailed++;
+	_ptrc_glUniform1iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform1iv");
+	if(!_ptrc_glUniform1iv) numFailed++;
+	_ptrc_glUniform2f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat, GLfloat))IntGetProcAddress("glUniform2f");
+	if(!_ptrc_glUniform2f) numFailed++;
+	_ptrc_glUniform2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform2fv");
+	if(!_ptrc_glUniform2fv) numFailed++;
+	_ptrc_glUniform2i = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint))IntGetProcAddress("glUniform2i");
+	if(!_ptrc_glUniform2i) numFailed++;
+	_ptrc_glUniform2iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform2iv");
+	if(!_ptrc_glUniform2iv) numFailed++;
+	_ptrc_glUniform3f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glUniform3f");
+	if(!_ptrc_glUniform3f) numFailed++;
+	_ptrc_glUniform3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform3fv");
+	if(!_ptrc_glUniform3fv) numFailed++;
+	_ptrc_glUniform3i = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint, GLint))IntGetProcAddress("glUniform3i");
+	if(!_ptrc_glUniform3i) numFailed++;
+	_ptrc_glUniform3iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform3iv");
+	if(!_ptrc_glUniform3iv) numFailed++;
+	_ptrc_glUniform4f = (void (CODEGEN_FUNCPTR *)(GLint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glUniform4f");
+	if(!_ptrc_glUniform4f) numFailed++;
+	_ptrc_glUniform4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLfloat *))IntGetProcAddress("glUniform4fv");
+	if(!_ptrc_glUniform4fv) numFailed++;
+	_ptrc_glUniform4i = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint, GLint, GLint))IntGetProcAddress("glUniform4i");
+	if(!_ptrc_glUniform4i) numFailed++;
+	_ptrc_glUniform4iv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLint *))IntGetProcAddress("glUniform4iv");
+	if(!_ptrc_glUniform4iv) numFailed++;
+	_ptrc_glUniformMatrix2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix2fv");
+	if(!_ptrc_glUniformMatrix2fv) numFailed++;
+	_ptrc_glUniformMatrix3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix3fv");
+	if(!_ptrc_glUniformMatrix3fv) numFailed++;
+	_ptrc_glUniformMatrix4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix4fv");
+	if(!_ptrc_glUniformMatrix4fv) numFailed++;
+	_ptrc_glUseProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glUseProgram");
+	if(!_ptrc_glUseProgram) numFailed++;
+	_ptrc_glValidateProgram = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glValidateProgram");
+	if(!_ptrc_glValidateProgram) numFailed++;
+	_ptrc_glVertexAttrib1d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble))IntGetProcAddress("glVertexAttrib1d");
+	if(!_ptrc_glVertexAttrib1d) numFailed++;
+	_ptrc_glVertexAttrib1dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib1dv");
+	if(!_ptrc_glVertexAttrib1dv) numFailed++;
+	_ptrc_glVertexAttrib1f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat))IntGetProcAddress("glVertexAttrib1f");
+	if(!_ptrc_glVertexAttrib1f) numFailed++;
+	_ptrc_glVertexAttrib1fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib1fv");
+	if(!_ptrc_glVertexAttrib1fv) numFailed++;
+	_ptrc_glVertexAttrib1s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort))IntGetProcAddress("glVertexAttrib1s");
+	if(!_ptrc_glVertexAttrib1s) numFailed++;
+	_ptrc_glVertexAttrib1sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib1sv");
+	if(!_ptrc_glVertexAttrib1sv) numFailed++;
+	_ptrc_glVertexAttrib2d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble))IntGetProcAddress("glVertexAttrib2d");
+	if(!_ptrc_glVertexAttrib2d) numFailed++;
+	_ptrc_glVertexAttrib2dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib2dv");
+	if(!_ptrc_glVertexAttrib2dv) numFailed++;
+	_ptrc_glVertexAttrib2f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat))IntGetProcAddress("glVertexAttrib2f");
+	if(!_ptrc_glVertexAttrib2f) numFailed++;
+	_ptrc_glVertexAttrib2fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib2fv");
+	if(!_ptrc_glVertexAttrib2fv) numFailed++;
+	_ptrc_glVertexAttrib2s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort, GLshort))IntGetProcAddress("glVertexAttrib2s");
+	if(!_ptrc_glVertexAttrib2s) numFailed++;
+	_ptrc_glVertexAttrib2sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib2sv");
+	if(!_ptrc_glVertexAttrib2sv) numFailed++;
+	_ptrc_glVertexAttrib3d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttrib3d");
+	if(!_ptrc_glVertexAttrib3d) numFailed++;
+	_ptrc_glVertexAttrib3dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib3dv");
+	if(!_ptrc_glVertexAttrib3dv) numFailed++;
+	_ptrc_glVertexAttrib3f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glVertexAttrib3f");
+	if(!_ptrc_glVertexAttrib3f) numFailed++;
+	_ptrc_glVertexAttrib3fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib3fv");
+	if(!_ptrc_glVertexAttrib3fv) numFailed++;
+	_ptrc_glVertexAttrib3s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort, GLshort, GLshort))IntGetProcAddress("glVertexAttrib3s");
+	if(!_ptrc_glVertexAttrib3s) numFailed++;
+	_ptrc_glVertexAttrib3sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib3sv");
+	if(!_ptrc_glVertexAttrib3sv) numFailed++;
+	_ptrc_glVertexAttrib4Nbv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLbyte *))IntGetProcAddress("glVertexAttrib4Nbv");
+	if(!_ptrc_glVertexAttrib4Nbv) numFailed++;
+	_ptrc_glVertexAttrib4Niv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttrib4Niv");
+	if(!_ptrc_glVertexAttrib4Niv) numFailed++;
+	_ptrc_glVertexAttrib4Nsv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib4Nsv");
+	if(!_ptrc_glVertexAttrib4Nsv) numFailed++;
+	_ptrc_glVertexAttrib4Nub = (void (CODEGEN_FUNCPTR *)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte))IntGetProcAddress("glVertexAttrib4Nub");
+	if(!_ptrc_glVertexAttrib4Nub) numFailed++;
+	_ptrc_glVertexAttrib4Nubv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLubyte *))IntGetProcAddress("glVertexAttrib4Nubv");
+	if(!_ptrc_glVertexAttrib4Nubv) numFailed++;
+	_ptrc_glVertexAttrib4Nuiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttrib4Nuiv");
+	if(!_ptrc_glVertexAttrib4Nuiv) numFailed++;
+	_ptrc_glVertexAttrib4Nusv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLushort *))IntGetProcAddress("glVertexAttrib4Nusv");
+	if(!_ptrc_glVertexAttrib4Nusv) numFailed++;
+	_ptrc_glVertexAttrib4bv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLbyte *))IntGetProcAddress("glVertexAttrib4bv");
+	if(!_ptrc_glVertexAttrib4bv) numFailed++;
+	_ptrc_glVertexAttrib4d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttrib4d");
+	if(!_ptrc_glVertexAttrib4d) numFailed++;
+	_ptrc_glVertexAttrib4dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttrib4dv");
+	if(!_ptrc_glVertexAttrib4dv) numFailed++;
+	_ptrc_glVertexAttrib4f = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glVertexAttrib4f");
+	if(!_ptrc_glVertexAttrib4f) numFailed++;
+	_ptrc_glVertexAttrib4fv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glVertexAttrib4fv");
+	if(!_ptrc_glVertexAttrib4fv) numFailed++;
+	_ptrc_glVertexAttrib4iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttrib4iv");
+	if(!_ptrc_glVertexAttrib4iv) numFailed++;
+	_ptrc_glVertexAttrib4s = (void (CODEGEN_FUNCPTR *)(GLuint, GLshort, GLshort, GLshort, GLshort))IntGetProcAddress("glVertexAttrib4s");
+	if(!_ptrc_glVertexAttrib4s) numFailed++;
+	_ptrc_glVertexAttrib4sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttrib4sv");
+	if(!_ptrc_glVertexAttrib4sv) numFailed++;
+	_ptrc_glVertexAttrib4ubv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLubyte *))IntGetProcAddress("glVertexAttrib4ubv");
+	if(!_ptrc_glVertexAttrib4ubv) numFailed++;
+	_ptrc_glVertexAttrib4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttrib4uiv");
+	if(!_ptrc_glVertexAttrib4uiv) numFailed++;
+	_ptrc_glVertexAttrib4usv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLushort *))IntGetProcAddress("glVertexAttrib4usv");
+	if(!_ptrc_glVertexAttrib4usv) numFailed++;
+	_ptrc_glVertexAttribPointer = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *))IntGetProcAddress("glVertexAttribPointer");
+	if(!_ptrc_glVertexAttribPointer) numFailed++;
+	_ptrc_glUniformMatrix2x3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix2x3fv");
+	if(!_ptrc_glUniformMatrix2x3fv) numFailed++;
+	_ptrc_glUniformMatrix2x4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix2x4fv");
+	if(!_ptrc_glUniformMatrix2x4fv) numFailed++;
+	_ptrc_glUniformMatrix3x2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix3x2fv");
+	if(!_ptrc_glUniformMatrix3x2fv) numFailed++;
+	_ptrc_glUniformMatrix3x4fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix3x4fv");
+	if(!_ptrc_glUniformMatrix3x4fv) numFailed++;
+	_ptrc_glUniformMatrix4x2fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix4x2fv");
+	if(!_ptrc_glUniformMatrix4x2fv) numFailed++;
+	_ptrc_glUniformMatrix4x3fv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glUniformMatrix4x3fv");
+	if(!_ptrc_glUniformMatrix4x3fv) numFailed++;
+	_ptrc_glBeginConditionalRender = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum))IntGetProcAddress("glBeginConditionalRender");
+	if(!_ptrc_glBeginConditionalRender) numFailed++;
+	_ptrc_glBeginTransformFeedback = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glBeginTransformFeedback");
+	if(!_ptrc_glBeginTransformFeedback) numFailed++;
+	_ptrc_glBindBufferBase = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint))IntGetProcAddress("glBindBufferBase");
+	if(!_ptrc_glBindBufferBase) numFailed++;
+	_ptrc_glBindBufferRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr))IntGetProcAddress("glBindBufferRange");
+	if(!_ptrc_glBindBufferRange) numFailed++;
+	_ptrc_glBindFragDataLocation = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, const GLchar *))IntGetProcAddress("glBindFragDataLocation");
+	if(!_ptrc_glBindFragDataLocation) numFailed++;
+	_ptrc_glBindFramebuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindFramebuffer");
+	if(!_ptrc_glBindFramebuffer) numFailed++;
+	_ptrc_glBindRenderbuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindRenderbuffer");
+	if(!_ptrc_glBindRenderbuffer) numFailed++;
+	_ptrc_glBindVertexArray = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glBindVertexArray");
+	if(!_ptrc_glBindVertexArray) numFailed++;
+	_ptrc_glBlitFramebuffer = (void (CODEGEN_FUNCPTR *)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum))IntGetProcAddress("glBlitFramebuffer");
+	if(!_ptrc_glBlitFramebuffer) numFailed++;
+	_ptrc_glCheckFramebufferStatus = (GLenum (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glCheckFramebufferStatus");
+	if(!_ptrc_glCheckFramebufferStatus) numFailed++;
+	_ptrc_glClampColor = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum))IntGetProcAddress("glClampColor");
+	if(!_ptrc_glClampColor) numFailed++;
+	_ptrc_glClearBufferfi = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLfloat, GLint))IntGetProcAddress("glClearBufferfi");
+	if(!_ptrc_glClearBufferfi) numFailed++;
+	_ptrc_glClearBufferfv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, const GLfloat *))IntGetProcAddress("glClearBufferfv");
+	if(!_ptrc_glClearBufferfv) numFailed++;
+	_ptrc_glClearBufferiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, const GLint *))IntGetProcAddress("glClearBufferiv");
+	if(!_ptrc_glClearBufferiv) numFailed++;
+	_ptrc_glClearBufferuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, const GLuint *))IntGetProcAddress("glClearBufferuiv");
+	if(!_ptrc_glClearBufferuiv) numFailed++;
+	_ptrc_glColorMaski = (void (CODEGEN_FUNCPTR *)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean))IntGetProcAddress("glColorMaski");
+	if(!_ptrc_glColorMaski) numFailed++;
+	_ptrc_glDeleteFramebuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteFramebuffers");
+	if(!_ptrc_glDeleteFramebuffers) numFailed++;
+	_ptrc_glDeleteRenderbuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteRenderbuffers");
+	if(!_ptrc_glDeleteRenderbuffers) numFailed++;
+	_ptrc_glDeleteVertexArrays = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteVertexArrays");
+	if(!_ptrc_glDeleteVertexArrays) numFailed++;
+	_ptrc_glDisablei = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glDisablei");
+	if(!_ptrc_glDisablei) numFailed++;
+	_ptrc_glEnablei = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glEnablei");
+	if(!_ptrc_glEnablei) numFailed++;
+	_ptrc_glEndConditionalRender = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glEndConditionalRender");
+	if(!_ptrc_glEndConditionalRender) numFailed++;
+	_ptrc_glEndTransformFeedback = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glEndTransformFeedback");
+	if(!_ptrc_glEndTransformFeedback) numFailed++;
+	_ptrc_glFlushMappedBufferRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr))IntGetProcAddress("glFlushMappedBufferRange");
+	if(!_ptrc_glFlushMappedBufferRange) numFailed++;
+	_ptrc_glFramebufferRenderbuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint))IntGetProcAddress("glFramebufferRenderbuffer");
+	if(!_ptrc_glFramebufferRenderbuffer) numFailed++;
+	_ptrc_glFramebufferTexture1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture1D");
+	if(!_ptrc_glFramebufferTexture1D) numFailed++;
+	_ptrc_glFramebufferTexture2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture2D");
+	if(!_ptrc_glFramebufferTexture2D) numFailed++;
+	_ptrc_glFramebufferTexture3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLuint, GLint, GLint))IntGetProcAddress("glFramebufferTexture3D");
+	if(!_ptrc_glFramebufferTexture3D) numFailed++;
+	_ptrc_glFramebufferTextureLayer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLint, GLint))IntGetProcAddress("glFramebufferTextureLayer");
+	if(!_ptrc_glFramebufferTextureLayer) numFailed++;
+	_ptrc_glGenFramebuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenFramebuffers");
+	if(!_ptrc_glGenFramebuffers) numFailed++;
+	_ptrc_glGenRenderbuffers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenRenderbuffers");
+	if(!_ptrc_glGenRenderbuffers) numFailed++;
+	_ptrc_glGenVertexArrays = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenVertexArrays");
+	if(!_ptrc_glGenVertexArrays) numFailed++;
+	_ptrc_glGenerateMipmap = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glGenerateMipmap");
+	if(!_ptrc_glGenerateMipmap) numFailed++;
+	_ptrc_glGetBooleani_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLboolean *))IntGetProcAddress("glGetBooleani_v");
+	if(!_ptrc_glGetBooleani_v) numFailed++;
+	_ptrc_glGetFragDataLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetFragDataLocation");
+	if(!_ptrc_glGetFragDataLocation) numFailed++;
+	_ptrc_glGetFramebufferAttachmentParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLint *))IntGetProcAddress("glGetFramebufferAttachmentParameteriv");
+	if(!_ptrc_glGetFramebufferAttachmentParameteriv) numFailed++;
+	_ptrc_glGetIntegeri_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLint *))IntGetProcAddress("glGetIntegeri_v");
+	if(!_ptrc_glGetIntegeri_v) numFailed++;
+	_ptrc_glGetRenderbufferParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetRenderbufferParameteriv");
+	if(!_ptrc_glGetRenderbufferParameteriv) numFailed++;
+	_ptrc_glGetStringi = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glGetStringi");
+	if(!_ptrc_glGetStringi) numFailed++;
+	_ptrc_glGetTexParameterIiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetTexParameterIiv");
+	if(!_ptrc_glGetTexParameterIiv) numFailed++;
+	_ptrc_glGetTexParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint *))IntGetProcAddress("glGetTexParameterIuiv");
+	if(!_ptrc_glGetTexParameterIuiv) numFailed++;
+	_ptrc_glGetTransformFeedbackVarying = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *))IntGetProcAddress("glGetTransformFeedbackVarying");
+	if(!_ptrc_glGetTransformFeedbackVarying) numFailed++;
+	_ptrc_glGetUniformuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint *))IntGetProcAddress("glGetUniformuiv");
+	if(!_ptrc_glGetUniformuiv) numFailed++;
+	_ptrc_glGetVertexAttribIiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetVertexAttribIiv");
+	if(!_ptrc_glGetVertexAttribIiv) numFailed++;
+	_ptrc_glGetVertexAttribIuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint *))IntGetProcAddress("glGetVertexAttribIuiv");
+	if(!_ptrc_glGetVertexAttribIuiv) numFailed++;
+	_ptrc_glIsEnabledi = (GLboolean (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glIsEnabledi");
+	if(!_ptrc_glIsEnabledi) numFailed++;
+	_ptrc_glIsFramebuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsFramebuffer");
+	if(!_ptrc_glIsFramebuffer) numFailed++;
+	_ptrc_glIsRenderbuffer = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsRenderbuffer");
+	if(!_ptrc_glIsRenderbuffer) numFailed++;
+	_ptrc_glIsVertexArray = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsVertexArray");
+	if(!_ptrc_glIsVertexArray) numFailed++;
+	_ptrc_glMapBufferRange = (void * (CODEGEN_FUNCPTR *)(GLenum, GLintptr, GLsizeiptr, GLbitfield))IntGetProcAddress("glMapBufferRange");
+	if(!_ptrc_glMapBufferRange) numFailed++;
+	_ptrc_glRenderbufferStorage = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLsizei, GLsizei))IntGetProcAddress("glRenderbufferStorage");
+	if(!_ptrc_glRenderbufferStorage) numFailed++;
+	_ptrc_glRenderbufferStorageMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei))IntGetProcAddress("glRenderbufferStorageMultisample");
+	if(!_ptrc_glRenderbufferStorageMultisample) numFailed++;
+	_ptrc_glTexParameterIiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLint *))IntGetProcAddress("glTexParameterIiv");
+	if(!_ptrc_glTexParameterIiv) numFailed++;
+	_ptrc_glTexParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glTexParameterIuiv");
+	if(!_ptrc_glTexParameterIuiv) numFailed++;
+	_ptrc_glTransformFeedbackVaryings = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLchar *const*, GLenum))IntGetProcAddress("glTransformFeedbackVaryings");
+	if(!_ptrc_glTransformFeedbackVaryings) numFailed++;
+	_ptrc_glUniform1ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint))IntGetProcAddress("glUniform1ui");
+	if(!_ptrc_glUniform1ui) numFailed++;
+	_ptrc_glUniform1uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform1uiv");
+	if(!_ptrc_glUniform1uiv) numFailed++;
+	_ptrc_glUniform2ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint, GLuint))IntGetProcAddress("glUniform2ui");
+	if(!_ptrc_glUniform2ui) numFailed++;
+	_ptrc_glUniform2uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform2uiv");
+	if(!_ptrc_glUniform2uiv) numFailed++;
+	_ptrc_glUniform3ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint, GLuint, GLuint))IntGetProcAddress("glUniform3ui");
+	if(!_ptrc_glUniform3ui) numFailed++;
+	_ptrc_glUniform3uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform3uiv");
+	if(!_ptrc_glUniform3uiv) numFailed++;
+	_ptrc_glUniform4ui = (void (CODEGEN_FUNCPTR *)(GLint, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glUniform4ui");
+	if(!_ptrc_glUniform4ui) numFailed++;
+	_ptrc_glUniform4uiv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLuint *))IntGetProcAddress("glUniform4uiv");
+	if(!_ptrc_glUniform4uiv) numFailed++;
+	_ptrc_glVertexAttribI1i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint))IntGetProcAddress("glVertexAttribI1i");
+	if(!_ptrc_glVertexAttribI1i) numFailed++;
+	_ptrc_glVertexAttribI1iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI1iv");
+	if(!_ptrc_glVertexAttribI1iv) numFailed++;
+	_ptrc_glVertexAttribI1ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexAttribI1ui");
+	if(!_ptrc_glVertexAttribI1ui) numFailed++;
+	_ptrc_glVertexAttribI1uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI1uiv");
+	if(!_ptrc_glVertexAttribI1uiv) numFailed++;
+	_ptrc_glVertexAttribI2i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint))IntGetProcAddress("glVertexAttribI2i");
+	if(!_ptrc_glVertexAttribI2i) numFailed++;
+	_ptrc_glVertexAttribI2iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI2iv");
+	if(!_ptrc_glVertexAttribI2iv) numFailed++;
+	_ptrc_glVertexAttribI2ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glVertexAttribI2ui");
+	if(!_ptrc_glVertexAttribI2ui) numFailed++;
+	_ptrc_glVertexAttribI2uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI2uiv");
+	if(!_ptrc_glVertexAttribI2uiv) numFailed++;
+	_ptrc_glVertexAttribI3i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint))IntGetProcAddress("glVertexAttribI3i");
+	if(!_ptrc_glVertexAttribI3i) numFailed++;
+	_ptrc_glVertexAttribI3iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI3iv");
+	if(!_ptrc_glVertexAttribI3iv) numFailed++;
+	_ptrc_glVertexAttribI3ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glVertexAttribI3ui");
+	if(!_ptrc_glVertexAttribI3ui) numFailed++;
+	_ptrc_glVertexAttribI3uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI3uiv");
+	if(!_ptrc_glVertexAttribI3uiv) numFailed++;
+	_ptrc_glVertexAttribI4bv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLbyte *))IntGetProcAddress("glVertexAttribI4bv");
+	if(!_ptrc_glVertexAttribI4bv) numFailed++;
+	_ptrc_glVertexAttribI4i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint))IntGetProcAddress("glVertexAttribI4i");
+	if(!_ptrc_glVertexAttribI4i) numFailed++;
+	_ptrc_glVertexAttribI4iv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glVertexAttribI4iv");
+	if(!_ptrc_glVertexAttribI4iv) numFailed++;
+	_ptrc_glVertexAttribI4sv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLshort *))IntGetProcAddress("glVertexAttribI4sv");
+	if(!_ptrc_glVertexAttribI4sv) numFailed++;
+	_ptrc_glVertexAttribI4ubv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLubyte *))IntGetProcAddress("glVertexAttribI4ubv");
+	if(!_ptrc_glVertexAttribI4ubv) numFailed++;
+	_ptrc_glVertexAttribI4ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glVertexAttribI4ui");
+	if(!_ptrc_glVertexAttribI4ui) numFailed++;
+	_ptrc_glVertexAttribI4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLuint *))IntGetProcAddress("glVertexAttribI4uiv");
+	if(!_ptrc_glVertexAttribI4uiv) numFailed++;
+	_ptrc_glVertexAttribI4usv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLushort *))IntGetProcAddress("glVertexAttribI4usv");
+	if(!_ptrc_glVertexAttribI4usv) numFailed++;
+	_ptrc_glVertexAttribIPointer = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glVertexAttribIPointer");
+	if(!_ptrc_glVertexAttribIPointer) numFailed++;
+	_ptrc_glCopyBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr))IntGetProcAddress("glCopyBufferSubData");
+	if(!_ptrc_glCopyBufferSubData) numFailed++;
+	_ptrc_glDrawArraysInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLsizei, GLsizei))IntGetProcAddress("glDrawArraysInstanced");
+	if(!_ptrc_glDrawArraysInstanced) numFailed++;
+	_ptrc_glDrawElementsInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei))IntGetProcAddress("glDrawElementsInstanced");
+	if(!_ptrc_glDrawElementsInstanced) numFailed++;
+	_ptrc_glGetActiveUniformBlockName = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveUniformBlockName");
+	if(!_ptrc_glGetActiveUniformBlockName) numFailed++;
+	_ptrc_glGetActiveUniformBlockiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLenum, GLint *))IntGetProcAddress("glGetActiveUniformBlockiv");
+	if(!_ptrc_glGetActiveUniformBlockiv) numFailed++;
+	_ptrc_glGetActiveUniformName = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveUniformName");
+	if(!_ptrc_glGetActiveUniformName) numFailed++;
+	_ptrc_glGetActiveUniformsiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *, GLenum, GLint *))IntGetProcAddress("glGetActiveUniformsiv");
+	if(!_ptrc_glGetActiveUniformsiv) numFailed++;
+	_ptrc_glGetUniformBlockIndex = (GLuint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetUniformBlockIndex");
+	if(!_ptrc_glGetUniformBlockIndex) numFailed++;
+	_ptrc_glGetUniformIndices = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLchar *const*, GLuint *))IntGetProcAddress("glGetUniformIndices");
+	if(!_ptrc_glGetUniformIndices) numFailed++;
+	_ptrc_glPrimitiveRestartIndex = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glPrimitiveRestartIndex");
+	if(!_ptrc_glPrimitiveRestartIndex) numFailed++;
+	_ptrc_glTexBuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glTexBuffer");
+	if(!_ptrc_glTexBuffer) numFailed++;
+	_ptrc_glUniformBlockBinding = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glUniformBlockBinding");
+	if(!_ptrc_glUniformBlockBinding) numFailed++;
+	_ptrc_glClientWaitSync = (GLenum (CODEGEN_FUNCPTR *)(GLsync, GLbitfield, GLuint64))IntGetProcAddress("glClientWaitSync");
+	if(!_ptrc_glClientWaitSync) numFailed++;
+	_ptrc_glDeleteSync = (void (CODEGEN_FUNCPTR *)(GLsync))IntGetProcAddress("glDeleteSync");
+	if(!_ptrc_glDeleteSync) numFailed++;
+	_ptrc_glDrawElementsBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *, GLint))IntGetProcAddress("glDrawElementsBaseVertex");
+	if(!_ptrc_glDrawElementsBaseVertex) numFailed++;
+	_ptrc_glDrawElementsInstancedBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint))IntGetProcAddress("glDrawElementsInstancedBaseVertex");
+	if(!_ptrc_glDrawElementsInstancedBaseVertex) numFailed++;
+	_ptrc_glDrawRangeElementsBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint))IntGetProcAddress("glDrawRangeElementsBaseVertex");
+	if(!_ptrc_glDrawRangeElementsBaseVertex) numFailed++;
+	_ptrc_glFenceSync = (GLsync (CODEGEN_FUNCPTR *)(GLenum, GLbitfield))IntGetProcAddress("glFenceSync");
+	if(!_ptrc_glFenceSync) numFailed++;
+	_ptrc_glFramebufferTexture = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLint))IntGetProcAddress("glFramebufferTexture");
+	if(!_ptrc_glFramebufferTexture) numFailed++;
+	_ptrc_glGetBufferParameteri64v = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint64 *))IntGetProcAddress("glGetBufferParameteri64v");
+	if(!_ptrc_glGetBufferParameteri64v) numFailed++;
+	_ptrc_glGetInteger64i_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLint64 *))IntGetProcAddress("glGetInteger64i_v");
+	if(!_ptrc_glGetInteger64i_v) numFailed++;
+	_ptrc_glGetInteger64v = (void (CODEGEN_FUNCPTR *)(GLenum, GLint64 *))IntGetProcAddress("glGetInteger64v");
+	if(!_ptrc_glGetInteger64v) numFailed++;
+	_ptrc_glGetMultisamplefv = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLfloat *))IntGetProcAddress("glGetMultisamplefv");
+	if(!_ptrc_glGetMultisamplefv) numFailed++;
+	_ptrc_glGetSynciv = (void (CODEGEN_FUNCPTR *)(GLsync, GLenum, GLsizei, GLsizei *, GLint *))IntGetProcAddress("glGetSynciv");
+	if(!_ptrc_glGetSynciv) numFailed++;
+	_ptrc_glIsSync = (GLboolean (CODEGEN_FUNCPTR *)(GLsync))IntGetProcAddress("glIsSync");
+	if(!_ptrc_glIsSync) numFailed++;
+	_ptrc_glMultiDrawElementsBaseVertex = (void (CODEGEN_FUNCPTR *)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei, const GLint *))IntGetProcAddress("glMultiDrawElementsBaseVertex");
+	if(!_ptrc_glMultiDrawElementsBaseVertex) numFailed++;
+	_ptrc_glProvokingVertex = (void (CODEGEN_FUNCPTR *)(GLenum))IntGetProcAddress("glProvokingVertex");
+	if(!_ptrc_glProvokingVertex) numFailed++;
+	_ptrc_glSampleMaski = (void (CODEGEN_FUNCPTR *)(GLuint, GLbitfield))IntGetProcAddress("glSampleMaski");
+	if(!_ptrc_glSampleMaski) numFailed++;
+	_ptrc_glTexImage2DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexImage2DMultisample");
+	if(!_ptrc_glTexImage2DMultisample) numFailed++;
+	_ptrc_glTexImage3DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexImage3DMultisample");
+	if(!_ptrc_glTexImage3DMultisample) numFailed++;
+	_ptrc_glWaitSync = (void (CODEGEN_FUNCPTR *)(GLsync, GLbitfield, GLuint64))IntGetProcAddress("glWaitSync");
+	if(!_ptrc_glWaitSync) numFailed++;
+	_ptrc_glBindFragDataLocationIndexed = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint, const GLchar *))IntGetProcAddress("glBindFragDataLocationIndexed");
+	if(!_ptrc_glBindFragDataLocationIndexed) numFailed++;
+	_ptrc_glBindSampler = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glBindSampler");
+	if(!_ptrc_glBindSampler) numFailed++;
+	_ptrc_glColorP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glColorP3ui");
+	if(!_ptrc_glColorP3ui) numFailed++;
+	_ptrc_glColorP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glColorP3uiv");
+	if(!_ptrc_glColorP3uiv) numFailed++;
+	_ptrc_glColorP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glColorP4ui");
+	if(!_ptrc_glColorP4ui) numFailed++;
+	_ptrc_glColorP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glColorP4uiv");
+	if(!_ptrc_glColorP4uiv) numFailed++;
+	_ptrc_glDeleteSamplers = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteSamplers");
+	if(!_ptrc_glDeleteSamplers) numFailed++;
+	_ptrc_glGenSamplers = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenSamplers");
+	if(!_ptrc_glGenSamplers) numFailed++;
+	_ptrc_glGetFragDataIndex = (GLint (CODEGEN_FUNCPTR *)(GLuint, const GLchar *))IntGetProcAddress("glGetFragDataIndex");
+	if(!_ptrc_glGetFragDataIndex) numFailed++;
+	_ptrc_glGetQueryObjecti64v = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint64 *))IntGetProcAddress("glGetQueryObjecti64v");
+	if(!_ptrc_glGetQueryObjecti64v) numFailed++;
+	_ptrc_glGetQueryObjectui64v = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint64 *))IntGetProcAddress("glGetQueryObjectui64v");
+	if(!_ptrc_glGetQueryObjectui64v) numFailed++;
+	_ptrc_glGetSamplerParameterIiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetSamplerParameterIiv");
+	if(!_ptrc_glGetSamplerParameterIiv) numFailed++;
+	_ptrc_glGetSamplerParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint *))IntGetProcAddress("glGetSamplerParameterIuiv");
+	if(!_ptrc_glGetSamplerParameterIuiv) numFailed++;
+	_ptrc_glGetSamplerParameterfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLfloat *))IntGetProcAddress("glGetSamplerParameterfv");
+	if(!_ptrc_glGetSamplerParameterfv) numFailed++;
+	_ptrc_glGetSamplerParameteriv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetSamplerParameteriv");
+	if(!_ptrc_glGetSamplerParameteriv) numFailed++;
+	_ptrc_glIsSampler = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsSampler");
+	if(!_ptrc_glIsSampler) numFailed++;
+	_ptrc_glMultiTexCoordP1ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP1ui");
+	if(!_ptrc_glMultiTexCoordP1ui) numFailed++;
+	_ptrc_glMultiTexCoordP1uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP1uiv");
+	if(!_ptrc_glMultiTexCoordP1uiv) numFailed++;
+	_ptrc_glMultiTexCoordP2ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP2ui");
+	if(!_ptrc_glMultiTexCoordP2ui) numFailed++;
+	_ptrc_glMultiTexCoordP2uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP2uiv");
+	if(!_ptrc_glMultiTexCoordP2uiv) numFailed++;
+	_ptrc_glMultiTexCoordP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP3ui");
+	if(!_ptrc_glMultiTexCoordP3ui) numFailed++;
+	_ptrc_glMultiTexCoordP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP3uiv");
+	if(!_ptrc_glMultiTexCoordP3uiv) numFailed++;
+	_ptrc_glMultiTexCoordP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint))IntGetProcAddress("glMultiTexCoordP4ui");
+	if(!_ptrc_glMultiTexCoordP4ui) numFailed++;
+	_ptrc_glMultiTexCoordP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLuint *))IntGetProcAddress("glMultiTexCoordP4uiv");
+	if(!_ptrc_glMultiTexCoordP4uiv) numFailed++;
+	_ptrc_glNormalP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glNormalP3ui");
+	if(!_ptrc_glNormalP3ui) numFailed++;
+	_ptrc_glNormalP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glNormalP3uiv");
+	if(!_ptrc_glNormalP3uiv) numFailed++;
+	_ptrc_glQueryCounter = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum))IntGetProcAddress("glQueryCounter");
+	if(!_ptrc_glQueryCounter) numFailed++;
+	_ptrc_glSamplerParameterIiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLint *))IntGetProcAddress("glSamplerParameterIiv");
+	if(!_ptrc_glSamplerParameterIiv) numFailed++;
+	_ptrc_glSamplerParameterIuiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLuint *))IntGetProcAddress("glSamplerParameterIuiv");
+	if(!_ptrc_glSamplerParameterIuiv) numFailed++;
+	_ptrc_glSamplerParameterf = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLfloat))IntGetProcAddress("glSamplerParameterf");
+	if(!_ptrc_glSamplerParameterf) numFailed++;
+	_ptrc_glSamplerParameterfv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLfloat *))IntGetProcAddress("glSamplerParameterfv");
+	if(!_ptrc_glSamplerParameterfv) numFailed++;
+	_ptrc_glSamplerParameteri = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint))IntGetProcAddress("glSamplerParameteri");
+	if(!_ptrc_glSamplerParameteri) numFailed++;
+	_ptrc_glSamplerParameteriv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLint *))IntGetProcAddress("glSamplerParameteriv");
+	if(!_ptrc_glSamplerParameteriv) numFailed++;
+	_ptrc_glSecondaryColorP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glSecondaryColorP3ui");
+	if(!_ptrc_glSecondaryColorP3ui) numFailed++;
+	_ptrc_glSecondaryColorP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glSecondaryColorP3uiv");
+	if(!_ptrc_glSecondaryColorP3uiv) numFailed++;
+	_ptrc_glTexCoordP1ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP1ui");
+	if(!_ptrc_glTexCoordP1ui) numFailed++;
+	_ptrc_glTexCoordP1uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP1uiv");
+	if(!_ptrc_glTexCoordP1uiv) numFailed++;
+	_ptrc_glTexCoordP2ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP2ui");
+	if(!_ptrc_glTexCoordP2ui) numFailed++;
+	_ptrc_glTexCoordP2uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP2uiv");
+	if(!_ptrc_glTexCoordP2uiv) numFailed++;
+	_ptrc_glTexCoordP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP3ui");
+	if(!_ptrc_glTexCoordP3ui) numFailed++;
+	_ptrc_glTexCoordP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP3uiv");
+	if(!_ptrc_glTexCoordP3uiv) numFailed++;
+	_ptrc_glTexCoordP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glTexCoordP4ui");
+	if(!_ptrc_glTexCoordP4ui) numFailed++;
+	_ptrc_glTexCoordP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glTexCoordP4uiv");
+	if(!_ptrc_glTexCoordP4uiv) numFailed++;
+	_ptrc_glVertexAttribDivisor = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexAttribDivisor");
+	if(!_ptrc_glVertexAttribDivisor) numFailed++;
+	_ptrc_glVertexAttribP1ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP1ui");
+	if(!_ptrc_glVertexAttribP1ui) numFailed++;
+	_ptrc_glVertexAttribP1uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP1uiv");
+	if(!_ptrc_glVertexAttribP1uiv) numFailed++;
+	_ptrc_glVertexAttribP2ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP2ui");
+	if(!_ptrc_glVertexAttribP2ui) numFailed++;
+	_ptrc_glVertexAttribP2uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP2uiv");
+	if(!_ptrc_glVertexAttribP2uiv) numFailed++;
+	_ptrc_glVertexAttribP3ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP3ui");
+	if(!_ptrc_glVertexAttribP3ui) numFailed++;
+	_ptrc_glVertexAttribP3uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP3uiv");
+	if(!_ptrc_glVertexAttribP3uiv) numFailed++;
+	_ptrc_glVertexAttribP4ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribP4ui");
+	if(!_ptrc_glVertexAttribP4ui) numFailed++;
+	_ptrc_glVertexAttribP4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLboolean, const GLuint *))IntGetProcAddress("glVertexAttribP4uiv");
+	if(!_ptrc_glVertexAttribP4uiv) numFailed++;
+	_ptrc_glVertexP2ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glVertexP2ui");
+	if(!_ptrc_glVertexP2ui) numFailed++;
+	_ptrc_glVertexP2uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glVertexP2uiv");
+	if(!_ptrc_glVertexP2uiv) numFailed++;
+	_ptrc_glVertexP3ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glVertexP3ui");
+	if(!_ptrc_glVertexP3ui) numFailed++;
+	_ptrc_glVertexP3uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glVertexP3uiv");
+	if(!_ptrc_glVertexP3uiv) numFailed++;
+	_ptrc_glVertexP4ui = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glVertexP4ui");
+	if(!_ptrc_glVertexP4ui) numFailed++;
+	_ptrc_glVertexP4uiv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLuint *))IntGetProcAddress("glVertexP4uiv");
+	if(!_ptrc_glVertexP4uiv) numFailed++;
+	_ptrc_glBeginQueryIndexed = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint))IntGetProcAddress("glBeginQueryIndexed");
+	if(!_ptrc_glBeginQueryIndexed) numFailed++;
+	_ptrc_glBindTransformFeedback = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glBindTransformFeedback");
+	if(!_ptrc_glBindTransformFeedback) numFailed++;
+	_ptrc_glBlendEquationSeparatei = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum))IntGetProcAddress("glBlendEquationSeparatei");
+	if(!_ptrc_glBlendEquationSeparatei) numFailed++;
+	_ptrc_glBlendEquationi = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum))IntGetProcAddress("glBlendEquationi");
+	if(!_ptrc_glBlendEquationi) numFailed++;
+	_ptrc_glBlendFuncSeparatei = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum, GLenum, GLenum))IntGetProcAddress("glBlendFuncSeparatei");
+	if(!_ptrc_glBlendFuncSeparatei) numFailed++;
+	_ptrc_glBlendFunci = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum))IntGetProcAddress("glBlendFunci");
+	if(!_ptrc_glBlendFunci) numFailed++;
+	_ptrc_glDeleteTransformFeedbacks = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteTransformFeedbacks");
+	if(!_ptrc_glDeleteTransformFeedbacks) numFailed++;
+	_ptrc_glDrawArraysIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, const GLvoid *))IntGetProcAddress("glDrawArraysIndirect");
+	if(!_ptrc_glDrawArraysIndirect) numFailed++;
+	_ptrc_glDrawElementsIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const GLvoid *))IntGetProcAddress("glDrawElementsIndirect");
+	if(!_ptrc_glDrawElementsIndirect) numFailed++;
+	_ptrc_glDrawTransformFeedback = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glDrawTransformFeedback");
+	if(!_ptrc_glDrawTransformFeedback) numFailed++;
+	_ptrc_glDrawTransformFeedbackStream = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint))IntGetProcAddress("glDrawTransformFeedbackStream");
+	if(!_ptrc_glDrawTransformFeedbackStream) numFailed++;
+	_ptrc_glEndQueryIndexed = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glEndQueryIndexed");
+	if(!_ptrc_glEndQueryIndexed) numFailed++;
+	_ptrc_glGenTransformFeedbacks = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenTransformFeedbacks");
+	if(!_ptrc_glGenTransformFeedbacks) numFailed++;
+	_ptrc_glGetActiveSubroutineName = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveSubroutineName");
+	if(!_ptrc_glGetActiveSubroutineName) numFailed++;
+	_ptrc_glGetActiveSubroutineUniformName = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetActiveSubroutineUniformName");
+	if(!_ptrc_glGetActiveSubroutineUniformName) numFailed++;
+	_ptrc_glGetActiveSubroutineUniformiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLenum, GLint *))IntGetProcAddress("glGetActiveSubroutineUniformiv");
+	if(!_ptrc_glGetActiveSubroutineUniformiv) numFailed++;
+	_ptrc_glGetProgramStageiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum, GLint *))IntGetProcAddress("glGetProgramStageiv");
+	if(!_ptrc_glGetProgramStageiv) numFailed++;
+	_ptrc_glGetQueryIndexediv = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLenum, GLint *))IntGetProcAddress("glGetQueryIndexediv");
+	if(!_ptrc_glGetQueryIndexediv) numFailed++;
+	_ptrc_glGetSubroutineIndex = (GLuint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetSubroutineIndex");
+	if(!_ptrc_glGetSubroutineIndex) numFailed++;
+	_ptrc_glGetSubroutineUniformLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetSubroutineUniformLocation");
+	if(!_ptrc_glGetSubroutineUniformLocation) numFailed++;
+	_ptrc_glGetUniformSubroutineuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLuint *))IntGetProcAddress("glGetUniformSubroutineuiv");
+	if(!_ptrc_glGetUniformSubroutineuiv) numFailed++;
+	_ptrc_glGetUniformdv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble *))IntGetProcAddress("glGetUniformdv");
+	if(!_ptrc_glGetUniformdv) numFailed++;
+	_ptrc_glIsTransformFeedback = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsTransformFeedback");
+	if(!_ptrc_glIsTransformFeedback) numFailed++;
+	_ptrc_glMinSampleShading = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glMinSampleShading");
+	if(!_ptrc_glMinSampleShading) numFailed++;
+	_ptrc_glPatchParameterfv = (void (CODEGEN_FUNCPTR *)(GLenum, const GLfloat *))IntGetProcAddress("glPatchParameterfv");
+	if(!_ptrc_glPatchParameterfv) numFailed++;
+	_ptrc_glPatchParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLint))IntGetProcAddress("glPatchParameteri");
+	if(!_ptrc_glPatchParameteri) numFailed++;
+	_ptrc_glPauseTransformFeedback = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glPauseTransformFeedback");
+	if(!_ptrc_glPauseTransformFeedback) numFailed++;
+	_ptrc_glResumeTransformFeedback = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glResumeTransformFeedback");
+	if(!_ptrc_glResumeTransformFeedback) numFailed++;
+	_ptrc_glUniform1d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble))IntGetProcAddress("glUniform1d");
+	if(!_ptrc_glUniform1d) numFailed++;
+	_ptrc_glUniform1dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform1dv");
+	if(!_ptrc_glUniform1dv) numFailed++;
+	_ptrc_glUniform2d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble, GLdouble))IntGetProcAddress("glUniform2d");
+	if(!_ptrc_glUniform2d) numFailed++;
+	_ptrc_glUniform2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform2dv");
+	if(!_ptrc_glUniform2dv) numFailed++;
+	_ptrc_glUniform3d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glUniform3d");
+	if(!_ptrc_glUniform3d) numFailed++;
+	_ptrc_glUniform3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform3dv");
+	if(!_ptrc_glUniform3dv) numFailed++;
+	_ptrc_glUniform4d = (void (CODEGEN_FUNCPTR *)(GLint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glUniform4d");
+	if(!_ptrc_glUniform4d) numFailed++;
+	_ptrc_glUniform4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, const GLdouble *))IntGetProcAddress("glUniform4dv");
+	if(!_ptrc_glUniform4dv) numFailed++;
+	_ptrc_glUniformMatrix2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix2dv");
+	if(!_ptrc_glUniformMatrix2dv) numFailed++;
+	_ptrc_glUniformMatrix2x3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix2x3dv");
+	if(!_ptrc_glUniformMatrix2x3dv) numFailed++;
+	_ptrc_glUniformMatrix2x4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix2x4dv");
+	if(!_ptrc_glUniformMatrix2x4dv) numFailed++;
+	_ptrc_glUniformMatrix3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix3dv");
+	if(!_ptrc_glUniformMatrix3dv) numFailed++;
+	_ptrc_glUniformMatrix3x2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix3x2dv");
+	if(!_ptrc_glUniformMatrix3x2dv) numFailed++;
+	_ptrc_glUniformMatrix3x4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix3x4dv");
+	if(!_ptrc_glUniformMatrix3x4dv) numFailed++;
+	_ptrc_glUniformMatrix4dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix4dv");
+	if(!_ptrc_glUniformMatrix4dv) numFailed++;
+	_ptrc_glUniformMatrix4x2dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix4x2dv");
+	if(!_ptrc_glUniformMatrix4x2dv) numFailed++;
+	_ptrc_glUniformMatrix4x3dv = (void (CODEGEN_FUNCPTR *)(GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glUniformMatrix4x3dv");
+	if(!_ptrc_glUniformMatrix4x3dv) numFailed++;
+	_ptrc_glUniformSubroutinesuiv = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLuint *))IntGetProcAddress("glUniformSubroutinesuiv");
+	if(!_ptrc_glUniformSubroutinesuiv) numFailed++;
+	_ptrc_glActiveShaderProgram = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glActiveShaderProgram");
+	if(!_ptrc_glActiveShaderProgram) numFailed++;
+	_ptrc_glBindProgramPipeline = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glBindProgramPipeline");
+	if(!_ptrc_glBindProgramPipeline) numFailed++;
+	_ptrc_glClearDepthf = (void (CODEGEN_FUNCPTR *)(GLfloat))IntGetProcAddress("glClearDepthf");
+	if(!_ptrc_glClearDepthf) numFailed++;
+	_ptrc_glCreateShaderProgramv = (GLuint (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLchar *const*))IntGetProcAddress("glCreateShaderProgramv");
+	if(!_ptrc_glCreateShaderProgramv) numFailed++;
+	_ptrc_glDeleteProgramPipelines = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *))IntGetProcAddress("glDeleteProgramPipelines");
+	if(!_ptrc_glDeleteProgramPipelines) numFailed++;
+	_ptrc_glDepthRangeArrayv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLdouble *))IntGetProcAddress("glDepthRangeArrayv");
+	if(!_ptrc_glDepthRangeArrayv) numFailed++;
+	_ptrc_glDepthRangeIndexed = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble))IntGetProcAddress("glDepthRangeIndexed");
+	if(!_ptrc_glDepthRangeIndexed) numFailed++;
+	_ptrc_glDepthRangef = (void (CODEGEN_FUNCPTR *)(GLfloat, GLfloat))IntGetProcAddress("glDepthRangef");
+	if(!_ptrc_glDepthRangef) numFailed++;
+	_ptrc_glGenProgramPipelines = (void (CODEGEN_FUNCPTR *)(GLsizei, GLuint *))IntGetProcAddress("glGenProgramPipelines");
+	if(!_ptrc_glGenProgramPipelines) numFailed++;
+	_ptrc_glGetDoublei_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLdouble *))IntGetProcAddress("glGetDoublei_v");
+	if(!_ptrc_glGetDoublei_v) numFailed++;
+	_ptrc_glGetFloati_v = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLfloat *))IntGetProcAddress("glGetFloati_v");
+	if(!_ptrc_glGetFloati_v) numFailed++;
+	_ptrc_glGetProgramBinary = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *))IntGetProcAddress("glGetProgramBinary");
+	if(!_ptrc_glGetProgramBinary) numFailed++;
+	_ptrc_glGetProgramPipelineInfoLog = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetProgramPipelineInfoLog");
+	if(!_ptrc_glGetProgramPipelineInfoLog) numFailed++;
+	_ptrc_glGetProgramPipelineiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint *))IntGetProcAddress("glGetProgramPipelineiv");
+	if(!_ptrc_glGetProgramPipelineiv) numFailed++;
+	_ptrc_glGetShaderPrecisionFormat = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *, GLint *))IntGetProcAddress("glGetShaderPrecisionFormat");
+	if(!_ptrc_glGetShaderPrecisionFormat) numFailed++;
+	_ptrc_glGetVertexAttribLdv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLdouble *))IntGetProcAddress("glGetVertexAttribLdv");
+	if(!_ptrc_glGetVertexAttribLdv) numFailed++;
+	_ptrc_glIsProgramPipeline = (GLboolean (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glIsProgramPipeline");
+	if(!_ptrc_glIsProgramPipeline) numFailed++;
+	_ptrc_glProgramBinary = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLvoid *, GLsizei))IntGetProcAddress("glProgramBinary");
+	if(!_ptrc_glProgramBinary) numFailed++;
+	_ptrc_glProgramParameteri = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint))IntGetProcAddress("glProgramParameteri");
+	if(!_ptrc_glProgramParameteri) numFailed++;
+	_ptrc_glProgramUniform1d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble))IntGetProcAddress("glProgramUniform1d");
+	if(!_ptrc_glProgramUniform1d) numFailed++;
+	_ptrc_glProgramUniform1dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform1dv");
+	if(!_ptrc_glProgramUniform1dv) numFailed++;
+	_ptrc_glProgramUniform1f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat))IntGetProcAddress("glProgramUniform1f");
+	if(!_ptrc_glProgramUniform1f) numFailed++;
+	_ptrc_glProgramUniform1fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform1fv");
+	if(!_ptrc_glProgramUniform1fv) numFailed++;
+	_ptrc_glProgramUniform1i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint))IntGetProcAddress("glProgramUniform1i");
+	if(!_ptrc_glProgramUniform1i) numFailed++;
+	_ptrc_glProgramUniform1iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform1iv");
+	if(!_ptrc_glProgramUniform1iv) numFailed++;
+	_ptrc_glProgramUniform1ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint))IntGetProcAddress("glProgramUniform1ui");
+	if(!_ptrc_glProgramUniform1ui) numFailed++;
+	_ptrc_glProgramUniform1uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform1uiv");
+	if(!_ptrc_glProgramUniform1uiv) numFailed++;
+	_ptrc_glProgramUniform2d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform2d");
+	if(!_ptrc_glProgramUniform2d) numFailed++;
+	_ptrc_glProgramUniform2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform2dv");
+	if(!_ptrc_glProgramUniform2dv) numFailed++;
+	_ptrc_glProgramUniform2f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform2f");
+	if(!_ptrc_glProgramUniform2f) numFailed++;
+	_ptrc_glProgramUniform2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform2fv");
+	if(!_ptrc_glProgramUniform2fv) numFailed++;
+	_ptrc_glProgramUniform2i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform2i");
+	if(!_ptrc_glProgramUniform2i) numFailed++;
+	_ptrc_glProgramUniform2iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform2iv");
+	if(!_ptrc_glProgramUniform2iv) numFailed++;
+	_ptrc_glProgramUniform2ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint))IntGetProcAddress("glProgramUniform2ui");
+	if(!_ptrc_glProgramUniform2ui) numFailed++;
+	_ptrc_glProgramUniform2uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform2uiv");
+	if(!_ptrc_glProgramUniform2uiv) numFailed++;
+	_ptrc_glProgramUniform3d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform3d");
+	if(!_ptrc_glProgramUniform3d) numFailed++;
+	_ptrc_glProgramUniform3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform3dv");
+	if(!_ptrc_glProgramUniform3dv) numFailed++;
+	_ptrc_glProgramUniform3f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform3f");
+	if(!_ptrc_glProgramUniform3f) numFailed++;
+	_ptrc_glProgramUniform3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform3fv");
+	if(!_ptrc_glProgramUniform3fv) numFailed++;
+	_ptrc_glProgramUniform3i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform3i");
+	if(!_ptrc_glProgramUniform3i) numFailed++;
+	_ptrc_glProgramUniform3iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform3iv");
+	if(!_ptrc_glProgramUniform3iv) numFailed++;
+	_ptrc_glProgramUniform3ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint, GLuint))IntGetProcAddress("glProgramUniform3ui");
+	if(!_ptrc_glProgramUniform3ui) numFailed++;
+	_ptrc_glProgramUniform3uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform3uiv");
+	if(!_ptrc_glProgramUniform3uiv) numFailed++;
+	_ptrc_glProgramUniform4d = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glProgramUniform4d");
+	if(!_ptrc_glProgramUniform4d) numFailed++;
+	_ptrc_glProgramUniform4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLdouble *))IntGetProcAddress("glProgramUniform4dv");
+	if(!_ptrc_glProgramUniform4dv) numFailed++;
+	_ptrc_glProgramUniform4f = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glProgramUniform4f");
+	if(!_ptrc_glProgramUniform4f) numFailed++;
+	_ptrc_glProgramUniform4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLfloat *))IntGetProcAddress("glProgramUniform4fv");
+	if(!_ptrc_glProgramUniform4fv) numFailed++;
+	_ptrc_glProgramUniform4i = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint, GLint))IntGetProcAddress("glProgramUniform4i");
+	if(!_ptrc_glProgramUniform4i) numFailed++;
+	_ptrc_glProgramUniform4iv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLint *))IntGetProcAddress("glProgramUniform4iv");
+	if(!_ptrc_glProgramUniform4iv) numFailed++;
+	_ptrc_glProgramUniform4ui = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glProgramUniform4ui");
+	if(!_ptrc_glProgramUniform4ui) numFailed++;
+	_ptrc_glProgramUniform4uiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, const GLuint *))IntGetProcAddress("glProgramUniform4uiv");
+	if(!_ptrc_glProgramUniform4uiv) numFailed++;
+	_ptrc_glProgramUniformMatrix2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2dv");
+	if(!_ptrc_glProgramUniformMatrix2dv) numFailed++;
+	_ptrc_glProgramUniformMatrix2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2fv");
+	if(!_ptrc_glProgramUniformMatrix2fv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2x3dv");
+	if(!_ptrc_glProgramUniformMatrix2x3dv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2x3fv");
+	if(!_ptrc_glProgramUniformMatrix2x3fv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix2x4dv");
+	if(!_ptrc_glProgramUniformMatrix2x4dv) numFailed++;
+	_ptrc_glProgramUniformMatrix2x4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix2x4fv");
+	if(!_ptrc_glProgramUniformMatrix2x4fv) numFailed++;
+	_ptrc_glProgramUniformMatrix3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3dv");
+	if(!_ptrc_glProgramUniformMatrix3dv) numFailed++;
+	_ptrc_glProgramUniformMatrix3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3fv");
+	if(!_ptrc_glProgramUniformMatrix3fv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3x2dv");
+	if(!_ptrc_glProgramUniformMatrix3x2dv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3x2fv");
+	if(!_ptrc_glProgramUniformMatrix3x2fv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix3x4dv");
+	if(!_ptrc_glProgramUniformMatrix3x4dv) numFailed++;
+	_ptrc_glProgramUniformMatrix3x4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix3x4fv");
+	if(!_ptrc_glProgramUniformMatrix3x4fv) numFailed++;
+	_ptrc_glProgramUniformMatrix4dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4dv");
+	if(!_ptrc_glProgramUniformMatrix4dv) numFailed++;
+	_ptrc_glProgramUniformMatrix4fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4fv");
+	if(!_ptrc_glProgramUniformMatrix4fv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x2dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4x2dv");
+	if(!_ptrc_glProgramUniformMatrix4x2dv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x2fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4x2fv");
+	if(!_ptrc_glProgramUniformMatrix4x2fv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x3dv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *))IntGetProcAddress("glProgramUniformMatrix4x3dv");
+	if(!_ptrc_glProgramUniformMatrix4x3dv) numFailed++;
+	_ptrc_glProgramUniformMatrix4x3fv = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *))IntGetProcAddress("glProgramUniformMatrix4x3fv");
+	if(!_ptrc_glProgramUniformMatrix4x3fv) numFailed++;
+	_ptrc_glReleaseShaderCompiler = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glReleaseShaderCompiler");
+	if(!_ptrc_glReleaseShaderCompiler) numFailed++;
+	_ptrc_glScissorArrayv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLint *))IntGetProcAddress("glScissorArrayv");
+	if(!_ptrc_glScissorArrayv) numFailed++;
+	_ptrc_glScissorIndexed = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glScissorIndexed");
+	if(!_ptrc_glScissorIndexed) numFailed++;
+	_ptrc_glScissorIndexedv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLint *))IntGetProcAddress("glScissorIndexedv");
+	if(!_ptrc_glScissorIndexedv) numFailed++;
+	_ptrc_glShaderBinary = (void (CODEGEN_FUNCPTR *)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei))IntGetProcAddress("glShaderBinary");
+	if(!_ptrc_glShaderBinary) numFailed++;
+	_ptrc_glUseProgramStages = (void (CODEGEN_FUNCPTR *)(GLuint, GLbitfield, GLuint))IntGetProcAddress("glUseProgramStages");
+	if(!_ptrc_glUseProgramStages) numFailed++;
+	_ptrc_glValidateProgramPipeline = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glValidateProgramPipeline");
+	if(!_ptrc_glValidateProgramPipeline) numFailed++;
+	_ptrc_glVertexAttribL1d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble))IntGetProcAddress("glVertexAttribL1d");
+	if(!_ptrc_glVertexAttribL1d) numFailed++;
+	_ptrc_glVertexAttribL1dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL1dv");
+	if(!_ptrc_glVertexAttribL1dv) numFailed++;
+	_ptrc_glVertexAttribL2d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble))IntGetProcAddress("glVertexAttribL2d");
+	if(!_ptrc_glVertexAttribL2d) numFailed++;
+	_ptrc_glVertexAttribL2dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL2dv");
+	if(!_ptrc_glVertexAttribL2dv) numFailed++;
+	_ptrc_glVertexAttribL3d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttribL3d");
+	if(!_ptrc_glVertexAttribL3d) numFailed++;
+	_ptrc_glVertexAttribL3dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL3dv");
+	if(!_ptrc_glVertexAttribL3dv) numFailed++;
+	_ptrc_glVertexAttribL4d = (void (CODEGEN_FUNCPTR *)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble))IntGetProcAddress("glVertexAttribL4d");
+	if(!_ptrc_glVertexAttribL4d) numFailed++;
+	_ptrc_glVertexAttribL4dv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLdouble *))IntGetProcAddress("glVertexAttribL4dv");
+	if(!_ptrc_glVertexAttribL4dv) numFailed++;
+	_ptrc_glVertexAttribLPointer = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLsizei, const GLvoid *))IntGetProcAddress("glVertexAttribLPointer");
+	if(!_ptrc_glVertexAttribLPointer) numFailed++;
+	_ptrc_glViewportArrayv = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLfloat *))IntGetProcAddress("glViewportArrayv");
+	if(!_ptrc_glViewportArrayv) numFailed++;
+	_ptrc_glViewportIndexedf = (void (CODEGEN_FUNCPTR *)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat))IntGetProcAddress("glViewportIndexedf");
+	if(!_ptrc_glViewportIndexedf) numFailed++;
+	_ptrc_glViewportIndexedfv = (void (CODEGEN_FUNCPTR *)(GLuint, const GLfloat *))IntGetProcAddress("glViewportIndexedfv");
+	if(!_ptrc_glViewportIndexedfv) numFailed++;
+	_ptrc_glBindImageTexture = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum))IntGetProcAddress("glBindImageTexture");
+	if(!_ptrc_glBindImageTexture) numFailed++;
+	_ptrc_glDrawArraysInstancedBaseInstance = (void (CODEGEN_FUNCPTR *)(GLenum, GLint, GLsizei, GLsizei, GLuint))IntGetProcAddress("glDrawArraysInstancedBaseInstance");
+	if(!_ptrc_glDrawArraysInstancedBaseInstance) numFailed++;
+	_ptrc_glDrawElementsInstancedBaseInstance = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLuint))IntGetProcAddress("glDrawElementsInstancedBaseInstance");
+	if(!_ptrc_glDrawElementsInstancedBaseInstance) numFailed++;
+	_ptrc_glDrawElementsInstancedBaseVertexBaseInstance = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint, GLuint))IntGetProcAddress("glDrawElementsInstancedBaseVertexBaseInstance");
+	if(!_ptrc_glDrawElementsInstancedBaseVertexBaseInstance) numFailed++;
+	_ptrc_glDrawTransformFeedbackInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei))IntGetProcAddress("glDrawTransformFeedbackInstanced");
+	if(!_ptrc_glDrawTransformFeedbackInstanced) numFailed++;
+	_ptrc_glDrawTransformFeedbackStreamInstanced = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLuint, GLsizei))IntGetProcAddress("glDrawTransformFeedbackStreamInstanced");
+	if(!_ptrc_glDrawTransformFeedbackStreamInstanced) numFailed++;
+	_ptrc_glGetActiveAtomicCounterBufferiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLenum, GLint *))IntGetProcAddress("glGetActiveAtomicCounterBufferiv");
+	if(!_ptrc_glGetActiveAtomicCounterBufferiv) numFailed++;
+	_ptrc_glGetInternalformati64v = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLsizei, GLint64 *))IntGetProcAddress("glGetInternalformati64v");
+	if(!_ptrc_glGetInternalformati64v) numFailed++;
+	_ptrc_glMemoryBarrier = (void (CODEGEN_FUNCPTR *)(GLbitfield))IntGetProcAddress("glMemoryBarrier");
+	if(!_ptrc_glMemoryBarrier) numFailed++;
+	_ptrc_glTexStorage1D = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei))IntGetProcAddress("glTexStorage1D");
+	if(!_ptrc_glTexStorage1D) numFailed++;
+	_ptrc_glTexStorage2D = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei))IntGetProcAddress("glTexStorage2D");
+	if(!_ptrc_glTexStorage2D) numFailed++;
+	_ptrc_glTexStorage3D = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glTexStorage3D");
+	if(!_ptrc_glTexStorage3D) numFailed++;
+	_ptrc_glBindVertexBuffer = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLintptr, GLsizei))IntGetProcAddress("glBindVertexBuffer");
+	if(!_ptrc_glBindVertexBuffer) numFailed++;
+	_ptrc_glClearBufferData = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLenum, const void *))IntGetProcAddress("glClearBufferData");
+	if(!_ptrc_glClearBufferData) numFailed++;
+	_ptrc_glClearBufferSubData = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLintptr, GLsizeiptr, GLenum, GLenum, const void *))IntGetProcAddress("glClearBufferSubData");
+	if(!_ptrc_glClearBufferSubData) numFailed++;
+	_ptrc_glCopyImageSubData = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glCopyImageSubData");
+	if(!_ptrc_glCopyImageSubData) numFailed++;
+	_ptrc_glDebugMessageCallback = (void (CODEGEN_FUNCPTR *)(GLDEBUGPROC, const void *))IntGetProcAddress("glDebugMessageCallback");
+	if(!_ptrc_glDebugMessageCallback) numFailed++;
+	_ptrc_glDebugMessageControl = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean))IntGetProcAddress("glDebugMessageControl");
+	if(!_ptrc_glDebugMessageControl) numFailed++;
+	_ptrc_glDebugMessageInsert = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *))IntGetProcAddress("glDebugMessageInsert");
+	if(!_ptrc_glDebugMessageInsert) numFailed++;
+	_ptrc_glDispatchCompute = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glDispatchCompute");
+	if(!_ptrc_glDispatchCompute) numFailed++;
+	_ptrc_glDispatchComputeIndirect = (void (CODEGEN_FUNCPTR *)(GLintptr))IntGetProcAddress("glDispatchComputeIndirect");
+	if(!_ptrc_glDispatchComputeIndirect) numFailed++;
+	_ptrc_glFramebufferParameteri = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint))IntGetProcAddress("glFramebufferParameteri");
+	if(!_ptrc_glFramebufferParameteri) numFailed++;
+	_ptrc_glGetDebugMessageLog = (GLuint (CODEGEN_FUNCPTR *)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *))IntGetProcAddress("glGetDebugMessageLog");
+	if(!_ptrc_glGetDebugMessageLog) numFailed++;
+	_ptrc_glGetFramebufferParameteriv = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLint *))IntGetProcAddress("glGetFramebufferParameteriv");
+	if(!_ptrc_glGetFramebufferParameteriv) numFailed++;
+	_ptrc_glGetObjectLabel = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetObjectLabel");
+	if(!_ptrc_glGetObjectLabel) numFailed++;
+	_ptrc_glGetObjectPtrLabel = (void (CODEGEN_FUNCPTR *)(const void *, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetObjectPtrLabel");
+	if(!_ptrc_glGetObjectPtrLabel) numFailed++;
+	_ptrc_glGetProgramInterfaceiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLenum, GLint *))IntGetProcAddress("glGetProgramInterfaceiv");
+	if(!_ptrc_glGetProgramInterfaceiv) numFailed++;
+	_ptrc_glGetProgramResourceIndex = (GLuint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetProgramResourceIndex");
+	if(!_ptrc_glGetProgramResourceIndex) numFailed++;
+	_ptrc_glGetProgramResourceLocation = (GLint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetProgramResourceLocation");
+	if(!_ptrc_glGetProgramResourceLocation) numFailed++;
+	_ptrc_glGetProgramResourceLocationIndex = (GLint (CODEGEN_FUNCPTR *)(GLuint, GLenum, const GLchar *))IntGetProcAddress("glGetProgramResourceLocationIndex");
+	if(!_ptrc_glGetProgramResourceLocationIndex) numFailed++;
+	_ptrc_glGetProgramResourceName = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *))IntGetProcAddress("glGetProgramResourceName");
+	if(!_ptrc_glGetProgramResourceName) numFailed++;
+	_ptrc_glGetProgramResourceiv = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLsizei, const GLenum *, GLsizei, GLsizei *, GLint *))IntGetProcAddress("glGetProgramResourceiv");
+	if(!_ptrc_glGetProgramResourceiv) numFailed++;
+	_ptrc_glInvalidateBufferData = (void (CODEGEN_FUNCPTR *)(GLuint))IntGetProcAddress("glInvalidateBufferData");
+	if(!_ptrc_glInvalidateBufferData) numFailed++;
+	_ptrc_glInvalidateBufferSubData = (void (CODEGEN_FUNCPTR *)(GLuint, GLintptr, GLsizeiptr))IntGetProcAddress("glInvalidateBufferSubData");
+	if(!_ptrc_glInvalidateBufferSubData) numFailed++;
+	_ptrc_glInvalidateFramebuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLenum *))IntGetProcAddress("glInvalidateFramebuffer");
+	if(!_ptrc_glInvalidateFramebuffer) numFailed++;
+	_ptrc_glInvalidateSubFramebuffer = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei))IntGetProcAddress("glInvalidateSubFramebuffer");
+	if(!_ptrc_glInvalidateSubFramebuffer) numFailed++;
+	_ptrc_glInvalidateTexImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint))IntGetProcAddress("glInvalidateTexImage");
+	if(!_ptrc_glInvalidateTexImage) numFailed++;
+	_ptrc_glInvalidateTexSubImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei))IntGetProcAddress("glInvalidateTexSubImage");
+	if(!_ptrc_glInvalidateTexSubImage) numFailed++;
+	_ptrc_glMultiDrawArraysIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, const void *, GLsizei, GLsizei))IntGetProcAddress("glMultiDrawArraysIndirect");
+	if(!_ptrc_glMultiDrawArraysIndirect) numFailed++;
+	_ptrc_glMultiDrawElementsIndirect = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, const void *, GLsizei, GLsizei))IntGetProcAddress("glMultiDrawElementsIndirect");
+	if(!_ptrc_glMultiDrawElementsIndirect) numFailed++;
+	_ptrc_glObjectLabel = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLchar *))IntGetProcAddress("glObjectLabel");
+	if(!_ptrc_glObjectLabel) numFailed++;
+	_ptrc_glObjectPtrLabel = (void (CODEGEN_FUNCPTR *)(const void *, GLsizei, const GLchar *))IntGetProcAddress("glObjectPtrLabel");
+	if(!_ptrc_glObjectPtrLabel) numFailed++;
+	_ptrc_glPopDebugGroup = (void (CODEGEN_FUNCPTR *)())IntGetProcAddress("glPopDebugGroup");
+	if(!_ptrc_glPopDebugGroup) numFailed++;
+	_ptrc_glPushDebugGroup = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLchar *))IntGetProcAddress("glPushDebugGroup");
+	if(!_ptrc_glPushDebugGroup) numFailed++;
+	_ptrc_glShaderStorageBlockBinding = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint, GLuint))IntGetProcAddress("glShaderStorageBlockBinding");
+	if(!_ptrc_glShaderStorageBlockBinding) numFailed++;
+	_ptrc_glTexBufferRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr))IntGetProcAddress("glTexBufferRange");
+	if(!_ptrc_glTexBufferRange) numFailed++;
+	_ptrc_glTexStorage2DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexStorage2DMultisample");
+	if(!_ptrc_glTexStorage2DMultisample) numFailed++;
+	_ptrc_glTexStorage3DMultisample = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean))IntGetProcAddress("glTexStorage3DMultisample");
+	if(!_ptrc_glTexStorage3DMultisample) numFailed++;
+	_ptrc_glTextureView = (void (CODEGEN_FUNCPTR *)(GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint))IntGetProcAddress("glTextureView");
+	if(!_ptrc_glTextureView) numFailed++;
+	_ptrc_glVertexAttribBinding = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexAttribBinding");
+	if(!_ptrc_glVertexAttribBinding) numFailed++;
+	_ptrc_glVertexAttribFormat = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLboolean, GLuint))IntGetProcAddress("glVertexAttribFormat");
+	if(!_ptrc_glVertexAttribFormat) numFailed++;
+	_ptrc_glVertexAttribIFormat = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLuint))IntGetProcAddress("glVertexAttribIFormat");
+	if(!_ptrc_glVertexAttribIFormat) numFailed++;
+	_ptrc_glVertexAttribLFormat = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLuint))IntGetProcAddress("glVertexAttribLFormat");
+	if(!_ptrc_glVertexAttribLFormat) numFailed++;
+	_ptrc_glVertexBindingDivisor = (void (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("glVertexBindingDivisor");
+	if(!_ptrc_glVertexBindingDivisor) numFailed++;
+	_ptrc_glBindBuffersBase = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindBuffersBase");
+	if(!_ptrc_glBindBuffersBase) numFailed++;
+	_ptrc_glBindBuffersRange = (void (CODEGEN_FUNCPTR *)(GLenum, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizeiptr *))IntGetProcAddress("glBindBuffersRange");
+	if(!_ptrc_glBindBuffersRange) numFailed++;
+	_ptrc_glBindImageTextures = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindImageTextures");
+	if(!_ptrc_glBindImageTextures) numFailed++;
+	_ptrc_glBindSamplers = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindSamplers");
+	if(!_ptrc_glBindSamplers) numFailed++;
+	_ptrc_glBindTextures = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *))IntGetProcAddress("glBindTextures");
+	if(!_ptrc_glBindTextures) numFailed++;
+	_ptrc_glBindVertexBuffers = (void (CODEGEN_FUNCPTR *)(GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *))IntGetProcAddress("glBindVertexBuffers");
+	if(!_ptrc_glBindVertexBuffers) numFailed++;
+	_ptrc_glBufferStorage = (void (CODEGEN_FUNCPTR *)(GLenum, GLsizeiptr, const void *, GLbitfield))IntGetProcAddress("glBufferStorage");
+	if(!_ptrc_glBufferStorage) numFailed++;
+	_ptrc_glClearTexImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLenum, GLenum, const void *))IntGetProcAddress("glClearTexImage");
+	if(!_ptrc_glClearTexImage) numFailed++;
+	_ptrc_glClearTexSubImage = (void (CODEGEN_FUNCPTR *)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *))IntGetProcAddress("glClearTexSubImage");
+	if(!_ptrc_glClearTexSubImage) numFailed++;
+	return numFailed;
+}
+
+typedef int (*PFN_LOADFUNCPOINTERS)();
+typedef struct ogl_StrToExtMap_s
+{
+	char *extensionName;
+	int *extensionVariable;
+	PFN_LOADFUNCPOINTERS LoadExtension;
+} ogl_StrToExtMap;
+
+static ogl_StrToExtMap ExtensionMap[10] = {
+	{"GL_EXT_texture_compression_s3tc", &ogl_ext_EXT_texture_compression_s3tc, NULL},
+	{"GL_EXT_texture_sRGB", &ogl_ext_EXT_texture_sRGB, NULL},
+	{"GL_EXT_texture_filter_anisotropic", &ogl_ext_EXT_texture_filter_anisotropic, NULL},
+	{"GL_ARB_framebuffer_object", &ogl_ext_ARB_framebuffer_object, Load_ARB_framebuffer_object},
+	{"GL_ARB_seamless_cube_map", &ogl_ext_ARB_seamless_cube_map, NULL},
+	{"GL_ARB_separate_shader_objects", &ogl_ext_ARB_separate_shader_objects, Load_ARB_separate_shader_objects},
+	{"GL_ARB_debug_output", &ogl_ext_ARB_debug_output, Load_ARB_debug_output},
+	{"GL_ARB_copy_image", &ogl_ext_ARB_copy_image, Load_ARB_copy_image},
+	{"GL_NV_copy_image", &ogl_ext_NV_copy_image, Load_NV_copy_image},
+	{"GL_EXT_texture_mirror_clamp", &ogl_ext_EXT_texture_mirror_clamp, NULL},
+};
+
+static int g_extensionMapSize = 10;
+
+static ogl_StrToExtMap *FindExtEntry(const char *extensionName)
+{
+	int loop;
+	ogl_StrToExtMap *currLoc = ExtensionMap;
+	for(loop = 0; loop < g_extensionMapSize; ++loop, ++currLoc)
+	{
+		if(strcmp(extensionName, currLoc->extensionName) == 0)
+			return currLoc;
+	}
+	
+	return NULL;
+}
+
+static void ClearExtensionVars()
+{
+	ogl_ext_EXT_texture_compression_s3tc = ogl_LOAD_FAILED;
+	ogl_ext_EXT_texture_sRGB = ogl_LOAD_FAILED;
+	ogl_ext_EXT_texture_filter_anisotropic = ogl_LOAD_FAILED;
+	ogl_ext_ARB_framebuffer_object = ogl_LOAD_FAILED;
+	ogl_ext_ARB_seamless_cube_map = ogl_LOAD_FAILED;
+	ogl_ext_ARB_separate_shader_objects = ogl_LOAD_FAILED;
+	ogl_ext_ARB_debug_output = ogl_LOAD_FAILED;
+	ogl_ext_ARB_copy_image = ogl_LOAD_FAILED;
+	ogl_ext_NV_copy_image = ogl_LOAD_FAILED;
+	ogl_ext_EXT_texture_mirror_clamp = ogl_LOAD_FAILED;
+}
+
+
+static void LoadExtByName(const char *extensionName)
+{
+	ogl_StrToExtMap *entry = NULL;
+	entry = FindExtEntry(extensionName);
+	if(entry)
+	{
+		if(entry->LoadExtension)
+		{
+			int numFailed = entry->LoadExtension();
+			if(numFailed == 0)
+			{
+				*(entry->extensionVariable) = ogl_LOAD_SUCCEEDED;
+			}
+			else
+			{
+				*(entry->extensionVariable) = ogl_LOAD_SUCCEEDED + numFailed;
+			}
+		}
+		else
+		{
+			*(entry->extensionVariable) = ogl_LOAD_SUCCEEDED;
+		}
+	}
+}
+
+
+static void ProcExtsFromExtList()
+{
+	GLint iLoop;
+	GLint iNumExtensions = 0;
+	_ptrc_glGetIntegerv(GL_NUM_EXTENSIONS, &iNumExtensions);
+
+	for(iLoop = 0; iLoop < iNumExtensions; iLoop++)
+	{
+		const char *strExtensionName = (const char *)_ptrc_glGetStringi(GL_EXTENSIONS, iLoop);
+		LoadExtByName(strExtensionName);
+	}
+}
+
+int ogl_LoadFunctions()
+{
+	int numFailed = 0;
+	ClearExtensionVars();
+	
+	_ptrc_glGetIntegerv = (void (CODEGEN_FUNCPTR *)(GLenum, GLint *))IntGetProcAddress("glGetIntegerv");
+	if(!_ptrc_glGetIntegerv) return ogl_LOAD_FAILED;
+	_ptrc_glGetStringi = (const GLubyte * (CODEGEN_FUNCPTR *)(GLenum, GLuint))IntGetProcAddress("glGetStringi");
+	if(!_ptrc_glGetStringi) return ogl_LOAD_FAILED;
+	
+	ProcExtsFromExtList();
+	numFailed = Load_Version_4_4();
+	
+	if(numFailed == 0)
+		return ogl_LOAD_SUCCEEDED;
+	else
+		return ogl_LOAD_SUCCEEDED + numFailed;
+}
+
+static int g_major_version = 0;
+static int g_minor_version = 0;
+
+static void GetGLVersion()
+{
+	glGetIntegerv(GL_MAJOR_VERSION, &g_major_version);
+	glGetIntegerv(GL_MINOR_VERSION, &g_minor_version);
+}
+
+int ogl_GetMajorVersion()
+{
+	if(g_major_version == 0)
+		GetGLVersion();
+	return g_major_version;
+}
+
+int ogl_GetMinorVersion()
+{
+	if(g_major_version == 0) //Yes, check the major version to get the minor one.
+		GetGLVersion();
+	return g_minor_version;
+}
+
+int ogl_IsVersionGEQ(int majorVersion, int minorVersion)
+{
+	if(g_major_version == 0)
+		GetGLVersion();
+		
+	if(majorVersion > g_major_version) return 1;
+	if(majorVersion < g_major_version) return 0;
+	if(minorVersion >= g_minor_version) return 1;
+	return 0;
+}
+

+ 2984 - 0
libobs-opengl/GL/gl_obs.h

@@ -0,0 +1,2984 @@
+#ifndef POINTER_C_GENERATED_HEADER_OPENGL_H
+#define POINTER_C_GENERATED_HEADER_OPENGL_H
+
+#if defined(__glew_h__) || defined(__GLEW_H__)
+#error Attempt to include auto-generated header after including glew.h
+#endif
+#if defined(__gl_h_) || defined(__GL_H__)
+#error Attempt to include auto-generated header after including gl.h
+#endif
+#if defined(__glext_h_) || defined(__GLEXT_H_)
+#error Attempt to include auto-generated header after including glext.h
+#endif
+#if defined(__gltypes_h_)
+#error Attempt to include auto-generated header after gltypes.h
+#endif
+#if defined(__gl_ATI_h_)
+#error Attempt to include auto-generated header after including glATI.h
+#endif
+
+#define __glew_h__
+#define __GLEW_H__
+#define __gl_h_
+#define __GL_H__
+#define __glext_h_
+#define __GLEXT_H_
+#define __gltypes_h_
+#define __gl_ATI_h_
+
+#ifndef APIENTRY
+	#if defined(__MINGW32__)
+		#ifndef WIN32_LEAN_AND_MEAN
+			#define WIN32_LEAN_AND_MEAN 1
+		#endif
+		#ifndef NOMINMAX
+			#define NOMINMAX
+		#endif
+		#include <windows.h>
+	#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__)
+		#ifndef WIN32_LEAN_AND_MEAN
+			#define WIN32_LEAN_AND_MEAN 1
+		#endif
+		#ifndef NOMINMAX
+			#define NOMINMAX
+		#endif
+		#include <windows.h>
+	#else
+		#define APIENTRY
+	#endif
+#endif /*APIENTRY*/
+
+#ifndef CODEGEN_FUNCPTR
+	#define CODEGEN_REMOVE_FUNCPTR
+	#if defined(_WIN32)
+		#define CODEGEN_FUNCPTR APIENTRY
+	#else
+		#define CODEGEN_FUNCPTR
+	#endif
+#endif /*CODEGEN_FUNCPTR*/
+
+#ifndef GLAPI
+	#define GLAPI extern
+#endif
+
+
+#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+
+
+#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
+
+
+#include <stddef.h>
+#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glxext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GL_EXT_timer_query extension). */
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <inttypes.h>
+#elif defined(__sun__) || defined(__digital__)
+#include <inttypes.h>
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include <inttypes.h>
+#elif defined(__SCO__) || defined(__USLC__)
+#include <stdint.h>
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) && defined(__GNUC__)
+#include <stdint.h>
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include <inttypes.h>
+#endif
+#endif
+	typedef unsigned int GLenum;
+	typedef unsigned char GLboolean;
+	typedef unsigned int GLbitfield;
+	typedef void GLvoid;
+	typedef signed char GLbyte;
+	typedef short GLshort;
+	typedef int GLint;
+	typedef unsigned char GLubyte;
+	typedef unsigned short GLushort;
+	typedef unsigned int GLuint;
+	typedef int GLsizei;
+	typedef float GLfloat;
+	typedef float GLclampf;
+	typedef double GLdouble;
+	typedef double GLclampd;
+	typedef char GLchar;
+	typedef char GLcharARB;
+	#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif
+		typedef unsigned short GLhalfARB;
+		typedef unsigned short GLhalf;
+		typedef GLint GLfixed;
+		typedef ptrdiff_t GLintptr;
+		typedef ptrdiff_t GLsizeiptr;
+		typedef int64_t GLint64;
+		typedef uint64_t GLuint64;
+		typedef ptrdiff_t GLintptrARB;
+		typedef ptrdiff_t GLsizeiptrARB;
+		typedef int64_t GLint64EXT;
+		typedef uint64_t GLuint64EXT;
+		typedef struct __GLsync *GLsync;
+		struct _cl_context;
+		struct _cl_event;
+		typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+		typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+		typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
+		typedef unsigned short GLhalfNV;
+		typedef GLintptr GLvdpauSurfaceNV;
+
+#ifdef __cplusplus
+extern "C" {
+#endif /*__cplusplus*/
+
+extern int ogl_ext_EXT_texture_compression_s3tc;
+extern int ogl_ext_EXT_texture_sRGB;
+extern int ogl_ext_EXT_texture_filter_anisotropic;
+extern int ogl_ext_ARB_framebuffer_object;
+extern int ogl_ext_ARB_seamless_cube_map;
+extern int ogl_ext_ARB_separate_shader_objects;
+extern int ogl_ext_ARB_debug_output;
+extern int ogl_ext_ARB_copy_image;
+extern int ogl_ext_NV_copy_image;
+extern int ogl_ext_EXT_texture_mirror_clamp;
+
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
+
+#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B
+#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A
+#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
+#define GL_COMPRESSED_SRGB_EXT 0x8C48
+#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
+#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45
+#define GL_SLUMINANCE8_EXT 0x8C47
+#define GL_SLUMINANCE_ALPHA_EXT 0x8C44
+#define GL_SLUMINANCE_EXT 0x8C46
+#define GL_SRGB8_ALPHA8_EXT 0x8C43
+#define GL_SRGB8_EXT 0x8C41
+#define GL_SRGB_ALPHA_EXT 0x8C42
+#define GL_SRGB_EXT 0x8C40
+
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
+
+#define GL_COLOR_ATTACHMENT0 0x8CE0
+#define GL_COLOR_ATTACHMENT1 0x8CE1
+#define GL_COLOR_ATTACHMENT10 0x8CEA
+#define GL_COLOR_ATTACHMENT11 0x8CEB
+#define GL_COLOR_ATTACHMENT12 0x8CEC
+#define GL_COLOR_ATTACHMENT13 0x8CED
+#define GL_COLOR_ATTACHMENT14 0x8CEE
+#define GL_COLOR_ATTACHMENT15 0x8CEF
+#define GL_COLOR_ATTACHMENT2 0x8CE2
+#define GL_COLOR_ATTACHMENT3 0x8CE3
+#define GL_COLOR_ATTACHMENT4 0x8CE4
+#define GL_COLOR_ATTACHMENT5 0x8CE5
+#define GL_COLOR_ATTACHMENT6 0x8CE6
+#define GL_COLOR_ATTACHMENT7 0x8CE7
+#define GL_COLOR_ATTACHMENT8 0x8CE8
+#define GL_COLOR_ATTACHMENT9 0x8CE9
+#define GL_DEPTH24_STENCIL8 0x88F0
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#define GL_DEPTH_STENCIL 0x84F9
+#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A
+#define GL_DRAW_FRAMEBUFFER 0x8CA9
+#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_FRAMEBUFFER 0x8D40
+#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215
+#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216
+#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212
+#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#define GL_FRAMEBUFFER_DEFAULT 0x8218
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC
+#define GL_FRAMEBUFFER_UNDEFINED 0x8219
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#define GL_INDEX 0x8222
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#define GL_MAX_SAMPLES 0x8D57
+#define GL_READ_FRAMEBUFFER 0x8CA8
+#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
+#define GL_RENDERBUFFER 0x8D41
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#define GL_RENDERBUFFER_SAMPLES 0x8CAB
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#define GL_STENCIL_INDEX1 0x8D46
+#define GL_STENCIL_INDEX16 0x8D49
+#define GL_STENCIL_INDEX4 0x8D47
+#define GL_STENCIL_INDEX8 0x8D48
+#define GL_TEXTURE_ALPHA_TYPE 0x8C13
+#define GL_TEXTURE_BLUE_TYPE 0x8C12
+#define GL_TEXTURE_DEPTH_TYPE 0x8C16
+#define GL_TEXTURE_GREEN_TYPE 0x8C11
+#define GL_TEXTURE_INTENSITY_TYPE 0x8C15
+#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
+#define GL_TEXTURE_RED_TYPE 0x8C10
+#define GL_TEXTURE_STENCIL_SIZE 0x88F1
+#define GL_UNSIGNED_INT_24_8 0x84FA
+#define GL_UNSIGNED_NORMALIZED 0x8C17
+
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F
+
+#define GL_ACTIVE_PROGRAM 0x8259
+#define GL_ALL_SHADER_BITS 0xFFFFFFFF
+#define GL_FRAGMENT_SHADER_BIT 0x00000002
+#define GL_GEOMETRY_SHADER_BIT 0x00000004
+#define GL_PROGRAM_PIPELINE_BINDING 0x825A
+#define GL_PROGRAM_SEPARABLE 0x8258
+#define GL_TESS_CONTROL_SHADER_BIT 0x00000008
+#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010
+#define GL_VERTEX_SHADER_BIT 0x00000001
+
+#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245
+#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
+#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
+#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
+#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
+#define GL_DEBUG_SOURCE_API_ARB 0x8246
+#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A
+#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D
+#define GL_DEBUG_TYPE_ERROR_ARB 0x824C
+#define GL_DEBUG_TYPE_OTHER_ARB 0x8251
+#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250
+#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143
+
+#define GL_MIRROR_CLAMP_EXT 0x8742
+#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912
+#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
+
+#define GL_ALPHA 0x1906
+#define GL_ALWAYS 0x0207
+#define GL_AND 0x1501
+#define GL_AND_INVERTED 0x1504
+#define GL_AND_REVERSE 0x1502
+#define GL_BACK 0x0405
+#define GL_BACK_LEFT 0x0402
+#define GL_BACK_RIGHT 0x0403
+#define GL_BLEND 0x0BE2
+#define GL_BLEND_DST 0x0BE0
+#define GL_BLEND_SRC 0x0BE1
+#define GL_BLUE 0x1905
+#define GL_BYTE 0x1400
+#define GL_CCW 0x0901
+#define GL_CLEAR 0x1500
+#define GL_COLOR 0x1800
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_LOGIC_OP 0x0BF2
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_COPY 0x1503
+#define GL_COPY_INVERTED 0x150C
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_CW 0x0900
+#define GL_DECR 0x1E03
+#define GL_DEPTH 0x1801
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_COMPONENT 0x1902
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DITHER 0x0BD0
+#define GL_DONT_CARE 0x1100
+#define GL_DOUBLE 0x140A
+#define GL_DOUBLEBUFFER 0x0C32
+#define GL_DRAW_BUFFER 0x0C01
+#define GL_DST_ALPHA 0x0304
+#define GL_DST_COLOR 0x0306
+#define GL_EQUAL 0x0202
+#define GL_EQUIV 0x1509
+#define GL_EXTENSIONS 0x1F03
+#define GL_FALSE 0
+#define GL_FASTEST 0x1101
+#define GL_FILL 0x1B02
+#define GL_FLOAT 0x1406
+#define GL_FRONT 0x0404
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_FRONT_FACE 0x0B46
+#define GL_FRONT_LEFT 0x0400
+#define GL_FRONT_RIGHT 0x0401
+#define GL_GEQUAL 0x0206
+#define GL_GREATER 0x0204
+#define GL_GREEN 0x1904
+#define GL_INCR 0x1E02
+#define GL_INT 0x1404
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_OPERATION 0x0502
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVERT 0x150A
+#define GL_KEEP 0x1E00
+#define GL_LEFT 0x0406
+#define GL_LEQUAL 0x0203
+#define GL_LESS 0x0201
+#define GL_LINE 0x1B01
+#define GL_LINEAR 0x2601
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_LINES 0x0001
+#define GL_LINE_LOOP 0x0002
+#define GL_LINE_SMOOTH 0x0B20
+#define GL_LINE_SMOOTH_HINT 0x0C52
+#define GL_LINE_STRIP 0x0003
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_LINE_WIDTH_RANGE 0x0B22
+#define GL_LOGIC_OP_MODE 0x0BF0
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_NAND 0x150E
+#define GL_NEAREST 0x2600
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_NEVER 0x0200
+#define GL_NICEST 0x1102
+#define GL_NONE 0
+#define GL_NOOP 0x1505
+#define GL_NOR 0x1508
+#define GL_NOTEQUAL 0x0205
+#define GL_NO_ERROR 0
+#define GL_ONE 1
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_OR 0x1507
+#define GL_OR_INVERTED 0x150D
+#define GL_OR_REVERSE 0x150B
+#define GL_OUT_OF_MEMORY 0x0505
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_PACK_LSB_FIRST 0x0D01
+#define GL_PACK_ROW_LENGTH 0x0D02
+#define GL_PACK_SKIP_PIXELS 0x0D04
+#define GL_PACK_SKIP_ROWS 0x0D03
+#define GL_PACK_SWAP_BYTES 0x0D00
+#define GL_POINT 0x1B00
+#define GL_POINTS 0x0000
+#define GL_POINT_SIZE 0x0B11
+#define GL_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_POINT_SIZE_RANGE 0x0B12
+#define GL_POLYGON_MODE 0x0B40
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#define GL_POLYGON_OFFSET_LINE 0x2A02
+#define GL_POLYGON_OFFSET_POINT 0x2A01
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_POLYGON_SMOOTH 0x0B41
+#define GL_POLYGON_SMOOTH_HINT 0x0C53
+#define GL_PROXY_TEXTURE_1D 0x8063
+#define GL_PROXY_TEXTURE_2D 0x8064
+#define GL_QUADS 0x0007
+#define GL_R3_G3_B2 0x2A10
+#define GL_READ_BUFFER 0x0C02
+#define GL_RED 0x1903
+#define GL_RENDERER 0x1F01
+#define GL_REPEAT 0x2901
+#define GL_REPLACE 0x1E01
+#define GL_RGB 0x1907
+#define GL_RGB10 0x8052
+#define GL_RGB10_A2 0x8059
+#define GL_RGB12 0x8053
+#define GL_RGB16 0x8054
+#define GL_RGB4 0x804F
+#define GL_RGB5 0x8050
+#define GL_RGB5_A1 0x8057
+#define GL_RGB8 0x8051
+#define GL_RGBA 0x1908
+#define GL_RGBA12 0x805A
+#define GL_RGBA16 0x805B
+#define GL_RGBA2 0x8055
+#define GL_RGBA4 0x8056
+#define GL_RGBA8 0x8058
+#define GL_RIGHT 0x0407
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_TEST 0x0C11
+#define GL_SET 0x150F
+#define GL_SHORT 0x1402
+#define GL_SRC_ALPHA 0x0302
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#define GL_SRC_COLOR 0x0300
+#define GL_STACK_OVERFLOW 0x0503
+#define GL_STACK_UNDERFLOW 0x0504
+#define GL_STENCIL 0x1802
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_INDEX 0x1901
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_STEREO 0x0C33
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_TEXTURE 0x1702
+#define GL_TEXTURE_1D 0x0DE0
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_TEXTURE_ALPHA_SIZE 0x805F
+#define GL_TEXTURE_BINDING_1D 0x8068
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_TEXTURE_BLUE_SIZE 0x805E
+#define GL_TEXTURE_BORDER_COLOR 0x1004
+#define GL_TEXTURE_GREEN_SIZE 0x805D
+#define GL_TEXTURE_HEIGHT 0x1001
+#define GL_TEXTURE_INTERNAL_FORMAT 0x1003
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_RED_SIZE 0x805C
+#define GL_TEXTURE_WIDTH 0x1000
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRUE 1
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_UNPACK_LSB_FIRST 0x0CF1
+#define GL_UNPACK_ROW_LENGTH 0x0CF2
+#define GL_UNPACK_SKIP_PIXELS 0x0CF4
+#define GL_UNPACK_SKIP_ROWS 0x0CF3
+#define GL_UNPACK_SWAP_BYTES 0x0CF0
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_UNSIGNED_INT 0x1405
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_VENDOR 0x1F00
+#define GL_VERSION 0x1F02
+#define GL_VIEWPORT 0x0BA2
+#define GL_XOR 0x1506
+#define GL_ZERO 0
+
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_BGR 0x80E0
+#define GL_BGRA 0x80E1
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#define GL_PACK_SKIP_IMAGES 0x806B
+#define GL_PROXY_TEXTURE_3D 0x8070
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#define GL_TEXTURE_3D 0x806F
+#define GL_TEXTURE_BASE_LEVEL 0x813C
+#define GL_TEXTURE_BINDING_3D 0x806A
+#define GL_TEXTURE_DEPTH 0x8071
+#define GL_TEXTURE_MAX_LEVEL 0x813D
+#define GL_TEXTURE_MAX_LOD 0x813B
+#define GL_TEXTURE_MIN_LOD 0x813A
+#define GL_TEXTURE_WRAP_R 0x8072
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
+#define GL_UNSIGNED_BYTE_3_3_2 0x8032
+#define GL_UNSIGNED_INT_10_10_10_2 0x8036
+#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
+#define GL_UNSIGNED_INT_8_8_8_8 0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
+
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_CLAMP_TO_BORDER 0x812D
+#define GL_COMPRESSED_RGB 0x84ED
+#define GL_COMPRESSED_RGBA 0x84EE
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#define GL_MULTISAMPLE 0x809D
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE 0x809F
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_COMPRESSED 0x86A1
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0
+#define GL_TEXTURE_COMPRESSION_HINT 0x84EF
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_DECR_WRAP 0x8508
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT24 0x81A6
+#define GL_DEPTH_COMPONENT32 0x81A7
+#define GL_INCR_WRAP 0x8507
+#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128
+#define GL_TEXTURE_COMPARE_FUNC 0x884D
+#define GL_TEXTURE_COMPARE_MODE 0x884C
+#define GL_TEXTURE_DEPTH_SIZE 0x884A
+#define GL_TEXTURE_LOD_BIAS 0x8501
+
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#define GL_BUFFER_ACCESS 0x88BB
+#define GL_BUFFER_MAPPED 0x88BC
+#define GL_BUFFER_MAP_POINTER 0x88BD
+#define GL_BUFFER_SIZE 0x8764
+#define GL_BUFFER_USAGE 0x8765
+#define GL_CURRENT_QUERY 0x8865
+#define GL_DYNAMIC_COPY 0x88EA
+#define GL_DYNAMIC_DRAW 0x88E8
+#define GL_DYNAMIC_READ 0x88E9
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#define GL_QUERY_COUNTER_BITS 0x8864
+#define GL_QUERY_RESULT 0x8866
+#define GL_QUERY_RESULT_AVAILABLE 0x8867
+#define GL_READ_ONLY 0x88B8
+#define GL_READ_WRITE 0x88BA
+#define GL_SAMPLES_PASSED 0x8914
+#define GL_SRC1_ALPHA 0x8589
+#define GL_STATIC_COPY 0x88E6
+#define GL_STATIC_DRAW 0x88E4
+#define GL_STATIC_READ 0x88E5
+#define GL_STREAM_COPY 0x88E2
+#define GL_STREAM_DRAW 0x88E0
+#define GL_STREAM_READ 0x88E1
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#define GL_WRITE_ONLY 0x88B9
+
+#define GL_ACTIVE_ATTRIBUTES 0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#define GL_ATTACHED_SHADERS 0x8B85
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#define GL_BLEND_EQUATION_RGB 0x8009
+#define GL_BOOL 0x8B56
+#define GL_BOOL_VEC2 0x8B57
+#define GL_BOOL_VEC3 0x8B58
+#define GL_BOOL_VEC4 0x8B59
+#define GL_COMPILE_STATUS 0x8B81
+#define GL_CURRENT_PROGRAM 0x8B8D
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#define GL_DELETE_STATUS 0x8B80
+#define GL_DRAW_BUFFER0 0x8825
+#define GL_DRAW_BUFFER1 0x8826
+#define GL_DRAW_BUFFER10 0x882F
+#define GL_DRAW_BUFFER11 0x8830
+#define GL_DRAW_BUFFER12 0x8831
+#define GL_DRAW_BUFFER13 0x8832
+#define GL_DRAW_BUFFER14 0x8833
+#define GL_DRAW_BUFFER15 0x8834
+#define GL_DRAW_BUFFER2 0x8827
+#define GL_DRAW_BUFFER3 0x8828
+#define GL_DRAW_BUFFER4 0x8829
+#define GL_DRAW_BUFFER5 0x882A
+#define GL_DRAW_BUFFER6 0x882B
+#define GL_DRAW_BUFFER7 0x882C
+#define GL_DRAW_BUFFER8 0x882D
+#define GL_DRAW_BUFFER9 0x882E
+#define GL_FLOAT_MAT2 0x8B5A
+#define GL_FLOAT_MAT3 0x8B5B
+#define GL_FLOAT_MAT4 0x8B5C
+#define GL_FLOAT_VEC2 0x8B50
+#define GL_FLOAT_VEC3 0x8B51
+#define GL_FLOAT_VEC4 0x8B52
+#define GL_FRAGMENT_SHADER 0x8B30
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B
+#define GL_INFO_LOG_LENGTH 0x8B84
+#define GL_INT_VEC2 0x8B53
+#define GL_INT_VEC3 0x8B54
+#define GL_INT_VEC4 0x8B55
+#define GL_LINK_STATUS 0x8B82
+#define GL_LOWER_LEFT 0x8CA1
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#define GL_MAX_DRAW_BUFFERS 0x8824
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#define GL_MAX_VARYING_FLOATS 0x8B4B
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A
+#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0
+#define GL_SAMPLER_1D 0x8B5D
+#define GL_SAMPLER_1D_SHADOW 0x8B61
+#define GL_SAMPLER_2D 0x8B5E
+#define GL_SAMPLER_2D_SHADOW 0x8B62
+#define GL_SAMPLER_3D 0x8B5F
+#define GL_SAMPLER_CUBE 0x8B60
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GL_SHADER_TYPE 0x8B4F
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#define GL_STENCIL_BACK_FAIL 0x8801
+#define GL_STENCIL_BACK_FUNC 0x8800
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#define GL_STENCIL_BACK_REF 0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#define GL_UPPER_LEFT 0x8CA2
+#define GL_VALIDATE_STATUS 0x8B83
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
+#define GL_VERTEX_SHADER 0x8B31
+
+#define GL_COMPRESSED_SRGB 0x8C48
+#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
+#define GL_FLOAT_MAT2x3 0x8B65
+#define GL_FLOAT_MAT2x4 0x8B66
+#define GL_FLOAT_MAT3x2 0x8B67
+#define GL_FLOAT_MAT3x4 0x8B68
+#define GL_FLOAT_MAT4x2 0x8B69
+#define GL_FLOAT_MAT4x3 0x8B6A
+#define GL_PIXEL_PACK_BUFFER 0x88EB
+#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
+#define GL_PIXEL_UNPACK_BUFFER 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF
+#define GL_SRGB 0x8C40
+#define GL_SRGB8 0x8C41
+#define GL_SRGB8_ALPHA8 0x8C43
+#define GL_SRGB_ALPHA 0x8C42
+
+#define GL_BGRA_INTEGER 0x8D9B
+#define GL_BGR_INTEGER 0x8D9A
+#define GL_BLUE_INTEGER 0x8D96
+#define GL_BUFFER_ACCESS_FLAGS 0x911F
+#define GL_BUFFER_MAP_LENGTH 0x9120
+#define GL_BUFFER_MAP_OFFSET 0x9121
+#define GL_CLAMP_READ_COLOR 0x891C
+#define GL_CLIP_DISTANCE0 0x3000
+#define GL_CLIP_DISTANCE1 0x3001
+#define GL_CLIP_DISTANCE2 0x3002
+#define GL_CLIP_DISTANCE3 0x3003
+#define GL_CLIP_DISTANCE4 0x3004
+#define GL_CLIP_DISTANCE5 0x3005
+#define GL_CLIP_DISTANCE6 0x3006
+#define GL_CLIP_DISTANCE7 0x3007
+/*Copied GL_COLOR_ATTACHMENT0 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT1 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT10 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT11 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT12 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT13 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT14 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT15 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT2 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT3 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT4 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT5 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT6 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT7 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT8 From: ARB_framebuffer_object*/
+/*Copied GL_COLOR_ATTACHMENT9 From: ARB_framebuffer_object*/
+#define GL_COMPARE_REF_TO_TEXTURE 0x884E
+#define GL_COMPRESSED_RED 0x8225
+#define GL_COMPRESSED_RED_RGTC1 0x8DBB
+#define GL_COMPRESSED_RG 0x8226
+#define GL_COMPRESSED_RG_RGTC2 0x8DBD
+#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC
+#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE
+#define GL_CONTEXT_FLAGS 0x821E
+#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001
+/*Copied GL_DEPTH24_STENCIL8 From: ARB_framebuffer_object*/
+#define GL_DEPTH32F_STENCIL8 0x8CAD
+/*Copied GL_DEPTH_ATTACHMENT From: ARB_framebuffer_object*/
+#define GL_DEPTH_COMPONENT32F 0x8CAC
+/*Copied GL_DEPTH_STENCIL From: ARB_framebuffer_object*/
+/*Copied GL_DEPTH_STENCIL_ATTACHMENT From: ARB_framebuffer_object*/
+/*Copied GL_DRAW_FRAMEBUFFER From: ARB_framebuffer_object*/
+/*Copied GL_DRAW_FRAMEBUFFER_BINDING From: ARB_framebuffer_object*/
+#define GL_FIXED_ONLY 0x891D
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD
+/*Copied GL_FRAMEBUFFER From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_BINDING From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_COMPLETE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_DEFAULT From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER From: ARB_framebuffer_object*/
+#define GL_FRAMEBUFFER_SRGB 0x8DB9
+/*Copied GL_FRAMEBUFFER_UNDEFINED From: ARB_framebuffer_object*/
+/*Copied GL_FRAMEBUFFER_UNSUPPORTED From: ARB_framebuffer_object*/
+#define GL_GREEN_INTEGER 0x8D95
+#define GL_HALF_FLOAT 0x140B
+/*Copied GL_INDEX From: ARB_framebuffer_object*/
+#define GL_INTERLEAVED_ATTRIBS 0x8C8C
+#define GL_INT_SAMPLER_1D 0x8DC9
+#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE
+#define GL_INT_SAMPLER_2D 0x8DCA
+#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF
+#define GL_INT_SAMPLER_3D 0x8DCB
+#define GL_INT_SAMPLER_CUBE 0x8DCC
+/*Copied GL_INVALID_FRAMEBUFFER_OPERATION From: ARB_framebuffer_object*/
+#define GL_MAJOR_VERSION 0x821B
+#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010
+#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008
+#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004
+#define GL_MAP_READ_BIT 0x0001
+#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020
+#define GL_MAP_WRITE_BIT 0x0002
+#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF
+#define GL_MAX_CLIP_DISTANCES 0x0D32
+/*Copied GL_MAX_COLOR_ATTACHMENTS From: ARB_framebuffer_object*/
+#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905
+/*Copied GL_MAX_RENDERBUFFER_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_MAX_SAMPLES From: ARB_framebuffer_object*/
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80
+#define GL_MAX_VARYING_COMPONENTS 0x8B4B
+#define GL_MINOR_VERSION 0x821C
+#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904
+#define GL_NUM_EXTENSIONS 0x821D
+#define GL_PRIMITIVES_GENERATED 0x8C87
+#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19
+#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B
+#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16
+#define GL_QUERY_BY_REGION_WAIT 0x8E15
+#define GL_QUERY_NO_WAIT 0x8E14
+#define GL_QUERY_WAIT 0x8E13
+#define GL_R11F_G11F_B10F 0x8C3A
+#define GL_R16 0x822A
+#define GL_R16F 0x822D
+#define GL_R16I 0x8233
+#define GL_R16UI 0x8234
+#define GL_R32F 0x822E
+#define GL_R32I 0x8235
+#define GL_R32UI 0x8236
+#define GL_R8 0x8229
+#define GL_R8I 0x8231
+#define GL_R8UI 0x8232
+#define GL_RASTERIZER_DISCARD 0x8C89
+/*Copied GL_READ_FRAMEBUFFER From: ARB_framebuffer_object*/
+/*Copied GL_READ_FRAMEBUFFER_BINDING From: ARB_framebuffer_object*/
+#define GL_RED_INTEGER 0x8D94
+/*Copied GL_RENDERBUFFER From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_ALPHA_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_BINDING From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_BLUE_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_DEPTH_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_GREEN_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_HEIGHT From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_INTERNAL_FORMAT From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_RED_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_SAMPLES From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_STENCIL_SIZE From: ARB_framebuffer_object*/
+/*Copied GL_RENDERBUFFER_WIDTH From: ARB_framebuffer_object*/
+#define GL_RG 0x8227
+#define GL_RG16 0x822C
+#define GL_RG16F 0x822F
+#define GL_RG16I 0x8239
+#define GL_RG16UI 0x823A
+#define GL_RG32F 0x8230
+#define GL_RG32I 0x823B
+#define GL_RG32UI 0x823C
+#define GL_RG8 0x822B
+#define GL_RG8I 0x8237
+#define GL_RG8UI 0x8238
+#define GL_RGB16F 0x881B
+#define GL_RGB16I 0x8D89
+#define GL_RGB16UI 0x8D77
+#define GL_RGB32F 0x8815
+#define GL_RGB32I 0x8D83
+#define GL_RGB32UI 0x8D71
+#define GL_RGB8I 0x8D8F
+#define GL_RGB8UI 0x8D7D
+#define GL_RGB9_E5 0x8C3D
+#define GL_RGBA16F 0x881A
+#define GL_RGBA16I 0x8D88
+#define GL_RGBA16UI 0x8D76
+#define GL_RGBA32F 0x8814
+#define GL_RGBA32I 0x8D82
+#define GL_RGBA32UI 0x8D70
+#define GL_RGBA8I 0x8D8E
+#define GL_RGBA8UI 0x8D7C
+#define GL_RGBA_INTEGER 0x8D99
+#define GL_RGB_INTEGER 0x8D98
+#define GL_RG_INTEGER 0x8228
+#define GL_SAMPLER_1D_ARRAY 0x8DC0
+#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3
+#define GL_SAMPLER_2D_ARRAY 0x8DC1
+#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4
+#define GL_SAMPLER_CUBE_SHADOW 0x8DC5
+#define GL_SEPARATE_ATTRIBS 0x8C8D
+/*Copied GL_STENCIL_ATTACHMENT From: ARB_framebuffer_object*/
+/*Copied GL_STENCIL_INDEX1 From: ARB_framebuffer_object*/
+/*Copied GL_STENCIL_INDEX16 From: ARB_framebuffer_object*/
+/*Copied GL_STENCIL_INDEX4 From: ARB_framebuffer_object*/
+/*Copied GL_STENCIL_INDEX8 From: ARB_framebuffer_object*/
+#define GL_TEXTURE_1D_ARRAY 0x8C18
+#define GL_TEXTURE_2D_ARRAY 0x8C1A
+/*Copied GL_TEXTURE_ALPHA_TYPE From: ARB_framebuffer_object*/
+#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C
+#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D
+/*Copied GL_TEXTURE_BLUE_TYPE From: ARB_framebuffer_object*/
+/*Copied GL_TEXTURE_DEPTH_TYPE From: ARB_framebuffer_object*/
+/*Copied GL_TEXTURE_GREEN_TYPE From: ARB_framebuffer_object*/
+/*Copied GL_TEXTURE_RED_TYPE From: ARB_framebuffer_object*/
+#define GL_TEXTURE_SHARED_SIZE 0x8C3F
+/*Copied GL_TEXTURE_STENCIL_SIZE From: ARB_framebuffer_object*/
+#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88
+#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76
+#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B
+/*Copied GL_UNSIGNED_INT_24_8 From: ARB_framebuffer_object*/
+#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E
+#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4
+#define GL_UNSIGNED_INT_VEC2 0x8DC6
+#define GL_UNSIGNED_INT_VEC3 0x8DC7
+#define GL_UNSIGNED_INT_VEC4 0x8DC8
+/*Copied GL_UNSIGNED_NORMALIZED From: ARB_framebuffer_object*/
+#define GL_VERTEX_ARRAY_BINDING 0x85B5
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD
+
+#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36
+#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35
+#define GL_COPY_READ_BUFFER 0x8F36
+#define GL_COPY_WRITE_BUFFER 0x8F37
+#define GL_INT_SAMPLER_2D_RECT 0x8DCD
+#define GL_INT_SAMPLER_BUFFER 0x8DD0
+#define GL_INVALID_INDEX 0xFFFFFFFF
+#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33
+#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E
+#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31
+#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8
+#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B
+#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30
+#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F
+#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B
+#define GL_PRIMITIVE_RESTART 0x8F9D
+#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E
+#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7
+#define GL_R16_SNORM 0x8F98
+#define GL_R8_SNORM 0x8F94
+#define GL_RG16_SNORM 0x8F99
+#define GL_RG8_SNORM 0x8F95
+#define GL_RGB16_SNORM 0x8F9A
+#define GL_RGB8_SNORM 0x8F96
+#define GL_RGBA16_SNORM 0x8F9B
+#define GL_RGBA8_SNORM 0x8F97
+#define GL_SAMPLER_2D_RECT 0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
+#define GL_SAMPLER_BUFFER 0x8DC2
+#define GL_SIGNED_NORMALIZED 0x8F9C
+#define GL_TEXTURE_BINDING_BUFFER 0x8C2C
+#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6
+#define GL_TEXTURE_BUFFER 0x8C2A
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D
+#define GL_TEXTURE_RECTANGLE 0x84F5
+#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43
+#define GL_UNIFORM_BLOCK_BINDING 0x8A3F
+#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40
+#define GL_UNIFORM_BLOCK_INDEX 0x8A3A
+#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44
+#define GL_UNIFORM_BUFFER 0x8A11
+#define GL_UNIFORM_BUFFER_BINDING 0x8A28
+#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34
+#define GL_UNIFORM_BUFFER_SIZE 0x8A2A
+#define GL_UNIFORM_BUFFER_START 0x8A29
+#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E
+#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D
+#define GL_UNIFORM_NAME_LENGTH 0x8A39
+#define GL_UNIFORM_OFFSET 0x8A3B
+#define GL_UNIFORM_SIZE 0x8A38
+#define GL_UNIFORM_TYPE 0x8A37
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8
+
+#define GL_ALREADY_SIGNALED 0x911A
+#define GL_CONDITION_SATISFIED 0x911C
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001
+#define GL_CONTEXT_PROFILE_MASK 0x9126
+#define GL_DEPTH_CLAMP 0x864F
+#define GL_FIRST_VERTEX_CONVENTION 0x8E4D
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8
+#define GL_GEOMETRY_INPUT_TYPE 0x8917
+#define GL_GEOMETRY_OUTPUT_TYPE 0x8918
+#define GL_GEOMETRY_SHADER 0x8DD9
+#define GL_GEOMETRY_VERTICES_OUT 0x8916
+#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C
+#define GL_LAST_VERTEX_CONVENTION 0x8E4E
+#define GL_LINES_ADJACENCY 0x000A
+#define GL_LINE_STRIP_ADJACENCY 0x000B
+#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F
+#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF
+#define GL_MAX_INTEGER_SAMPLES 0x9110
+#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
+#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111
+#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122
+#define GL_OBJECT_TYPE 0x9112
+#define GL_PROGRAM_POINT_SIZE 0x8642
+#define GL_PROVOKING_VERTEX 0x8E4F
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C
+#define GL_SAMPLER_2D_MULTISAMPLE 0x9108
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B
+#define GL_SAMPLE_MASK 0x8E51
+#define GL_SAMPLE_MASK_VALUE 0x8E52
+#define GL_SAMPLE_POSITION 0x8E50
+#define GL_SIGNALED 0x9119
+#define GL_SYNC_CONDITION 0x9113
+#define GL_SYNC_FENCE 0x9116
+#define GL_SYNC_FLAGS 0x9115
+#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001
+#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117
+#define GL_SYNC_STATUS 0x9114
+#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105
+/*Copied GL_TEXTURE_CUBE_MAP_SEAMLESS From: ARB_seamless_cube_map*/
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107
+#define GL_TEXTURE_SAMPLES 0x9106
+#define GL_TIMEOUT_EXPIRED 0x911B
+#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF
+#define GL_TRIANGLES_ADJACENCY 0x000C
+#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D
+#define GL_UNSIGNALED 0x9118
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
+#define GL_WAIT_FAILED 0x911D
+
+#define GL_ANY_SAMPLES_PASSED 0x8C2F
+#define GL_INT_2_10_10_10_REV 0x8D9F
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC
+#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB
+#define GL_ONE_MINUS_SRC1_COLOR 0x88FA
+#define GL_RGB10_A2UI 0x906F
+#define GL_SAMPLER_BINDING 0x8919
+#define GL_SRC1_COLOR 0x88F9
+#define GL_TEXTURE_SWIZZLE_A 0x8E45
+#define GL_TEXTURE_SWIZZLE_B 0x8E44
+#define GL_TEXTURE_SWIZZLE_G 0x8E43
+#define GL_TEXTURE_SWIZZLE_R 0x8E42
+#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46
+#define GL_TIMESTAMP 0x8E28
+#define GL_TIME_ELAPSED 0x88BF
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE
+
+#define GL_ACTIVE_SUBROUTINES 0x8DE5
+#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48
+#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49
+#define GL_COMPATIBLE_SUBROUTINES 0x8E4B
+#define GL_DOUBLE_MAT2 0x8F46
+#define GL_DOUBLE_MAT2x3 0x8F49
+#define GL_DOUBLE_MAT2x4 0x8F4A
+#define GL_DOUBLE_MAT3 0x8F47
+#define GL_DOUBLE_MAT3x2 0x8F4B
+#define GL_DOUBLE_MAT3x4 0x8F4C
+#define GL_DOUBLE_MAT4 0x8F48
+#define GL_DOUBLE_MAT4x2 0x8F4D
+#define GL_DOUBLE_MAT4x3 0x8F4E
+#define GL_DOUBLE_VEC2 0x8FFC
+#define GL_DOUBLE_VEC3 0x8FFD
+#define GL_DOUBLE_VEC4 0x8FFE
+#define GL_DRAW_INDIRECT_BUFFER 0x8F3F
+#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43
+#define GL_FRACTIONAL_EVEN 0x8E7C
+#define GL_FRACTIONAL_ODD 0x8E7B
+#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D
+#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E
+#define GL_ISOLINES 0x8E7A
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A
+#define GL_MAX_PATCH_VERTICES 0x8E7D
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F
+#define GL_MAX_SUBROUTINES 0x8DE7
+#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80
+#define GL_MAX_TESS_GEN_LEVEL 0x8E7E
+#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84
+#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70
+#define GL_MAX_VERTEX_STREAMS 0x8E71
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E
+#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37
+#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A
+#define GL_PATCHES 0x000E
+#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73
+#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74
+#define GL_PATCH_VERTICES 0x8E72
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B
+#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D
+#define GL_SAMPLE_SHADING 0x8C36
+#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75
+#define GL_TESS_CONTROL_SHADER 0x8E88
+#define GL_TESS_EVALUATION_SHADER 0x8E87
+#define GL_TESS_GEN_MODE 0x8E76
+#define GL_TESS_GEN_POINT_MODE 0x8E79
+#define GL_TESS_GEN_SPACING 0x8E77
+#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A
+#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009
+#define GL_TRANSFORM_FEEDBACK 0x8E22
+#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F
+
+/*Copied GL_ACTIVE_PROGRAM From: ARB_separate_shader_objects*/
+/*Copied GL_ALL_SHADER_BITS From: ARB_separate_shader_objects*/
+#define GL_FIXED 0x140C
+/*Copied GL_FRAGMENT_SHADER_BIT From: ARB_separate_shader_objects*/
+/*Copied GL_GEOMETRY_SHADER_BIT From: ARB_separate_shader_objects*/
+#define GL_HIGH_FLOAT 0x8DF2
+#define GL_HIGH_INT 0x8DF5
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+#define GL_LAYER_PROVOKING_VERTEX 0x825E
+#define GL_LOW_FLOAT 0x8DF0
+#define GL_LOW_INT 0x8DF3
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#define GL_MAX_VIEWPORTS 0x825B
+#define GL_MEDIUM_FLOAT 0x8DF1
+#define GL_MEDIUM_INT 0x8DF4
+#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+#define GL_PROGRAM_BINARY_FORMATS 0x87FF
+#define GL_PROGRAM_BINARY_LENGTH 0x8741
+#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257
+/*Copied GL_PROGRAM_PIPELINE_BINDING From: ARB_separate_shader_objects*/
+/*Copied GL_PROGRAM_SEPARABLE From: ARB_separate_shader_objects*/
+#define GL_RGB565 0x8D62
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#define GL_SHADER_COMPILER 0x8DFA
+/*Copied GL_TESS_CONTROL_SHADER_BIT From: ARB_separate_shader_objects*/
+/*Copied GL_TESS_EVALUATION_SHADER_BIT From: ARB_separate_shader_objects*/
+#define GL_UNDEFINED_VERTEX 0x8260
+/*Copied GL_VERTEX_SHADER_BIT From: ARB_separate_shader_objects*/
+#define GL_VIEWPORT_BOUNDS_RANGE 0x825D
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F
+#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C
+
+#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9
+#define GL_ALL_BARRIER_BITS 0xFFFFFFFF
+#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000
+#define GL_ATOMIC_COUNTER_BUFFER 0x92C0
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6
+#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1
+#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7
+#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3
+#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2
+#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200
+#define GL_COMMAND_BARRIER_BIT 0x00000040
+#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002
+#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400
+#define GL_IMAGE_1D 0x904C
+#define GL_IMAGE_1D_ARRAY 0x9052
+#define GL_IMAGE_2D 0x904D
+#define GL_IMAGE_2D_ARRAY 0x9053
+#define GL_IMAGE_2D_MULTISAMPLE 0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056
+#define GL_IMAGE_2D_RECT 0x904F
+#define GL_IMAGE_3D 0x904E
+#define GL_IMAGE_BINDING_ACCESS 0x8F3E
+#define GL_IMAGE_BINDING_FORMAT 0x906E
+#define GL_IMAGE_BINDING_LAYER 0x8F3D
+#define GL_IMAGE_BINDING_LAYERED 0x8F3C
+#define GL_IMAGE_BINDING_LEVEL 0x8F3B
+#define GL_IMAGE_BINDING_NAME 0x8F3A
+#define GL_IMAGE_BUFFER 0x9051
+#define GL_IMAGE_CUBE 0x9050
+#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8
+#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7
+#define GL_INT_IMAGE_1D 0x9057
+#define GL_INT_IMAGE_1D_ARRAY 0x905D
+#define GL_INT_IMAGE_2D 0x9058
+#define GL_INT_IMAGE_2D_ARRAY 0x905E
+#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061
+#define GL_INT_IMAGE_2D_RECT 0x905A
+#define GL_INT_IMAGE_3D 0x9059
+#define GL_INT_IMAGE_BUFFER 0x905C
+#define GL_INT_IMAGE_CUBE 0x905B
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8
+#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7
+#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1
+#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0
+#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD
+#define GL_MAX_IMAGE_SAMPLES 0x906D
+#define GL_MAX_IMAGE_UNITS 0x8F38
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC
+#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2
+#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC
+#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA
+#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC
+#define GL_NUM_SAMPLE_COUNTS 0x9380
+#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D
+#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C
+#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E
+#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B
+#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020
+#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008
+#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F
+#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800
+#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA
+#define GL_UNIFORM_BARRIER_BIT 0x00000004
+#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129
+#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128
+#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A
+#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127
+#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB
+#define GL_UNSIGNED_INT_IMAGE_1D 0x9062
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068
+#define GL_UNSIGNED_INT_IMAGE_2D 0x9063
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065
+#define GL_UNSIGNED_INT_IMAGE_3D 0x9064
+#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067
+#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001
+
+#define GL_ACTIVE_RESOURCES 0x92F5
+#define GL_ACTIVE_VARIABLES 0x9305
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A
+#define GL_ARRAY_SIZE 0x92FB
+#define GL_ARRAY_STRIDE 0x92FE
+#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED
+#define GL_AUTO_GENERATE_MIPMAP 0x8295
+#define GL_BLOCK_INDEX 0x92FD
+#define GL_BUFFER 0x82E0
+#define GL_BUFFER_BINDING 0x9302
+#define GL_BUFFER_DATA_SIZE 0x9303
+#define GL_BUFFER_VARIABLE 0x92E5
+#define GL_CAVEAT_SUPPORT 0x82B8
+#define GL_CLEAR_BUFFER 0x82B4
+#define GL_COLOR_COMPONENTS 0x8283
+#define GL_COLOR_ENCODING 0x8296
+#define GL_COLOR_RENDERABLE 0x8286
+#define GL_COMPRESSED_R11_EAC 0x9270
+#define GL_COMPRESSED_RG11_EAC 0x9272
+#define GL_COMPRESSED_RGB8_ETC2 0x9274
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276
+#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278
+#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271
+#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279
+#define GL_COMPRESSED_SRGB8_ETC2 0x9275
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277
+#define GL_COMPUTE_LOCAL_WORK_SIZE 0x8267
+#define GL_COMPUTE_SHADER 0x91B9
+#define GL_COMPUTE_SUBROUTINE 0x92ED
+#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3
+#define GL_COMPUTE_TEXTURE 0x82A0
+#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
+#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
+#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
+#define GL_DEBUG_LOGGED_MESSAGES 0x9145
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
+#define GL_DEBUG_OUTPUT 0x92E0
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
+#define GL_DEBUG_SEVERITY_HIGH 0x9146
+#define GL_DEBUG_SEVERITY_LOW 0x9148
+#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
+#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
+#define GL_DEBUG_SOURCE_API 0x8246
+#define GL_DEBUG_SOURCE_APPLICATION 0x824A
+#define GL_DEBUG_SOURCE_OTHER 0x824B
+#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
+#define GL_DEBUG_TYPE_ERROR 0x824C
+#define GL_DEBUG_TYPE_MARKER 0x8268
+#define GL_DEBUG_TYPE_OTHER 0x8251
+#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
+#define GL_DEBUG_TYPE_POP_GROUP 0x826A
+#define GL_DEBUG_TYPE_PORTABILITY 0x824F
+#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
+#define GL_DEPTH_COMPONENTS 0x8284
+#define GL_DEPTH_RENDERABLE 0x8287
+#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA
+#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE
+#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF
+#define GL_DISPLAY_LIST 0x82E7
+#define GL_FILTER 0x829A
+#define GL_FRAGMENT_SUBROUTINE 0x92EC
+#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2
+#define GL_FRAGMENT_TEXTURE 0x829F
+#define GL_FRAMEBUFFER_BLEND 0x828B
+#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314
+#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312
+#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313
+#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310
+#define GL_FRAMEBUFFER_RENDERABLE 0x8289
+#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
+#define GL_FULL_SUPPORT 0x82B7
+#define GL_GEOMETRY_SUBROUTINE 0x92EB
+#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1
+#define GL_GEOMETRY_TEXTURE 0x829E
+#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
+#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292
+#define GL_IMAGE_CLASS_10_10_10_2 0x82C3
+#define GL_IMAGE_CLASS_11_11_10 0x82C2
+#define GL_IMAGE_CLASS_1_X_16 0x82BE
+#define GL_IMAGE_CLASS_1_X_32 0x82BB
+#define GL_IMAGE_CLASS_1_X_8 0x82C1
+#define GL_IMAGE_CLASS_2_X_16 0x82BD
+#define GL_IMAGE_CLASS_2_X_32 0x82BA
+#define GL_IMAGE_CLASS_2_X_8 0x82C0
+#define GL_IMAGE_CLASS_4_X_16 0x82BC
+#define GL_IMAGE_CLASS_4_X_32 0x82B9
+#define GL_IMAGE_CLASS_4_X_8 0x82BF
+#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
+#define GL_IMAGE_PIXEL_FORMAT 0x82A9
+#define GL_IMAGE_PIXEL_TYPE 0x82AA
+#define GL_IMAGE_TEXEL_SIZE 0x82A7
+#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
+#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
+#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273
+#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A
+#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
+#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
+#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272
+#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279
+#define GL_INTERNALFORMAT_PREFERRED 0x8270
+#define GL_INTERNALFORMAT_RED_SIZE 0x8271
+#define GL_INTERNALFORMAT_RED_TYPE 0x8278
+#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277
+#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
+#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
+#define GL_INTERNALFORMAT_SUPPORTED 0x826F
+#define GL_IS_PER_PATCH 0x92E7
+#define GL_IS_ROW_MAJOR 0x9300
+#define GL_LOCATION 0x930E
+#define GL_LOCATION_INDEX 0x930F
+#define GL_MANUAL_GENERATE_MIPMAP 0x8294
+#define GL_MATRIX_STRIDE 0x92FF
+#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266
+#define GL_MAX_COMBINED_DIMENSIONS 0x8282
+#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39
+#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC
+#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265
+#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264
+#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD
+#define GL_MAX_COMPUTE_LOCAL_INVOCATIONS 0x90EB
+#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB
+#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262
+#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC
+#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB
+#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263
+#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE
+#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF
+#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
+#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
+#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
+#define GL_MAX_DEPTH 0x8280
+#define GL_MAX_ELEMENT_INDEX 0x8D6B
+#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA
+#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316
+#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317
+#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318
+#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7
+#define GL_MAX_HEIGHT 0x827F
+#define GL_MAX_LABEL_LENGTH 0x82E8
+#define GL_MAX_LAYERS 0x8281
+#define GL_MAX_NAME_LENGTH 0x92F6
+#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7
+#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8
+#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE
+#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9
+#define GL_MAX_UNIFORM_LOCATIONS 0x826E
+#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
+#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9
+#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6
+#define GL_MAX_WIDTH 0x827E
+#define GL_MIPMAP 0x8293
+#define GL_NAME_LENGTH 0x92F9
+#define GL_NUM_ACTIVE_VARIABLES 0x9304
+#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9
+#define GL_OFFSET 0x92FC
+#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69
+#define GL_PROGRAM 0x82E2
+#define GL_PROGRAM_INPUT 0x92E3
+#define GL_PROGRAM_OUTPUT 0x92E4
+#define GL_PROGRAM_PIPELINE 0x82E4
+#define GL_QUERY 0x82E3
+#define GL_READ_PIXELS 0x828C
+#define GL_READ_PIXELS_FORMAT 0x828D
+#define GL_READ_PIXELS_TYPE 0x828E
+#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B
+#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A
+#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308
+#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306
+#define GL_SAMPLER 0x82E6
+#define GL_SHADER 0x82E1
+#define GL_SHADER_IMAGE_ATOMIC 0x82A6
+#define GL_SHADER_IMAGE_LOAD 0x82A4
+#define GL_SHADER_IMAGE_STORE 0x82A5
+#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000
+#define GL_SHADER_STORAGE_BLOCK 0x92E6
+#define GL_SHADER_STORAGE_BUFFER 0x90D2
+#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3
+#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF
+#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5
+#define GL_SHADER_STORAGE_BUFFER_START 0x90D4
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
+#define GL_SRGB_READ 0x8297
+#define GL_SRGB_WRITE 0x8298
+#define GL_STENCIL_COMPONENTS 0x8285
+#define GL_STENCIL_RENDERABLE 0x8288
+#define GL_TESS_CONTROL_SUBROUTINE 0x92E9
+#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF
+#define GL_TESS_CONTROL_TEXTURE 0x829C
+#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA
+#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0
+#define GL_TESS_EVALUATION_TEXTURE 0x829D
+#define GL_TEXTURE_BUFFER_OFFSET 0x919D
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F
+#define GL_TEXTURE_BUFFER_SIZE 0x919E
+#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
+#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
+#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
+#define GL_TEXTURE_GATHER 0x82A2
+#define GL_TEXTURE_GATHER_SHADOW 0x82A3
+#define GL_TEXTURE_IMAGE_FORMAT 0x828F
+#define GL_TEXTURE_IMAGE_TYPE 0x8290
+#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF
+#define GL_TEXTURE_SHADOW 0x82A1
+#define GL_TEXTURE_VIEW 0x82B5
+#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD
+#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB
+#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE
+#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC
+#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C
+#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D
+#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4
+#define GL_TYPE 0x92FA
+#define GL_UNIFORM 0x92E1
+#define GL_UNIFORM_BLOCK 0x92E2
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC
+#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E
+#define GL_VERTEX_ATTRIB_BINDING 0x82D4
+#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5
+#define GL_VERTEX_BINDING_DIVISOR 0x82D6
+#define GL_VERTEX_BINDING_OFFSET 0x82D7
+#define GL_VERTEX_BINDING_STRIDE 0x82D8
+#define GL_VERTEX_SUBROUTINE 0x92E8
+#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE
+#define GL_VERTEX_TEXTURE 0x829B
+#define GL_VIEW_CLASS_128_BITS 0x82C4
+#define GL_VIEW_CLASS_16_BITS 0x82CA
+#define GL_VIEW_CLASS_24_BITS 0x82C9
+#define GL_VIEW_CLASS_32_BITS 0x82C8
+#define GL_VIEW_CLASS_48_BITS 0x82C7
+#define GL_VIEW_CLASS_64_BITS 0x82C6
+#define GL_VIEW_CLASS_8_BITS 0x82CB
+#define GL_VIEW_CLASS_96_BITS 0x82C5
+#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
+#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2
+#define GL_VIEW_CLASS_RGTC1_RED 0x82D0
+#define GL_VIEW_CLASS_RGTC2_RG 0x82D1
+#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
+#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
+#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
+#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
+#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6
+
+#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
+#define GL_BUFFER_STORAGE_FLAGS 0x8220
+#define GL_CLEAR_TEXTURE 0x9365
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
+#define GL_CLIENT_STORAGE_BIT 0x0200
+#define GL_DYNAMIC_STORAGE_BIT 0x0100
+#define GL_LOCATION_COMPONENT 0x934A
+#define GL_MAP_COHERENT_BIT 0x0080
+#define GL_MAP_PERSISTENT_BIT 0x0040
+#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
+#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
+#define GL_QUERY_BUFFER 0x9192
+#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
+#define GL_QUERY_BUFFER_BINDING 0x9193
+#define GL_QUERY_RESULT_NO_WAIT 0x9194
+#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
+#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
+
+
+
+
+#ifndef GL_ARB_framebuffer_object
+#define GL_ARB_framebuffer_object 1
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindFramebuffer)(GLenum, GLuint);
+#define glBindFramebuffer _ptrc_glBindFramebuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindRenderbuffer)(GLenum, GLuint);
+#define glBindRenderbuffer _ptrc_glBindRenderbuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
+#define glBlitFramebuffer _ptrc_glBlitFramebuffer
+extern GLenum (CODEGEN_FUNCPTR *_ptrc_glCheckFramebufferStatus)(GLenum);
+#define glCheckFramebufferStatus _ptrc_glCheckFramebufferStatus
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteFramebuffers)(GLsizei, const GLuint *);
+#define glDeleteFramebuffers _ptrc_glDeleteFramebuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteRenderbuffers)(GLsizei, const GLuint *);
+#define glDeleteRenderbuffers _ptrc_glDeleteRenderbuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferRenderbuffer)(GLenum, GLenum, GLenum, GLuint);
+#define glFramebufferRenderbuffer _ptrc_glFramebufferRenderbuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture1D)(GLenum, GLenum, GLenum, GLuint, GLint);
+#define glFramebufferTexture1D _ptrc_glFramebufferTexture1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture2D)(GLenum, GLenum, GLenum, GLuint, GLint);
+#define glFramebufferTexture2D _ptrc_glFramebufferTexture2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture3D)(GLenum, GLenum, GLenum, GLuint, GLint, GLint);
+#define glFramebufferTexture3D _ptrc_glFramebufferTexture3D
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint);
+#define glFramebufferTextureLayer _ptrc_glFramebufferTextureLayer
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenFramebuffers)(GLsizei, GLuint *);
+#define glGenFramebuffers _ptrc_glGenFramebuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenRenderbuffers)(GLsizei, GLuint *);
+#define glGenRenderbuffers _ptrc_glGenRenderbuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenerateMipmap)(GLenum);
+#define glGenerateMipmap _ptrc_glGenerateMipmap
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferAttachmentParameteriv)(GLenum, GLenum, GLenum, GLint *);
+#define glGetFramebufferAttachmentParameteriv _ptrc_glGetFramebufferAttachmentParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *);
+#define glGetRenderbufferParameteriv _ptrc_glGetRenderbufferParameteriv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsFramebuffer)(GLuint);
+#define glIsFramebuffer _ptrc_glIsFramebuffer
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsRenderbuffer)(GLuint);
+#define glIsRenderbuffer _ptrc_glIsRenderbuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei);
+#define glRenderbufferStorage _ptrc_glRenderbufferStorage
+extern void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+#define glRenderbufferStorageMultisample _ptrc_glRenderbufferStorageMultisample
+#endif /*GL_ARB_framebuffer_object*/ 
+
+
+#ifndef GL_ARB_separate_shader_objects
+#define GL_ARB_separate_shader_objects 1
+extern void (CODEGEN_FUNCPTR *_ptrc_glActiveShaderProgram)(GLuint, GLuint);
+#define glActiveShaderProgram _ptrc_glActiveShaderProgram
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindProgramPipeline)(GLuint);
+#define glBindProgramPipeline _ptrc_glBindProgramPipeline
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShaderProgramv)(GLenum, GLsizei, const GLchar *const*);
+#define glCreateShaderProgramv _ptrc_glCreateShaderProgramv
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgramPipelines)(GLsizei, const GLuint *);
+#define glDeleteProgramPipelines _ptrc_glDeleteProgramPipelines
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenProgramPipelines)(GLsizei, GLuint *);
+#define glGenProgramPipelines _ptrc_glGenProgramPipelines
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetProgramPipelineInfoLog _ptrc_glGetProgramPipelineInfoLog
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineiv)(GLuint, GLenum, GLint *);
+#define glGetProgramPipelineiv _ptrc_glGetProgramPipelineiv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgramPipeline)(GLuint);
+#define glIsProgramPipeline _ptrc_glIsProgramPipeline
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1d)(GLuint, GLint, GLdouble);
+#define glProgramUniform1d _ptrc_glProgramUniform1d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform1dv _ptrc_glProgramUniform1dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1f)(GLuint, GLint, GLfloat);
+#define glProgramUniform1f _ptrc_glProgramUniform1f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform1fv _ptrc_glProgramUniform1fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1i)(GLuint, GLint, GLint);
+#define glProgramUniform1i _ptrc_glProgramUniform1i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform1iv _ptrc_glProgramUniform1iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1ui)(GLuint, GLint, GLuint);
+#define glProgramUniform1ui _ptrc_glProgramUniform1ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform1uiv _ptrc_glProgramUniform1uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2d)(GLuint, GLint, GLdouble, GLdouble);
+#define glProgramUniform2d _ptrc_glProgramUniform2d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform2dv _ptrc_glProgramUniform2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2f)(GLuint, GLint, GLfloat, GLfloat);
+#define glProgramUniform2f _ptrc_glProgramUniform2f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform2fv _ptrc_glProgramUniform2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2i)(GLuint, GLint, GLint, GLint);
+#define glProgramUniform2i _ptrc_glProgramUniform2i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform2iv _ptrc_glProgramUniform2iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2ui)(GLuint, GLint, GLuint, GLuint);
+#define glProgramUniform2ui _ptrc_glProgramUniform2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform2uiv _ptrc_glProgramUniform2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3d)(GLuint, GLint, GLdouble, GLdouble, GLdouble);
+#define glProgramUniform3d _ptrc_glProgramUniform3d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform3dv _ptrc_glProgramUniform3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3f)(GLuint, GLint, GLfloat, GLfloat, GLfloat);
+#define glProgramUniform3f _ptrc_glProgramUniform3f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform3fv _ptrc_glProgramUniform3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3i)(GLuint, GLint, GLint, GLint, GLint);
+#define glProgramUniform3i _ptrc_glProgramUniform3i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform3iv _ptrc_glProgramUniform3iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3ui)(GLuint, GLint, GLuint, GLuint, GLuint);
+#define glProgramUniform3ui _ptrc_glProgramUniform3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform3uiv _ptrc_glProgramUniform3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4d)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define glProgramUniform4d _ptrc_glProgramUniform4d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform4dv _ptrc_glProgramUniform4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4f)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define glProgramUniform4f _ptrc_glProgramUniform4f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform4fv _ptrc_glProgramUniform4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4i)(GLuint, GLint, GLint, GLint, GLint, GLint);
+#define glProgramUniform4i _ptrc_glProgramUniform4i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform4iv _ptrc_glProgramUniform4iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4ui)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint);
+#define glProgramUniform4ui _ptrc_glProgramUniform4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform4uiv _ptrc_glProgramUniform4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix2dv _ptrc_glProgramUniformMatrix2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix2fv _ptrc_glProgramUniformMatrix2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix2x3dv _ptrc_glProgramUniformMatrix2x3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix2x3fv _ptrc_glProgramUniformMatrix2x3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix2x4dv _ptrc_glProgramUniformMatrix2x4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix2x4fv _ptrc_glProgramUniformMatrix2x4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix3dv _ptrc_glProgramUniformMatrix3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix3fv _ptrc_glProgramUniformMatrix3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix3x2dv _ptrc_glProgramUniformMatrix3x2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix3x2fv _ptrc_glProgramUniformMatrix3x2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix3x4dv _ptrc_glProgramUniformMatrix3x4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix3x4fv _ptrc_glProgramUniformMatrix3x4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix4dv _ptrc_glProgramUniformMatrix4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix4fv _ptrc_glProgramUniformMatrix4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix4x2dv _ptrc_glProgramUniformMatrix4x2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix4x2fv _ptrc_glProgramUniformMatrix4x2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix4x3dv _ptrc_glProgramUniformMatrix4x3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix4x3fv _ptrc_glProgramUniformMatrix4x3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUseProgramStages)(GLuint, GLbitfield, GLuint);
+#define glUseProgramStages _ptrc_glUseProgramStages
+extern void (CODEGEN_FUNCPTR *_ptrc_glValidateProgramPipeline)(GLuint);
+#define glValidateProgramPipeline _ptrc_glValidateProgramPipeline
+#endif /*GL_ARB_separate_shader_objects*/ 
+
+#ifndef GL_ARB_debug_output
+#define GL_ARB_debug_output 1
+extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageCallbackARB)(GLDEBUGPROCARB, const void *);
+#define glDebugMessageCallbackARB _ptrc_glDebugMessageCallbackARB
+extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageControlARB)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean);
+#define glDebugMessageControlARB _ptrc_glDebugMessageControlARB
+extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageInsertARB)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *);
+#define glDebugMessageInsertARB _ptrc_glDebugMessageInsertARB
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetDebugMessageLogARB)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *);
+#define glGetDebugMessageLogARB _ptrc_glGetDebugMessageLogARB
+#endif /*GL_ARB_debug_output*/ 
+
+#ifndef GL_ARB_copy_image
+#define GL_ARB_copy_image 1
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubData)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
+#define glCopyImageSubData _ptrc_glCopyImageSubData
+#endif /*GL_ARB_copy_image*/ 
+
+#ifndef GL_NV_copy_image
+#define GL_NV_copy_image 1
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubDataNV)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
+#define glCopyImageSubDataNV _ptrc_glCopyImageSubDataNV
+#endif /*GL_NV_copy_image*/ 
+
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFunc)(GLenum, GLenum);
+#define glBlendFunc _ptrc_glBlendFunc
+extern void (CODEGEN_FUNCPTR *_ptrc_glClear)(GLbitfield);
+#define glClear _ptrc_glClear
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearColor)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define glClearColor _ptrc_glClearColor
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearDepth)(GLdouble);
+#define glClearDepth _ptrc_glClearDepth
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearStencil)(GLint);
+#define glClearStencil _ptrc_glClearStencil
+extern void (CODEGEN_FUNCPTR *_ptrc_glColorMask)(GLboolean, GLboolean, GLboolean, GLboolean);
+#define glColorMask _ptrc_glColorMask
+extern void (CODEGEN_FUNCPTR *_ptrc_glCullFace)(GLenum);
+#define glCullFace _ptrc_glCullFace
+extern void (CODEGEN_FUNCPTR *_ptrc_glDepthFunc)(GLenum);
+#define glDepthFunc _ptrc_glDepthFunc
+extern void (CODEGEN_FUNCPTR *_ptrc_glDepthMask)(GLboolean);
+#define glDepthMask _ptrc_glDepthMask
+extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRange)(GLdouble, GLdouble);
+#define glDepthRange _ptrc_glDepthRange
+extern void (CODEGEN_FUNCPTR *_ptrc_glDisable)(GLenum);
+#define glDisable _ptrc_glDisable
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffer)(GLenum);
+#define glDrawBuffer _ptrc_glDrawBuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glEnable)(GLenum);
+#define glEnable _ptrc_glEnable
+extern void (CODEGEN_FUNCPTR *_ptrc_glFinish)();
+#define glFinish _ptrc_glFinish
+extern void (CODEGEN_FUNCPTR *_ptrc_glFlush)();
+#define glFlush _ptrc_glFlush
+extern void (CODEGEN_FUNCPTR *_ptrc_glFrontFace)(GLenum);
+#define glFrontFace _ptrc_glFrontFace
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetBooleanv)(GLenum, GLboolean *);
+#define glGetBooleanv _ptrc_glGetBooleanv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetDoublev)(GLenum, GLdouble *);
+#define glGetDoublev _ptrc_glGetDoublev
+extern GLenum (CODEGEN_FUNCPTR *_ptrc_glGetError)();
+#define glGetError _ptrc_glGetError
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetFloatv)(GLenum, GLfloat *);
+#define glGetFloatv _ptrc_glGetFloatv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetIntegerv)(GLenum, GLint *);
+#define glGetIntegerv _ptrc_glGetIntegerv
+extern const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetString)(GLenum);
+#define glGetString _ptrc_glGetString
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *);
+#define glGetTexImage _ptrc_glGetTexImage
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *);
+#define glGetTexLevelParameterfv _ptrc_glGetTexLevelParameterfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *);
+#define glGetTexLevelParameteriv _ptrc_glGetTexLevelParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterfv)(GLenum, GLenum, GLfloat *);
+#define glGetTexParameterfv _ptrc_glGetTexParameterfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameteriv)(GLenum, GLenum, GLint *);
+#define glGetTexParameteriv _ptrc_glGetTexParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glHint)(GLenum, GLenum);
+#define glHint _ptrc_glHint
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabled)(GLenum);
+#define glIsEnabled _ptrc_glIsEnabled
+extern void (CODEGEN_FUNCPTR *_ptrc_glLineWidth)(GLfloat);
+#define glLineWidth _ptrc_glLineWidth
+extern void (CODEGEN_FUNCPTR *_ptrc_glLogicOp)(GLenum);
+#define glLogicOp _ptrc_glLogicOp
+extern void (CODEGEN_FUNCPTR *_ptrc_glPixelStoref)(GLenum, GLfloat);
+#define glPixelStoref _ptrc_glPixelStoref
+extern void (CODEGEN_FUNCPTR *_ptrc_glPixelStorei)(GLenum, GLint);
+#define glPixelStorei _ptrc_glPixelStorei
+extern void (CODEGEN_FUNCPTR *_ptrc_glPointSize)(GLfloat);
+#define glPointSize _ptrc_glPointSize
+extern void (CODEGEN_FUNCPTR *_ptrc_glPolygonMode)(GLenum, GLenum);
+#define glPolygonMode _ptrc_glPolygonMode
+extern void (CODEGEN_FUNCPTR *_ptrc_glReadBuffer)(GLenum);
+#define glReadBuffer _ptrc_glReadBuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
+#define glReadPixels _ptrc_glReadPixels
+extern void (CODEGEN_FUNCPTR *_ptrc_glScissor)(GLint, GLint, GLsizei, GLsizei);
+#define glScissor _ptrc_glScissor
+extern void (CODEGEN_FUNCPTR *_ptrc_glStencilFunc)(GLenum, GLint, GLuint);
+#define glStencilFunc _ptrc_glStencilFunc
+extern void (CODEGEN_FUNCPTR *_ptrc_glStencilMask)(GLuint);
+#define glStencilMask _ptrc_glStencilMask
+extern void (CODEGEN_FUNCPTR *_ptrc_glStencilOp)(GLenum, GLenum, GLenum);
+#define glStencilOp _ptrc_glStencilOp
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+#define glTexImage1D _ptrc_glTexImage1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+#define glTexImage2D _ptrc_glTexImage2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterf)(GLenum, GLenum, GLfloat);
+#define glTexParameterf _ptrc_glTexParameterf
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterfv)(GLenum, GLenum, const GLfloat *);
+#define glTexParameterfv _ptrc_glTexParameterfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameteri)(GLenum, GLenum, GLint);
+#define glTexParameteri _ptrc_glTexParameteri
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameteriv)(GLenum, GLenum, const GLint *);
+#define glTexParameteriv _ptrc_glTexParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glViewport)(GLint, GLint, GLsizei, GLsizei);
+#define glViewport _ptrc_glViewport
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindTexture)(GLenum, GLuint);
+#define glBindTexture _ptrc_glBindTexture
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
+#define glCopyTexImage1D _ptrc_glCopyTexImage1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+#define glCopyTexImage2D _ptrc_glCopyTexImage2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
+#define glCopyTexSubImage1D _ptrc_glCopyTexSubImage1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+#define glCopyTexSubImage2D _ptrc_glCopyTexSubImage2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteTextures)(GLsizei, const GLuint *);
+#define glDeleteTextures _ptrc_glDeleteTextures
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArrays)(GLenum, GLint, GLsizei);
+#define glDrawArrays _ptrc_glDrawArrays
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElements)(GLenum, GLsizei, GLenum, const GLvoid *);
+#define glDrawElements _ptrc_glDrawElements
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenTextures)(GLsizei, GLuint *);
+#define glGenTextures _ptrc_glGenTextures
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetPointerv)(GLenum, GLvoid **);
+#define glGetPointerv _ptrc_glGetPointerv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTexture)(GLuint);
+#define glIsTexture _ptrc_glIsTexture
+extern void (CODEGEN_FUNCPTR *_ptrc_glPolygonOffset)(GLfloat, GLfloat);
+#define glPolygonOffset _ptrc_glPolygonOffset
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
+#define glTexSubImage1D _ptrc_glTexSubImage1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#define glTexSubImage2D _ptrc_glTexSubImage2D
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendColor)(GLfloat, GLfloat, GLfloat, GLfloat);
+#define glBlendColor _ptrc_glBlendColor
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquation)(GLenum);
+#define glBlendEquation _ptrc_glBlendEquation
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+#define glCopyTexSubImage3D _ptrc_glCopyTexSubImage3D
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
+#define glDrawRangeElements _ptrc_glDrawRangeElements
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
+#define glTexImage3D _ptrc_glTexImage3D
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
+#define glTexSubImage3D _ptrc_glTexSubImage3D
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glActiveTexture)(GLenum);
+#define glActiveTexture _ptrc_glActiveTexture
+extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage1D)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *);
+#define glCompressedTexImage1D _ptrc_glCompressedTexImage1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage2D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+#define glCompressedTexImage2D _ptrc_glCompressedTexImage2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *);
+#define glCompressedTexImage3D _ptrc_glCompressedTexImage3D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *);
+#define glCompressedTexSubImage1D _ptrc_glCompressedTexSubImage1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+#define glCompressedTexSubImage2D _ptrc_glCompressedTexSubImage2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glCompressedTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *);
+#define glCompressedTexSubImage3D _ptrc_glCompressedTexSubImage3D
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetCompressedTexImage)(GLenum, GLint, GLvoid *);
+#define glGetCompressedTexImage _ptrc_glGetCompressedTexImage
+extern void (CODEGEN_FUNCPTR *_ptrc_glSampleCoverage)(GLfloat, GLboolean);
+#define glSampleCoverage _ptrc_glSampleCoverage
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparate)(GLenum, GLenum, GLenum, GLenum);
+#define glBlendFuncSeparate _ptrc_glBlendFuncSeparate
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArrays)(GLenum, const GLint *, const GLsizei *, GLsizei);
+#define glMultiDrawArrays _ptrc_glMultiDrawArrays
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElements)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei);
+#define glMultiDrawElements _ptrc_glMultiDrawElements
+extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameterf)(GLenum, GLfloat);
+#define glPointParameterf _ptrc_glPointParameterf
+extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameterfv)(GLenum, const GLfloat *);
+#define glPointParameterfv _ptrc_glPointParameterfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameteri)(GLenum, GLint);
+#define glPointParameteri _ptrc_glPointParameteri
+extern void (CODEGEN_FUNCPTR *_ptrc_glPointParameteriv)(GLenum, const GLint *);
+#define glPointParameteriv _ptrc_glPointParameteriv
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBeginQuery)(GLenum, GLuint);
+#define glBeginQuery _ptrc_glBeginQuery
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindBuffer)(GLenum, GLuint);
+#define glBindBuffer _ptrc_glBindBuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glBufferData)(GLenum, GLsizeiptr, const GLvoid *, GLenum);
+#define glBufferData _ptrc_glBufferData
+extern void (CODEGEN_FUNCPTR *_ptrc_glBufferSubData)(GLenum, GLintptr, GLsizeiptr, const GLvoid *);
+#define glBufferSubData _ptrc_glBufferSubData
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteBuffers)(GLsizei, const GLuint *);
+#define glDeleteBuffers _ptrc_glDeleteBuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteQueries)(GLsizei, const GLuint *);
+#define glDeleteQueries _ptrc_glDeleteQueries
+extern void (CODEGEN_FUNCPTR *_ptrc_glEndQuery)(GLenum);
+#define glEndQuery _ptrc_glEndQuery
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenBuffers)(GLsizei, GLuint *);
+#define glGenBuffers _ptrc_glGenBuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenQueries)(GLsizei, GLuint *);
+#define glGenQueries _ptrc_glGenQueries
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteriv)(GLenum, GLenum, GLint *);
+#define glGetBufferParameteriv _ptrc_glGetBufferParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferPointerv)(GLenum, GLenum, GLvoid **);
+#define glGetBufferPointerv _ptrc_glGetBufferPointerv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferSubData)(GLenum, GLintptr, GLsizeiptr, GLvoid *);
+#define glGetBufferSubData _ptrc_glGetBufferSubData
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectiv)(GLuint, GLenum, GLint *);
+#define glGetQueryObjectiv _ptrc_glGetQueryObjectiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectuiv)(GLuint, GLenum, GLuint *);
+#define glGetQueryObjectuiv _ptrc_glGetQueryObjectuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryiv)(GLenum, GLenum, GLint *);
+#define glGetQueryiv _ptrc_glGetQueryiv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsBuffer)(GLuint);
+#define glIsBuffer _ptrc_glIsBuffer
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsQuery)(GLuint);
+#define glIsQuery _ptrc_glIsQuery
+extern void * (CODEGEN_FUNCPTR *_ptrc_glMapBuffer)(GLenum, GLenum);
+#define glMapBuffer _ptrc_glMapBuffer
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glUnmapBuffer)(GLenum);
+#define glUnmapBuffer _ptrc_glUnmapBuffer
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glAttachShader)(GLuint, GLuint);
+#define glAttachShader _ptrc_glAttachShader
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindAttribLocation)(GLuint, GLuint, const GLchar *);
+#define glBindAttribLocation _ptrc_glBindAttribLocation
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparate)(GLenum, GLenum);
+#define glBlendEquationSeparate _ptrc_glBlendEquationSeparate
+extern void (CODEGEN_FUNCPTR *_ptrc_glCompileShader)(GLuint);
+#define glCompileShader _ptrc_glCompileShader
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateProgram)();
+#define glCreateProgram _ptrc_glCreateProgram
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShader)(GLenum);
+#define glCreateShader _ptrc_glCreateShader
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgram)(GLuint);
+#define glDeleteProgram _ptrc_glDeleteProgram
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteShader)(GLuint);
+#define glDeleteShader _ptrc_glDeleteShader
+extern void (CODEGEN_FUNCPTR *_ptrc_glDetachShader)(GLuint, GLuint);
+#define glDetachShader _ptrc_glDetachShader
+extern void (CODEGEN_FUNCPTR *_ptrc_glDisableVertexAttribArray)(GLuint);
+#define glDisableVertexAttribArray _ptrc_glDisableVertexAttribArray
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawBuffers)(GLsizei, const GLenum *);
+#define glDrawBuffers _ptrc_glDrawBuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glEnableVertexAttribArray)(GLuint);
+#define glEnableVertexAttribArray _ptrc_glEnableVertexAttribArray
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAttrib)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
+#define glGetActiveAttrib _ptrc_glGetActiveAttrib
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniform)(GLuint, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLchar *);
+#define glGetActiveUniform _ptrc_glGetActiveUniform
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetAttachedShaders)(GLuint, GLsizei, GLsizei *, GLuint *);
+#define glGetAttachedShaders _ptrc_glGetAttachedShaders
+extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetAttribLocation)(GLuint, const GLchar *);
+#define glGetAttribLocation _ptrc_glGetAttribLocation
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetProgramInfoLog _ptrc_glGetProgramInfoLog
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramiv)(GLuint, GLenum, GLint *);
+#define glGetProgramiv _ptrc_glGetProgramiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetShaderInfoLog _ptrc_glGetShaderInfoLog
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderSource)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetShaderSource _ptrc_glGetShaderSource
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderiv)(GLuint, GLenum, GLint *);
+#define glGetShaderiv _ptrc_glGetShaderiv
+extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetUniformLocation)(GLuint, const GLchar *);
+#define glGetUniformLocation _ptrc_glGetUniformLocation
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformfv)(GLuint, GLint, GLfloat *);
+#define glGetUniformfv _ptrc_glGetUniformfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformiv)(GLuint, GLint, GLint *);
+#define glGetUniformiv _ptrc_glGetUniformiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribPointerv)(GLuint, GLenum, GLvoid **);
+#define glGetVertexAttribPointerv _ptrc_glGetVertexAttribPointerv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribdv)(GLuint, GLenum, GLdouble *);
+#define glGetVertexAttribdv _ptrc_glGetVertexAttribdv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribfv)(GLuint, GLenum, GLfloat *);
+#define glGetVertexAttribfv _ptrc_glGetVertexAttribfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribiv)(GLuint, GLenum, GLint *);
+#define glGetVertexAttribiv _ptrc_glGetVertexAttribiv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgram)(GLuint);
+#define glIsProgram _ptrc_glIsProgram
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsShader)(GLuint);
+#define glIsShader _ptrc_glIsShader
+extern void (CODEGEN_FUNCPTR *_ptrc_glLinkProgram)(GLuint);
+#define glLinkProgram _ptrc_glLinkProgram
+extern void (CODEGEN_FUNCPTR *_ptrc_glShaderSource)(GLuint, GLsizei, const GLchar *const*, const GLint *);
+#define glShaderSource _ptrc_glShaderSource
+extern void (CODEGEN_FUNCPTR *_ptrc_glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint);
+#define glStencilFuncSeparate _ptrc_glStencilFuncSeparate
+extern void (CODEGEN_FUNCPTR *_ptrc_glStencilMaskSeparate)(GLenum, GLuint);
+#define glStencilMaskSeparate _ptrc_glStencilMaskSeparate
+extern void (CODEGEN_FUNCPTR *_ptrc_glStencilOpSeparate)(GLenum, GLenum, GLenum, GLenum);
+#define glStencilOpSeparate _ptrc_glStencilOpSeparate
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1f)(GLint, GLfloat);
+#define glUniform1f _ptrc_glUniform1f
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1fv)(GLint, GLsizei, const GLfloat *);
+#define glUniform1fv _ptrc_glUniform1fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1i)(GLint, GLint);
+#define glUniform1i _ptrc_glUniform1i
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1iv)(GLint, GLsizei, const GLint *);
+#define glUniform1iv _ptrc_glUniform1iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2f)(GLint, GLfloat, GLfloat);
+#define glUniform2f _ptrc_glUniform2f
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2fv)(GLint, GLsizei, const GLfloat *);
+#define glUniform2fv _ptrc_glUniform2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2i)(GLint, GLint, GLint);
+#define glUniform2i _ptrc_glUniform2i
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2iv)(GLint, GLsizei, const GLint *);
+#define glUniform2iv _ptrc_glUniform2iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3f)(GLint, GLfloat, GLfloat, GLfloat);
+#define glUniform3f _ptrc_glUniform3f
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3fv)(GLint, GLsizei, const GLfloat *);
+#define glUniform3fv _ptrc_glUniform3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3i)(GLint, GLint, GLint, GLint);
+#define glUniform3i _ptrc_glUniform3i
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3iv)(GLint, GLsizei, const GLint *);
+#define glUniform3iv _ptrc_glUniform3iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4f)(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define glUniform4f _ptrc_glUniform4f
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4fv)(GLint, GLsizei, const GLfloat *);
+#define glUniform4fv _ptrc_glUniform4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4i)(GLint, GLint, GLint, GLint, GLint);
+#define glUniform4i _ptrc_glUniform4i
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4iv)(GLint, GLsizei, const GLint *);
+#define glUniform4iv _ptrc_glUniform4iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix2fv _ptrc_glUniformMatrix2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix3fv _ptrc_glUniformMatrix3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix4fv _ptrc_glUniformMatrix4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUseProgram)(GLuint);
+#define glUseProgram _ptrc_glUseProgram
+extern void (CODEGEN_FUNCPTR *_ptrc_glValidateProgram)(GLuint);
+#define glValidateProgram _ptrc_glValidateProgram
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1d)(GLuint, GLdouble);
+#define glVertexAttrib1d _ptrc_glVertexAttrib1d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1dv)(GLuint, const GLdouble *);
+#define glVertexAttrib1dv _ptrc_glVertexAttrib1dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1f)(GLuint, GLfloat);
+#define glVertexAttrib1f _ptrc_glVertexAttrib1f
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1fv)(GLuint, const GLfloat *);
+#define glVertexAttrib1fv _ptrc_glVertexAttrib1fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1s)(GLuint, GLshort);
+#define glVertexAttrib1s _ptrc_glVertexAttrib1s
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib1sv)(GLuint, const GLshort *);
+#define glVertexAttrib1sv _ptrc_glVertexAttrib1sv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2d)(GLuint, GLdouble, GLdouble);
+#define glVertexAttrib2d _ptrc_glVertexAttrib2d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2dv)(GLuint, const GLdouble *);
+#define glVertexAttrib2dv _ptrc_glVertexAttrib2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2f)(GLuint, GLfloat, GLfloat);
+#define glVertexAttrib2f _ptrc_glVertexAttrib2f
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2fv)(GLuint, const GLfloat *);
+#define glVertexAttrib2fv _ptrc_glVertexAttrib2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2s)(GLuint, GLshort, GLshort);
+#define glVertexAttrib2s _ptrc_glVertexAttrib2s
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib2sv)(GLuint, const GLshort *);
+#define glVertexAttrib2sv _ptrc_glVertexAttrib2sv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3d)(GLuint, GLdouble, GLdouble, GLdouble);
+#define glVertexAttrib3d _ptrc_glVertexAttrib3d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3dv)(GLuint, const GLdouble *);
+#define glVertexAttrib3dv _ptrc_glVertexAttrib3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3f)(GLuint, GLfloat, GLfloat, GLfloat);
+#define glVertexAttrib3f _ptrc_glVertexAttrib3f
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3fv)(GLuint, const GLfloat *);
+#define glVertexAttrib3fv _ptrc_glVertexAttrib3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3s)(GLuint, GLshort, GLshort, GLshort);
+#define glVertexAttrib3s _ptrc_glVertexAttrib3s
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib3sv)(GLuint, const GLshort *);
+#define glVertexAttrib3sv _ptrc_glVertexAttrib3sv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nbv)(GLuint, const GLbyte *);
+#define glVertexAttrib4Nbv _ptrc_glVertexAttrib4Nbv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Niv)(GLuint, const GLint *);
+#define glVertexAttrib4Niv _ptrc_glVertexAttrib4Niv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nsv)(GLuint, const GLshort *);
+#define glVertexAttrib4Nsv _ptrc_glVertexAttrib4Nsv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nub)(GLuint, GLubyte, GLubyte, GLubyte, GLubyte);
+#define glVertexAttrib4Nub _ptrc_glVertexAttrib4Nub
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nubv)(GLuint, const GLubyte *);
+#define glVertexAttrib4Nubv _ptrc_glVertexAttrib4Nubv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nuiv)(GLuint, const GLuint *);
+#define glVertexAttrib4Nuiv _ptrc_glVertexAttrib4Nuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4Nusv)(GLuint, const GLushort *);
+#define glVertexAttrib4Nusv _ptrc_glVertexAttrib4Nusv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4bv)(GLuint, const GLbyte *);
+#define glVertexAttrib4bv _ptrc_glVertexAttrib4bv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define glVertexAttrib4d _ptrc_glVertexAttrib4d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4dv)(GLuint, const GLdouble *);
+#define glVertexAttrib4dv _ptrc_glVertexAttrib4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4f)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define glVertexAttrib4f _ptrc_glVertexAttrib4f
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4fv)(GLuint, const GLfloat *);
+#define glVertexAttrib4fv _ptrc_glVertexAttrib4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4iv)(GLuint, const GLint *);
+#define glVertexAttrib4iv _ptrc_glVertexAttrib4iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4s)(GLuint, GLshort, GLshort, GLshort, GLshort);
+#define glVertexAttrib4s _ptrc_glVertexAttrib4s
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4sv)(GLuint, const GLshort *);
+#define glVertexAttrib4sv _ptrc_glVertexAttrib4sv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4ubv)(GLuint, const GLubyte *);
+#define glVertexAttrib4ubv _ptrc_glVertexAttrib4ubv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4uiv)(GLuint, const GLuint *);
+#define glVertexAttrib4uiv _ptrc_glVertexAttrib4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttrib4usv)(GLuint, const GLushort *);
+#define glVertexAttrib4usv _ptrc_glVertexAttrib4usv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribPointer)(GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *);
+#define glVertexAttribPointer _ptrc_glVertexAttribPointer
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix2x3fv _ptrc_glUniformMatrix2x3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix2x4fv _ptrc_glUniformMatrix2x4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix3x2fv _ptrc_glUniformMatrix3x2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix3x4fv _ptrc_glUniformMatrix3x4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix4x2fv _ptrc_glUniformMatrix4x2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3fv)(GLint, GLsizei, GLboolean, const GLfloat *);
+#define glUniformMatrix4x3fv _ptrc_glUniformMatrix4x3fv
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBeginConditionalRender)(GLuint, GLenum);
+#define glBeginConditionalRender _ptrc_glBeginConditionalRender
+extern void (CODEGEN_FUNCPTR *_ptrc_glBeginTransformFeedback)(GLenum);
+#define glBeginTransformFeedback _ptrc_glBeginTransformFeedback
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindBufferBase)(GLenum, GLuint, GLuint);
+#define glBindBufferBase _ptrc_glBindBufferBase
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindBufferRange)(GLenum, GLuint, GLuint, GLintptr, GLsizeiptr);
+#define glBindBufferRange _ptrc_glBindBufferRange
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocation)(GLuint, GLuint, const GLchar *);
+#define glBindFragDataLocation _ptrc_glBindFragDataLocation
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindFramebuffer)(GLenum, GLuint);
+#define glBindFramebuffer _ptrc_glBindFramebuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindRenderbuffer)(GLenum, GLuint);
+#define glBindRenderbuffer _ptrc_glBindRenderbuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindVertexArray)(GLuint);
+#define glBindVertexArray _ptrc_glBindVertexArray
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlitFramebuffer)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
+#define glBlitFramebuffer _ptrc_glBlitFramebuffer
+extern GLenum (CODEGEN_FUNCPTR *_ptrc_glCheckFramebufferStatus)(GLenum);
+#define glCheckFramebufferStatus _ptrc_glCheckFramebufferStatus
+extern void (CODEGEN_FUNCPTR *_ptrc_glClampColor)(GLenum, GLenum);
+#define glClampColor _ptrc_glClampColor
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfi)(GLenum, GLint, GLfloat, GLint);
+#define glClearBufferfi _ptrc_glClearBufferfi
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferfv)(GLenum, GLint, const GLfloat *);
+#define glClearBufferfv _ptrc_glClearBufferfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferiv)(GLenum, GLint, const GLint *);
+#define glClearBufferiv _ptrc_glClearBufferiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferuiv)(GLenum, GLint, const GLuint *);
+#define glClearBufferuiv _ptrc_glClearBufferuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glColorMaski)(GLuint, GLboolean, GLboolean, GLboolean, GLboolean);
+#define glColorMaski _ptrc_glColorMaski
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteFramebuffers)(GLsizei, const GLuint *);
+#define glDeleteFramebuffers _ptrc_glDeleteFramebuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteRenderbuffers)(GLsizei, const GLuint *);
+#define glDeleteRenderbuffers _ptrc_glDeleteRenderbuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteVertexArrays)(GLsizei, const GLuint *);
+#define glDeleteVertexArrays _ptrc_glDeleteVertexArrays
+extern void (CODEGEN_FUNCPTR *_ptrc_glDisablei)(GLenum, GLuint);
+#define glDisablei _ptrc_glDisablei
+extern void (CODEGEN_FUNCPTR *_ptrc_glEnablei)(GLenum, GLuint);
+#define glEnablei _ptrc_glEnablei
+extern void (CODEGEN_FUNCPTR *_ptrc_glEndConditionalRender)();
+#define glEndConditionalRender _ptrc_glEndConditionalRender
+extern void (CODEGEN_FUNCPTR *_ptrc_glEndTransformFeedback)();
+#define glEndTransformFeedback _ptrc_glEndTransformFeedback
+extern void (CODEGEN_FUNCPTR *_ptrc_glFlushMappedBufferRange)(GLenum, GLintptr, GLsizeiptr);
+#define glFlushMappedBufferRange _ptrc_glFlushMappedBufferRange
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferRenderbuffer)(GLenum, GLenum, GLenum, GLuint);
+#define glFramebufferRenderbuffer _ptrc_glFramebufferRenderbuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture1D)(GLenum, GLenum, GLenum, GLuint, GLint);
+#define glFramebufferTexture1D _ptrc_glFramebufferTexture1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture2D)(GLenum, GLenum, GLenum, GLuint, GLint);
+#define glFramebufferTexture2D _ptrc_glFramebufferTexture2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture3D)(GLenum, GLenum, GLenum, GLuint, GLint, GLint);
+#define glFramebufferTexture3D _ptrc_glFramebufferTexture3D
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTextureLayer)(GLenum, GLenum, GLuint, GLint, GLint);
+#define glFramebufferTextureLayer _ptrc_glFramebufferTextureLayer
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenFramebuffers)(GLsizei, GLuint *);
+#define glGenFramebuffers _ptrc_glGenFramebuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenRenderbuffers)(GLsizei, GLuint *);
+#define glGenRenderbuffers _ptrc_glGenRenderbuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenVertexArrays)(GLsizei, GLuint *);
+#define glGenVertexArrays _ptrc_glGenVertexArrays
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenerateMipmap)(GLenum);
+#define glGenerateMipmap _ptrc_glGenerateMipmap
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetBooleani_v)(GLenum, GLuint, GLboolean *);
+#define glGetBooleani_v _ptrc_glGetBooleani_v
+extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataLocation)(GLuint, const GLchar *);
+#define glGetFragDataLocation _ptrc_glGetFragDataLocation
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferAttachmentParameteriv)(GLenum, GLenum, GLenum, GLint *);
+#define glGetFramebufferAttachmentParameteriv _ptrc_glGetFramebufferAttachmentParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetIntegeri_v)(GLenum, GLuint, GLint *);
+#define glGetIntegeri_v _ptrc_glGetIntegeri_v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetRenderbufferParameteriv)(GLenum, GLenum, GLint *);
+#define glGetRenderbufferParameteriv _ptrc_glGetRenderbufferParameteriv
+extern const GLubyte * (CODEGEN_FUNCPTR *_ptrc_glGetStringi)(GLenum, GLuint);
+#define glGetStringi _ptrc_glGetStringi
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIiv)(GLenum, GLenum, GLint *);
+#define glGetTexParameterIiv _ptrc_glGetTexParameterIiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTexParameterIuiv)(GLenum, GLenum, GLuint *);
+#define glGetTexParameterIuiv _ptrc_glGetTexParameterIuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetTransformFeedbackVarying)(GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *);
+#define glGetTransformFeedbackVarying _ptrc_glGetTransformFeedbackVarying
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformuiv)(GLuint, GLint, GLuint *);
+#define glGetUniformuiv _ptrc_glGetUniformuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIiv)(GLuint, GLenum, GLint *);
+#define glGetVertexAttribIiv _ptrc_glGetVertexAttribIiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribIuiv)(GLuint, GLenum, GLuint *);
+#define glGetVertexAttribIuiv _ptrc_glGetVertexAttribIuiv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsEnabledi)(GLenum, GLuint);
+#define glIsEnabledi _ptrc_glIsEnabledi
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsFramebuffer)(GLuint);
+#define glIsFramebuffer _ptrc_glIsFramebuffer
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsRenderbuffer)(GLuint);
+#define glIsRenderbuffer _ptrc_glIsRenderbuffer
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsVertexArray)(GLuint);
+#define glIsVertexArray _ptrc_glIsVertexArray
+extern void * (CODEGEN_FUNCPTR *_ptrc_glMapBufferRange)(GLenum, GLintptr, GLsizeiptr, GLbitfield);
+#define glMapBufferRange _ptrc_glMapBufferRange
+extern void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei);
+#define glRenderbufferStorage _ptrc_glRenderbufferStorage
+extern void (CODEGEN_FUNCPTR *_ptrc_glRenderbufferStorageMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+#define glRenderbufferStorageMultisample _ptrc_glRenderbufferStorageMultisample
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIiv)(GLenum, GLenum, const GLint *);
+#define glTexParameterIiv _ptrc_glTexParameterIiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexParameterIuiv)(GLenum, GLenum, const GLuint *);
+#define glTexParameterIuiv _ptrc_glTexParameterIuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glTransformFeedbackVaryings)(GLuint, GLsizei, const GLchar *const*, GLenum);
+#define glTransformFeedbackVaryings _ptrc_glTransformFeedbackVaryings
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1ui)(GLint, GLuint);
+#define glUniform1ui _ptrc_glUniform1ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1uiv)(GLint, GLsizei, const GLuint *);
+#define glUniform1uiv _ptrc_glUniform1uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2ui)(GLint, GLuint, GLuint);
+#define glUniform2ui _ptrc_glUniform2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2uiv)(GLint, GLsizei, const GLuint *);
+#define glUniform2uiv _ptrc_glUniform2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3ui)(GLint, GLuint, GLuint, GLuint);
+#define glUniform3ui _ptrc_glUniform3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3uiv)(GLint, GLsizei, const GLuint *);
+#define glUniform3uiv _ptrc_glUniform3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4ui)(GLint, GLuint, GLuint, GLuint, GLuint);
+#define glUniform4ui _ptrc_glUniform4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4uiv)(GLint, GLsizei, const GLuint *);
+#define glUniform4uiv _ptrc_glUniform4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1i)(GLuint, GLint);
+#define glVertexAttribI1i _ptrc_glVertexAttribI1i
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1iv)(GLuint, const GLint *);
+#define glVertexAttribI1iv _ptrc_glVertexAttribI1iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1ui)(GLuint, GLuint);
+#define glVertexAttribI1ui _ptrc_glVertexAttribI1ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI1uiv)(GLuint, const GLuint *);
+#define glVertexAttribI1uiv _ptrc_glVertexAttribI1uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2i)(GLuint, GLint, GLint);
+#define glVertexAttribI2i _ptrc_glVertexAttribI2i
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2iv)(GLuint, const GLint *);
+#define glVertexAttribI2iv _ptrc_glVertexAttribI2iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2ui)(GLuint, GLuint, GLuint);
+#define glVertexAttribI2ui _ptrc_glVertexAttribI2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI2uiv)(GLuint, const GLuint *);
+#define glVertexAttribI2uiv _ptrc_glVertexAttribI2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3i)(GLuint, GLint, GLint, GLint);
+#define glVertexAttribI3i _ptrc_glVertexAttribI3i
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3iv)(GLuint, const GLint *);
+#define glVertexAttribI3iv _ptrc_glVertexAttribI3iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3ui)(GLuint, GLuint, GLuint, GLuint);
+#define glVertexAttribI3ui _ptrc_glVertexAttribI3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI3uiv)(GLuint, const GLuint *);
+#define glVertexAttribI3uiv _ptrc_glVertexAttribI3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4bv)(GLuint, const GLbyte *);
+#define glVertexAttribI4bv _ptrc_glVertexAttribI4bv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4i)(GLuint, GLint, GLint, GLint, GLint);
+#define glVertexAttribI4i _ptrc_glVertexAttribI4i
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4iv)(GLuint, const GLint *);
+#define glVertexAttribI4iv _ptrc_glVertexAttribI4iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4sv)(GLuint, const GLshort *);
+#define glVertexAttribI4sv _ptrc_glVertexAttribI4sv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ubv)(GLuint, const GLubyte *);
+#define glVertexAttribI4ubv _ptrc_glVertexAttribI4ubv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4ui)(GLuint, GLuint, GLuint, GLuint, GLuint);
+#define glVertexAttribI4ui _ptrc_glVertexAttribI4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4uiv)(GLuint, const GLuint *);
+#define glVertexAttribI4uiv _ptrc_glVertexAttribI4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribI4usv)(GLuint, const GLushort *);
+#define glVertexAttribI4usv _ptrc_glVertexAttribI4usv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *);
+#define glVertexAttribIPointer _ptrc_glVertexAttribIPointer
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyBufferSubData)(GLenum, GLenum, GLintptr, GLintptr, GLsizeiptr);
+#define glCopyBufferSubData _ptrc_glCopyBufferSubData
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstanced)(GLenum, GLint, GLsizei, GLsizei);
+#define glDrawArraysInstanced _ptrc_glDrawArraysInstanced
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstanced)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei);
+#define glDrawElementsInstanced _ptrc_glDrawElementsInstanced
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetActiveUniformBlockName _ptrc_glGetActiveUniformBlockName
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformBlockiv)(GLuint, GLuint, GLenum, GLint *);
+#define glGetActiveUniformBlockiv _ptrc_glGetActiveUniformBlockiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformName)(GLuint, GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetActiveUniformName _ptrc_glGetActiveUniformName
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveUniformsiv)(GLuint, GLsizei, const GLuint *, GLenum, GLint *);
+#define glGetActiveUniformsiv _ptrc_glGetActiveUniformsiv
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetUniformBlockIndex)(GLuint, const GLchar *);
+#define glGetUniformBlockIndex _ptrc_glGetUniformBlockIndex
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformIndices)(GLuint, GLsizei, const GLchar *const*, GLuint *);
+#define glGetUniformIndices _ptrc_glGetUniformIndices
+extern void (CODEGEN_FUNCPTR *_ptrc_glPrimitiveRestartIndex)(GLuint);
+#define glPrimitiveRestartIndex _ptrc_glPrimitiveRestartIndex
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexBuffer)(GLenum, GLenum, GLuint);
+#define glTexBuffer _ptrc_glTexBuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformBlockBinding)(GLuint, GLuint, GLuint);
+#define glUniformBlockBinding _ptrc_glUniformBlockBinding
+
+extern GLenum (CODEGEN_FUNCPTR *_ptrc_glClientWaitSync)(GLsync, GLbitfield, GLuint64);
+#define glClientWaitSync _ptrc_glClientWaitSync
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteSync)(GLsync);
+#define glDeleteSync _ptrc_glDeleteSync
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLint);
+#define glDrawElementsBaseVertex _ptrc_glDrawElementsBaseVertex
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertex)(GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint);
+#define glDrawElementsInstancedBaseVertex _ptrc_glDrawElementsInstancedBaseVertex
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawRangeElementsBaseVertex)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint);
+#define glDrawRangeElementsBaseVertex _ptrc_glDrawRangeElementsBaseVertex
+extern GLsync (CODEGEN_FUNCPTR *_ptrc_glFenceSync)(GLenum, GLbitfield);
+#define glFenceSync _ptrc_glFenceSync
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferTexture)(GLenum, GLenum, GLuint, GLint);
+#define glFramebufferTexture _ptrc_glFramebufferTexture
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetBufferParameteri64v)(GLenum, GLenum, GLint64 *);
+#define glGetBufferParameteri64v _ptrc_glGetBufferParameteri64v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64i_v)(GLenum, GLuint, GLint64 *);
+#define glGetInteger64i_v _ptrc_glGetInteger64i_v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetInteger64v)(GLenum, GLint64 *);
+#define glGetInteger64v _ptrc_glGetInteger64v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetMultisamplefv)(GLenum, GLuint, GLfloat *);
+#define glGetMultisamplefv _ptrc_glGetMultisamplefv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetSynciv)(GLsync, GLenum, GLsizei, GLsizei *, GLint *);
+#define glGetSynciv _ptrc_glGetSynciv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSync)(GLsync);
+#define glIsSync _ptrc_glIsSync
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsBaseVertex)(GLenum, const GLsizei *, GLenum, const GLvoid *const*, GLsizei, const GLint *);
+#define glMultiDrawElementsBaseVertex _ptrc_glMultiDrawElementsBaseVertex
+extern void (CODEGEN_FUNCPTR *_ptrc_glProvokingVertex)(GLenum);
+#define glProvokingVertex _ptrc_glProvokingVertex
+extern void (CODEGEN_FUNCPTR *_ptrc_glSampleMaski)(GLuint, GLbitfield);
+#define glSampleMaski _ptrc_glSampleMaski
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage2DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean);
+#define glTexImage2DMultisample _ptrc_glTexImage2DMultisample
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexImage3DMultisample)(GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean);
+#define glTexImage3DMultisample _ptrc_glTexImage3DMultisample
+extern void (CODEGEN_FUNCPTR *_ptrc_glWaitSync)(GLsync, GLbitfield, GLuint64);
+#define glWaitSync _ptrc_glWaitSync
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindFragDataLocationIndexed)(GLuint, GLuint, GLuint, const GLchar *);
+#define glBindFragDataLocationIndexed _ptrc_glBindFragDataLocationIndexed
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindSampler)(GLuint, GLuint);
+#define glBindSampler _ptrc_glBindSampler
+extern void (CODEGEN_FUNCPTR *_ptrc_glColorP3ui)(GLenum, GLuint);
+#define glColorP3ui _ptrc_glColorP3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glColorP3uiv)(GLenum, const GLuint *);
+#define glColorP3uiv _ptrc_glColorP3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glColorP4ui)(GLenum, GLuint);
+#define glColorP4ui _ptrc_glColorP4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glColorP4uiv)(GLenum, const GLuint *);
+#define glColorP4uiv _ptrc_glColorP4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteSamplers)(GLsizei, const GLuint *);
+#define glDeleteSamplers _ptrc_glDeleteSamplers
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenSamplers)(GLsizei, GLuint *);
+#define glGenSamplers _ptrc_glGenSamplers
+extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetFragDataIndex)(GLuint, const GLchar *);
+#define glGetFragDataIndex _ptrc_glGetFragDataIndex
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjecti64v)(GLuint, GLenum, GLint64 *);
+#define glGetQueryObjecti64v _ptrc_glGetQueryObjecti64v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryObjectui64v)(GLuint, GLenum, GLuint64 *);
+#define glGetQueryObjectui64v _ptrc_glGetQueryObjectui64v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIiv)(GLuint, GLenum, GLint *);
+#define glGetSamplerParameterIiv _ptrc_glGetSamplerParameterIiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterIuiv)(GLuint, GLenum, GLuint *);
+#define glGetSamplerParameterIuiv _ptrc_glGetSamplerParameterIuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameterfv)(GLuint, GLenum, GLfloat *);
+#define glGetSamplerParameterfv _ptrc_glGetSamplerParameterfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetSamplerParameteriv)(GLuint, GLenum, GLint *);
+#define glGetSamplerParameteriv _ptrc_glGetSamplerParameteriv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsSampler)(GLuint);
+#define glIsSampler _ptrc_glIsSampler
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1ui)(GLenum, GLenum, GLuint);
+#define glMultiTexCoordP1ui _ptrc_glMultiTexCoordP1ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP1uiv)(GLenum, GLenum, const GLuint *);
+#define glMultiTexCoordP1uiv _ptrc_glMultiTexCoordP1uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2ui)(GLenum, GLenum, GLuint);
+#define glMultiTexCoordP2ui _ptrc_glMultiTexCoordP2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP2uiv)(GLenum, GLenum, const GLuint *);
+#define glMultiTexCoordP2uiv _ptrc_glMultiTexCoordP2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3ui)(GLenum, GLenum, GLuint);
+#define glMultiTexCoordP3ui _ptrc_glMultiTexCoordP3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP3uiv)(GLenum, GLenum, const GLuint *);
+#define glMultiTexCoordP3uiv _ptrc_glMultiTexCoordP3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4ui)(GLenum, GLenum, GLuint);
+#define glMultiTexCoordP4ui _ptrc_glMultiTexCoordP4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiTexCoordP4uiv)(GLenum, GLenum, const GLuint *);
+#define glMultiTexCoordP4uiv _ptrc_glMultiTexCoordP4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glNormalP3ui)(GLenum, GLuint);
+#define glNormalP3ui _ptrc_glNormalP3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glNormalP3uiv)(GLenum, const GLuint *);
+#define glNormalP3uiv _ptrc_glNormalP3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glQueryCounter)(GLuint, GLenum);
+#define glQueryCounter _ptrc_glQueryCounter
+extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIiv)(GLuint, GLenum, const GLint *);
+#define glSamplerParameterIiv _ptrc_glSamplerParameterIiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterIuiv)(GLuint, GLenum, const GLuint *);
+#define glSamplerParameterIuiv _ptrc_glSamplerParameterIuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterf)(GLuint, GLenum, GLfloat);
+#define glSamplerParameterf _ptrc_glSamplerParameterf
+extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameterfv)(GLuint, GLenum, const GLfloat *);
+#define glSamplerParameterfv _ptrc_glSamplerParameterfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteri)(GLuint, GLenum, GLint);
+#define glSamplerParameteri _ptrc_glSamplerParameteri
+extern void (CODEGEN_FUNCPTR *_ptrc_glSamplerParameteriv)(GLuint, GLenum, const GLint *);
+#define glSamplerParameteriv _ptrc_glSamplerParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3ui)(GLenum, GLuint);
+#define glSecondaryColorP3ui _ptrc_glSecondaryColorP3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glSecondaryColorP3uiv)(GLenum, const GLuint *);
+#define glSecondaryColorP3uiv _ptrc_glSecondaryColorP3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1ui)(GLenum, GLuint);
+#define glTexCoordP1ui _ptrc_glTexCoordP1ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP1uiv)(GLenum, const GLuint *);
+#define glTexCoordP1uiv _ptrc_glTexCoordP1uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2ui)(GLenum, GLuint);
+#define glTexCoordP2ui _ptrc_glTexCoordP2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP2uiv)(GLenum, const GLuint *);
+#define glTexCoordP2uiv _ptrc_glTexCoordP2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3ui)(GLenum, GLuint);
+#define glTexCoordP3ui _ptrc_glTexCoordP3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP3uiv)(GLenum, const GLuint *);
+#define glTexCoordP3uiv _ptrc_glTexCoordP3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4ui)(GLenum, GLuint);
+#define glTexCoordP4ui _ptrc_glTexCoordP4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexCoordP4uiv)(GLenum, const GLuint *);
+#define glTexCoordP4uiv _ptrc_glTexCoordP4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribDivisor)(GLuint, GLuint);
+#define glVertexAttribDivisor _ptrc_glVertexAttribDivisor
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1ui)(GLuint, GLenum, GLboolean, GLuint);
+#define glVertexAttribP1ui _ptrc_glVertexAttribP1ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP1uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define glVertexAttribP1uiv _ptrc_glVertexAttribP1uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2ui)(GLuint, GLenum, GLboolean, GLuint);
+#define glVertexAttribP2ui _ptrc_glVertexAttribP2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP2uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define glVertexAttribP2uiv _ptrc_glVertexAttribP2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3ui)(GLuint, GLenum, GLboolean, GLuint);
+#define glVertexAttribP3ui _ptrc_glVertexAttribP3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP3uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define glVertexAttribP3uiv _ptrc_glVertexAttribP3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4ui)(GLuint, GLenum, GLboolean, GLuint);
+#define glVertexAttribP4ui _ptrc_glVertexAttribP4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribP4uiv)(GLuint, GLenum, GLboolean, const GLuint *);
+#define glVertexAttribP4uiv _ptrc_glVertexAttribP4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP2ui)(GLenum, GLuint);
+#define glVertexP2ui _ptrc_glVertexP2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP2uiv)(GLenum, const GLuint *);
+#define glVertexP2uiv _ptrc_glVertexP2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP3ui)(GLenum, GLuint);
+#define glVertexP3ui _ptrc_glVertexP3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP3uiv)(GLenum, const GLuint *);
+#define glVertexP3uiv _ptrc_glVertexP3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP4ui)(GLenum, GLuint);
+#define glVertexP4ui _ptrc_glVertexP4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexP4uiv)(GLenum, const GLuint *);
+#define glVertexP4uiv _ptrc_glVertexP4uiv
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBeginQueryIndexed)(GLenum, GLuint, GLuint);
+#define glBeginQueryIndexed _ptrc_glBeginQueryIndexed
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindTransformFeedback)(GLenum, GLuint);
+#define glBindTransformFeedback _ptrc_glBindTransformFeedback
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationSeparatei)(GLuint, GLenum, GLenum);
+#define glBlendEquationSeparatei _ptrc_glBlendEquationSeparatei
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendEquationi)(GLuint, GLenum);
+#define glBlendEquationi _ptrc_glBlendEquationi
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFuncSeparatei)(GLuint, GLenum, GLenum, GLenum, GLenum);
+#define glBlendFuncSeparatei _ptrc_glBlendFuncSeparatei
+extern void (CODEGEN_FUNCPTR *_ptrc_glBlendFunci)(GLuint, GLenum, GLenum);
+#define glBlendFunci _ptrc_glBlendFunci
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteTransformFeedbacks)(GLsizei, const GLuint *);
+#define glDeleteTransformFeedbacks _ptrc_glDeleteTransformFeedbacks
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysIndirect)(GLenum, const GLvoid *);
+#define glDrawArraysIndirect _ptrc_glDrawArraysIndirect
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsIndirect)(GLenum, GLenum, const GLvoid *);
+#define glDrawElementsIndirect _ptrc_glDrawElementsIndirect
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedback)(GLenum, GLuint);
+#define glDrawTransformFeedback _ptrc_glDrawTransformFeedback
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStream)(GLenum, GLuint, GLuint);
+#define glDrawTransformFeedbackStream _ptrc_glDrawTransformFeedbackStream
+extern void (CODEGEN_FUNCPTR *_ptrc_glEndQueryIndexed)(GLenum, GLuint);
+#define glEndQueryIndexed _ptrc_glEndQueryIndexed
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenTransformFeedbacks)(GLsizei, GLuint *);
+#define glGenTransformFeedbacks _ptrc_glGenTransformFeedbacks
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetActiveSubroutineName _ptrc_glGetActiveSubroutineName
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetActiveSubroutineUniformName _ptrc_glGetActiveSubroutineUniformName
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveSubroutineUniformiv)(GLuint, GLenum, GLuint, GLenum, GLint *);
+#define glGetActiveSubroutineUniformiv _ptrc_glGetActiveSubroutineUniformiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramStageiv)(GLuint, GLenum, GLenum, GLint *);
+#define glGetProgramStageiv _ptrc_glGetProgramStageiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetQueryIndexediv)(GLenum, GLuint, GLenum, GLint *);
+#define glGetQueryIndexediv _ptrc_glGetQueryIndexediv
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineIndex)(GLuint, GLenum, const GLchar *);
+#define glGetSubroutineIndex _ptrc_glGetSubroutineIndex
+extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetSubroutineUniformLocation)(GLuint, GLenum, const GLchar *);
+#define glGetSubroutineUniformLocation _ptrc_glGetSubroutineUniformLocation
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformSubroutineuiv)(GLenum, GLint, GLuint *);
+#define glGetUniformSubroutineuiv _ptrc_glGetUniformSubroutineuiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetUniformdv)(GLuint, GLint, GLdouble *);
+#define glGetUniformdv _ptrc_glGetUniformdv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsTransformFeedback)(GLuint);
+#define glIsTransformFeedback _ptrc_glIsTransformFeedback
+extern void (CODEGEN_FUNCPTR *_ptrc_glMinSampleShading)(GLfloat);
+#define glMinSampleShading _ptrc_glMinSampleShading
+extern void (CODEGEN_FUNCPTR *_ptrc_glPatchParameterfv)(GLenum, const GLfloat *);
+#define glPatchParameterfv _ptrc_glPatchParameterfv
+extern void (CODEGEN_FUNCPTR *_ptrc_glPatchParameteri)(GLenum, GLint);
+#define glPatchParameteri _ptrc_glPatchParameteri
+extern void (CODEGEN_FUNCPTR *_ptrc_glPauseTransformFeedback)();
+#define glPauseTransformFeedback _ptrc_glPauseTransformFeedback
+extern void (CODEGEN_FUNCPTR *_ptrc_glResumeTransformFeedback)();
+#define glResumeTransformFeedback _ptrc_glResumeTransformFeedback
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1d)(GLint, GLdouble);
+#define glUniform1d _ptrc_glUniform1d
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform1dv)(GLint, GLsizei, const GLdouble *);
+#define glUniform1dv _ptrc_glUniform1dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2d)(GLint, GLdouble, GLdouble);
+#define glUniform2d _ptrc_glUniform2d
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform2dv)(GLint, GLsizei, const GLdouble *);
+#define glUniform2dv _ptrc_glUniform2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3d)(GLint, GLdouble, GLdouble, GLdouble);
+#define glUniform3d _ptrc_glUniform3d
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform3dv)(GLint, GLsizei, const GLdouble *);
+#define glUniform3dv _ptrc_glUniform3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4d)(GLint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define glUniform4d _ptrc_glUniform4d
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniform4dv)(GLint, GLsizei, const GLdouble *);
+#define glUniform4dv _ptrc_glUniform4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix2dv _ptrc_glUniformMatrix2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x3dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix2x3dv _ptrc_glUniformMatrix2x3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix2x4dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix2x4dv _ptrc_glUniformMatrix2x4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix3dv _ptrc_glUniformMatrix3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x2dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix3x2dv _ptrc_glUniformMatrix3x2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix3x4dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix3x4dv _ptrc_glUniformMatrix3x4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix4dv _ptrc_glUniformMatrix4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x2dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix4x2dv _ptrc_glUniformMatrix4x2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformMatrix4x3dv)(GLint, GLsizei, GLboolean, const GLdouble *);
+#define glUniformMatrix4x3dv _ptrc_glUniformMatrix4x3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glUniformSubroutinesuiv)(GLenum, GLsizei, const GLuint *);
+#define glUniformSubroutinesuiv _ptrc_glUniformSubroutinesuiv
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glActiveShaderProgram)(GLuint, GLuint);
+#define glActiveShaderProgram _ptrc_glActiveShaderProgram
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindProgramPipeline)(GLuint);
+#define glBindProgramPipeline _ptrc_glBindProgramPipeline
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearDepthf)(GLfloat);
+#define glClearDepthf _ptrc_glClearDepthf
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glCreateShaderProgramv)(GLenum, GLsizei, const GLchar *const*);
+#define glCreateShaderProgramv _ptrc_glCreateShaderProgramv
+extern void (CODEGEN_FUNCPTR *_ptrc_glDeleteProgramPipelines)(GLsizei, const GLuint *);
+#define glDeleteProgramPipelines _ptrc_glDeleteProgramPipelines
+extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeArrayv)(GLuint, GLsizei, const GLdouble *);
+#define glDepthRangeArrayv _ptrc_glDepthRangeArrayv
+extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRangeIndexed)(GLuint, GLdouble, GLdouble);
+#define glDepthRangeIndexed _ptrc_glDepthRangeIndexed
+extern void (CODEGEN_FUNCPTR *_ptrc_glDepthRangef)(GLfloat, GLfloat);
+#define glDepthRangef _ptrc_glDepthRangef
+extern void (CODEGEN_FUNCPTR *_ptrc_glGenProgramPipelines)(GLsizei, GLuint *);
+#define glGenProgramPipelines _ptrc_glGenProgramPipelines
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetDoublei_v)(GLenum, GLuint, GLdouble *);
+#define glGetDoublei_v _ptrc_glGetDoublei_v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetFloati_v)(GLenum, GLuint, GLfloat *);
+#define glGetFloati_v _ptrc_glGetFloati_v
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramBinary)(GLuint, GLsizei, GLsizei *, GLenum *, GLvoid *);
+#define glGetProgramBinary _ptrc_glGetProgramBinary
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineInfoLog)(GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetProgramPipelineInfoLog _ptrc_glGetProgramPipelineInfoLog
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramPipelineiv)(GLuint, GLenum, GLint *);
+#define glGetProgramPipelineiv _ptrc_glGetProgramPipelineiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetShaderPrecisionFormat)(GLenum, GLenum, GLint *, GLint *);
+#define glGetShaderPrecisionFormat _ptrc_glGetShaderPrecisionFormat
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetVertexAttribLdv)(GLuint, GLenum, GLdouble *);
+#define glGetVertexAttribLdv _ptrc_glGetVertexAttribLdv
+extern GLboolean (CODEGEN_FUNCPTR *_ptrc_glIsProgramPipeline)(GLuint);
+#define glIsProgramPipeline _ptrc_glIsProgramPipeline
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramBinary)(GLuint, GLenum, const GLvoid *, GLsizei);
+#define glProgramBinary _ptrc_glProgramBinary
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramParameteri)(GLuint, GLenum, GLint);
+#define glProgramParameteri _ptrc_glProgramParameteri
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1d)(GLuint, GLint, GLdouble);
+#define glProgramUniform1d _ptrc_glProgramUniform1d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform1dv _ptrc_glProgramUniform1dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1f)(GLuint, GLint, GLfloat);
+#define glProgramUniform1f _ptrc_glProgramUniform1f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform1fv _ptrc_glProgramUniform1fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1i)(GLuint, GLint, GLint);
+#define glProgramUniform1i _ptrc_glProgramUniform1i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform1iv _ptrc_glProgramUniform1iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1ui)(GLuint, GLint, GLuint);
+#define glProgramUniform1ui _ptrc_glProgramUniform1ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform1uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform1uiv _ptrc_glProgramUniform1uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2d)(GLuint, GLint, GLdouble, GLdouble);
+#define glProgramUniform2d _ptrc_glProgramUniform2d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform2dv _ptrc_glProgramUniform2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2f)(GLuint, GLint, GLfloat, GLfloat);
+#define glProgramUniform2f _ptrc_glProgramUniform2f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform2fv _ptrc_glProgramUniform2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2i)(GLuint, GLint, GLint, GLint);
+#define glProgramUniform2i _ptrc_glProgramUniform2i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform2iv _ptrc_glProgramUniform2iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2ui)(GLuint, GLint, GLuint, GLuint);
+#define glProgramUniform2ui _ptrc_glProgramUniform2ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform2uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform2uiv _ptrc_glProgramUniform2uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3d)(GLuint, GLint, GLdouble, GLdouble, GLdouble);
+#define glProgramUniform3d _ptrc_glProgramUniform3d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform3dv _ptrc_glProgramUniform3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3f)(GLuint, GLint, GLfloat, GLfloat, GLfloat);
+#define glProgramUniform3f _ptrc_glProgramUniform3f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform3fv _ptrc_glProgramUniform3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3i)(GLuint, GLint, GLint, GLint, GLint);
+#define glProgramUniform3i _ptrc_glProgramUniform3i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform3iv _ptrc_glProgramUniform3iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3ui)(GLuint, GLint, GLuint, GLuint, GLuint);
+#define glProgramUniform3ui _ptrc_glProgramUniform3ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform3uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform3uiv _ptrc_glProgramUniform3uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4d)(GLuint, GLint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define glProgramUniform4d _ptrc_glProgramUniform4d
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4dv)(GLuint, GLint, GLsizei, const GLdouble *);
+#define glProgramUniform4dv _ptrc_glProgramUniform4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4f)(GLuint, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define glProgramUniform4f _ptrc_glProgramUniform4f
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4fv)(GLuint, GLint, GLsizei, const GLfloat *);
+#define glProgramUniform4fv _ptrc_glProgramUniform4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4i)(GLuint, GLint, GLint, GLint, GLint, GLint);
+#define glProgramUniform4i _ptrc_glProgramUniform4i
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4iv)(GLuint, GLint, GLsizei, const GLint *);
+#define glProgramUniform4iv _ptrc_glProgramUniform4iv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4ui)(GLuint, GLint, GLuint, GLuint, GLuint, GLuint);
+#define glProgramUniform4ui _ptrc_glProgramUniform4ui
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniform4uiv)(GLuint, GLint, GLsizei, const GLuint *);
+#define glProgramUniform4uiv _ptrc_glProgramUniform4uiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix2dv _ptrc_glProgramUniformMatrix2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix2fv _ptrc_glProgramUniformMatrix2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix2x3dv _ptrc_glProgramUniformMatrix2x3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix2x3fv _ptrc_glProgramUniformMatrix2x3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix2x4dv _ptrc_glProgramUniformMatrix2x4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix2x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix2x4fv _ptrc_glProgramUniformMatrix2x4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix3dv _ptrc_glProgramUniformMatrix3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix3fv _ptrc_glProgramUniformMatrix3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix3x2dv _ptrc_glProgramUniformMatrix3x2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix3x2fv _ptrc_glProgramUniformMatrix3x2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix3x4dv _ptrc_glProgramUniformMatrix3x4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix3x4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix3x4fv _ptrc_glProgramUniformMatrix3x4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix4dv _ptrc_glProgramUniformMatrix4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix4fv _ptrc_glProgramUniformMatrix4fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix4x2dv _ptrc_glProgramUniformMatrix4x2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x2fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix4x2fv _ptrc_glProgramUniformMatrix4x2fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3dv)(GLuint, GLint, GLsizei, GLboolean, const GLdouble *);
+#define glProgramUniformMatrix4x3dv _ptrc_glProgramUniformMatrix4x3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glProgramUniformMatrix4x3fv)(GLuint, GLint, GLsizei, GLboolean, const GLfloat *);
+#define glProgramUniformMatrix4x3fv _ptrc_glProgramUniformMatrix4x3fv
+extern void (CODEGEN_FUNCPTR *_ptrc_glReleaseShaderCompiler)();
+#define glReleaseShaderCompiler _ptrc_glReleaseShaderCompiler
+extern void (CODEGEN_FUNCPTR *_ptrc_glScissorArrayv)(GLuint, GLsizei, const GLint *);
+#define glScissorArrayv _ptrc_glScissorArrayv
+extern void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexed)(GLuint, GLint, GLint, GLsizei, GLsizei);
+#define glScissorIndexed _ptrc_glScissorIndexed
+extern void (CODEGEN_FUNCPTR *_ptrc_glScissorIndexedv)(GLuint, const GLint *);
+#define glScissorIndexedv _ptrc_glScissorIndexedv
+extern void (CODEGEN_FUNCPTR *_ptrc_glShaderBinary)(GLsizei, const GLuint *, GLenum, const GLvoid *, GLsizei);
+#define glShaderBinary _ptrc_glShaderBinary
+extern void (CODEGEN_FUNCPTR *_ptrc_glUseProgramStages)(GLuint, GLbitfield, GLuint);
+#define glUseProgramStages _ptrc_glUseProgramStages
+extern void (CODEGEN_FUNCPTR *_ptrc_glValidateProgramPipeline)(GLuint);
+#define glValidateProgramPipeline _ptrc_glValidateProgramPipeline
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1d)(GLuint, GLdouble);
+#define glVertexAttribL1d _ptrc_glVertexAttribL1d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL1dv)(GLuint, const GLdouble *);
+#define glVertexAttribL1dv _ptrc_glVertexAttribL1dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2d)(GLuint, GLdouble, GLdouble);
+#define glVertexAttribL2d _ptrc_glVertexAttribL2d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL2dv)(GLuint, const GLdouble *);
+#define glVertexAttribL2dv _ptrc_glVertexAttribL2dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3d)(GLuint, GLdouble, GLdouble, GLdouble);
+#define glVertexAttribL3d _ptrc_glVertexAttribL3d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL3dv)(GLuint, const GLdouble *);
+#define glVertexAttribL3dv _ptrc_glVertexAttribL3dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4d)(GLuint, GLdouble, GLdouble, GLdouble, GLdouble);
+#define glVertexAttribL4d _ptrc_glVertexAttribL4d
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribL4dv)(GLuint, const GLdouble *);
+#define glVertexAttribL4dv _ptrc_glVertexAttribL4dv
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLPointer)(GLuint, GLint, GLenum, GLsizei, const GLvoid *);
+#define glVertexAttribLPointer _ptrc_glVertexAttribLPointer
+extern void (CODEGEN_FUNCPTR *_ptrc_glViewportArrayv)(GLuint, GLsizei, const GLfloat *);
+#define glViewportArrayv _ptrc_glViewportArrayv
+extern void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedf)(GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+#define glViewportIndexedf _ptrc_glViewportIndexedf
+extern void (CODEGEN_FUNCPTR *_ptrc_glViewportIndexedfv)(GLuint, const GLfloat *);
+#define glViewportIndexedfv _ptrc_glViewportIndexedfv
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindImageTexture)(GLuint, GLuint, GLint, GLboolean, GLint, GLenum, GLenum);
+#define glBindImageTexture _ptrc_glBindImageTexture
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawArraysInstancedBaseInstance)(GLenum, GLint, GLsizei, GLsizei, GLuint);
+#define glDrawArraysInstancedBaseInstance _ptrc_glDrawArraysInstancedBaseInstance
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLuint);
+#define glDrawElementsInstancedBaseInstance _ptrc_glDrawElementsInstancedBaseInstance
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawElementsInstancedBaseVertexBaseInstance)(GLenum, GLsizei, GLenum, const void *, GLsizei, GLint, GLuint);
+#define glDrawElementsInstancedBaseVertexBaseInstance _ptrc_glDrawElementsInstancedBaseVertexBaseInstance
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackInstanced)(GLenum, GLuint, GLsizei);
+#define glDrawTransformFeedbackInstanced _ptrc_glDrawTransformFeedbackInstanced
+extern void (CODEGEN_FUNCPTR *_ptrc_glDrawTransformFeedbackStreamInstanced)(GLenum, GLuint, GLuint, GLsizei);
+#define glDrawTransformFeedbackStreamInstanced _ptrc_glDrawTransformFeedbackStreamInstanced
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetActiveAtomicCounterBufferiv)(GLuint, GLuint, GLenum, GLint *);
+#define glGetActiveAtomicCounterBufferiv _ptrc_glGetActiveAtomicCounterBufferiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetInternalformati64v)(GLenum, GLenum, GLenum, GLsizei, GLint64 *);
+#define glGetInternalformati64v _ptrc_glGetInternalformati64v
+extern void (CODEGEN_FUNCPTR *_ptrc_glMemoryBarrier)(GLbitfield);
+#define glMemoryBarrier _ptrc_glMemoryBarrier
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage1D)(GLenum, GLsizei, GLenum, GLsizei);
+#define glTexStorage1D _ptrc_glTexStorage1D
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+#define glTexStorage2D _ptrc_glTexStorage2D
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3D)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei);
+#define glTexStorage3D _ptrc_glTexStorage3D
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffer)(GLuint, GLuint, GLintptr, GLsizei);
+#define glBindVertexBuffer _ptrc_glBindVertexBuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferData)(GLenum, GLenum, GLenum, GLenum, const void *);
+#define glClearBufferData _ptrc_glClearBufferData
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearBufferSubData)(GLenum, GLenum, GLintptr, GLsizeiptr, GLenum, GLenum, const void *);
+#define glClearBufferSubData _ptrc_glClearBufferSubData
+extern void (CODEGEN_FUNCPTR *_ptrc_glCopyImageSubData)(GLuint, GLenum, GLint, GLint, GLint, GLint, GLuint, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
+#define glCopyImageSubData _ptrc_glCopyImageSubData
+extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageCallback)(GLDEBUGPROC, const void *);
+#define glDebugMessageCallback _ptrc_glDebugMessageCallback
+extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageControl)(GLenum, GLenum, GLenum, GLsizei, const GLuint *, GLboolean);
+#define glDebugMessageControl _ptrc_glDebugMessageControl
+extern void (CODEGEN_FUNCPTR *_ptrc_glDebugMessageInsert)(GLenum, GLenum, GLuint, GLenum, GLsizei, const GLchar *);
+#define glDebugMessageInsert _ptrc_glDebugMessageInsert
+extern void (CODEGEN_FUNCPTR *_ptrc_glDispatchCompute)(GLuint, GLuint, GLuint);
+#define glDispatchCompute _ptrc_glDispatchCompute
+extern void (CODEGEN_FUNCPTR *_ptrc_glDispatchComputeIndirect)(GLintptr);
+#define glDispatchComputeIndirect _ptrc_glDispatchComputeIndirect
+extern void (CODEGEN_FUNCPTR *_ptrc_glFramebufferParameteri)(GLenum, GLenum, GLint);
+#define glFramebufferParameteri _ptrc_glFramebufferParameteri
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetDebugMessageLog)(GLuint, GLsizei, GLenum *, GLenum *, GLuint *, GLenum *, GLsizei *, GLchar *);
+#define glGetDebugMessageLog _ptrc_glGetDebugMessageLog
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetFramebufferParameteriv)(GLenum, GLenum, GLint *);
+#define glGetFramebufferParameteriv _ptrc_glGetFramebufferParameteriv
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetObjectLabel)(GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetObjectLabel _ptrc_glGetObjectLabel
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetObjectPtrLabel)(const void *, GLsizei, GLsizei *, GLchar *);
+#define glGetObjectPtrLabel _ptrc_glGetObjectPtrLabel
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramInterfaceiv)(GLuint, GLenum, GLenum, GLint *);
+#define glGetProgramInterfaceiv _ptrc_glGetProgramInterfaceiv
+extern GLuint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceIndex)(GLuint, GLenum, const GLchar *);
+#define glGetProgramResourceIndex _ptrc_glGetProgramResourceIndex
+extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocation)(GLuint, GLenum, const GLchar *);
+#define glGetProgramResourceLocation _ptrc_glGetProgramResourceLocation
+extern GLint (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceLocationIndex)(GLuint, GLenum, const GLchar *);
+#define glGetProgramResourceLocationIndex _ptrc_glGetProgramResourceLocationIndex
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceName)(GLuint, GLenum, GLuint, GLsizei, GLsizei *, GLchar *);
+#define glGetProgramResourceName _ptrc_glGetProgramResourceName
+extern void (CODEGEN_FUNCPTR *_ptrc_glGetProgramResourceiv)(GLuint, GLenum, GLuint, GLsizei, const GLenum *, GLsizei, GLsizei *, GLint *);
+#define glGetProgramResourceiv _ptrc_glGetProgramResourceiv
+extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferData)(GLuint);
+#define glInvalidateBufferData _ptrc_glInvalidateBufferData
+extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateBufferSubData)(GLuint, GLintptr, GLsizeiptr);
+#define glInvalidateBufferSubData _ptrc_glInvalidateBufferSubData
+extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateFramebuffer)(GLenum, GLsizei, const GLenum *);
+#define glInvalidateFramebuffer _ptrc_glInvalidateFramebuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateSubFramebuffer)(GLenum, GLsizei, const GLenum *, GLint, GLint, GLsizei, GLsizei);
+#define glInvalidateSubFramebuffer _ptrc_glInvalidateSubFramebuffer
+extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexImage)(GLuint, GLint);
+#define glInvalidateTexImage _ptrc_glInvalidateTexImage
+extern void (CODEGEN_FUNCPTR *_ptrc_glInvalidateTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei);
+#define glInvalidateTexSubImage _ptrc_glInvalidateTexSubImage
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawArraysIndirect)(GLenum, const void *, GLsizei, GLsizei);
+#define glMultiDrawArraysIndirect _ptrc_glMultiDrawArraysIndirect
+extern void (CODEGEN_FUNCPTR *_ptrc_glMultiDrawElementsIndirect)(GLenum, GLenum, const void *, GLsizei, GLsizei);
+#define glMultiDrawElementsIndirect _ptrc_glMultiDrawElementsIndirect
+extern void (CODEGEN_FUNCPTR *_ptrc_glObjectLabel)(GLenum, GLuint, GLsizei, const GLchar *);
+#define glObjectLabel _ptrc_glObjectLabel
+extern void (CODEGEN_FUNCPTR *_ptrc_glObjectPtrLabel)(const void *, GLsizei, const GLchar *);
+#define glObjectPtrLabel _ptrc_glObjectPtrLabel
+extern void (CODEGEN_FUNCPTR *_ptrc_glPopDebugGroup)();
+#define glPopDebugGroup _ptrc_glPopDebugGroup
+extern void (CODEGEN_FUNCPTR *_ptrc_glPushDebugGroup)(GLenum, GLuint, GLsizei, const GLchar *);
+#define glPushDebugGroup _ptrc_glPushDebugGroup
+extern void (CODEGEN_FUNCPTR *_ptrc_glShaderStorageBlockBinding)(GLuint, GLuint, GLuint);
+#define glShaderStorageBlockBinding _ptrc_glShaderStorageBlockBinding
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexBufferRange)(GLenum, GLenum, GLuint, GLintptr, GLsizeiptr);
+#define glTexBufferRange _ptrc_glTexBufferRange
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage2DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLboolean);
+#define glTexStorage2DMultisample _ptrc_glTexStorage2DMultisample
+extern void (CODEGEN_FUNCPTR *_ptrc_glTexStorage3DMultisample)(GLenum, GLsizei, GLenum, GLsizei, GLsizei, GLsizei, GLboolean);
+#define glTexStorage3DMultisample _ptrc_glTexStorage3DMultisample
+extern void (CODEGEN_FUNCPTR *_ptrc_glTextureView)(GLuint, GLenum, GLuint, GLenum, GLuint, GLuint, GLuint, GLuint);
+#define glTextureView _ptrc_glTextureView
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribBinding)(GLuint, GLuint);
+#define glVertexAttribBinding _ptrc_glVertexAttribBinding
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribFormat)(GLuint, GLint, GLenum, GLboolean, GLuint);
+#define glVertexAttribFormat _ptrc_glVertexAttribFormat
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribIFormat)(GLuint, GLint, GLenum, GLuint);
+#define glVertexAttribIFormat _ptrc_glVertexAttribIFormat
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexAttribLFormat)(GLuint, GLint, GLenum, GLuint);
+#define glVertexAttribLFormat _ptrc_glVertexAttribLFormat
+extern void (CODEGEN_FUNCPTR *_ptrc_glVertexBindingDivisor)(GLuint, GLuint);
+#define glVertexBindingDivisor _ptrc_glVertexBindingDivisor
+
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersBase)(GLenum, GLuint, GLsizei, const GLuint *);
+#define glBindBuffersBase _ptrc_glBindBuffersBase
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindBuffersRange)(GLenum, GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizeiptr *);
+#define glBindBuffersRange _ptrc_glBindBuffersRange
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindImageTextures)(GLuint, GLsizei, const GLuint *);
+#define glBindImageTextures _ptrc_glBindImageTextures
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindSamplers)(GLuint, GLsizei, const GLuint *);
+#define glBindSamplers _ptrc_glBindSamplers
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindTextures)(GLuint, GLsizei, const GLuint *);
+#define glBindTextures _ptrc_glBindTextures
+extern void (CODEGEN_FUNCPTR *_ptrc_glBindVertexBuffers)(GLuint, GLsizei, const GLuint *, const GLintptr *, const GLsizei *);
+#define glBindVertexBuffers _ptrc_glBindVertexBuffers
+extern void (CODEGEN_FUNCPTR *_ptrc_glBufferStorage)(GLenum, GLsizeiptr, const void *, GLbitfield);
+#define glBufferStorage _ptrc_glBufferStorage
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearTexImage)(GLuint, GLint, GLenum, GLenum, const void *);
+#define glClearTexImage _ptrc_glClearTexImage
+extern void (CODEGEN_FUNCPTR *_ptrc_glClearTexSubImage)(GLuint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *);
+#define glClearTexSubImage _ptrc_glClearTexSubImage
+
+enum ogl_LoadStatus
+{
+	ogl_LOAD_FAILED = 0,
+	ogl_LOAD_SUCCEEDED = 1,
+};
+
+int ogl_LoadFunctions();
+
+int ogl_GetMinorVersion();
+int ogl_GetMajorVersion();
+int ogl_IsVersionGEQ(int majorVersion, int minorVersion);
+
+#ifdef __cplusplus
+}
+#endif /*__cplusplus*/
+
+#endif //POINTER_C_GENERATED_HEADER_OPENGL_H

+ 266 - 0
libobs-opengl/GL/glx_obs.c

@@ -0,0 +1,266 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stddef.h>
+#include "glx_obs.h"
+
+#if defined(__APPLE__)
+#include <dlfcn.h>
+
+static void* AppleGLGetProcAddress (const char *name)
+{
+	static void* image = NULL;
+
+	if (image == NULL)
+		image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
+
+	return (image ? dlsym(image, name) : NULL);
+}
+#endif /* __APPLE__ */
+
+#if defined(__sgi) || defined (__sun)
+#include <dlfcn.h>
+#include <stdio.h>
+
+static void* SunGetProcAddress (const GLubyte* name)
+{
+  static void* h = NULL;
+  static void* gpa;
+
+  if (h == NULL)
+  {
+    if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
+    gpa = dlsym(h, "glXGetProcAddress");
+  }
+
+  if (gpa != NULL)
+    return ((void*(*)(const GLubyte*))gpa)(name);
+  else
+    return dlsym(h, (const char*)name);
+}
+#endif /* __sgi || __sun */
+
+#if defined(_WIN32)
+
+#ifdef _MSC_VER
+#pragma warning(disable: 4055)
+#pragma warning(disable: 4054)
+#pragma warning(disable: 4996)
+#endif
+
+static int TestPointer(const PROC pTest)
+{
+	ptrdiff_t iTest;
+	if(!pTest) return 0;
+	iTest = (ptrdiff_t)pTest;
+	
+	if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0;
+	
+	return 1;
+}
+
+static PROC WinGetProcAddress(const char *name)
+{
+	HMODULE glMod = NULL;
+	PROC pFunc = wglGetProcAddress((LPCSTR)name);
+	if(TestPointer(pFunc))
+	{
+		return pFunc;
+	}
+	glMod = GetModuleHandleA("OpenGL32.dll");
+	return (PROC)GetProcAddress(glMod, (LPCSTR)name);
+}
+	
+#define IntGetProcAddress(name) WinGetProcAddress(name)
+#else
+	#if defined(__APPLE__)
+		#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
+	#else
+		#if defined(__sgi) || defined(__sun)
+			#define IntGetProcAddress(name) SunGetProcAddress(name)
+		#else /* GLX */
+		    #include <GL/glx.h>
+
+			#define IntGetProcAddress(name) (*glXGetProcAddressARB)((const GLubyte*)name)
+		#endif
+	#endif
+#endif
+
+int glx_ext_ARB_create_context = glx_LOAD_FAILED;
+int glx_ext_ARB_create_context_profile = glx_LOAD_FAILED;
+int glx_ext_ARB_create_context_robustness = glx_LOAD_FAILED;
+int glx_ext_ARB_fbconfig_float = glx_LOAD_FAILED;
+int glx_ext_ARB_framebuffer_sRGB = glx_LOAD_FAILED;
+int glx_ext_ARB_multisample = glx_LOAD_FAILED;
+int glx_ext_EXT_create_context_es2_profile = glx_LOAD_FAILED;
+int glx_ext_EXT_fbconfig_packed_float = glx_LOAD_FAILED;
+int glx_ext_EXT_framebuffer_sRGB = glx_LOAD_FAILED;
+int glx_ext_EXT_import_context = glx_LOAD_FAILED;
+int glx_ext_EXT_swap_control = glx_LOAD_FAILED;
+int glx_ext_EXT_swap_control_tear = glx_LOAD_FAILED;
+
+GLXContext (CODEGEN_FUNCPTR *_ptrc_glXCreateContextAttribsARB)(Display *, GLXFBConfig, GLXContext, Bool, const int *) = NULL;
+
+static int Load_ARB_create_context()
+{
+	int numFailed = 0;
+	_ptrc_glXCreateContextAttribsARB = (GLXContext (CODEGEN_FUNCPTR *)(Display *, GLXFBConfig, GLXContext, Bool, const int *))IntGetProcAddress("glXCreateContextAttribsARB");
+	if(!_ptrc_glXCreateContextAttribsARB) numFailed++;
+	return numFailed;
+}
+
+void (CODEGEN_FUNCPTR *_ptrc_glXFreeContextEXT)(Display *, GLXContext) = NULL;
+GLXContextID (CODEGEN_FUNCPTR *_ptrc_glXGetContextIDEXT)(const GLXContext) = NULL;
+Display * (CODEGEN_FUNCPTR *_ptrc_glXGetCurrentDisplayEXT)() = NULL;
+GLXContext (CODEGEN_FUNCPTR *_ptrc_glXImportContextEXT)(Display *, GLXContextID) = NULL;
+int (CODEGEN_FUNCPTR *_ptrc_glXQueryContextInfoEXT)(Display *, GLXContext, int, int *) = NULL;
+
+static int Load_EXT_import_context()
+{
+	int numFailed = 0;
+	_ptrc_glXFreeContextEXT = (void (CODEGEN_FUNCPTR *)(Display *, GLXContext))IntGetProcAddress("glXFreeContextEXT");
+	if(!_ptrc_glXFreeContextEXT) numFailed++;
+	_ptrc_glXGetContextIDEXT = (GLXContextID (CODEGEN_FUNCPTR *)(const GLXContext))IntGetProcAddress("glXGetContextIDEXT");
+	if(!_ptrc_glXGetContextIDEXT) numFailed++;
+	_ptrc_glXGetCurrentDisplayEXT = (Display * (CODEGEN_FUNCPTR *)())IntGetProcAddress("glXGetCurrentDisplayEXT");
+	if(!_ptrc_glXGetCurrentDisplayEXT) numFailed++;
+	_ptrc_glXImportContextEXT = (GLXContext (CODEGEN_FUNCPTR *)(Display *, GLXContextID))IntGetProcAddress("glXImportContextEXT");
+	if(!_ptrc_glXImportContextEXT) numFailed++;
+	_ptrc_glXQueryContextInfoEXT = (int (CODEGEN_FUNCPTR *)(Display *, GLXContext, int, int *))IntGetProcAddress("glXQueryContextInfoEXT");
+	if(!_ptrc_glXQueryContextInfoEXT) numFailed++;
+	return numFailed;
+}
+
+void (CODEGEN_FUNCPTR *_ptrc_glXSwapIntervalEXT)(Display *, GLXDrawable, int) = NULL;
+
+static int Load_EXT_swap_control()
+{
+	int numFailed = 0;
+	_ptrc_glXSwapIntervalEXT = (void (CODEGEN_FUNCPTR *)(Display *, GLXDrawable, int))IntGetProcAddress("glXSwapIntervalEXT");
+	if(!_ptrc_glXSwapIntervalEXT) numFailed++;
+	return numFailed;
+}
+
+typedef int (*PFN_LOADFUNCPOINTERS)();
+typedef struct glx_StrToExtMap_s
+{
+	char *extensionName;
+	int *extensionVariable;
+	PFN_LOADFUNCPOINTERS LoadExtension;
+} glx_StrToExtMap;
+
+static glx_StrToExtMap ExtensionMap[12] = {
+	{"GLX_ARB_create_context", &glx_ext_ARB_create_context, Load_ARB_create_context},
+	{"GLX_ARB_create_context_profile", &glx_ext_ARB_create_context_profile, NULL},
+	{"GLX_ARB_create_context_robustness", &glx_ext_ARB_create_context_robustness, NULL},
+	{"GLX_ARB_fbconfig_float", &glx_ext_ARB_fbconfig_float, NULL},
+	{"GLX_ARB_framebuffer_sRGB", &glx_ext_ARB_framebuffer_sRGB, NULL},
+	{"GLX_ARB_multisample", &glx_ext_ARB_multisample, NULL},
+	{"GLX_EXT_create_context_es2_profile", &glx_ext_EXT_create_context_es2_profile, NULL},
+	{"GLX_EXT_fbconfig_packed_float", &glx_ext_EXT_fbconfig_packed_float, NULL},
+	{"GLX_EXT_framebuffer_sRGB", &glx_ext_EXT_framebuffer_sRGB, NULL},
+	{"GLX_EXT_import_context", &glx_ext_EXT_import_context, Load_EXT_import_context},
+	{"GLX_EXT_swap_control", &glx_ext_EXT_swap_control, Load_EXT_swap_control},
+	{"GLX_EXT_swap_control_tear", &glx_ext_EXT_swap_control_tear, NULL},
+};
+
+static int g_extensionMapSize = 12;
+
+static glx_StrToExtMap *FindExtEntry(const char *extensionName)
+{
+	int loop;
+	glx_StrToExtMap *currLoc = ExtensionMap;
+	for(loop = 0; loop < g_extensionMapSize; ++loop, ++currLoc)
+	{
+		if(strcmp(extensionName, currLoc->extensionName) == 0)
+			return currLoc;
+	}
+	
+	return NULL;
+}
+
+static void ClearExtensionVars()
+{
+	glx_ext_ARB_create_context = glx_LOAD_FAILED;
+	glx_ext_ARB_create_context_profile = glx_LOAD_FAILED;
+	glx_ext_ARB_create_context_robustness = glx_LOAD_FAILED;
+	glx_ext_ARB_fbconfig_float = glx_LOAD_FAILED;
+	glx_ext_ARB_framebuffer_sRGB = glx_LOAD_FAILED;
+	glx_ext_ARB_multisample = glx_LOAD_FAILED;
+	glx_ext_EXT_create_context_es2_profile = glx_LOAD_FAILED;
+	glx_ext_EXT_fbconfig_packed_float = glx_LOAD_FAILED;
+	glx_ext_EXT_framebuffer_sRGB = glx_LOAD_FAILED;
+	glx_ext_EXT_import_context = glx_LOAD_FAILED;
+	glx_ext_EXT_swap_control = glx_LOAD_FAILED;
+	glx_ext_EXT_swap_control_tear = glx_LOAD_FAILED;
+}
+
+
+static void LoadExtByName(const char *extensionName)
+{
+	glx_StrToExtMap *entry = NULL;
+	entry = FindExtEntry(extensionName);
+	if(entry)
+	{
+		if(entry->LoadExtension)
+		{
+			int numFailed = entry->LoadExtension();
+			if(numFailed == 0)
+			{
+				*(entry->extensionVariable) = glx_LOAD_SUCCEEDED;
+			}
+			else
+			{
+				*(entry->extensionVariable) = glx_LOAD_SUCCEEDED + numFailed;
+			}
+		}
+		else
+		{
+			*(entry->extensionVariable) = glx_LOAD_SUCCEEDED;
+		}
+	}
+}
+
+
+static void ProcExtsFromExtString(const char *strExtList)
+{
+	size_t iExtListLen = strlen(strExtList);
+	const char *strExtListEnd = strExtList + iExtListLen;
+	const char *strCurrPos = strExtList;
+	char strWorkBuff[256];
+
+	while(*strCurrPos)
+	{
+		/*Get the extension at our position.*/
+		int iStrLen = 0;
+		const char *strEndStr = strchr(strCurrPos, ' ');
+		int iStop = 0;
+		if(strEndStr == NULL)
+		{
+			strEndStr = strExtListEnd;
+			iStop = 1;
+		}
+
+		iStrLen = (int)((ptrdiff_t)strEndStr - (ptrdiff_t)strCurrPos);
+
+		if(iStrLen > 255)
+			return;
+
+		strncpy(strWorkBuff, strCurrPos, iStrLen);
+		strWorkBuff[iStrLen] = '\0';
+
+		LoadExtByName(strWorkBuff);
+
+		strCurrPos = strEndStr + 1;
+		if(iStop) break;
+	}
+}
+
+int glx_LoadFunctions(Display *display, int screen)
+{
+	ClearExtensionVars();
+	
+	
+	ProcExtsFromExtString((const char *)glXQueryExtensionsString(display, screen));
+	return glx_LOAD_SUCCEEDED;
+}
+

+ 220 - 0
libobs-opengl/GL/glx_obs.h

@@ -0,0 +1,220 @@
+#ifndef POINTER_C_GENERATED_HEADER_GLXWIN_H
+#define POINTER_C_GENERATED_HEADER_GLXWIN_H
+
+#ifdef __glxext_h_
+#error Attempt to include glx_exts after including glxext.h
+#endif
+
+#define __glxext_h_
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <GL/glx.h>
+#ifdef CODEGEN_FUNCPTR
+#undef CODEGEN_FUNCPTR
+#endif /*CODEGEN_FUNCPTR*/
+#define CODEGEN_FUNCPTR
+
+#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef signed char GLbyte;
+typedef short GLshort;
+typedef int GLint;
+typedef int GLsizei;
+typedef unsigned char GLubyte;
+typedef unsigned short GLushort;
+typedef unsigned int GLuint;
+typedef float GLfloat;
+typedef float GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+#define GLvoid void
+
+#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
+
+
+#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+
+
+#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
+
+
+#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GLX_OML_sync_control extension). */
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <inttypes.h>
+#elif defined(__sun__) || defined(__digital__)
+#include <inttypes.h>
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include <inttypes.h>
+#elif defined(__SCO__) || defined(__USLC__)
+#include <stdint.h>
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) && defined(__GNUC__)
+#include <stdint.h>
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include <inttypes.h>
+#endif
+#endif
+	typedef struct __GLXFBConfigRec *GLXFBConfig;
+	typedef XID GLXContextID;
+	typedef struct __GLXcontextRec *GLXContext;
+	typedef XID GLXPixmap;
+	typedef XID GLXDrawable;
+	typedef XID GLXPbuffer;
+	typedef void (APIENTRY *__GLXextFuncPtr)(void);
+	typedef XID GLXVideoCaptureDeviceNV;
+	typedef unsigned int GLXVideoDeviceNV;
+	typedef XID GLXVideoSourceSGIX;
+	typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
+	typedef XID GLXPbufferSGIX;
+	typedef struct {
+    char    pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int     networkId;
+} GLXHyperpipeNetworkSGIX;
+	typedef struct {
+    char    pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int     channel;
+    unsigned int participationType;
+    int     timeSlice;
+} GLXHyperpipeConfigSGIX;
+	typedef struct {
+    char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
+    int destXOrigin, destYOrigin, destWidth, destHeight;
+} GLXPipeRect;
+	typedef struct {
+    char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int XOrigin, YOrigin, maxHeight, maxWidth;
+} GLXPipeRectLimits;
+
+#ifdef __cplusplus
+extern "C" {
+#endif /*__cplusplus*/
+
+extern int glx_ext_ARB_create_context;
+extern int glx_ext_ARB_create_context_profile;
+extern int glx_ext_ARB_create_context_robustness;
+extern int glx_ext_ARB_fbconfig_float;
+extern int glx_ext_ARB_framebuffer_sRGB;
+extern int glx_ext_ARB_multisample;
+extern int glx_ext_EXT_create_context_es2_profile;
+extern int glx_ext_EXT_fbconfig_packed_float;
+extern int glx_ext_EXT_framebuffer_sRGB;
+extern int glx_ext_EXT_import_context;
+extern int glx_ext_EXT_swap_control;
+extern int glx_ext_EXT_swap_control_tear;
+
+#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define GLX_CONTEXT_FLAGS_ARB 0x2094
+#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
+
+#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
+
+#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
+
+#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004
+#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
+
+#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
+
+#define GLX_SAMPLES_ARB 100001
+#define GLX_SAMPLE_BUFFERS_ARB 100000
+
+#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+
+#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
+#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
+
+#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
+
+#define GLX_SCREEN_EXT 0x800C
+#define GLX_SHARE_CONTEXT_EXT 0x800A
+#define GLX_VISUAL_ID_EXT 0x800B
+
+#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
+#define GLX_SWAP_INTERVAL_EXT 0x20F1
+
+#define GLX_LATE_SWAPS_TEAR_EXT 0x20F3
+
+#ifndef GLX_ARB_create_context
+#define GLX_ARB_create_context 1
+extern GLXContext (CODEGEN_FUNCPTR *_ptrc_glXCreateContextAttribsARB)(Display *, GLXFBConfig, GLXContext, Bool, const int *);
+#define glXCreateContextAttribsARB _ptrc_glXCreateContextAttribsARB
+#endif /*GLX_ARB_create_context*/ 
+
+
+
+
+
+
+
+
+
+#ifndef GLX_EXT_import_context
+#define GLX_EXT_import_context 1
+extern void (CODEGEN_FUNCPTR *_ptrc_glXFreeContextEXT)(Display *, GLXContext);
+#define glXFreeContextEXT _ptrc_glXFreeContextEXT
+extern GLXContextID (CODEGEN_FUNCPTR *_ptrc_glXGetContextIDEXT)(const GLXContext);
+#define glXGetContextIDEXT _ptrc_glXGetContextIDEXT
+extern Display * (CODEGEN_FUNCPTR *_ptrc_glXGetCurrentDisplayEXT)();
+#define glXGetCurrentDisplayEXT _ptrc_glXGetCurrentDisplayEXT
+extern GLXContext (CODEGEN_FUNCPTR *_ptrc_glXImportContextEXT)(Display *, GLXContextID);
+#define glXImportContextEXT _ptrc_glXImportContextEXT
+extern int (CODEGEN_FUNCPTR *_ptrc_glXQueryContextInfoEXT)(Display *, GLXContext, int, int *);
+#define glXQueryContextInfoEXT _ptrc_glXQueryContextInfoEXT
+#endif /*GLX_EXT_import_context*/ 
+
+#ifndef GLX_EXT_swap_control
+#define GLX_EXT_swap_control 1
+extern void (CODEGEN_FUNCPTR *_ptrc_glXSwapIntervalEXT)(Display *, GLXDrawable, int);
+#define glXSwapIntervalEXT _ptrc_glXSwapIntervalEXT
+#endif /*GLX_EXT_swap_control*/ 
+
+
+enum glx_LoadStatus
+{
+	glx_LOAD_FAILED = 0,
+	glx_LOAD_SUCCEEDED = 1,
+};
+
+int glx_LoadFunctions(Display *display, int screen);
+
+
+#ifdef __cplusplus
+}
+#endif /*__cplusplus*/
+
+#endif //POINTER_C_GENERATED_HEADER_GLXWIN_H

+ 303 - 0
libobs-opengl/GL/wgl_obs.c

@@ -0,0 +1,303 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stddef.h>
+#include "wgl_obs.h"
+
+#if defined(__APPLE__)
+#include <dlfcn.h>
+
+static void* AppleGLGetProcAddress (const char *name)
+{
+	static void* image = NULL;
+
+	if (image == NULL)
+		image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY);
+
+	return (image ? dlsym(image, name) : NULL);
+}
+#endif /* __APPLE__ */
+
+#if defined(__sgi) || defined (__sun)
+#include <dlfcn.h>
+#include <stdio.h>
+
+static void* SunGetProcAddress (const GLubyte* name)
+{
+  static void* h = NULL;
+  static void* gpa;
+
+  if (h == NULL)
+  {
+    if ((h = dlopen(NULL, RTLD_LAZY | RTLD_LOCAL)) == NULL) return NULL;
+    gpa = dlsym(h, "glXGetProcAddress");
+  }
+
+  if (gpa != NULL)
+    return ((void*(*)(const GLubyte*))gpa)(name);
+  else
+    return dlsym(h, (const char*)name);
+}
+#endif /* __sgi || __sun */
+
+#if defined(_WIN32)
+
+#ifdef _MSC_VER
+#pragma warning(disable: 4055)
+#pragma warning(disable: 4054)
+#pragma warning(disable: 4996)
+#endif
+
+static int TestPointer(const PROC pTest)
+{
+	ptrdiff_t iTest;
+	if(!pTest) return 0;
+	iTest = (ptrdiff_t)pTest;
+	
+	if(iTest == 1 || iTest == 2 || iTest == 3 || iTest == -1) return 0;
+	
+	return 1;
+}
+
+static PROC WinGetProcAddress(const char *name)
+{
+	HMODULE glMod = NULL;
+	PROC pFunc = wglGetProcAddress((LPCSTR)name);
+	if(TestPointer(pFunc))
+	{
+		return pFunc;
+	}
+	glMod = GetModuleHandleA("OpenGL32.dll");
+	return (PROC)GetProcAddress(glMod, (LPCSTR)name);
+}
+	
+#define IntGetProcAddress(name) WinGetProcAddress(name)
+#else
+	#if defined(__APPLE__)
+		#define IntGetProcAddress(name) AppleGLGetProcAddress(name)
+	#else
+		#if defined(__sgi) || defined(__sun)
+			#define IntGetProcAddress(name) SunGetProcAddress(name)
+		#else /* GLX */
+		    #include <GL/glx.h>
+
+			#define IntGetProcAddress(name) (*glXGetProcAddressARB)((const GLubyte*)name)
+		#endif
+	#endif
+#endif
+
+int wgl_ext_ARB_multisample = wgl_LOAD_FAILED;
+int wgl_ext_ARB_extensions_string = wgl_LOAD_FAILED;
+int wgl_ext_ARB_pixel_format = wgl_LOAD_FAILED;
+int wgl_ext_ARB_pixel_format_float = wgl_LOAD_FAILED;
+int wgl_ext_ARB_framebuffer_sRGB = wgl_LOAD_FAILED;
+int wgl_ext_ARB_create_context = wgl_LOAD_FAILED;
+int wgl_ext_ARB_create_context_profile = wgl_LOAD_FAILED;
+int wgl_ext_ARB_create_context_robustness = wgl_LOAD_FAILED;
+int wgl_ext_EXT_swap_control = wgl_LOAD_FAILED;
+int wgl_ext_EXT_pixel_format_packed_float = wgl_LOAD_FAILED;
+int wgl_ext_EXT_create_context_es2_profile = wgl_LOAD_FAILED;
+int wgl_ext_EXT_swap_control_tear = wgl_LOAD_FAILED;
+int wgl_ext_NV_swap_group = wgl_LOAD_FAILED;
+
+const char * (CODEGEN_FUNCPTR *_ptrc_wglGetExtensionsStringARB)(HDC) = NULL;
+
+static int Load_ARB_extensions_string()
+{
+	int numFailed = 0;
+	_ptrc_wglGetExtensionsStringARB = (const char * (CODEGEN_FUNCPTR *)(HDC))IntGetProcAddress("wglGetExtensionsStringARB");
+	if(!_ptrc_wglGetExtensionsStringARB) numFailed++;
+	return numFailed;
+}
+
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglChoosePixelFormatARB)(HDC, const int *, const FLOAT *, UINT, int *, UINT *) = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribfvARB)(HDC, int, int, UINT, const int *, FLOAT *) = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribivARB)(HDC, int, int, UINT, const int *, int *) = NULL;
+
+static int Load_ARB_pixel_format()
+{
+	int numFailed = 0;
+	_ptrc_wglChoosePixelFormatARB = (BOOL (CODEGEN_FUNCPTR *)(HDC, const int *, const FLOAT *, UINT, int *, UINT *))IntGetProcAddress("wglChoosePixelFormatARB");
+	if(!_ptrc_wglChoosePixelFormatARB) numFailed++;
+	_ptrc_wglGetPixelFormatAttribfvARB = (BOOL (CODEGEN_FUNCPTR *)(HDC, int, int, UINT, const int *, FLOAT *))IntGetProcAddress("wglGetPixelFormatAttribfvARB");
+	if(!_ptrc_wglGetPixelFormatAttribfvARB) numFailed++;
+	_ptrc_wglGetPixelFormatAttribivARB = (BOOL (CODEGEN_FUNCPTR *)(HDC, int, int, UINT, const int *, int *))IntGetProcAddress("wglGetPixelFormatAttribivARB");
+	if(!_ptrc_wglGetPixelFormatAttribivARB) numFailed++;
+	return numFailed;
+}
+
+HGLRC (CODEGEN_FUNCPTR *_ptrc_wglCreateContextAttribsARB)(HDC, HGLRC, const int *) = NULL;
+
+static int Load_ARB_create_context()
+{
+	int numFailed = 0;
+	_ptrc_wglCreateContextAttribsARB = (HGLRC (CODEGEN_FUNCPTR *)(HDC, HGLRC, const int *))IntGetProcAddress("wglCreateContextAttribsARB");
+	if(!_ptrc_wglCreateContextAttribsARB) numFailed++;
+	return numFailed;
+}
+
+int (CODEGEN_FUNCPTR *_ptrc_wglGetSwapIntervalEXT)() = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglSwapIntervalEXT)(int) = NULL;
+
+static int Load_EXT_swap_control()
+{
+	int numFailed = 0;
+	_ptrc_wglGetSwapIntervalEXT = (int (CODEGEN_FUNCPTR *)())IntGetProcAddress("wglGetSwapIntervalEXT");
+	if(!_ptrc_wglGetSwapIntervalEXT) numFailed++;
+	_ptrc_wglSwapIntervalEXT = (BOOL (CODEGEN_FUNCPTR *)(int))IntGetProcAddress("wglSwapIntervalEXT");
+	if(!_ptrc_wglSwapIntervalEXT) numFailed++;
+	return numFailed;
+}
+
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglBindSwapBarrierNV)(GLuint, GLuint) = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglJoinSwapGroupNV)(HDC, GLuint) = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryFrameCountNV)(HDC, GLuint *) = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryMaxSwapGroupsNV)(HDC, GLuint *, GLuint *) = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglQuerySwapGroupNV)(HDC, GLuint *, GLuint *) = NULL;
+BOOL (CODEGEN_FUNCPTR *_ptrc_wglResetFrameCountNV)(HDC) = NULL;
+
+static int Load_NV_swap_group()
+{
+	int numFailed = 0;
+	_ptrc_wglBindSwapBarrierNV = (BOOL (CODEGEN_FUNCPTR *)(GLuint, GLuint))IntGetProcAddress("wglBindSwapBarrierNV");
+	if(!_ptrc_wglBindSwapBarrierNV) numFailed++;
+	_ptrc_wglJoinSwapGroupNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint))IntGetProcAddress("wglJoinSwapGroupNV");
+	if(!_ptrc_wglJoinSwapGroupNV) numFailed++;
+	_ptrc_wglQueryFrameCountNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint *))IntGetProcAddress("wglQueryFrameCountNV");
+	if(!_ptrc_wglQueryFrameCountNV) numFailed++;
+	_ptrc_wglQueryMaxSwapGroupsNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint *, GLuint *))IntGetProcAddress("wglQueryMaxSwapGroupsNV");
+	if(!_ptrc_wglQueryMaxSwapGroupsNV) numFailed++;
+	_ptrc_wglQuerySwapGroupNV = (BOOL (CODEGEN_FUNCPTR *)(HDC, GLuint *, GLuint *))IntGetProcAddress("wglQuerySwapGroupNV");
+	if(!_ptrc_wglQuerySwapGroupNV) numFailed++;
+	_ptrc_wglResetFrameCountNV = (BOOL (CODEGEN_FUNCPTR *)(HDC))IntGetProcAddress("wglResetFrameCountNV");
+	if(!_ptrc_wglResetFrameCountNV) numFailed++;
+	return numFailed;
+}
+
+typedef int (*PFN_LOADFUNCPOINTERS)();
+typedef struct wgl_StrToExtMap_s
+{
+	char *extensionName;
+	int *extensionVariable;
+	PFN_LOADFUNCPOINTERS LoadExtension;
+} wgl_StrToExtMap;
+
+static wgl_StrToExtMap ExtensionMap[13] = {
+	{"WGL_ARB_multisample", &wgl_ext_ARB_multisample, NULL},
+	{"WGL_ARB_extensions_string", &wgl_ext_ARB_extensions_string, Load_ARB_extensions_string},
+	{"WGL_ARB_pixel_format", &wgl_ext_ARB_pixel_format, Load_ARB_pixel_format},
+	{"WGL_ARB_pixel_format_float", &wgl_ext_ARB_pixel_format_float, NULL},
+	{"WGL_ARB_framebuffer_sRGB", &wgl_ext_ARB_framebuffer_sRGB, NULL},
+	{"WGL_ARB_create_context", &wgl_ext_ARB_create_context, Load_ARB_create_context},
+	{"WGL_ARB_create_context_profile", &wgl_ext_ARB_create_context_profile, NULL},
+	{"WGL_ARB_create_context_robustness", &wgl_ext_ARB_create_context_robustness, NULL},
+	{"WGL_EXT_swap_control", &wgl_ext_EXT_swap_control, Load_EXT_swap_control},
+	{"WGL_EXT_pixel_format_packed_float", &wgl_ext_EXT_pixel_format_packed_float, NULL},
+	{"WGL_EXT_create_context_es2_profile", &wgl_ext_EXT_create_context_es2_profile, NULL},
+	{"WGL_EXT_swap_control_tear", &wgl_ext_EXT_swap_control_tear, NULL},
+	{"WGL_NV_swap_group", &wgl_ext_NV_swap_group, Load_NV_swap_group},
+};
+
+static int g_extensionMapSize = 13;
+
+static wgl_StrToExtMap *FindExtEntry(const char *extensionName)
+{
+	int loop;
+	wgl_StrToExtMap *currLoc = ExtensionMap;
+	for(loop = 0; loop < g_extensionMapSize; ++loop, ++currLoc)
+	{
+		if(strcmp(extensionName, currLoc->extensionName) == 0)
+			return currLoc;
+	}
+	
+	return NULL;
+}
+
+static void ClearExtensionVars()
+{
+	wgl_ext_ARB_multisample = wgl_LOAD_FAILED;
+	wgl_ext_ARB_extensions_string = wgl_LOAD_FAILED;
+	wgl_ext_ARB_pixel_format = wgl_LOAD_FAILED;
+	wgl_ext_ARB_pixel_format_float = wgl_LOAD_FAILED;
+	wgl_ext_ARB_framebuffer_sRGB = wgl_LOAD_FAILED;
+	wgl_ext_ARB_create_context = wgl_LOAD_FAILED;
+	wgl_ext_ARB_create_context_profile = wgl_LOAD_FAILED;
+	wgl_ext_ARB_create_context_robustness = wgl_LOAD_FAILED;
+	wgl_ext_EXT_swap_control = wgl_LOAD_FAILED;
+	wgl_ext_EXT_pixel_format_packed_float = wgl_LOAD_FAILED;
+	wgl_ext_EXT_create_context_es2_profile = wgl_LOAD_FAILED;
+	wgl_ext_EXT_swap_control_tear = wgl_LOAD_FAILED;
+	wgl_ext_NV_swap_group = wgl_LOAD_FAILED;
+}
+
+
+static void LoadExtByName(const char *extensionName)
+{
+	wgl_StrToExtMap *entry = NULL;
+	entry = FindExtEntry(extensionName);
+	if(entry)
+	{
+		if(entry->LoadExtension)
+		{
+			int numFailed = entry->LoadExtension();
+			if(numFailed == 0)
+			{
+				*(entry->extensionVariable) = wgl_LOAD_SUCCEEDED;
+			}
+			else
+			{
+				*(entry->extensionVariable) = wgl_LOAD_SUCCEEDED + numFailed;
+			}
+		}
+		else
+		{
+			*(entry->extensionVariable) = wgl_LOAD_SUCCEEDED;
+		}
+	}
+}
+
+
+static void ProcExtsFromExtString(const char *strExtList)
+{
+	size_t iExtListLen = strlen(strExtList);
+	const char *strExtListEnd = strExtList + iExtListLen;
+	const char *strCurrPos = strExtList;
+	char strWorkBuff[256];
+
+	while(*strCurrPos)
+	{
+		/*Get the extension at our position.*/
+		int iStrLen = 0;
+		const char *strEndStr = strchr(strCurrPos, ' ');
+		int iStop = 0;
+		if(strEndStr == NULL)
+		{
+			strEndStr = strExtListEnd;
+			iStop = 1;
+		}
+
+		iStrLen = (int)((ptrdiff_t)strEndStr - (ptrdiff_t)strCurrPos);
+
+		if(iStrLen > 255)
+			return;
+
+		strncpy(strWorkBuff, strCurrPos, iStrLen);
+		strWorkBuff[iStrLen] = '\0';
+
+		LoadExtByName(strWorkBuff);
+
+		strCurrPos = strEndStr + 1;
+		if(iStop) break;
+	}
+}
+
+int wgl_LoadFunctions(HDC hdc)
+{
+	ClearExtensionVars();
+	
+	_ptrc_wglGetExtensionsStringARB = (const char * (CODEGEN_FUNCPTR *)(HDC))IntGetProcAddress("wglGetExtensionsStringARB");
+	if(!_ptrc_wglGetExtensionsStringARB) return wgl_LOAD_FAILED;
+	
+	ProcExtsFromExtString((const char *)_ptrc_wglGetExtensionsStringARB(hdc));
+	return wgl_LOAD_SUCCEEDED;
+}
+

+ 231 - 0
libobs-opengl/GL/wgl_obs.h

@@ -0,0 +1,231 @@
+#ifndef POINTER_C_GENERATED_HEADER_WINDOWSGL_H
+#define POINTER_C_GENERATED_HEADER_WINDOWSGL_H
+
+#ifdef __wglext_h_
+#error Attempt to include auto-generated WGL header after wglext.h
+#endif
+
+#define __wglext_h_
+
+#ifndef WIN32_LEAN_AND_MEAN
+	#define WIN32_LEAN_AND_MEAN 1
+#endif
+#ifndef NOMINMAX
+	#define NOMINMAX
+#endif
+#include <windows.h>
+
+#ifdef CODEGEN_FUNCPTR
+#undef CODEGEN_FUNCPTR
+#endif /*CODEGEN_FUNCPTR*/
+#define CODEGEN_FUNCPTR WINAPI
+
+#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef signed char GLbyte;
+typedef short GLshort;
+typedef int GLint;
+typedef int GLsizei;
+typedef unsigned char GLubyte;
+typedef unsigned short GLushort;
+typedef unsigned int GLuint;
+typedef float GLfloat;
+typedef float GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+#define GLvoid void
+
+#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
+
+
+#ifndef GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+#define GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS
+
+
+#endif /*GL_LOAD_GEN_BASIC_OPENGL_TYPEDEFS*/
+
+
+struct _GPU_DEVICE {
+    DWORD  cb;
+    CHAR   DeviceName[32];
+    CHAR   DeviceString[128];
+    DWORD  Flags;
+    RECT   rcVirtualScreen;
+};
+DECLARE_HANDLE(HPBUFFERARB);
+DECLARE_HANDLE(HPBUFFEREXT);
+DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
+DECLARE_HANDLE(HPVIDEODEV);
+DECLARE_HANDLE(HGPUNV);
+DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
+typedef struct _GPU_DEVICE *PGPU_DEVICE;
+
+#ifdef __cplusplus
+extern "C" {
+#endif /*__cplusplus*/
+
+extern int wgl_ext_ARB_multisample;
+extern int wgl_ext_ARB_extensions_string;
+extern int wgl_ext_ARB_pixel_format;
+extern int wgl_ext_ARB_pixel_format_float;
+extern int wgl_ext_ARB_framebuffer_sRGB;
+extern int wgl_ext_ARB_create_context;
+extern int wgl_ext_ARB_create_context_profile;
+extern int wgl_ext_ARB_create_context_robustness;
+extern int wgl_ext_EXT_swap_control;
+extern int wgl_ext_EXT_pixel_format_packed_float;
+extern int wgl_ext_EXT_create_context_es2_profile;
+extern int wgl_ext_EXT_swap_control_tear;
+extern int wgl_ext_NV_swap_group;
+
+#define WGL_SAMPLES_ARB 0x2042
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+
+#define WGL_ACCELERATION_ARB 0x2003
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#define WGL_ACCUM_BITS_ARB 0x201D
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#define WGL_ALPHA_BITS_ARB 0x201B
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#define WGL_BLUE_BITS_ARB 0x2019
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#define WGL_COLOR_BITS_ARB 0x2014
+#define WGL_DEPTH_BITS_ARB 0x2022
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#define WGL_GENERIC_ACCELERATION_ARB 0x2026
+#define WGL_GREEN_BITS_ARB 0x2017
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#define WGL_NEED_PALETTE_ARB 0x2004
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#define WGL_NO_ACCELERATION_ARB 0x2025
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#define WGL_RED_BITS_ARB 0x2015
+#define WGL_RED_SHIFT_ARB 0x2016
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#define WGL_STENCIL_BITS_ARB 0x2023
+#define WGL_STEREO_ARB 0x2012
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#define WGL_SWAP_COPY_ARB 0x2029
+#define WGL_SWAP_EXCHANGE_ARB 0x2028
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#define WGL_SWAP_METHOD_ARB 0x2007
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#define WGL_TRANSPARENT_ARB 0x200A
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#define WGL_TYPE_COLORINDEX_ARB 0x202C
+#define WGL_TYPE_RGBA_ARB 0x202B
+
+#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
+
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
+
+#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define WGL_CONTEXT_FLAGS_ARB 0x2094
+#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
+#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
+#define WGL_ERROR_INVALID_VERSION_ARB 0x2095
+
+#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
+#define WGL_ERROR_INVALID_PROFILE_ARB 0x2096
+
+#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
+
+#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
+
+#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+
+
+#ifndef WGL_ARB_extensions_string
+#define WGL_ARB_extensions_string 1
+extern const char * (CODEGEN_FUNCPTR *_ptrc_wglGetExtensionsStringARB)(HDC);
+#define wglGetExtensionsStringARB _ptrc_wglGetExtensionsStringARB
+#endif /*WGL_ARB_extensions_string*/ 
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglChoosePixelFormatARB)(HDC, const int *, const FLOAT *, UINT, int *, UINT *);
+#define wglChoosePixelFormatARB _ptrc_wglChoosePixelFormatARB
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribfvARB)(HDC, int, int, UINT, const int *, FLOAT *);
+#define wglGetPixelFormatAttribfvARB _ptrc_wglGetPixelFormatAttribfvARB
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglGetPixelFormatAttribivARB)(HDC, int, int, UINT, const int *, int *);
+#define wglGetPixelFormatAttribivARB _ptrc_wglGetPixelFormatAttribivARB
+#endif /*WGL_ARB_pixel_format*/ 
+
+
+
+#ifndef WGL_ARB_create_context
+#define WGL_ARB_create_context 1
+extern HGLRC (CODEGEN_FUNCPTR *_ptrc_wglCreateContextAttribsARB)(HDC, HGLRC, const int *);
+#define wglCreateContextAttribsARB _ptrc_wglCreateContextAttribsARB
+#endif /*WGL_ARB_create_context*/ 
+
+
+
+#ifndef WGL_EXT_swap_control
+#define WGL_EXT_swap_control 1
+extern int (CODEGEN_FUNCPTR *_ptrc_wglGetSwapIntervalEXT)();
+#define wglGetSwapIntervalEXT _ptrc_wglGetSwapIntervalEXT
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglSwapIntervalEXT)(int);
+#define wglSwapIntervalEXT _ptrc_wglSwapIntervalEXT
+#endif /*WGL_EXT_swap_control*/ 
+
+
+
+
+#ifndef WGL_NV_swap_group
+#define WGL_NV_swap_group 1
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglBindSwapBarrierNV)(GLuint, GLuint);
+#define wglBindSwapBarrierNV _ptrc_wglBindSwapBarrierNV
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglJoinSwapGroupNV)(HDC, GLuint);
+#define wglJoinSwapGroupNV _ptrc_wglJoinSwapGroupNV
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryFrameCountNV)(HDC, GLuint *);
+#define wglQueryFrameCountNV _ptrc_wglQueryFrameCountNV
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglQueryMaxSwapGroupsNV)(HDC, GLuint *, GLuint *);
+#define wglQueryMaxSwapGroupsNV _ptrc_wglQueryMaxSwapGroupsNV
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglQuerySwapGroupNV)(HDC, GLuint *, GLuint *);
+#define wglQuerySwapGroupNV _ptrc_wglQuerySwapGroupNV
+extern BOOL (CODEGEN_FUNCPTR *_ptrc_wglResetFrameCountNV)(HDC);
+#define wglResetFrameCountNV _ptrc_wglResetFrameCountNV
+#endif /*WGL_NV_swap_group*/ 
+
+enum wgl_LoadStatus
+{
+	wgl_LOAD_FAILED = 0,
+	wgl_LOAD_SUCCEEDED = 1,
+};
+
+int wgl_LoadFunctions(HDC hdc);
+
+
+#ifdef __cplusplus
+}
+#endif /*__cplusplus*/
+
+#endif //POINTER_C_GENERATED_HEADER_WINDOWSGL_H

+ 1 - 20
libobs-opengl/gl-cocoa.m

@@ -15,7 +15,6 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ******************************************************************************/
 
-#include <GL/glew.h>
 #include "gl-subsystem.h"
 #include <OpenGL/OpenGL.h>
 
@@ -97,19 +96,6 @@ static NSOpenGLContext *gl_context_create(struct gs_init_data *info)
 	return context;
 }
 
-static bool gl_init_extensions(device_t device)
-{
-	glewExperimental=true;
-	GLenum error = glewInit();
-	if(error != GLEW_OK) {
-	       blog(LOG_ERROR, "glewInit failed, %u\n%s\n", error,
-			       glewGetErrorString(error));
-	       return false;
-	}
-
-	return true;
-}
-
 static bool gl_init_default_swap(struct gl_platform *plat, device_t dev,
 		struct gs_init_data *info)
 {
@@ -134,14 +120,9 @@ struct gl_platform *gl_platform_create(device_t device,
 
 	[plat->context makeCurrentContext];
 
-	if(!gl_init_extensions(device))
+	if (!ogl_LoadFunctions())
 		goto fail;
 
-	if (GLEW_ARB_seamless_cube_map) {
-		glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
-		gl_success("GL_TEXTURE_CUBE_MAP_SEAMLESS");
-	}
-
 	return plat;
 
 fail:

+ 17 - 16
libobs-opengl/gl-subsystem.c

@@ -19,6 +19,10 @@
 #include <graphics/matrix3.h>
 #include "gl-subsystem.h"
 
+/* Goofy Windows.h macros need to be removed */
+#undef far
+#undef near
+
 #ifdef _DEBUG
 /* Tables for OpenGL debug */
 static const char* debug_source_table[] = {
@@ -51,15 +55,9 @@ static const char* debug_severity_table[] = {
 #define GL_DEBUG_TYPE_OFFSET(x) (x - GL_DEBUG_TYPE_ERROR_ARB)
 #define GL_DEBUG_SEVERITY_OFFSET(x) (x - GL_DEBUG_SEVERITY_HIGH_ARB)
 
-#ifdef _WIN32
-#define GLEW_TEMP_API __stdcall
-#else
-#define GLEW_TEMP_API
-#endif
-
-static void GLEW_TEMP_API gl_debug_proc(
+static void APIENTRY gl_debug_proc(
 	GLenum source, GLenum type, GLuint id, GLenum severity, 
-	GLsizei length, const GLchar *message, GLvoid *data )
+	GLsizei length, const GLchar *message, const GLvoid *data )
 {
 	blog(	LOG_DEBUG,
 		"[%s][%s]{%s}: %.*s",
@@ -73,9 +71,9 @@ static void GLEW_TEMP_API gl_debug_proc(
 static void gl_enable_debug()
 {
 	 /* Perhaps we should create GLEW contexts? */
-	if (GLEW_VERSION_4_3)
+	if (!ogl_IsVersionGEQ(4, 3))
 		glDebugMessageCallback(gl_debug_proc, NULL);
-	if (GLEW_ARB_debug_output)
+	if (ogl_ext_ARB_debug_output)
 		glDebugMessageCallbackARB(gl_debug_proc, NULL);
 	else {
 		blog(LOG_DEBUG, "Failed to set GL debug callback as it is "
@@ -95,7 +93,10 @@ static inline void required_extension_error(const char *extension)
 
 static bool gl_init_extensions(struct gs_device* device) 
 {
-	if (!GLEW_VERSION_2_1) {
+	/* It's odd but ogl_IsVersionGEQ returns /false/ if the 
+	   specified version is less than the context. */
+
+	if (ogl_IsVersionGEQ(2, 1)) {
 		blog(LOG_ERROR, "obs-studio requires OpenGL version 2.1 or "
 		                "higher.");
 		return false;
@@ -103,25 +104,25 @@ static bool gl_init_extensions(struct gs_device* device)
 
 	gl_enable_debug();
 
-	if (!GLEW_VERSION_3_0 && !GLEW_ARB_framebuffer_object) {
+	if (ogl_IsVersionGEQ(2, 1) && !ogl_ext_ARB_framebuffer_object) {
 		blog(LOG_ERROR, "OpenGL extension ARB_framebuffer_object "
 		                "is required.");
 		return false;
 	}
 
-	if (GLEW_VERSION_3_1 || GLEW_ARB_seamless_cube_map) {
+	if (!ogl_IsVersionGEQ(3, 1) || ogl_ext_ARB_seamless_cube_map) {
 		gl_enable(GL_TEXTURE_CUBE_MAP_SEAMLESS);
 	}
 
-	if (!GLEW_VERSION_4_1 && !GLEW_ARB_separate_shader_objects) {
+	if (ogl_IsVersionGEQ(4, 1) && !ogl_ext_ARB_separate_shader_objects) {
 		blog(LOG_ERROR, "OpenGL extension ARB_separate_shader_objects "
 		                "is required.");
 		return false;
 	}
 
-	if (GLEW_ARB_copy_image || GLEW_VERSION_4_2)
+	if (!ogl_IsVersionGEQ(4, 2) || ogl_ext_ARB_copy_image)
 		device->copy_type = COPY_TYPE_ARB;
-	else if (GLEW_NV_copy_image)
+	else if (ogl_ext_NV_copy_image)
 		device->copy_type = COPY_TYPE_NV;
 	else
 		device->copy_type = COPY_TYPE_FBO_BLIT; /* ?? */

+ 1 - 5
libobs-opengl/gl-subsystem.h

@@ -21,11 +21,7 @@
 #include <graphics/graphics.h>
 #include <graphics/matrix4.h>
 
-#ifdef GLEW_STATIC
-#include "glew/include/GL/glew.h"
-#else
-#include <GL/glew.h>
-#endif
+#include "GL/gl_obs.h"
 
 #include "gl-helpers.h"
 #include "gl-exports.h"

+ 23 - 10
libobs-opengl/gl-windows.c

@@ -20,7 +20,7 @@
 
 #include <util/darray.h>
 #include "gl-subsystem.h"
-#include "glew/include/GL/wglew.h"
+#include "GL/wgl_obs.h"
 
 /* Basically swapchain-specific information.  Fortunately for windows this is
  * super basic stuff */
@@ -165,7 +165,7 @@ static const int attribs[] =
 static inline HGLRC gl_init_context(HDC hdc)
 {
 #ifdef _DEBUG
-	if (WGLEW_ARB_create_context) {
+	if (wgl_ext_ARB_create_context) {
 		HGLRC hglrc = wglCreateContextAttribsARB(hdc, 0, attribs);
 		if (!hglrc) {
 			blog(LOG_ERROR, "wglCreateContextAttribsARB failed, %u",
@@ -235,17 +235,25 @@ static inline void required_extension_error(const char *extension)
 	blog(LOG_ERROR, "OpenGL extension %s is required", extension);
 }
 
-static bool gl_init_extensions(device_t device)
+static bool gl_init_extensions(HDC hdc)
 {
-	glewExperimental = true;
-	GLenum errorcode = glewInit();
-	if (errorcode != GLEW_OK) {
-		blog(LOG_ERROR, "glewInit failed, %u", errorcode);
+	if (wgl_LoadFunctions(hdc)) {
+		blog(LOG_ERROR, "Failed to load WGL entry functions.");
 		return false;
 	}
 
-	if (!WGLEW_ARB_pixel_format) {
-		required_extension_error("WGL_ARB_pixel_format");
+	if (!wgl_ext_ARB_pixel_format) {
+		required_extension_error("ARB_pixel_format");
+		return false;
+	}
+
+	if (!wgl_ext_ARB_create_context) {
+		required_extension_error("ARB_create_context");
+		return false;
+	}
+
+	if (!wgl_ext_ARB_create_context_profile) {
+		required_extension_error("ARB_create_context_profile");
 		return false;
 	}
 
@@ -377,7 +385,7 @@ struct gl_platform *gl_platform_create(device_t device,
 
 	if (!gl_dummy_context_init(&dummy))
 		goto fail;
-	if (!gl_init_extensions(device))
+	if (!gl_init_extensions(dummy.hdc))
 		goto fail;
 
 	/* you have to have a dummy context open before you can actually
@@ -394,6 +402,11 @@ struct gl_platform *gl_platform_create(device_t device,
 	if (!plat->hrc)
 		goto fail;
 
+	if (!ogl_LoadFunctions()) {
+		blog(LOG_ERROR, "Failed to initialize OpenGL entry functions.");
+		goto fail;
+	}
+
 	return plat;
 
 fail:

+ 15 - 30
libobs-opengl/gl-x11.c

@@ -20,12 +20,9 @@
 
 #include "gl-subsystem.h"
 
-#include <GL/glx.h>
-#include <GL/glxext.h>
+#include "GL/glx_obs.h"
 	
-static PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB;
-	
-static const GLenum fb_attribs[] = {
+static const int fb_attribs[] = {
 	/* Hardcoded for now... */
 	GLX_STENCIL_SIZE, 8,
 	GLX_DEPTH_SIZE, 24, 
@@ -34,7 +31,7 @@ static const GLenum fb_attribs[] = {
 	None
 };
 
-static const GLenum ctx_attribs[] = {
+static const int ctx_attribs[] = {
 #ifdef _DEBUG
 	GLX_CONTEXT_FLAGS_ARB, GLX_CONTEXT_DEBUG_BIT_ARB,
 #endif
@@ -66,17 +63,8 @@ extern struct gl_windowinfo *gl_windowinfo_create(struct gs_init_data *info)
 	/* wi->display = info->window.display; */
 
 	/*
-		In order to do the above, we have to call
-		XInitThreads in the soonest possible time. 
-		The wxFrame initializer is good but it sucks
-		big time that I'm having to make X11 specific
-		code all over platform-independent code. 
-
-		The solution we have now avoids this although I'd
-		like to be able to do the above as it's probably
-		safer (I don't know the side-effects of using a Display
-		connection that wasn't used to create the window)
-		and more efficient. 
+		The above no longer works with Qt. 
+		Let's hope it continues to work.	
 	 */
 	
 	return wi;
@@ -131,7 +119,11 @@ struct gl_platform *gl_platform_create(device_t device,
 		goto fail0;
 	}
 	
-	
+	if (!glx_LoadFunctions(display, DefaultScreen(display))) {
+		blog(LOG_ERROR, "Unable to load GLX entry functions.");
+		goto fail0;
+	}
+
 	if (!glXQueryExtension(display, &error_base, &event_base)) {
 		blog(LOG_ERROR, "GLX not supported.");
 		goto fail0;
@@ -147,9 +139,8 @@ struct gl_platform *gl_platform_create(device_t device,
 			goto fail0;
 		}
 	}
-	
-	glXCreateContextAttribsARB = (PFNGLXCREATECONTEXTATTRIBSARBPROC)glXGetProcAddress("glXCreateContextAttribsARB");
-	if (!glXCreateContextAttribsARB) {
+
+	if (!glx_ext_ARB_create_context) {
 		blog(LOG_ERROR, "ARB_GLX_create_context not supported!");
 		goto fail0;
 	}
@@ -178,15 +169,9 @@ struct gl_platform *gl_platform_create(device_t device,
 		goto fail2;
 	}
 
-	/* Initialize GLEW */
-	{ 	
-		glewExperimental = true;
-		GLenum err = glewInit();
-		
-		if (GLEW_OK != err) {
-			blog(LOG_ERROR, glewGetErrorString(err));
-			goto fail2;
-		}
+	if (!ogl_LoadFunctions()) {
+		blog(LOG_ERROR, "Failed to load OpenGL entry functions.");
+		goto fail2;
 	}
 	
 	blog(LOG_INFO, "OpenGL version: %s\n", glGetString(GL_VERSION));

+ 0 - 7
libobs-opengl/glew/.gitignore

@@ -1,7 +0,0 @@
-*.pc
-/build/vc6/*.rc
-/auto/extensions
-/auto/registry
-/bin
-/lib
-/tmp

+ 0 - 73
libobs-opengl/glew/LICENSE.txt

@@ -1,73 +0,0 @@
-The OpenGL Extension Wrangler Library
-Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
-Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
-Copyright (C) 2002, Lev Povalahev
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without 
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, 
-  this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice, 
-  this list of conditions and the following disclaimer in the documentation 
-  and/or other materials provided with the distribution.
-* The name of the author may be used to endorse or promote products 
-  derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGE.
-
-
-Mesa 3-D graphics library
-Version:  7.0
-
-Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Copyright (c) 2007 The Khronos Group Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and/or associated documentation files (the
-"Materials"), to deal in the Materials without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Materials, and to
-permit persons to whom the Materials are furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Materials.
-
-THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.

+ 0 - 402
libobs-opengl/glew/Makefile

@@ -1,402 +0,0 @@
-#!gmake
-## The OpenGL Extension Wrangler Library
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002, Lev Povalahev
-## All rights reserved.
-## 
-## Redistribution and use in source and binary forms, with or without 
-## modification, are permitted provided that the following conditions are met:
-## 
-## * Redistributions of source code must retain the above copyright notice, 
-##   this list of conditions and the following disclaimer.
-## * Redistributions in binary form must reproduce the above copyright notice, 
-##   this list of conditions and the following disclaimer in the documentation 
-##   and/or other materials provided with the distribution.
-## * The name of the author may be used to endorse or promote products 
-##   derived from this software without specific prior written permission.
-##
-## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
-## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-## ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-## LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-## THE POSSIBILITY OF SUCH DAMAGE.
-
-include config/version
-
-SHELL = /bin/sh
-SYSTEM ?= $(shell config/config.guess | cut -d - -f 3 | sed -e 's/[0-9\.]//g;')
-SYSTEM.SUPPORTED = $(shell test -f config/Makefile.$(SYSTEM) && echo 1)
-
-ifeq ($(SYSTEM.SUPPORTED), 1)
-include config/Makefile.$(SYSTEM)
-else
-$(error "Platform '$(SYSTEM)' not supported")
-endif
-
-GLEW_DEST ?= /usr
-BINDIR    ?= $(GLEW_DEST)/bin
-LIBDIR    ?= $(GLEW_DEST)/lib
-INCDIR    ?= $(GLEW_DEST)/include/GL
-
-DIST_NAME     ?= glew-$(GLEW_VERSION)
-DIST_SRC_ZIP ?= $(shell pwd)/$(DIST_NAME).zip
-DIST_SRC_TGZ ?= $(shell pwd)/$(DIST_NAME).tgz
-DIST_WIN32   ?= $(shell pwd)/$(DIST_NAME)-win32.zip
-
-DIST_DIR := $(shell mktemp -d /tmp/glew.XXXXXX)/$(DIST_NAME)
-
-# To disable stripping of binaries either:
-#   - use STRIP= on gmake command-line
-#   - edit this makefile to set STRIP to the empty string
-#
-# To disable symlinks:
-#   - use LN= on gmake command-line
-
-AR      ?= ar
-INSTALL ?= install
-STRIP   ?= strip
-RM      ?= rm -f
-LN      ?= ln -sf
-
-ifeq ($(MAKECMDGOALS), debug)
-OPT = -g
-else
-OPT = $(POPT)
-endif
-INCLUDE = -Iinclude
-CFLAGS = $(OPT) $(WARN) $(INCLUDE) $(CFLAGS.EXTRA)
-
-all debug: glew.lib glew.lib.mx glew.bin
-
-# GLEW shared and static libraries
-
-LIB.LDFLAGS        := $(LDFLAGS.EXTRA) $(LDFLAGS.GL)
-LIB.LIBS           := $(GL_LDFLAGS)
-
-LIB.SRCS           := src/glew.c
-LIB.SRCS.NAMES     := $(notdir $(LIB.SRCS))
-
-LIB.OBJS           := $(addprefix tmp/$(SYSTEM)/default/static/,$(LIB.SRCS.NAMES))
-LIB.OBJS           := $(LIB.OBJS:.c=.o)
-LIB.SOBJS          := $(addprefix tmp/$(SYSTEM)/default/shared/,$(LIB.SRCS.NAMES))
-LIB.SOBJS          := $(LIB.SOBJS:.c=.o)
-
-LIB.OBJS.MX        := $(addprefix tmp/$(SYSTEM)/mx/static/,$(LIB.SRCS.NAMES))
-LIB.OBJS.MX        := $(LIB.OBJS.MX:.c=.o)
-LIB.SOBJS.MX       := $(addprefix tmp/$(SYSTEM)/mx/shared/,$(LIB.SRCS.NAMES))
-LIB.SOBJS.MX       := $(LIB.SOBJS.MX:.c=.o)
-
-glew.lib: lib lib/$(LIB.SHARED) lib/$(LIB.STATIC) glew.pc
-
-lib:
-	mkdir lib
-
-lib/$(LIB.STATIC): $(LIB.OBJS)
-	$(AR) cr $@ $^
-ifneq ($(STRIP),)
-	$(STRIP) -x $@
-endif
-
-lib/$(LIB.SHARED): $(LIB.SOBJS)
-	$(LD) $(LDFLAGS.SO) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS)
-ifneq ($(LN),)
-	$(LN) $(LIB.SHARED) lib/$(LIB.SONAME)
-	$(LN) $(LIB.SHARED) lib/$(LIB.DEVLNK)
-endif
-ifneq ($(STRIP),)
-	$(STRIP) -x $@
-endif
-
-tmp/$(SYSTEM)/default/static/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
-	@mkdir -p $(dir $@)
-	$(CC) -DGLEW_NO_GLU -DGLEW_STATIC $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
-
-tmp/$(SYSTEM)/default/shared/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
-	@mkdir -p $(dir $@)
-	$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
-
-# Force re-write of glew.pc, GLEW_DEST can vary
-
-.PHONY: glew.pc
-
-glew.pc: glew.pc.in
-	sed \
-		-e "s|@prefix@|$(GLEW_DEST)|g" \
-		-e "s|@libdir@|$(LIBDIR)|g" \
-		-e "s|@exec_prefix@|$(BINDIR)|g" \
-		-e "s|@includedir@|$(INCDIR)|g" \
-		-e "s|@version@|$(GLEW_VERSION)|g" \
-		-e "s|@cflags@||g" \
-		-e "s|@libname@|GLEW|g" \
-		< $< > $@
-
-# GLEW MX static and shared libraries
-
-glew.lib.mx:  lib lib/$(LIB.SHARED.MX) lib/$(LIB.STATIC.MX) glewmx.pc
-
-lib/$(LIB.STATIC.MX): $(LIB.OBJS.MX)
-	$(AR) cr $@ $^
-
-lib/$(LIB.SHARED.MX): $(LIB.SOBJS.MX)
-	$(LD) $(LDFLAGS.SO.MX) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS)
-ifneq ($(LN),)
-	$(LN) $(LIB.SHARED.MX) lib/$(LIB.SONAME.MX)
-	$(LN) $(LIB.SHARED.MX) lib/$(LIB.DEVLNK.MX)
-endif
-ifneq ($(STRIP),)
-	$(STRIP) -x $@
-endif
-
-tmp/$(SYSTEM)/mx/static/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
-	@mkdir -p $(dir $@)
-	$(CC) -DGLEW_NO_GLU -DGLEW_MX -DGLEW_STATIC $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
-
-tmp/$(SYSTEM)/mx/shared/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
-	@mkdir -p $(dir $@)
-	$(CC) -DGLEW_NO_GLU -DGLEW_MX $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
-
-# Force re-write of glewmx.pc, GLEW_DEST can vary
-
-.PHONY: glewmx.pc
-
-glewmx.pc: glew.pc.in
-	sed \
-		-e "s|@prefix@|$(GLEW_DEST)|g" \
-		-e "s|@libdir@|$(LIBDIR)|g" \
-		-e "s|@exec_prefix@|$(BINDIR)|g" \
-		-e "s|@includedir@|$(INCDIR)|g" \
-		-e "s|@version@|$(GLEW_VERSION)|g" \
-		-e "s|@cflags@|-DGLEW_MX|g" \
-		-e "s|@libname@|GLEWmx|g" \
-		< $< > $@
-
-# GLEW utility programs
-
-BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL)
-
-GLEWINFO.BIN       := glewinfo$(BIN.SUFFIX)
-GLEWINFO.BIN.SRC   := src/glewinfo.c
-GLEWINFO.BIN.OBJ   := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.SRC)))
-GLEWINFO.BIN.OBJ   := $(GLEWINFO.BIN.OBJ:.c=.o)
-
-VISUALINFO.BIN     := visualinfo$(BIN.SUFFIX)
-VISUALINFO.BIN.SRC := src/visualinfo.c
-VISUALINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(VISUALINFO.BIN.SRC)))
-VISUALINFO.BIN.OBJ := $(VISUALINFO.BIN.OBJ:.c=.o)
-
-# Don't build glewinfo or visualinfo for NaCL, yet.
-
-ifneq ($(filter nacl%,$(SYSTEM)),)
-glew.bin: glew.lib bin
-else
-glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) 
-endif
-
-bin:
-	mkdir bin
-
-bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) lib/$(LIB.SHARED)
-	$(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(BIN.LIBS)
-ifneq ($(STRIP),)
-	$(STRIP) -x $@
-endif
-
-bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJ) lib/$(LIB.SHARED)
-	$(CC) $(CFLAGS) -o $@ $(VISUALINFO.BIN.OBJ) $(BIN.LIBS)
-ifneq ($(STRIP),)
-	$(STRIP) -x $@
-endif
-
-$(GLEWINFO.BIN.OBJ): $(GLEWINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
-	@mkdir -p $(dir $@)
-	$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
-
-$(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
-	@mkdir -p $(dir $@)
-	$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
-
-# Install targets
-
-install.all: install install.mx install.bin
-
-install:     install.include install.lib install.pkgconfig
-
-install.mx:  install.include install.lib.mx install.pkgconfig.mx
-
-install.lib: glew.lib
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
-# runtime
-ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
-	$(INSTALL) -m 0755 lib/$(LIB.SHARED) "$(DESTDIR)$(BINDIR)/"
-else
-	$(INSTALL) -m 0644 lib/$(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/"
-endif
-ifneq ($(LN),)
-	$(LN) $(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)"
-endif
-
-# development files
-ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
-	$(INSTALL) -m 0644 lib/$(LIB.DEVLNK) "$(DESTDIR)$(LIBDIR)/"
-endif
-ifneq ($(LN),)
-	$(LN) $(LIB.SHARED) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)"
-endif
-	$(INSTALL) -m 0644 lib/$(LIB.STATIC) "$(DESTDIR)$(LIBDIR)/"
-
-install.lib.mx: glew.lib.mx
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
-# runtime
-ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
-	$(INSTALL) -m 0755 lib/$(LIB.SHARED.MX) "$(DESTDIR)$(BINDIR)/"
-else
-	$(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/"
-endif
-ifneq ($(LN),)
-	$(LN) $(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)"
-endif
-# development files
-ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
-	$(INSTALL) -m 0644 lib/$(LIB.DEVLNK.MX) "$(DESTDIR)$(LIBDIR)/"
-endif
-ifneq ($(LN),)
-	$(LN) $(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)"
-endif
-	$(INSTALL) -m 0644 lib/$(LIB.STATIC.MX) "$(DESTDIR)$(LIBDIR)/"
-
-install.bin: glew.bin
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
-	$(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) "$(DESTDIR)$(BINDIR)/"
-
-install.include:
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(INCDIR)"
-	$(INSTALL) -m 0644 include/GL/wglew.h "$(DESTDIR)$(INCDIR)/"
-	$(INSTALL) -m 0644 include/GL/glew.h "$(DESTDIR)$(INCDIR)/"
-	$(INSTALL) -m 0644 include/GL/glxew.h "$(DESTDIR)$(INCDIR)/"
-
-install.pkgconfig: glew.pc
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)/pkgconfig"
-	$(INSTALL) -m 0644 glew.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/"
-
-install.pkgconfig.mx: glewmx.pc
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
-	$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)/pkgconfig"
-	$(INSTALL) -m 0644 glewmx.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/"
-
-uninstall:
-	$(RM) "$(DESTDIR)$(INCDIR)/wglew.h"
-	$(RM) "$(DESTDIR)$(INCDIR)/glew.h"
-	$(RM) "$(DESTDIR)$(INCDIR)/glxew.h"
-	$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)" "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)"
-ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
-	$(RM) "$(DESTDIR)$(BINDIR)/$(LIB.SHARED)" "$(DESTDIR)$(BINDIR)/$(LIB.SHARED.MX)"
-else
-	$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)" "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)"
-	$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED)" "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED.MX)"
-endif
-	$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC)" "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC.MX)"
-	$(RM) "$(DESTDIR)$(BINDIR)/$(GLEWINFO.BIN)" "$(DESTDIR)$(BINDIR)/$(VISUALINFO.BIN)"
-
-clean:
-	$(RM) -r tmp/
-	$(RM) -r lib/
-	$(RM) -r bin/
-	$(RM) glew.pc glewmx.pc
-
-distclean: clean
-	find . -name \*~ | xargs $(RM)
-	find . -name .\*.sw\? | xargs $(RM)
-
-# Distributions
-
-dist-win32:
-	$(RM) -r $(DIST_DIR)
-	mkdir -p $(DIST_DIR)
-	cp -a include $(DIST_DIR)
-	cp -a doc $(DIST_DIR)
-	cp -a *.txt $(DIST_DIR)
-	cp -a bin $(DIST_DIR)
-	cp -a lib $(DIST_DIR)
-	$(RM) -f $(DIST_DIR)/bin/*/*/*.pdb $(DIST_DIR)/bin/*/*/*.exp
-	$(RM) -f $(DIST_DIR)/bin/*/*/glewinfo-*.exe $(DIST_DIR)/bin/*/*/visualinfo-*.exe 
-	$(RM) -f $(DIST_DIR)/lib/*/*/*.pdb $(DIST_DIR)/lib/*/*/*.exp
-	unix2dos $(DIST_DIR)/include/GL/*.h
-	unix2dos $(DIST_DIR)/doc/*.txt
-	unix2dos $(DIST_DIR)/doc/*.html
-	unix2dos $(DIST_DIR)/*.txt
-	rm -f $(DIST_WIN32)
-	cd $(DIST_DIR)/.. && zip -rv9 $(DIST_WIN32) $(DIST_NAME)
-	$(RM) -r $(DIST_DIR)
-
-dist-src:
-	$(RM) -r $(DIST_DIR)
-	mkdir -p $(DIST_DIR)
-	mkdir -p $(DIST_DIR)/bin
-	mkdir -p $(DIST_DIR)/lib
-	cp -a auto $(DIST_DIR)
-	$(RM) -Rf $(DIST_DIR)/auto/registry
-	cp -a build $(DIST_DIR)
-	cp -a config $(DIST_DIR)
-	cp -a src $(DIST_DIR)
-	cp -a doc $(DIST_DIR)
-	cp -a include $(DIST_DIR)
-	cp -a *.txt $(DIST_DIR)
-	cp -a Makefile $(DIST_DIR)
-	cp -a glew.pc.in $(DIST_DIR)
-	find $(DIST_DIR) -name '*.o' | xargs $(RM) -r
-	find $(DIST_DIR) -name '*~' | xargs $(RM) -r
-	find $(DIST_DIR) -name CVS -o -name .cvsignore | xargs $(RM) -r
-	find $(DIST_DIR) -name .svn | xargs $(RM) -r
-	find $(DIST_DIR) -name "*.patch" | xargs $(RM) -r
-	dos2unix $(DIST_DIR)/Makefile
-	dos2unix $(DIST_DIR)/auto/Makefile
-	dos2unix $(DIST_DIR)/config/*
-	unix2dos $(DIST_DIR)/auto/core/*
-	unix2dos $(DIST_DIR)/auto/extensions/*
-	find $(DIST_DIR) -name '*.h' | xargs unix2dos
-	find $(DIST_DIR) -name '*.c' | xargs unix2dos
-	find $(DIST_DIR) -name '*.txt' | xargs unix2dos
-	find $(DIST_DIR) -name '*.html' | xargs unix2dos
-	find $(DIST_DIR) -name '*.css' | xargs unix2dos
-	find $(DIST_DIR) -name '*.sh' | xargs unix2dos
-	find $(DIST_DIR) -name '*.pl' | xargs unix2dos
-	find $(DIST_DIR) -name 'Makefile' | xargs unix2dos
-	find $(DIST_DIR) -name '*.in' | xargs unix2dos
-	find $(DIST_DIR) -name '*.pm' | xargs unix2dos
-	find $(DIST_DIR) -name '*.rc' | xargs unix2dos
-	rm -f $(DIST_SRC_ZIP)
-	cd $(DIST_DIR)/.. && zip -rv9 $(DIST_SRC_ZIP) $(DIST_NAME)
-	dos2unix $(DIST_DIR)/Makefile
-	dos2unix $(DIST_DIR)/auto/Makefile
-	dos2unix $(DIST_DIR)/config/*
-	dos2unix $(DIST_DIR)/auto/core/*
-	dos2unix $(DIST_DIR)/auto/extensions/*
-	find $(DIST_DIR) -name '*.h' | xargs dos2unix
-	find $(DIST_DIR) -name '*.c' | xargs dos2unix
-	find $(DIST_DIR) -name '*.txt' | xargs dos2unix
-	find $(DIST_DIR) -name '*.html' | xargs dos2unix
-	find $(DIST_DIR) -name '*.css' | xargs dos2unix
-	find $(DIST_DIR) -name '*.sh' | xargs dos2unix
-	find $(DIST_DIR) -name '*.pl' | xargs dos2unix
-	find $(DIST_DIR) -name 'Makefile' | xargs dos2unix
-	find $(DIST_DIR) -name '*.in' | xargs dos2unix
-	find $(DIST_DIR) -name '*.pm' | xargs dos2unix
-	find $(DIST_DIR) -name '*.rc' | xargs dos2unix
-	rm -f $(DIST_SRC_TGZ)
-	cd $(DIST_DIR)/.. && env GZIP=-9 tar cvzf $(DIST_SRC_TGZ) $(DIST_NAME)
-	$(RM) -r $(DIST_DIR)
-
-extensions:
-	$(MAKE) -C auto
-
-.PHONY: clean distclean tardist dist-win32 dist-src

+ 0 - 24
libobs-opengl/glew/README.txt

@@ -1,24 +0,0 @@
-See doc/index.html for more information.
-
-If you downloaded the tarball from the GLEW website, you just need to:
-
-    Unix:
-
-        make
-        
-        sudo -s
-        
-        make install
-        
-        make clean
-
-    Windows:
-
-        use the project file in build/vc6/
-
-If you wish to build GLEW from scratch (update the extension data from
-the net or add your own extension information), you need a Unix
-environment (including wget, perl, and GNU make).  The extension data
-is regenerated from the top level source directory with:
-
-        make extensions

+ 0 - 12
libobs-opengl/glew/TODO.txt

@@ -1,12 +0,0 @@
-Major:
- - add support for windows mini-client drivers
- - add windows installer (msi)
- - separate build of static and shared object files (for mingw and
- cygwin)
- - start designing GLEW 2.0
-
-Minor:
- - make auto scripts work with text mode cygwin mounts
- - add support for all SUN, MTX, and OML extensions
- - make auto/Makefile more robust against auto/core/*~ mistakes
- - web poll on separating glew, glxew and wglew

+ 0 - 389
libobs-opengl/glew/auto/Makefile

@@ -1,389 +0,0 @@
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-include ../config/version
-
-#GLEW_SPLIT_SOURCE = yes
-
-SHELL = bash
-
-### Use git repository for GL extension specifications
-
-GIT_CLONE  ?= git clone --branch glew https://github.com/nigels-com/glfixes.git
-
-###
-### Conventional desktop OpenGL settings
-###
-
-REGISTRY     = registry/gl/specs
-EXT          = extensions/gl
-FILTER       = filter_gl_ext.sh
-CORE         = core/gl
-REGISTRY_URL = http://www.opengl.org/registry/
-
-###
-### Experimental OpenGL ES settings
-###
-
-# REGISTRY     = registry/gles
-# EXT          = extensions/gles
-# FILTER       = filter_gles_ext.sh
-# CORE         = core/gles
-# REGISTRY_URL = http://www.khronos.org/registry/gles/
-
-BIN = bin
-SRC = src
-BLACKLIST = blacklist
-
-GL_CORE_SPEC := $(CORE)/GL_VERSION*
-GLX_CORE_SPEC := $(CORE)/GLX_VERSION*
-ifeq (custom,$(MAKECMDGOALS))
-#GL_CORE_SPEC  := $(shell grep GL_VERSION custom.txt    |                       perl -pi -e "s=^=$(CORE)/=g;")
-GL_EXT_SPEC    := $(shell grep "^[ \t]*GL_" custom.txt  | grep -v GL_VERSION  | perl -pi -e "s=^=$(EXT)/=g;")
-WGL_EXT_SPEC   := $(shell grep "^[ \t]*WGL_" custom.txt |                       perl -pi -e "s=^=$(EXT)/=g;")
-#GLX_CORE_SPEC := $(shell grep GLX_VERSION custom.txt   |                       perl -pi -e "s=^=$(CORE)/=g;")
-GLX_EXT_SPEC   := $(shell grep "^[ \t]*GLX_" custom.txt | grep -v GLX_VERSION | perl -pi -e "s=^=$(EXT)/=g;")
-else
-GL_EXT_SPEC := $(EXT)/GL_*
-WGL_EXT_SPEC := $(EXT)/WGL_*
-GLX_EXT_SPEC := $(EXT)/GLX_*
-endif
-
-PARSE_SPEC = parse_spec.pl
-SYSTEM = $(strip $(shell uname -s))
-
-TOP = ..
-I.DEST = $(TOP)/include/GL
-S.DEST = $(TOP)/src
-D.DEST = $(TOP)/doc
-B.DEST = $(TOP)/build
-
-I.TARGETS = \
-	$(I.DEST)/glew.h \
-	$(I.DEST)/wglew.h \
-	$(I.DEST)/glxew.h
-
-ifeq (yes,$(GLEW_SPLIT_SOURCE))
-S.TARGETS = \
-	$(S.DEST)/glew_def.c \
-	$(S.DEST)/glew_init.c \
-	$(S.DEST)/glew_str.c \
-	$(S.DEST)/glewinfo.c
-else
-S.TARGETS = \
-	$(S.DEST)/glew.c \
-	$(S.DEST)/glewinfo.c
-endif
-
-D.TARGETS = \
-	$(D.DEST)/index.html \
-	$(D.DEST)/install.html \
-	$(D.DEST)/basic.html \
-	$(D.DEST)/advanced.html \
-	$(D.DEST)/build.html \
-	$(D.DEST)/credits.html \
-	$(D.DEST)/log.html \
-	$(D.DEST)/glew.html \
-	$(D.DEST)/wglew.html \
-	$(D.DEST)/glxew.html
-
-B.TARGETS = \
-	$(B.DEST)/glew.rc \
-	$(B.DEST)/glewinfo.rc \
-	$(B.DEST)/visualinfo.rc
-
-all custom: $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS)
-
-registry: $(REGISTRY)/.dummy
-ext: $(EXT)/.dummy
-
-$(REGISTRY)/.dummy:
-	@echo "--------------------------------------------------------------------"
-	@echo "Downloading registry"
-	@echo "--------------------------------------------------------------------"
-	$(GIT_CLONE) registry
-	touch $@
-
-$(EXT)/.dummy: $(REGISTRY)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating descriptors"
-	@echo "--------------------------------------------------------------------"
-	rm -rf $(EXT)
-	$(BIN)/update_ext.sh $(EXT) $(REGISTRY) $(BLACKLIST)
-	$(BIN)/$(FILTER)     $(EXT)
-ifeq ($(patsubst Darwin%,Darwin,$(SYSTEM)), Darwin)
-	find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \
-	xargs -J % cp % $(EXT)
-else
-	find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \
-	xargs cp --target-directory=$(EXT)
-endif
-	touch $@
-
-$(I.DEST)/glew.h: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating glew.h"
-	@echo "--------------------------------------------------------------------"
-	test -d $(I.DEST) || mkdir -p $(I.DEST)
-	cp -f $(SRC)/glew_license.h $@
-	cat $(SRC)/mesa_license.h >> $@
-	cat $(SRC)/khronos_license.h >> $@
-	cat $(SRC)/glew_head.h >> $@
-	$(BIN)/make_header.pl GLAPIENTRY GL $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_header.pl GLAPIENTRY GL $(GL_EXT_SPEC) >> $@
-	echo -e "/* ------------------------------------------------------------------------- */\n\n#if defined(GLEW_MX) && defined(_WIN32)\n#define GLEW_FUN_EXPORT\n#else\n#define GLEW_FUN_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
-	echo -e "#if defined(GLEW_MX)\n#define GLEW_VAR_EXPORT\n#else\n#define GLEW_VAR_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
-	echo -e "#if defined(GLEW_MX) && defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
-	$(BIN)/make_struct_fun.pl GLEW_FUN_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
-	echo -e "\n#if defined(GLEW_MX) && !defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
-	$(BIN)/make_struct_var.pl GLEW_VAR_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
-	echo -e "\n#ifdef GLEW_MX\n}; /* GLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
-	perl -e "s/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1;\nGLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/" -pi $@
-	rm -f [email protected]
-	cat $(SRC)/glew_tail.h >> $@
-
-$(I.DEST)/wglew.h: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating wglew.h"
-	@echo "--------------------------------------------------------------------"
-	cp -f $(SRC)/glew_license.h $@
-	cat $(SRC)/khronos_license.h >> $@
-	cat $(SRC)/wglew_head.h >> $@
-	$(BIN)/make_header.pl WINAPI WGL $(WGL_EXT_SPEC) >> $@
-	cat $(SRC)/wglew_mid.h >> $@
-	echo -e "\n#ifdef GLEW_MX\nstruct WGLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
-	$(BIN)/make_struct_fun.pl WGLEW_FUN_EXPORT $(WGL_EXT_SPEC) >> $@
-	$(BIN)/make_struct_var.pl WGLEW_VAR_EXPORT $(WGL_EXT_SPEC) >> $@
-	echo -e "\n#ifdef GLEW_MX\n}; /* WGLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
-	cat $(SRC)/wglew_tail.h >> $@
-
-$(I.DEST)/glxew.h: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating glxew.h"
-	@echo "--------------------------------------------------------------------"
-	cp -f $(SRC)/glew_license.h $@
-	cat $(SRC)/mesa_license.h >> $@
-	cat $(SRC)/khronos_license.h >> $@
-	cat $(SRC)/glxew_head.h >> $@
-	$(BIN)/make_header.pl "" GLX $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_header.pl "" GLX $(GLX_EXT_SPEC) >> $@
-	cat $(SRC)/glxew_mid.h >> $@
-	$(BIN)/make_struct_fun.pl GLXEW_FUN_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
-	echo -e "\n#if defined(GLEW_MX)\nstruct GLXEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
-	$(BIN)/make_struct_var.pl GLXEW_VAR_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
-	echo -e "\n#ifdef GLEW_MX\n}; /* GLXEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
-	perl -e "s/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/" -pi $@
-	cat $(SRC)/glxew_tail.h >> $@
-
-$(S.DEST)/glew.c: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating glew.c"
-	@echo "--------------------------------------------------------------------"
-	cp -f $(SRC)/glew_license.h $@
-	cat $(SRC)/glew_head.c >> $@
-	echo -e "\n#if !defined(_WIN32) || !defined(GLEW_MX)" >> $@
-	$(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
-	echo -e "\n#endif /* !WIN32 || !GLEW_MX */" >> $@
-	echo -e "\n#if !defined(GLEW_MX)" >> $@;
-	echo -e "\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@
-	$(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
-	echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
-	$(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_init_gl.c >> $@
-	$(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
-	$(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
-	echo -e "\n  return GLEW_OK;\n}\n" >> $@
-	echo -e "\n#if defined(_WIN32)" >> $@
-	echo -e "\n#if !defined(GLEW_MX)" >> $@
-	$(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
-	$(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
-	echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
-	$(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_init_wgl.c >> $@
-	$(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
-	echo -e "\n  return GLEW_OK;\n}" >> $@;
-	echo -e "\n#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
-	$(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
-	echo -e "\n#if !defined(GLEW_MX)" >> $@;
-	echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@
-	echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@
-	$(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
-	echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
-	$(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
-	cat $(SRC)/glew_init_glx.c >> $@
-	$(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
-	$(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
-	echo -e "\n  return GLEW_OK;\n}" >> $@
-	echo -e "\n#endif /* !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */\n" >> $@;
-	cat $(SRC)/glew_init_tail.c >> $@
-	cat $(SRC)/glew_str_head.c >> $@
-	$(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_str_wgl.c >> $@
-	$(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_str_glx.c >> $@
-	$(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
-	cat $(SRC)/glew_str_tail.c >> $@
-	perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
-	perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@
-	perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@
-	perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@
-	perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
-	perl -e "s/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n  r = ((glColorSubTable = /g" -pi $@
-	rm -f [email protected]
-
-$(S.DEST)/glew_def.c: $(EXT)/.dummy
-	cp -f $(SRC)/glew_license.h $@
-	echo -e "#include \"glew_utils.h\"\n\n#if !defined(_WIN32) || !defined(GLEW_MX)" >> $@
-	$(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
-	echo -e "\n#endif /* !WIN32 || !GLEW_MX */" >> $@
-	echo -e "\n#if !defined(GLEW_MX)\n\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@
-	$(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
-	echo -e "\n#if defined(_WIN32)" >> $@
-	$(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
-	$(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
-	echo -e "\n#endif /* _WIN32 */" >> $@
-	echo -e "\n#endif /* !GLEW_MX */" >> $@;
-	echo -e "\n#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
-	$(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
-	echo -e "\n#if !defined(GLEW_MX)" >> $@;
-	echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@
-	echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@
-	$(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
-	echo -e "\n#endif /* !GLEW_MX */" >> $@;
-	echo -e "\n#endif /* !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */" >> $@;
-	rm -f [email protected]
-
-$(S.DEST)/glew_init.c: $(EXT)/.dummy
-	cp -f $(SRC)/glew_license.h $@
-	echo -e "#include \"glew_utils.h\"\n" >> $@
-	$(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_init_gl.c >> $@
-	$(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
-	$(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
-	echo -e "\n  return GLEW_OK;\n}\n\n#if defined(_WIN32)\n" >> $@;
-	$(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_init_wgl.c >> $@
-	$(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
-	echo -e "\n  return GLEW_OK;\n}\n\n" >> $@;
-	echo -e "\n#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)\n" >> $@
-	$(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
-	cat $(SRC)/glew_init_glx.c >> $@
-	$(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
-	$(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
-	echo -e "\n  return GLEW_OK;\n}\n\n#endif /* !__APPLE__ || GLEW_APPLE_GLX */\n" >> $@;
-	cat $(SRC)/glew_init_tail.c >> $@
-	perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
-	perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@
-	perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@
-	perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@
-	perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
-	perl -e "s/\(\(glBlendColor = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n  r = ((glBlendColor = /g" -pi $@
-	rm -f [email protected]
-
-$(S.DEST)/glew_str.c: $(EXT)/.dummy
-	cp -f $(SRC)/glew_license.h $@
-	echo -e "\n#include \"glew_utils.h\"\n" >> $@
-	cat $(SRC)/glew_str_head.c >> $@
-	$(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_str_wgl.c >> $@
-	$(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
-	cat $(SRC)/glew_str_glx.c >> $@
-	$(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
-	cat $(SRC)/glew_str_tail.c >> $@
-#	perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
-#	perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
-	rm -f [email protected]
-
-$(S.DEST)/glewinfo.c: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating glewinfo.c"
-	@echo "--------------------------------------------------------------------"
-	cp -f $(SRC)/glew_license.h $@
-	cat $(SRC)/glewinfo_head.c >> $@
-	$(BIN)/make_info.pl $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_info.pl $(GL_EXT_SPEC) >> $@
-	echo -e "#ifdef _WIN32\n" >> $@
-	$(BIN)/make_info.pl $(WGL_EXT_SPEC) >> $@
-	echo -e "#else /* _UNIX */\n" >> $@
-	$(BIN)/make_info.pl $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_info.pl $(GLX_EXT_SPEC) >> $@
-	echo -e "#endif /* _WIN32 */\n" >> $@
-
-	cat $(SRC)/glewinfo_gl.c >> $@
-	$(BIN)/make_info_list.pl $(GL_CORE_SPEC) >> $@
-	$(BIN)/make_info_list.pl $(GL_EXT_SPEC) >> $@
-	cat $(SRC)/glewinfo_wgl.c >> $@
-	$(BIN)/make_info_list.pl $(WGL_EXT_SPEC) >> $@
-	cat $(SRC)/glewinfo_glx.c >> $@
-	$(BIN)/make_info_list.pl $(GLX_CORE_SPEC) >> $@
-	$(BIN)/make_info_list.pl $(GLX_EXT_SPEC) >> $@
-	cat $(SRC)/glewinfo_tail.c >> $@
-	perl -e 's/"glColorSubTable"/"glBlendEquation", glBlendEquation == NULL);\n  glewInfoFunc("glColorSubTable"/g' -pi $@
-	rm -f [email protected]
-
-# Update documentation
-
-$(D.DEST)/%.html: doc/%.html
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating $(@F)"
-	@echo "--------------------------------------------------------------------"
-	cat $(SRC)/header.html $< $(SRC)/footer.html | \
-	perl -pe 's#<a href="$(@F)">(.*)</a>#\1#' > $@
-
-$(D.DEST)/glew.html: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating glew.html"
-	@echo "--------------------------------------------------------------------"
-	cp -f $(SRC)/header.html $@
-	echo -e "<h2>Supported OpenGL Extensions</h2>\n" >> $@
-	$(BIN)/make_html.pl $(GL_EXT_SPEC) >> $@
-	cat $(SRC)/footer.html >> $@
-	perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
-
-$(D.DEST)/wglew.html: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating wglew.html"
-	@echo "--------------------------------------------------------------------"
-	cp -f $(SRC)/header.html $@
-	echo -e "<h2>Supported WGL Extensions</h2>\n" >> $@
-	$(BIN)/make_html.pl $(WGL_EXT_SPEC) >> $@
-	cat $(SRC)/footer.html >> $@
-	perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
-
-$(D.DEST)/glxew.html: $(EXT)/.dummy
-	@echo "--------------------------------------------------------------------"
-	@echo "Creating glxew.html"
-	@echo "--------------------------------------------------------------------"
-	cp -f $(SRC)/header.html $@
-	echo -e "<h2>Supported GLX Extensions</h2>\n" >> $@
-	$(BIN)/make_html.pl $(GLX_EXT_SPEC) >> $@
-	cat $(SRC)/footer.html >> $@
-	perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
-
-$(B.DEST)/%.rc: src/%.rc $(EXT)/.dummy
-	perl -e "s/GLEW_MAJOR/$(GLEW_MAJOR)/g;s/GLEW_MINOR/$(GLEW_MINOR)/g;s/GLEW_MICRO/$(GLEW_MICRO)/g;" -p $< > $@
-
-clean:
-	rm -rf $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS)
-
-clobber: clean
-	rm -rf $(EXT)
-
-destroy: clobber
-	rm -rf registry

+ 0 - 476
libobs-opengl/glew/auto/bin/filter_gl_ext.sh

@@ -1,476 +0,0 @@
-#!/bin/bash
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-##
-## Parameters:
-##
-##       $1: Extensions directory
-
-set -e
-
-# fix GL_NV_texture_compression_vtc
-    grep -v EXT $1/GL_NV_texture_compression_vtc > tmp
-    mv tmp $1/GL_NV_texture_compression_vtc
-
-# remove duplicates from GL_ARB_vertex_program and GL_ARB_fragment_program
-    grep -v -F -f $1/GL_ARB_vertex_program $1/GL_ARB_fragment_program > tmp
-    mv tmp $1/GL_ARB_fragment_program
-
-# remove duplicates from GLX_EXT_visual_rating and GLX_EXT_visual_info
-    grep -v -F -f $1/GLX_EXT_visual_info $1/GLX_EXT_visual_rating > tmp
-    mv tmp $1/GLX_EXT_visual_rating
-
-# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetBooleanIndexedvEXT but with different parameter names
-    grep -v glGetBooleanIndexedvEXT $1/GL_EXT_transform_feedback > tmp
-    mv tmp $1/GL_EXT_transform_feedback    
-
-# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetIntegerIndexedvEXT but with different parameter names
-    grep -v glGetIntegerIndexedvEXT $1/GL_EXT_transform_feedback > tmp
-    mv tmp $1/GL_EXT_transform_feedback    
-
-# remove duplicates from GL_NV_video_capture and GLX_NV_video_capture
-    grep -v glX $1/GL_NV_video_capture > tmp
-    mv tmp $1/GL_NV_video_capture
-
-# add missing functions to GL_NV_video_capture
-	cat >> $1/GL_NV_video_capture <<EOT
-    void glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params)
-    void glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params)
-    void glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params)
-    void glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params)
-    void glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params)
-    void glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params)
-EOT
-
-# fix WGL_NV_video_capture
-    cat >> $1/WGL_NV_video_capture <<EOT
-    DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
-EOT
-
-# fix GLX_NV_video_capture
-    cat >> $1/GLX_NV_video_capture <<EOT
-    typedef XID GLXVideoCaptureDeviceNV
-EOT
-
-# remove duplicates from GL_NV_present_video and GLX_NV_present_video
-    grep -v -F -f $1/GLX_NV_present_video $1/GL_NV_present_video > tmp
-    mv tmp $1/GL_NV_present_video
-
-# fix WGL_NV_present_video
-    cat >> $1/WGL_NV_present_video <<EOT
-    DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
-EOT
-
-# fix WGL_NV_video_output
-    cat >> $1/WGL_NV_video_output <<EOT
-    DECLARE_HANDLE(HPVIDEODEV);
-EOT
-
-# fix GL_NV_occlusion_query and GL_HP_occlusion_test
-    grep -v '_HP' $1/GL_NV_occlusion_query > tmp
-    mv tmp $1/GL_NV_occlusion_query
-    perl -e's/OCCLUSION_TEST_HP.*/OCCLUSION_TEST_HP 0x8165/' -pi \
-	$1/GL_HP_occlusion_test
-    perl -e's/OCCLUSION_TEST_RESULT_HP.*/OCCLUSION_TEST_RESULT_HP 0x8166/' -pi \
-	$1/GL_HP_occlusion_test
-
-# fix GLvoid in GL_ARB_vertex_buffer_objects
-    perl -e 's/ void\*/ GLvoid\*/g' -pi \
-        $1/GL_ARB_vertex_buffer_object
-
-# add deprecated constants to GL_ATI_fragment_shader
-    cat >> $1/GL_ATI_fragment_shader <<EOT
-	GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
-	GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
-	GL_NUM_PASSES_ATI 0x8970
-	GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
-	GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
-	GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
-	GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
-	GL_COLOR_ALPHA_PAIRING_ATI 0x8975
-	GL_SWIZZLE_STRQ_ATI 0x897A
-	GL_SWIZZLE_STRQ_DQ_ATI 0x897B
-EOT
-
-# add deprecated constants to GL_NV_texture_shader
-    cat >> $1/GL_NV_texture_shader <<EOT
-	GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
-	GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
-	GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
-EOT
-	
-# fix WGL_ATI_pixel_format_float
-    cat >> $1/WGL_ATI_pixel_format_float <<EOT
-	GL_RGBA_FLOAT_MODE_ATI 0x8820
-	GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
-EOT
-
-# fix WGL_ARB_make_current_read
-    cat >> $1/WGL_ARB_make_current_read <<EOT
-	ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
-	ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
-EOT
-
-# fix WGL_EXT_make_current_read
-    cat >> $1/WGL_EXT_make_current_read <<EOT
-	ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
-EOT
-
-# add typedefs to GL_ARB_vertex_buffer_object; (from personal communication
-# with Marco Fabbricatore).
-#
-# Rationale.  The spec says:
-#
-#   "Both types are defined as signed integers large enough to contain
-#   any pointer value [...] The idea of making these types unsigned was
-#   considered, but was ultimately rejected ..."
-    cat >> $1/GL_ARB_vertex_buffer_object <<EOT
-	typedef ptrdiff_t GLsizeiptrARB
-	typedef ptrdiff_t GLintptrARB
-EOT
-
-# add typedefs to GLX_EXT_import_context
-    cat >> $1/GLX_EXT_import_context <<EOT
-	typedef XID GLXContextID
-EOT
-
-# add tokens to GLX_OML_swap_method
-    cat >> $1/GLX_OML_swap_method <<EOT
-	GLX_SWAP_EXCHANGE_OML 0x8061
-	GLX_SWAP_COPY_OML 0x8062
-	GLX_SWAP_UNDEFINED_OML 0x8063
-EOT
-
-# add typedefs to GLX_SGIX_fbconfig
-    cat >> $1/GLX_SGIX_fbconfig <<EOT
-	typedef XID GLXFBConfigIDSGIX
-	typedef struct __GLXFBConfigRec *GLXFBConfigSGIX
-EOT
-
-# add typedefs to GLX_SGIX_pbuffer
-    cat >> $1/GLX_SGIX_pbuffer <<EOT
-	typedef XID GLXPbufferSGIX
-	typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX
-EOT
-
-# add typedef to GL_NV_half_float
-    cat >> $1/GL_NV_half_float <<EOT
-	typedef unsigned short GLhalf
-EOT
-
-# add handle to WGL_ARB_pbuffer
-    cat >> $1/WGL_ARB_pbuffer <<EOT
-	DECLARE_HANDLE(HPBUFFERARB);
-EOT
-
-# add handle to WGL_EXT_pbuffer
-    cat >> $1/WGL_EXT_pbuffer <<EOT
-	DECLARE_HANDLE(HPBUFFEREXT);
-EOT
-
-# get rid of GL_SUN_multi_draw_arrays
-    rm -f $1/GL_SUN_multi_draw_arrays
-
-# change variable names in GL_ARB_vertex_shader
-    perl -e 's/v0/x/g' -pi $1/GL_ARB_vertex_shader
-    perl -e 's/v1/y/g' -pi $1/GL_ARB_vertex_shader
-    perl -e 's/v2/z/g' -pi $1/GL_ARB_vertex_shader
-    perl -e 's/v3/w/g' -pi $1/GL_ARB_vertex_shader
-
-# remove triplicates in GL_ARB_shader_objects, GL_ARB_fragment_shader, 
-# and GL_ARB_vertex_shader
-    grep -v -F -f $1/GL_ARB_shader_objects $1/GL_ARB_fragment_shader > tmp
-    mv tmp $1/GL_ARB_fragment_shader
-    grep -v -F -f $1/GL_ARB_shader_objects $1/GL_ARB_vertex_shader > tmp
-    mv tmp $1/GL_ARB_vertex_shader
-
-# remove duplicates in GL_ARB_vertex_program and GL_ARB_vertex_shader
-    grep -v -F -f $1/GL_ARB_vertex_program $1/GL_ARB_vertex_shader > tmp
-    mv tmp $1/GL_ARB_vertex_shader
-
-# remove triplicates in GL_ARB_fragment_program, GL_ARB_fragment_shader,
-# and GL_ARB_vertex_shader
-    grep -v -F -f $1/GL_ARB_fragment_program $1/GL_ARB_fragment_shader > tmp
-    mv tmp $1/GL_ARB_fragment_shader
-    grep -v -F -f $1/GL_ARB_fragment_program $1/GL_ARB_vertex_shader > tmp
-    mv tmp $1/GL_ARB_vertex_shader
-
-# remove duplicates in GL_EXT_direct_state_access
-    grep -v "glGetBooleanIndexedvEXT" $1/GL_EXT_direct_state_access > tmp
-    mv tmp $1/GL_EXT_direct_state_access
-    grep -v "glGetIntegerIndexedvEXT" $1/GL_EXT_direct_state_access > tmp
-    mv tmp $1/GL_EXT_direct_state_access
-    grep -v "glDisableIndexedEXT" $1/GL_EXT_direct_state_access > tmp
-    mv tmp $1/GL_EXT_direct_state_access
-    grep -v "glEnableIndexedEXT" $1/GL_EXT_direct_state_access > tmp
-    mv tmp $1/GL_EXT_direct_state_access
-    grep -v "glIsEnabledIndexedEXT" $1/GL_EXT_direct_state_access > tmp
-    mv tmp $1/GL_EXT_direct_state_access
-
-# remove duplicates in GL_NV_explicit_multisample
-    grep -v "glGetBooleanIndexedvEXT" $1/GL_NV_explicit_multisample > tmp
-    mv tmp $1/GL_NV_explicit_multisample
-    grep -v "glGetIntegerIndexedvEXT" $1/GL_NV_explicit_multisample > tmp
-    mv tmp $1/GL_NV_explicit_multisample
-
-# fix bugs in GL_ARB_vertex_shader
-    grep -v "GL_FLOAT" $1/GL_ARB_vertex_shader > tmp
-    mv tmp $1/GL_ARB_vertex_shader
-    perl -e 's/handle /GLhandleARB /g' -pi $1/GL_ARB_vertex_shader
-
-# fix bugs in GL_ARB_shader_objects
-    grep -v "GL_FLOAT " $1/GL_ARB_shader_objects > tmp
-    mv tmp $1/GL_ARB_shader_objects
-    grep -v "GL_INT " $1/GL_ARB_shader_objects > tmp
-    mv tmp $1/GL_ARB_shader_objects
-
-# add typedefs to GL_ARB_shader_objects
-    cat >> $1/GL_ARB_shader_objects <<EOT
-	typedef char GLcharARB
-	typedef unsigned int GLhandleARB
-EOT
-
-# add missing functions to GL_ARB_transpose_matrix
-	cat >> $1/GL_ARB_transpose_matrix <<EOT
-	void glLoadTransposeMatrixfARB (GLfloat m[16])
-	void glLoadTransposeMatrixdARB (GLdouble m[16])
-	void glMultTransposeMatrixfARB (GLfloat m[16])
-	void glMultTransposeMatrixdARB (GLdouble m[16])
-EOT
-
-# add missing tokens to GL_EXT_framebuffer_multisample
-	cat >> $1/GL_EXT_framebuffer_multisample <<EOT
-	GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
-	GL_MAX_SAMPLES_EXT 0x8D57
-EOT
-
-# Filter out GL_NV_gpu_program_fp64 enums and functions
-    head -n3 $1/GL_NV_gpu_program_fp64 > tmp
-    mv tmp $1/GL_NV_gpu_program_fp64
-
-# Filter glGetUniformui64vNV from GL_NV_shader_buffer_load
-    grep -v "glGetUniformui64vNV" $1/GL_NV_shader_buffer_load > tmp
-    mv tmp $1/GL_NV_shader_buffer_load
-
-# Filter out profile enumerations from GLX_ARB_create_context
-    grep -v "_PROFILE_" $1/GLX_ARB_create_context > tmp
-    mv tmp $1/GLX_ARB_create_context
-
-# Filter only profile related enumerations for GLX_ARB_create_context_profile
-    head -n3 $1/GLX_ARB_create_context_profile > tmp
-    grep "_PROFILE_" $1/GLX_ARB_create_context_profile >> tmp
-    mv tmp $1/GLX_ARB_create_context_profile
-
-# Filter out profile enumerations from WGL_ARB_create_context
-    grep -v "_PROFILE_" $1/WGL_ARB_create_context > tmp
-    mv tmp $1/WGL_ARB_create_context
-
-# Filter only profile related enumerations for WGL_ARB_create_context_profile
-    head -n3 $1/WGL_ARB_create_context_profile > tmp
-    grep "_PROFILE_" $1/WGL_ARB_create_context_profile >> tmp
-    mv tmp $1/WGL_ARB_create_context_profile
-
-# add missing function to GLX_NV_copy_image
-	cat >> $1/GLX_NV_copy_image <<EOT
-  void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
-EOT
-
-# add missing function to WGL_NV_copy_image
-	cat >> $1/WGL_NV_copy_image <<EOT
-  BOOL wglCopyImageSubDataNV (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)
-EOT
-
-# Filter glProgramParameteri from GL_ARB_separate_shader_objects
-#    grep -v "glProgramParameteri" $1/GL_ARB_separate_shader_objects > tmp
-#    mv tmp $1/GL_ARB_separate_shader_objects
-
-# Filter out EXT functions from GL_ARB_viewport_array
-    grep -v "EXT" $1/GL_ARB_viewport_array > tmp
-    mv tmp $1/GL_ARB_viewport_array
-
-# Additional enumerations for GL_NV_vertex_buffer_unified_memory
-# These are mentioned in GL_ARB_draw_indirect.txt
-
-    cat >> $1/GL_NV_vertex_buffer_unified_memory <<EOT
-	GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
-	GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
-	GL_DRAW_INDIRECT_LENGTH_NV  0x8F42
-EOT
-
-# Filter glGetPointerv from GL_ARB_debug_output
-# It's part of OpenGL 1.1, after all
-
-    grep -v "glGetPointerv" $1/GL_ARB_debug_output > tmp
-    mv tmp $1/GL_ARB_debug_output
-
-# Filter glGetPointerv from GL_EXT_vertex_array
-# It's part of OpenGL 1.1, after all
-
-    grep -v "glGetPointerv" $1/GL_EXT_vertex_array > tmp
-    mv tmp $1/GL_EXT_vertex_array
-
-# add typedef to GL_AMD_debug_output
-# parse_spec.pl can't parse typedefs from New Types section, but ought to
-    cat >> $1/GL_AMD_debug_output <<EOT
-	typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam)
-EOT
-
-# add typedef to GL_ARB_debug_output
-# parse_spec.pl can't parse typedefs from New Types section, but ought to
-    cat >> $1/GL_ARB_debug_output <<EOT
-	typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam)
-EOT
-
-# add typedef to GL_KHR_debug
-# parse_spec.pl can't parse typedefs from New Types section, but ought to
-    cat >> $1/GL_KHR_debug <<EOT
-	typedef void (APIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam)
-EOT
-
-# Remove glGetPointerv from GL_KHR_debug
-    grep -v "glGetPointerv" $1/GL_KHR_debug > tmp
-    mv tmp $1/GL_KHR_debug
-
-# Remove GL_ARB_debug_group, GL_ARB_debug_label and GL_ARB_debug_output2, for now
-    rm -f $1/GL_ARB_debug_group
-    rm -f $1/GL_ARB_debug_label
-    rm -f $1/GL_ARB_debug_output2
-
-# add typedefs to GL_ARB_cl_event
-# parse_spec.pl can't parse typedefs from New Types section, but ought to
-    cat >> $1/GL_ARB_cl_event <<EOT
-	typedef struct _cl_context *cl_context
-	typedef struct _cl_event *cl_event
-EOT
-
-# Filter out EXT functions from GL_ARB_gpu_shader_fp64
-    grep -v 'EXT ' $1/GL_ARB_gpu_shader_fp64 > tmp
-    mv tmp $1/GL_ARB_gpu_shader_fp64
-
-# add missing functions to GL_EXT_direct_state_access (GL_ARB_gpu_shader_fp64 related)
-	cat >> $1/GL_EXT_direct_state_access <<EOT
-    void glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x)
-    void glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y)
-    void glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)
-    void glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-    void glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
-    void glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
-    void glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
-    void glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
-    void glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-    void glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
-EOT
-
-# Filter out GL_UNSIGNED_INT and GL_FLOAT from GL_AMD_performance_monitor
-    grep -v 'GL_UNSIGNED_INT ' $1/GL_AMD_performance_monitor > tmp
-    mv tmp $1/GL_AMD_performance_monitor
-    grep -v 'GL_FLOAT ' $1/GL_AMD_performance_monitor > tmp
-    mv tmp $1/GL_AMD_performance_monitor
-
-# Filter out GL_STORAGE_CACHED_APPLE and GL_STORAGE_SHARED_APPLE from GL_APPLE_texture_range
-    grep -v 'GL_STORAGE_CACHED_APPLE ' $1/GL_APPLE_texture_range > tmp
-    mv tmp $1/GL_APPLE_texture_range
-    grep -v 'GL_STORAGE_SHARED_APPLE ' $1/GL_APPLE_texture_range > tmp
-    mv tmp $1/GL_APPLE_texture_range
-
-# Filter out GL_RED from GL_ARB_texture_rg
-    grep -v 'GL_RED ' $1/GL_ARB_texture_rg > tmp
-    mv tmp $1/GL_ARB_texture_rg
-
-# Filter out _EXT enums from GL_ARB_texture_storage
-    grep -v '_EXT ' $1/GL_ARB_texture_storage > tmp
-    mv tmp $1/GL_ARB_texture_storage
-
-# Filter out TEXTURE_3D enums from GL_EXT_paletted_texture
-    grep -v 'TEXTURE_3D' $1/GL_EXT_paletted_texture > tmp
-    mv tmp $1/GL_EXT_paletted_texture
-
-# Filter out GL_VERSION_1_1 enums from GL_AMD_stencil_operation_extended
-    grep -v '0x150' $1/GL_AMD_stencil_operation_extended > tmp
-    mv tmp $1/GL_AMD_stencil_operation_extended
-
-# Filter out from GL_APPLE_ycbcr_422
-    grep -v 'GL_UNSIGNED_SHORT_8_8_APPLE' $1/GL_APPLE_ycbcr_422 > tmp
-    mv tmp $1/GL_APPLE_ycbcr_422
-    grep -v 'GL_UNSIGNED_SHORT_8_8_REV_APPLE' $1/GL_APPLE_ycbcr_422 > tmp
-    mv tmp $1/GL_APPLE_ycbcr_422
-
-# Filter out GL_FRAGMENT_DEPTH_EXT from GL_EXT_light_texture
-    grep -v 'GL_FRAGMENT_DEPTH_EXT' $1/GL_EXT_light_texture > tmp
-    mv tmp $1/GL_EXT_light_texture
-
-# Filter out GL_MULTISAMPLE_BIT_EXT from GL_SGIS_multisample
-    grep -v 'GL_MULTISAMPLE_BIT_EXT' $1/GL_SGIS_multisample > tmp
-    mv tmp $1/GL_SGIS_multisample
-
-# Filter out GL_COMPRESSED_RGB_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1
-    grep -v 'GL_COMPRESSED_RGB_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp
-    mv tmp $1/GL_EXT_texture_compression_dxt1
-
-# Filter out GL_COMPRESSED_RGBA_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1
-    grep -v 'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp
-    mv tmp $1/GL_EXT_texture_compression_dxt1
-
-# Append GLfixed to GL_ARB_ES2_compatibility
-# Probably ought to be explicitly mentioned in the spec language
-
-    cat >> $1/GL_ARB_ES2_compatibility <<EOT
-	typedef int GLfixed
-EOT
-
-# Append GLclampx to GL_REGAL_ES1_0_compatibility
-# Probably ought to be explicitly mentioned in the spec language
-
-    cat >> $1/GL_REGAL_ES1_0_compatibility <<EOT
-	typedef int GLclampx
-EOT
-
-# Append GLLOGPROCREGAL to GL_REGAL_log
-# Probably ought to be explicitly mentioned in the spec language
-
-    cat >> $1/GL_REGAL_log <<EOT
-	typedef void (APIENTRY *LOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, GLvoid *context)
-EOT
-
-# Fixup LOGPROCREGAL -> GLLOGPROCREGAL
-    perl -e 's/LOGPROCREGAL/GLLOGPROCREGAL/g' -pi $1/GL_REGAL_log
-
-# Filter out GL_BYTE from GL_OES_byte_coordinates
-    grep -v 'GL_BYTE' $1/GL_OES_byte_coordinates > tmp
-    mv tmp $1/GL_OES_byte_coordinates
-
-# Filter out fp64 (not widely supported) from GL_EXT_direct_state_access
-    egrep -v 'glProgramUniform.*[1234]d[v]?EXT' $1/GL_EXT_direct_state_access > tmp
-    mv tmp $1/GL_EXT_direct_state_access
-
-# Filter out all enums from GL_ANGLE_depth_texture
-    grep -v '0x' $1/GL_ANGLE_depth_texture > tmp
-    mv tmp $1/GL_ANGLE_depth_texture
-
-# Filter out GL_NONE enum from GL_ANGLE_depth_texture
-    grep -v 'GL_NONE' $1/GL_ANGLE_texture_usage > tmp
-    mv tmp $1/GL_ANGLE_texture_usage
-
-# Fixup REGAL and ANGLE urls
-
-    for i in $1/GL_REGAL_*; do perl -e 's#http://www.opengl.org/registry/specs/gl/REGAL/.*#https://github.com/p3/regal/tree/master/doc/extensions#g' -pi $i; done
-    for i in $1/GL_ANGLE_*; do perl -e 's#http://www.opengl.org/registry/specs/gl/ANGLE/.*#https://code.google.com/p/angleproject/source/browse/\#git%2Fextensions#g' -pi $i; done
-
-# Filter out GL_NV_blend_equation_advanced_coherent enums and functions
-    head -n3 $1/GL_NV_blend_equation_advanced_coherent > tmp
-    mv tmp $1/GL_NV_blend_equation_advanced_coherent
-
-# clean up
-    rm -f $1/*.bak

+ 0 - 19
libobs-opengl/glew/auto/bin/filter_gles_ext.sh

@@ -1,19 +0,0 @@
-#!/bin/bash
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-##
-## Parameters:
-##
-##       $1: Extensions directory
-##       $2: Registry directory
-##       $3: The black list
-
-set -e
-
-# clean up
-    rm -f $1/*.bak

+ 0 - 187
libobs-opengl/glew/auto/bin/make.pl

@@ -1,187 +0,0 @@
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-my %regex = (
-    extname  => qr/^[A-Z][A-Za-z0-9_]+$/,
-    exturl   => qr/^http.+$/,
-    function => qr/^(.+) ([a-z][a-z0-9_]*) \((.+)\)$/i, 
-    token    => qr/^([A-Z][A-Z0-9_x]*)\s+((?:0x)?[0-9A-Fa-f]+|[A-Z][A-Z0-9_]*)$/,
-    type     => qr/^typedef\s+(.+)$/,
-    exact    => qr/.*;$/,
-);
-
-# prefix function name with glew
-sub prefixname($)
-{
-    my $name = $_[0];
-    $name =~ s/^(.*?)gl/__$1glew/;
-    return $name;
-}
-
-# prefix function name with glew
-sub prefix_varname($)
-{
-    my $name = $_[0];
-    $name =~ s/^(.*?)GL(X*?)EW/__$1GL$2EW/;
-    return $name;
-}
-
-#---------------------------------------------------------------------------------------
-
-sub make_exact($)
-{
-	my $exact = $_[0];
-	$exact =~ s/(; |{)/$1\n/g;
-    return $exact;
-}
-
-sub make_separator($)
-{
-    my $extname = $_[0];
-    my $l = length $extname;
-    my $s = (71 - $l)/2;
-    print "/* ";
-    my $j = 3;
-    for (my $i = 0; $i < $s; $i++)
-    {
-	print "-";
-	$j++;
-    }
-    print " $_[0] ";
-    $j += $l + 2;
-    while ($j < 76)
-    {
-	print "-";
-	$j++;
-    }
-    print " */\n\n";
-}
-
-#---------------------------------------------------------------------------------------
-
-sub parse_ext($)
-{
-    my $filename = shift;
-    my %functions = ();
-    my %tokens = ();
-    my @types = ();
-    my @exacts = ();
-    my $extname = "";    # Full extension name GL_FOO_extension
-    my $exturl = "";     # Info URL
-    my $extstring = "";  # Relevant extension string 
-
-    open EXT, "<$filename" or return;
-
-    # As of GLEW 1.5.3 the first three lines _must_ be
-    # the extension name, the URL and the GL extension
-    # string (which might be different to the name)
-    #
-    # For example GL_NV_geometry_program4 is available
-    # iff GL_NV_gpu_program4 appears in the extension
-    # string.
-    #
-    # For core OpenGL versions, the third line should
-    # be blank.
-    #
-    # If the URL is unknown, the second line should be
-    # blank.
-   
-    $extname   = readline(*EXT);
-    $exturl    = readline(*EXT);
-    $extstring = readline(*EXT);
-
-    chomp($extname);
-    chomp($exturl);
-    chomp($extstring);
-
-    while(<EXT>)
-    {
-        chomp;
-        if (s/^\s+//)
-        {
-            if (/$regex{exact}/)
-            {
-                push @exacts, $_;
-            }
-            elsif (/$regex{type}/)
-            {
-                push @types, $_;
-            }
-            elsif (/$regex{token}/)
-            {
-                my ($name, $value) = ($1, $2);
-                $tokens{$name} = $value;
-            }
-            elsif (/$regex{function}/)
-            {
-                my ($return, $name, $parms) = ($1, $2, $3);
-                $functions{$name} = {
-		    rtype => $return,
-		    parms => $parms,
-		};
-            } else {
-                print STDERR "'$_' matched no regex.\n";
-            }
-        }
-    }
-
-    close EXT;
-
-    return ($extname, $exturl, $extstring, \@types, \%tokens, \%functions, \@exacts);
-}
-
-sub output_tokens($$)
-{
-    my ($tbl, $fnc) = @_;
-    if (keys %{$tbl})
-    {
-        local $, = "\n";
-        print "\n";
-        print map { &{$fnc}($_, $tbl->{$_}) } sort { hex ${$tbl}{$a} <=> hex ${$tbl}{$b} } keys %{$tbl};
-        print "\n";
-    } else {
-        print STDERR "no keys in table!\n";
-    }
-}
-
-sub output_types($$)
-{
-    my ($tbl, $fnc) = @_;
-    if (scalar @{$tbl})
-    {
-        local $, = "\n";
-        print "\n";
-        print map { &{$fnc}($_) } sort @{$tbl};
-        print "\n";
-    }
-}
-
-sub output_decls($$)
-{
-    my ($tbl, $fnc) = @_;
-    if (keys %{$tbl})
-    {
-        local $, = "\n";
-        print "\n";
-        print map { &{$fnc}($_, $tbl->{$_}) } sort keys %{$tbl};
-        print "\n";
-    }
-}
-
-sub output_exacts($$)
-{
-    my ($tbl, $fnc) = @_;
-    if (scalar @{$tbl})
-    {
-        local $, = "\n";
-        print "\n";
-        print map { &{$fnc}($_) } sort @{$tbl};
-        print "\n";
-    }
-}
-

+ 0 - 35
libobs-opengl/glew/auto/bin/make_def_fun.pl

@@ -1,35 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-# function pointer declaration
-sub make_pfn_decl($%)
-{
-    return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;";
-}
-
-my @extlist = ();
-my %extensions = ();
-
-our $type = shift;
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-		output_decls($functions, \&make_pfn_decl);
-	}
-}

+ 0 - 31
libobs-opengl/glew/auto/bin/make_def_var.pl

@@ -1,31 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-my @extlist = ();
-my %extensions = ();
-
-our $type = shift;
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-		my $extvar = $extname;
-		$extvar =~ s/GL(X*)_/GL$1EW_/;
-		print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
-	}
-}

+ 0 - 71
libobs-opengl/glew/auto/bin/make_header.pl

@@ -1,71 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-# token
-sub make_define($$)
-{
-    return "#define $_[0] $_[1]"
-}
-
-# type declaration
-sub make_type($$)
-{
-    return "@_;"
-}
-
-# function pointer type declaration
-sub make_pfn_type($%)
-{
-    our $api;
-    return join(' ', "typedef", $_[1]->{rtype},
-        "($api * PFN" . (uc $_[0]) . "PROC)",
-        "(" . $_[1]->{parms} . ")") . ";";
-}
-
-# function name alias
-sub make_pfn_alias($%)
-{
-    our $type;
-    return join(" ", "#define", $_[0], $type . "EW_GET_FUN(" . prefixname($_[0]) . ")")
-}
-
-my @extlist = ();
-my %extensions = ();
-
-our $api = shift;
-our $type = shift;
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-
-		make_separator($extname);
-		print "#ifndef $extname\n#define $extname 1\n";
-		output_tokens($tokens, \&make_define);
-		output_types($types, \&make_type);
-		output_exacts($exacts, \&make_exact);
-		output_decls($functions, \&make_pfn_type);
-		output_decls($functions, \&make_pfn_alias);
-
-		my $extvar = $extname;
-		$extvar =~ s/GL(X*)_/GL$1EW_/;
-		
-		print "\n#define $extvar " . $type . "EW_GET_VAR(" . prefix_varname($extvar) . ")\n";
-		print "\n#endif /* $extname */\n\n";
-	}
-}

+ 0 - 55
libobs-opengl/glew/auto/bin/make_html.pl

@@ -1,55 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-#---------------------------------------------------------------------------------------
-
-my @extlist = ();
-my %extensions = ();
-my $group = "";
-my $cur_group = "";
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-	my $n = 1;
-	print "<table border=\"0\" width=\"100%\" cellpadding=\"1\" cellspacing=\"0\" align=\"center\">\n";
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-		$cur_group = $extname;
-		$cur_group =~ s/^(?:W?)GL(?:X?)_([A-Z0-9]+?)_.*$/$1/;
-		$extname =~ s/^(?:W?)GL(?:X?)_(.*)$/$1/;
-		if ($cur_group ne $group)
-		{
-			if ($group ne "")
-			{
-				print "<tr><td><br></td><td></td><td></td></tr>\n";
-			}
-			$group = $cur_group;
-		}
-
-		{
-			if ($exturl)
-			{
-				print "<tr><td class=\"num\">$n</td><td>&nbsp;</td><td><a href=\"$exturl\">$extname</a></td></tr>\n";
-			}
-			else
-			{
-				print "<tr><td class=\"num\">$n</td><td>&nbsp;</td><td>$extname</td></tr>\n";
-			}
-			$n++;
-		}
-	}
-	print "</table>\n"
-}

+ 0 - 59
libobs-opengl/glew/auto/bin/make_info.pl

@@ -1,59 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-#---------------------------------------------------------------------------------------
-
-# function pointer definition
-sub make_pfn_info($%)
-{
-    my $name = $_[0];
-    return "  glewInfoFunc(\"$_[0]\", $name == NULL);";
-}
-
-#---------------------------------------------------------------------------------------
-
-my @extlist = ();
-my %extensions = ();
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-		my $extvar = $extname;
-		$extvar =~ s/GL(X*)_/GL$1EW_/;
-		my $extpre = $extname;
-		$extpre =~ s/(GLX|GLW|GL).*/$1/;
-		$extpre = lc $extpre;
-
-		#make_separator($extname);
-		print "#ifdef $extname\n\n";
-		print "static void _glewInfo_$extname (void)\n{\n";
-		if ($extvar =~ /VERSION/)
-		{
-			print "  glewPrintExt(\"$extname\", $extvar, $extvar, $extvar);\n";
-		}
-		else
-		{
-			print "  glewPrintExt(\"$extname\", $extvar, $extpre" .
-				"ewIsSupported(\"$extname\"), $extpre" .
-				"ewGetExtension(\"$extstring\"));\n";
-		}
-		output_decls($functions, \&make_pfn_info);
-		print "}\n\n";
-		print "#endif /* $extname */\n\n";
-	}
-}

+ 0 - 47
libobs-opengl/glew/auto/bin/make_info_list.pl

@@ -1,47 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-#---------------------------------------------------------------------------------------
-
-# function pointer definition
-sub make_pfn_def($%)
-{
-    return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;";
-}
-
-# function pointer definition
-sub make_init_call($%)
-{
-    my $name = prefixname($_[0]);
-    return "  r = r || (" . $name . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $name . "\")) == NULL;";
-}
-
-#---------------------------------------------------------------------------------------
-
-my @extlist = ();
-my %extensions = ();
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-
-		print "#ifdef $extname\n";
-		print "  _glewInfo_$extname();\n";
-		print "#endif /* $extname */\n";
-	}
-}

+ 0 - 55
libobs-opengl/glew/auto/bin/make_init.pl

@@ -1,55 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-#-------------------------------------------------------------------------------
-
-# function pointer definition
-sub make_pfn_def_init($%)
-{
-    #my $name = prefixname($_[0]);
-    return "  r = ((" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $_[0] . "\")) == NULL) || r;";
-}
-
-#-------------------------------------------------------------------------------
-
-my @extlist = ();
-my %extensions = ();
-
-our $type = shift;
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = 
-			parse_ext($ext);
-
-		#make_separator($extname);
-		print "#ifdef $extname\n\n";
-		my $extvar = $extname;
-		my $extvardef = $extname;
-		$extvar =~ s/GL(X*)_/GL$1EW_/;
-		if (keys %$functions)
-		{
-			print "static GLboolean _glewInit_$extname (" . $type . 
-				"EW_CONTEXT_ARG_DEF_INIT)\n{\n  GLboolean r = GL_FALSE;\n";
-			output_decls($functions, \&make_pfn_def_init);
-			print "\n  return r;\n}\n\n";
-		}
-		#print "\nGLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n\n";
-		print "#endif /* $extname */\n\n";
-	}
-}

+ 0 - 66
libobs-opengl/glew/auto/bin/make_list.pl

@@ -1,66 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-#---------------------------------------------------------------------------------------
-
-# function pointer definition
-sub make_init_call($%)
-{
-    my $name = prefixname($_[0]);
-    return "  r = r || (" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress(\"" . $name . "\")) == NULL;";
-}
-
-#---------------------------------------------------------------------------------------
-
-my @extlist = ();
-my %extensions = ();
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-
-		my $extvar = $extname;
-		$extvar =~ s/GL(X*)_/GL$1EW_/;
-
-		my $extpre = $extname;
-		$extpre =~ s/^(W?)GL(X?).*$/\l$1gl\l$2ew/;
-
-		#my $pextvar = prefix_varname($extvar);
-
-		print "#ifdef $extname\n";
-
-		if (length($extstring))
-		{
-				print "  CONST_CAST(" . $extvar . ") = _glewSearchExtension(\"$extstring\", extStart, extEnd);\n";
-		}
-
-		if (keys %$functions)
-		{
-			if ($extname =~ /WGL_.*/)
-			{
-				print "  if (glewExperimental || " . $extvar . "|| crippled) CONST_CAST(" . $extvar . ")= !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
-			}
-			else
-			{
-				print "  if (glewExperimental || " . $extvar . ") CONST_CAST(" . $extvar . ") = !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
-			}
-		}
-		print "#endif /* $extname */\n";
-	}
-
-}

+ 0 - 53
libobs-opengl/glew/auto/bin/make_str.pl

@@ -1,53 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-my @extlist = ();
-my %extensions = ();
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	my $curexttype = "";
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-		my $exttype = $extname;
-		$exttype =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$3/;
-		my $extrem = $extname;
-		$extrem =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$4/;
-		my $extvar = $extname;
-		$extvar =~ s/(W*)GL(X*)_/$1GL$2EW_/;
-		if(!($exttype =~ $curexttype))
-		{
-			if(length($curexttype) > 0)
-			{
-				print "      }\n";
-			}
-			print "      if (_glewStrSame2(&pos, &len, (const GLubyte*)\"$exttype\", " . length($exttype) . "))\n";
-			print "      {\n";
-			$curexttype = $exttype;
-		}
-		print "#ifdef $extname\n";
-		print "        if (_glewStrSame3(&pos, &len, (const GLubyte*)\"$extrem\", ". length($extrem) . "))\n";
-		#print "        return $extvar;\n";
-		print "        {\n";
-		print "          ret = $extvar;\n";
-		print "          continue;\n";
-		print "        }\n";
-		print "#endif\n";
-	}
-
-	print "      }\n";
-}

+ 0 - 36
libobs-opengl/glew/auto/bin/make_struct_fun.pl

@@ -1,36 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-# function pointer declaration
-sub make_pfn_decl($%)
-{
-    our $export;
-    return $export . " PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . ";";
-}
-
-my @extlist = ();
-my %extensions = ();
-
-our $export = shift;
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-		output_decls($functions, \&make_pfn_decl);
-	}
-}

+ 0 - 31
libobs-opengl/glew/auto/bin/make_struct_var.pl

@@ -1,31 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-do 'bin/make.pl';
-
-my @extlist = ();
-my %extensions = ();
-
-our $export = shift;
-
-if (@ARGV)
-{
-    @extlist = @ARGV;
-
-	foreach my $ext (sort @extlist)
-	{
-		my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
-		my $extvar = $extname;
-		$extvar =~ s/GL(X*)_/GL$1EW_/;
-		print $export . " GLboolean " . prefix_varname($extvar) . ";\n";
-	}
-}

+ 0 - 353
libobs-opengl/glew/auto/bin/parse_spec.pl

@@ -1,353 +0,0 @@
-#!/usr/bin/perl
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-
-use strict;
-use warnings;
-
-sub compile_regex
-{
-    my $regex = join('', @_);
-    return qr/$regex/
-}
-
-my @sections = (
-    "Name",
-    "Name Strings?",
-    "New Procedures and Functions",
-    "New Tokens",
-    "Additions to Chapter.*",
-);
-
-my %typemap = (
-    bitfield => "GLbitfield",
-    boolean  => "GLboolean",
-    # fsck up in EXT_vertex_array
-    Boolean  => "GLboolean",
-    byte     => "GLbyte",
-    clampd   => "GLclampd",
-    clampf   => "GLclampf",
-    double   => "GLdouble",
-    enum     => "GLenum",
-    # Intel fsck up
-    Glenum   => "GLenum",
-    float    => "GLfloat",
-    half     => "GLhalf",
-    int      => "GLint",
-    short    => "GLshort",
-    sizei    => "GLsizei",
-    ubyte    => "GLubyte",
-    uint     => "GLuint",
-    ushort   => "GLushort",
-    DMbuffer => "void *",
-    # Nvidia video output fsck up
-    int64EXT => "GLint64EXT",
-    uint64EXT=> "GLuint64EXT",
-
-    # ARB VBO introduces these.
-
-    sizeiptr => "GLsizeiptr",
-    intptr   => "GLintptr",
-    sizeiptrARB => "GLsizeiptrARB",
-    intptrARB   => "GLintptrARB",
-
-    # ARB shader objects introduces these, charARB is at least 8 bits,
-    # handleARB is at least 32 bits
-    charARB => "GLcharARB",
-    handleARB => "GLhandleARB",
-
-    char => "GLchar",
-
-    # OpenGL 3.2 and GL_ARB_sync
-
-    int64  => "GLint64",
-    uint64 => "GLuint64",
-    sync   => "GLsync",
-
-    # AMD_debug_output
-
-    DEBUGPROCAMD => "GLDEBUGPROCAMD",
-
-    # ARB_debug_output
-
-    DEBUGPROCARB => "GLDEBUGPROCARB",
-
-    # KHR_debug
-
-    DEBUGPROC => "GLDEBUGPROC",
-
-    vdpauSurfaceNV => "GLvdpauSurfaceNV",
-    
-    # GLX 1.3 defines new types which might not be available at compile time
-
-    #GLXFBConfig   => "void*",
-    #GLXFBConfigID => "XID",
-    #GLXContextID  => "XID",
-    #GLXWindow     => "XID",
-    #GLXPbuffer    => "XID",
-
-    # Weird stuff to some SGIX extension
-
-    #GLXFBConfigSGIX   => "void*",
-    #GLXFBConfigIDSGIX => "XID",
-
-);
-
-my %voidtypemap = (
-    void    => "GLvoid",
-);
-
-my %taboo_tokens = (
-    GL_ZERO => 1,
-);
-
-# list of function definitions to be ignored, unless they are being defined in
-# the given spec.  This is an ugly hack arround the fact that people writing
-# spec files seem to shut down all brain activity while they are at this task.
-#
-# This will be moved to its own file eventually.
-#
-# (mem, 2003-03-19)
-
-my %fnc_ignore_list = (
-    "BindProgramARB"                => "ARB_vertex_program",
-    "ColorSubTableEXT"              => "EXT_color_subtable",
-    "DeleteProgramsARB"             => "ARB_vertex_program",
-    "GenProgramsARB"                => "ARB_vertex_program",
-    "GetProgramEnvParameterdvARB"   => "ARB_vertex_program",
-    "GetProgramEnvParameterfvARB"   => "ARB_vertex_program",
-    "GetProgramLocalParameterdvARB" => "ARB_vertex_program",
-    "GetProgramLocalParameterfvARB" => "ARB_vertex_program",
-    "GetProgramStringARB"           => "ARB_vertex_program",
-    "GetProgramivARB"               => "ARB_vertex_program",
-    "IsProgramARB"                  => "ARB_vertex_program",
-    "ProgramEnvParameter4dARB"      => "ARB_vertex_program",
-    "ProgramEnvParameter4dvARB"     => "ARB_vertex_program",
-    "ProgramEnvParameter4fARB"      => "ARB_vertex_program",
-    "ProgramEnvParameter4fvARB"     => "ARB_vertex_program",
-    "ProgramLocalParameter4dARB"    => "ARB_vertex_program",
-    "ProgramLocalParameter4dvARB"   => "ARB_vertex_program",
-    "ProgramLocalParameter4fARB"    => "ARB_vertex_program",
-    "ProgramLocalParameter4fvARB"   => "ARB_vertex_program",
-    "ProgramStringARB"              => "ARB_vertex_program",
-    "glXCreateContextAttribsARB"    => "ARB_create_context_profile",
-    "wglCreateContextAttribsARB"    => "WGL_ARB_create_context_profile",
-);
-
-my %regex = (
-    eofnc    => qr/(?:\);?$|^$)/, # )$ | );$ | ^$
-    extname  => qr/^[A-Z][A-Za-z0-9_]+$/,
-    none     => qr/^\(none\)$/,
-    function => qr/^(.+) ([a-z][a-z0-9_]*) \((.+)\)$/i,
-    prefix   => qr/^(?:[aw]?gl|glX)/, # gl | agl | wgl | glX
-    tprefix  => qr/^(?:[AW]?GL|GLX)_/, # GL_ | AGL_ | WGL_ | GLX_
-    section  => compile_regex('^(', join('|', @sections), ')$'), # sections in spec
-    token    => qr/^([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-F]+)([^\?]*)$/, # define tokens
-    types    => compile_regex('\b(', join('|', keys %typemap), ')\b'), # var types
-    voidtype => compile_regex('\b(', keys %voidtypemap, ')\b '), # void type
-);
-
-# reshapes the the function declaration from multiline to single line form
-sub normalize_prototype
-{
-    local $_ = join(" ", @_);
-    s/\s+/ /g;                # multiple whitespace -> single space
-    s/\<.*\>//g;              # remove <comments> from direct state access extension
-    s/\<.*$//g;               # remove incomplete <comments> from direct state access extension
-    s#/\*.*\*/##g;            # remove /* ... */ comments
-    s/\s*\(\s*/ \(/;          # exactly one space before ( and none after
-    s/\s*\)\s*/\)/;           # no space before or after )
-    s/\s*\*([a-zA-Z])/\* $1/; # "* identifier"
-    s/\*wgl/\* wgl/;          # "* wgl"
-    s/\*glX/\* glX/;          # "* glX"
-    s/\.\.\./void/;           # ... -> void
-    s/;$//;                   # remove ; at the end of the line
-    return $_;
-}
-
-# Ugly hack to work arround the fact that functions are declared in more
-# than one spec file.
-sub ignore_function($$)
-{
-    return exists($fnc_ignore_list{$_[0]}) && $fnc_ignore_list{$_[0]} ne $_[1]
-}
-
-sub parse_spec($)
-{
-    my $filename = shift;
-    my $extname = "";
-    my $vendortag = "";
-    my @extnames = ();
-    my %functions = ();
-    my %tokens = ();
-
-    my $section = "";
-    my @fnc = ();
-
-    my %proc = (
-        "Name" => sub {
-            if (/^([a-z0-9]+)_([a-z0-9_]+)/i)
-            {
-                $extname = "$1_$2";
-                $vendortag = $1;
-            }
-        },
-
-        "Name Strings" => sub {
-            # Add extension name to extension list
-        
-           # Initially use $extname if (none) specified
-            if (/$regex{none}/)
-            {
-                $_ = $extname;
-            }
-
-            if (/$regex{extname}/)
-            {
-                # prefix with "GL_" if prefix not present
-                s/^/GL_/ unless /$regex{tprefix}/o;
-                # Add extension name to extension list
-                push @extnames, $_;
-            }
-        },
-
-        "New Procedures and Functions" => sub {
-            # if line matches end of function
-            if (/$regex{eofnc}/)
-            {
-                # add line to function declaration
-                push @fnc, $_;
-
-                # if normalized version of function looks like a function
-                if (normalize_prototype(@fnc) =~ /$regex{function}/)
-                {
-                    # get return type, name, and arguments from regex
-                    my ($return, $name, $parms) = ($1, $2, $3);
-                    if (!ignore_function($name, $extname))
-                    {
-                        # prefix with "gl" if prefix not present
-                        $name =~ s/^/gl/ unless $name =~ /$regex{prefix}/;
-                        # is this a pure GL function?
-                        if ($name =~ /^gl/ && $name !~ /^glX/)
-                        {
-                            # apply typemaps
-                            $return =~ s/$regex{types}/$typemap{$1}/og;
-                            $return =~ s/void\*/GLvoid */og;
-                            $parms =~ s/$regex{types}/$typemap{$1}/og;
-                            $parms =~ s/$regex{voidtype}/$voidtypemap{$1}/og;
-                            $parms =~ s/ void\* / GLvoid */og;
-                        }
-                        # add to functions hash
-                        $functions{$name} = {
-                            rtype => $return,
-                            parms => $parms,
-                        };
-                    }
-                }
-                # reset function declaration
-                @fnc = ();
-            } elsif ($_ ne "" and $_ ne "None") {
-                # if not eof, add line to function declaration
-                push @fnc, $_
-            }
-        },
-
-        "New Tokens" => sub {
-            if (/$regex{token}/)
-            {
-                my ($name, $value) = ($1, $2);
-                # prefix with "GL_" if prefix not present
-                $name =~ s/^/GL_/ unless $name =~ /$regex{tprefix}/;
-                # Add (name, value) pair to tokens hash, unless it's taboo
-                $tokens{$name} = $value unless exists $taboo_tokens{$name};
-            }
-        },
-    );
-
-    # Some people can't read, the template clearly says "Name String_s_"
-    $proc{"Name String"} = $proc{"Name Strings"};
-
-    # Open spec file
-    open SPEC, "<$filename" or return;
-
-    # For each line of SPEC
-    while(<SPEC>)
-    {
-        # Delete trailing newline character
-        chomp;
-        # Remove trailing white spaces
-        s/\s+$//;
-        # If starts with a capital letter, it must be a new section
-        if (/^[A-Z]/)
-        {
-            # Match section name with one of the predefined names 
-            $section = /$regex{section}/o ? $1 : "default";
-        } else {
-            # Line is internal to a section
-            # Remove leading whitespace
-            s/^\s+//;
-            # Call appropriate section processing function if it exists
-            &{$proc{$section}} if exists $proc{$section};
-        }
-    }
-
-    close SPEC;
-
-    return ($extname, \@extnames, \%tokens, \%functions);
-}
-
-#----------------------------------------------------------------------------------------
-
-my @speclist = ();
-my %extensions = ();
-
-my $ext_dir = shift;
-my $reg_http = "http://www.opengl.org/registry/specs/gl/";
-
-# Take command line arguments or read list from file
-if (@ARGV)
-{
-    @speclist = @ARGV;
-} else {
-    local $/; #???
-    @speclist = split "\n", (<>);
-}
-
-foreach my $spec (sort @speclist)
-{
-    my ($extname, $extnames, $tokens, $functions) = parse_spec($spec);
-
-    foreach my $ext (@{$extnames})
-    {
-        my $info = "$ext_dir/" . $ext;
-        open EXT, ">$info";
-        print EXT $ext . "\n";                       # Extension name
-        my $specname = $spec;
-        $specname =~ s/registry\/gl\/specs\///;
-        print EXT $reg_http . $specname . "\n";      # Extension info URL
-        print EXT $ext . "\n";                       # Extension string
-
-        my $prefix = $ext;
-        $prefix =~ s/^(.+?)(_.+)$/$1/;
-        foreach my $token (sort { hex ${$tokens}{$a} <=> hex ${$tokens}{$b} } keys %{$tokens})
-        {
-            if ($token =~ /^$prefix\_.*/i)
-            {
-                print EXT "\t" . $token . " " . ${\%{$tokens}}{$token} . "\n";
-            }
-        }
-        foreach my $function (sort keys %{$functions})
-        {
-            if ($function =~ /^$prefix.*/i)
-            {
-                print EXT "\t" . ${$functions}{$function}{rtype} . " " . $function . " (" . ${$functions}{$function}{parms} . ")" . "\n";
-            }
-        }
-        close EXT;
-    }
-}

+ 0 - 25
libobs-opengl/glew/auto/bin/update_ext.sh

@@ -1,25 +0,0 @@
-#!/bin/bash
-##
-## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
-## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
-##
-## This program is distributed under the terms and conditions of the GNU
-## General Public License Version 2 as published by the Free Software
-## Foundation or, at your option, any later version.
-##
-## Parameters:
-##
-##       $1: Extensions directory
-##       $2: Registry directory
-##       $3: The black list
-
-set -e
-
-if [ ! -d $1 ] ; then
-    mkdir -p $1
-
-# Parse each of the extensions in the registry
-    find $2 -name doc -type d -prune -o -name \*.txt -print | \
-	grep -v -f $3 | sort | bin/parse_spec.pl $1
-
-fi

+ 0 - 14
libobs-opengl/glew/auto/blacklist

@@ -1,14 +0,0 @@
-EXT/draw_range_elements.txt
-EXT/static_vertex_array.txt
-EXT/vertex_array_set.alt.txt
-EXT/vertex_array_set.txt
-EXT/nurbs_tessellator.txt
-EXT/object_space_tess.txt
-SGI/filter4_parameters.txt
-SGIS/texture_color_mask.txt
-SGIX/dmbuffer.txt
-SGIX/instruments.txt
-SGIX/video_source.txt
-SGIX/hyperpipe_group.txt
-OES/OES_fixed_point.txt
-OES/OES_query_matrix.txt

+ 0 - 22
libobs-opengl/glew/auto/core/gl/GLX_AMD_gpu_association

@@ -1,22 +0,0 @@
-GLX_AMD_gpu_association
-http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
-GLX_AMD_gpu_association
-	GLX_GPU_VENDOR_AMD 0x1F00
-	GLX_GPU_RENDERER_STRING_AMD 0x1F01
-	GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
-	GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
-	GLX_GPU_RAM_AMD 0x21A3
-	GLX_GPU_CLOCK_AMD 0x21A4
-	GLX_GPU_NUM_PIPES_AMD 0x21A5
-	GLX_GPU_NUM_SIMD_AMD 0x21A6
-	GLX_GPU_NUM_RB_AMD 0x21A7
-	GLX_GPU_NUM_SPI_AMD 0x21A8
-	void glXBlitContextFramebufferAMD (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
-	GLXContext glXCreateAssociatedContextAMD (unsigned int id, GLXContext share_list)
-	GLXContext glXCreateAssociatedContextAttribsAMD (unsigned int id, GLXContext share_context, const int* attribList)
-	Bool glXDeleteAssociatedContextAMD (GLXContext ctx)
-	unsigned int glXGetContextGPUIDAMD (GLXContext ctx)
-	GLXContext glXGetCurrentAssociatedContextAMD (void)
-	unsigned int glXGetGPUIDsAMD (unsigned int maxCount, unsigned int* ids)
-	int glXGetGPUInfoAMD (unsigned int id, int property, GLenum dataType, unsigned int size, void* data)
-	Bool glXMakeAssociatedContextCurrentAMD (GLXContext ctx)

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_ARB_get_proc_address

@@ -1,4 +0,0 @@
-GLX_ARB_get_proc_address
-http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.txt
-GLX_ARB_get_proc_address
-	extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_ATI_pixel_format_float

@@ -1,4 +0,0 @@
-GLX_ATI_pixel_format_float
-
-GLX_ATI_pixel_format_float
-	GLX_RGBA_FLOAT_ATI_BIT 0x00000100

+ 0 - 41
libobs-opengl/glew/auto/core/gl/GLX_ATI_render_texture

@@ -1,41 +0,0 @@
-GLX_ATI_render_texture
-
-GLX_ATI_render_texture
-	GLX_BIND_TO_TEXTURE_RGB_ATI         0x9800
-	GLX_BIND_TO_TEXTURE_RGBA_ATI        0x9801
-	GLX_TEXTURE_FORMAT_ATI              0x9802
-	GLX_TEXTURE_TARGET_ATI              0x9803
-	GLX_MIPMAP_TEXTURE_ATI              0x9804
-	GLX_TEXTURE_RGB_ATI                 0x9805
-	GLX_TEXTURE_RGBA_ATI                0x9806
-	GLX_NO_TEXTURE_ATI                  0x9807
-	GLX_TEXTURE_CUBE_MAP_ATI            0x9808
-	GLX_TEXTURE_1D_ATI                  0x9809
-	GLX_TEXTURE_2D_ATI                  0x980A
-	GLX_MIPMAP_LEVEL_ATI                0x980B
-	GLX_CUBE_MAP_FACE_ATI               0x980C
-	GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
-	GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
-	GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
-	GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
-	GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
-	GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
-	GLX_FRONT_LEFT_ATI                  0x9813
-	GLX_FRONT_RIGHT_ATI                 0x9814
-	GLX_BACK_LEFT_ATI                   0x9815
-	GLX_BACK_RIGHT_ATI                  0x9816
-	GLX_AUX0_ATI                        0x9817
-	GLX_AUX1_ATI                        0x9818
-	GLX_AUX2_ATI                        0x9819
-	GLX_AUX3_ATI                        0x981A
-	GLX_AUX4_ATI                        0x981B
-	GLX_AUX5_ATI                        0x981C
-	GLX_AUX6_ATI                        0x981D
-	GLX_AUX7_ATI                        0x981E
-	GLX_AUX8_ATI                        0x981F
-	GLX_AUX9_ATI                        0x9820
-	GLX_BIND_TO_TEXTURE_LUMINANCE_ATI   0x9821
-	GLX_BIND_TO_TEXTURE_INTENSITY_ATI   0x9822
-	void glXBindTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
-	void glXReleaseTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
-	void glXDrawableAttribATI (Display *dpy, GLXDrawable draw, const int *attrib_list)

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_EXT_create_context_es2_profile

@@ -1,4 +0,0 @@
-GLX_EXT_create_context_es2_profile
-http://www.opengl.org/registry/specs/EXT/glx_create_context_es2_profile.txt
-GLX_EXT_create_context_es2_profile
-	GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_EXT_create_context_es_profile

@@ -1,4 +0,0 @@
-GLX_EXT_create_context_es_profile
-http://www.opengl.org/registry/specs/EXT/glx_create_context_es_profile.txt
-GLX_EXT_create_context_es_profile
-	GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GLX_EXT_fbconfig_packed_float

@@ -1,5 +0,0 @@
-GLX_EXT_fbconfig_packed_float
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt
-GLX_EXT_fbconfig_packed_float
-	GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
-	GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_EXT_framebuffer_sRGB

@@ -1,4 +0,0 @@
-GLX_EXT_framebuffer_sRGB
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt
-GLX_EXT_framebuffer_sRGB
-	GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GLX_MESA_swap_control

@@ -1,5 +0,0 @@
-GLX_MESA_swap_control
-http://cgit.freedesktop.org/mesa/mesa/plain/docs/MESA_swap_control.spec
-GLX_MESA_swap_control
-	int glXGetSwapIntervalMESA (void)
-	int glXSwapIntervalMESA (unsigned int interval)

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_NV_float_buffer

@@ -1,4 +0,0 @@
-GLX_NV_float_buffer
-http://cvs1.nvidia.com/inc/GL/glxtokens.h
-GLX_NV_float_buffer
-	GLX_FLOAT_COMPONENTS_NV 0x20B0

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GLX_NV_vertex_array_range

@@ -1,5 +0,0 @@
-GLX_NV_vertex_array_range
-http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt
-GLX_NV_vertex_array_range
-	void * glXAllocateMemoryNV (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority)
-	void glXFreeMemoryNV (void *pointer)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GLX_SGIS_shared_multisample

@@ -1,5 +0,0 @@
-GLX_SGIS_shared_multisample
-
-GLX_SGIS_shared_multisample
-	GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
-	GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027

+ 0 - 25
libobs-opengl/glew/auto/core/gl/GLX_SGIX_hyperpipe

@@ -1,25 +0,0 @@
-GLX_SGIX_hyperpipe
-http://oss.sgi.com/projects/ogl-sample/registry/SGIX/hyperpipe_group.txt
-GLX_SGIX_hyperpipe
-	GLX_HYPERPIPE_ID_SGIX 0x8030
-	GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
-	GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
-	GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
-	GLX_PIPE_RECT_SGIX 0x00000001
-	GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
-	GLX_HYPERPIPE_STEREO_SGIX 0x00000003
-	GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
-	GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
-	GLX_BAD_HYPERPIPE_SGIX 92
-	typedef struct {  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];   int  networkId; } GLXHyperpipeNetworkSGIX;
-	typedef struct {  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];   int channel;   unsigned int participationType;   int timeSlice; } GLXHyperpipeConfigSGIX;
-	typedef struct {  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];   int srcXOrigin;   int srcYOrigin;   int srcWidth;   int srcHeight;   int destXOrigin;   int destYOrigin;   int destWidth;   int destHeight; } GLXPipeRect;
-	typedef struct {  char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];   int XOrigin;   int YOrigin;   int maxHeight;   int maxWidth; } GLXPipeRectLimits;
-	GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes)
-	int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId)
-	GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes)
-	int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId)
-	int glXBindHyperpipeSGIX (Display *dpy, int hpId)
-	int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList)
-	int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList)
-	int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GLX_SGIX_swap_barrier

@@ -1,5 +0,0 @@
-GLX_SGIX_swap_barrier
-http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_barrier.txt
-GLX_SGIX_swap_barrier
-	void glXBindSwapBarrierSGIX (Display *dpy, GLXDrawable drawable, int barrier)
-	Bool glXQueryMaxSwapBarriersSGIX (Display *dpy, int screen, int *max)

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_SGIX_swap_group

@@ -1,4 +0,0 @@
-GLX_SGIX_swap_group
-http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_group.txt
-GLX_SGIX_swap_group
-	void glXJoinSwapGroupSGIX (Display *dpy, GLXDrawable drawable, GLXDrawable member)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GLX_SGI_video_sync

@@ -1,5 +0,0 @@
-GLX_SGI_video_sync
-http://www.opengl.org/registry/specs/SGI/video_sync.txt
-GLX_SGI_video_sync
-	int glXGetVideoSyncSGI (unsigned int* count)
-	int glXWaitVideoSyncSGI (int divisor, int remainder, unsigned int* count)

+ 0 - 7
libobs-opengl/glew/auto/core/gl/GLX_SUN_video_resize

@@ -1,7 +0,0 @@
-GLX_SUN_video_resize
-http://wwws.sun.com/software/graphics/opengl/extensions/glx_sun_video_resize.txt
-GLX_SUN_video_resize
-	GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
-	GLX_VIDEO_RESIZE_SUN 0x8171
-	int glXVideoResizeSUN (Display* display, GLXDrawable window, float factor)
-	int glXGetVideoResizeSUN (Display* display, GLXDrawable window, float* factor)

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GLX_VERSION_1_2

@@ -1,4 +0,0 @@
-GLX_VERSION_1_2
-http://www.opengl.org/documentation/specs/glx/glx1.2.ps
-GLX_VERSION_1_2
-	Display* glXGetCurrentDisplay (void)

+ 0 - 82
libobs-opengl/glew/auto/core/gl/GLX_VERSION_1_3

@@ -1,82 +0,0 @@
-GLX_VERSION_1_3
-http://www.opengl.org/documentation/specs/glx/glx1.3.pdf
-GLX_VERSION_1_3
-	GLX_WINDOW_BIT 0x00000001
-	GLX_PIXMAP_BIT 0x00000002
-	GLX_PBUFFER_BIT 0x00000004
-	GLX_RGBA_BIT 0x00000001
-	GLX_COLOR_INDEX_BIT 0x00000002
-	GLX_PBUFFER_CLOBBER_MASK 0x08000000
-	GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
-	GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
-	GLX_BACK_LEFT_BUFFER_BIT 0x00000004
-	GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
-	GLX_AUX_BUFFERS_BIT 0x00000010
-	GLX_DEPTH_BUFFER_BIT 0x00000020
-	GLX_STENCIL_BUFFER_BIT 0x00000040
-	GLX_ACCUM_BUFFER_BIT 0x00000080
-	GLX_CONFIG_CAVEAT 0x20
-	GLX_X_VISUAL_TYPE 0x22
-	GLX_TRANSPARENT_TYPE 0x23
-	GLX_TRANSPARENT_INDEX_VALUE 0x24
-	GLX_TRANSPARENT_RED_VALUE 0x25
-	GLX_TRANSPARENT_GREEN_VALUE 0x26
-	GLX_TRANSPARENT_BLUE_VALUE 0x27
-	GLX_TRANSPARENT_ALPHA_VALUE 0x28
-	GLX_DONT_CARE 0xFFFFFFFF
-	GLX_NONE 0x8000
-	GLX_SLOW_CONFIG 0x8001
-	GLX_TRUE_COLOR 0x8002
-	GLX_DIRECT_COLOR 0x8003
-	GLX_PSEUDO_COLOR 0x8004
-	GLX_STATIC_COLOR 0x8005
-	GLX_GRAY_SCALE 0x8006
-	GLX_STATIC_GRAY 0x8007
-	GLX_TRANSPARENT_RGB 0x8008
-	GLX_TRANSPARENT_INDEX 0x8009
-	GLX_VISUAL_ID 0x800B
-	GLX_SCREEN 0x800C
-	GLX_NON_CONFORMANT_CONFIG 0x800D
-	GLX_DRAWABLE_TYPE 0x8010
-	GLX_RENDER_TYPE 0x8011
-	GLX_X_RENDERABLE 0x8012
-	GLX_FBCONFIG_ID 0x8013
-	GLX_RGBA_TYPE 0x8014
-	GLX_COLOR_INDEX_TYPE 0x8015
-	GLX_MAX_PBUFFER_WIDTH 0x8016
-	GLX_MAX_PBUFFER_HEIGHT 0x8017
-	GLX_MAX_PBUFFER_PIXELS 0x8018
-	GLX_PRESERVED_CONTENTS 0x801B
-	GLX_LARGEST_PBUFFER 0x801C
-	GLX_WIDTH 0x801D
-	GLX_HEIGHT 0x801E
-	GLX_EVENT_MASK 0x801F
-	GLX_DAMAGED 0x8020
-	GLX_SAVED 0x8021
-	GLX_WINDOW 0x8022
-	GLX_PBUFFER 0x8023
-	GLX_PBUFFER_HEIGHT 0x8040
-	GLX_PBUFFER_WIDTH 0x8041
-	GLXFBConfig* glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements)
-	GLXFBConfig* glXGetFBConfigs (Display *dpy, int screen, int *nelements)
-	XVisualInfo* glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config)
-	int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value)
-	GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list)
-	void glXDestroyWindow (Display *dpy, GLXWindow win)
-	GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list)
-	void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap)
-	GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list)
-	void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf)
-	void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value)
-	GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct)
-	Bool glXMakeContextCurrent (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
-	GLXDrawable glXGetCurrentReadDrawable (void)
-	int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value)
-	void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask)
-	void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask)
-	typedef XID GLXWindow
-	typedef XID GLXPbuffer
-	typedef XID GLXFBConfigID
-	typedef struct __GLXFBConfigRec *GLXFBConfig
-	typedef struct {  int event_type;   int draw_type;   unsigned long serial;   Bool send_event;   Display *display;   GLXDrawable drawable;   unsigned int buffer_mask;   unsigned int aux_buffer;   int x, y;   int width, height;   int count; } GLXPbufferClobberEvent;
-	typedef union __GLXEvent {  GLXPbufferClobberEvent glxpbufferclobber;   long pad[24]; } GLXEvent;

+ 0 - 6
libobs-opengl/glew/auto/core/gl/GLX_VERSION_1_4

@@ -1,6 +0,0 @@
-GLX_VERSION_1_4
-http://www.opengl.org/documentation/specs/glx/glx1.4.pdf
-GLX_VERSION_1_4
-	GLX_SAMPLE_BUFFERS 100000
-	GLX_SAMPLES 100001
-	extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);

+ 0 - 17
libobs-opengl/glew/auto/core/gl/GL_APPLE_float_pixels

@@ -1,17 +0,0 @@
-GL_APPLE_float_pixels
-http://www.opengl.org/registry/specs/APPLE/float_pixels.txt
-GL_APPLE_float_pixels
-	GL_HALF_APPLE 0x140B
-	GL_COLOR_FLOAT_APPLE 0x8A0F
-	GL_RGBA_FLOAT32_APPLE 0x8814
-	GL_RGB_FLOAT32_APPLE 0x8815
-	GL_ALPHA_FLOAT32_APPLE 0x8816
-	GL_INTENSITY_FLOAT32_APPLE 0x8817
-	GL_LUMINANCE_FLOAT32_APPLE 0x8818
-	GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
-	GL_RGBA_FLOAT16_APPLE 0x881A
-	GL_RGB_FLOAT16_APPLE 0x881B
-	GL_ALPHA_FLOAT16_APPLE 0x881C
-	GL_INTENSITY_FLOAT16_APPLE 0x881D
-	GL_LUMINANCE_FLOAT16_APPLE 0x881E
-	GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GL_APPLE_pixel_buffer

@@ -1,4 +0,0 @@
-GL_APPLE_pixel_buffer
-
-GL_APPLE_pixel_buffer
-	GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10

+ 0 - 12
libobs-opengl/glew/auto/core/gl/GL_APPLE_texture_range

@@ -1,12 +0,0 @@
-GL_APPLE_texture_range
-http://www.opengl.org/registry/specs/APPLE/texture_range.txt
-GL_APPLE_texture_range
-	GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
-	GL_STORAGE_PRIVATE_APPLE 0x85BD
-	GL_STORAGE_CACHED_APPLE 0x85BE
-	GL_STORAGE_SHARED_APPLE 0x85BF
-	GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
-	GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
-	void glTextureRangeAPPLE (GLenum target, GLsizei length, GLvoid *pointer)
-	void glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid **params)
-

+ 0 - 3
libobs-opengl/glew/auto/core/gl/GL_ARB_draw_instanced

@@ -1,3 +0,0 @@
-GL_ARB_draw_instanced
-http://www.opengl.org/registry/specs/ARB/draw_instanced.txt
-GL_ARB_draw_instanced

+ 0 - 112
libobs-opengl/glew/auto/core/gl/GL_ARB_imaging

@@ -1,112 +0,0 @@
-GL_ARB_imaging
-
-GL_ARB_imaging
-	GL_CONSTANT_COLOR 0x8001
-	GL_ONE_MINUS_CONSTANT_COLOR 0x8002
-	GL_CONSTANT_ALPHA 0x8003
-	GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
-	GL_BLEND_COLOR 0x8005
-	GL_FUNC_ADD 0x8006
-	GL_MIN 0x8007
-	GL_MAX 0x8008
-	GL_BLEND_EQUATION 0x8009
-	GL_FUNC_SUBTRACT 0x800A
-	GL_FUNC_REVERSE_SUBTRACT 0x800B
-	GL_CONVOLUTION_1D 0x8010
-	GL_CONVOLUTION_2D 0x8011
-	GL_SEPARABLE_2D 0x8012
-	GL_CONVOLUTION_BORDER_MODE 0x8013
-	GL_CONVOLUTION_FILTER_SCALE 0x8014
-	GL_CONVOLUTION_FILTER_BIAS 0x8015
-	GL_REDUCE 0x8016
-	GL_CONVOLUTION_FORMAT 0x8017
-	GL_CONVOLUTION_WIDTH 0x8018
-	GL_CONVOLUTION_HEIGHT 0x8019
-	GL_MAX_CONVOLUTION_WIDTH 0x801A
-	GL_MAX_CONVOLUTION_HEIGHT 0x801B
-	GL_POST_CONVOLUTION_RED_SCALE 0x801C
-	GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
-	GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
-	GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
-	GL_POST_CONVOLUTION_RED_BIAS 0x8020
-	GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
-	GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
-	GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
-	GL_HISTOGRAM 0x8024
-	GL_PROXY_HISTOGRAM 0x8025
-	GL_HISTOGRAM_WIDTH 0x8026
-	GL_HISTOGRAM_FORMAT 0x8027
-	GL_HISTOGRAM_RED_SIZE 0x8028
-	GL_HISTOGRAM_GREEN_SIZE 0x8029
-	GL_HISTOGRAM_BLUE_SIZE 0x802A
-	GL_HISTOGRAM_ALPHA_SIZE 0x802B
-	GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
-	GL_HISTOGRAM_SINK 0x802D
-	GL_MINMAX 0x802E
-	GL_MINMAX_FORMAT 0x802F
-	GL_MINMAX_SINK 0x8030
-	GL_TABLE_TOO_LARGE 0x8031
-	GL_COLOR_MATRIX 0x80B1
-	GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
-	GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
-	GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
-	GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
-	GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
-	GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
-	GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
-	GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
-	GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
-	GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
-	GL_COLOR_TABLE 0x80D0
-	GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
-	GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
-	GL_PROXY_COLOR_TABLE 0x80D3
-	GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
-	GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
-	GL_COLOR_TABLE_SCALE 0x80D6
-	GL_COLOR_TABLE_BIAS 0x80D7
-	GL_COLOR_TABLE_FORMAT 0x80D8
-	GL_COLOR_TABLE_WIDTH 0x80D9
-	GL_COLOR_TABLE_RED_SIZE 0x80DA
-	GL_COLOR_TABLE_GREEN_SIZE 0x80DB
-	GL_COLOR_TABLE_BLUE_SIZE 0x80DC
-	GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
-	GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
-	GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
-	GL_IGNORE_BORDER 0x8150
-	GL_CONSTANT_BORDER 0x8151
-	GL_WRAP_BORDER 0x8152
-	GL_REPLICATE_BORDER 0x8153
-	GL_CONVOLUTION_BORDER_COLOR 0x8154
-	void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
-	void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)
-	void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params)
-	void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params)
-	void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
-	void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
-	void glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table)
-	void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params)
-	void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params)
-	void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
-	void glResetHistogram (GLenum target)
-	void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
-	void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params)
-	void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params)
-	void glMinmax (GLenum target, GLenum internalformat, GLboolean sink)
-	void glResetMinmax (GLenum target)
-	void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params)
-	void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params)
-	void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
-	void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
-	void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params)
-	void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params)
-	void glConvolutionParameteri (GLenum target, GLenum pname, GLint params)
-	void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params)
-	void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
-	void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
-	void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image)
-	void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params)
-	void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params)
-	void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
-	void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
-	void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values)

+ 0 - 7
libobs-opengl/glew/auto/core/gl/GL_ARB_instanced_arrays

@@ -1,7 +0,0 @@
-GL_ARB_instanced_arrays
-http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt
-GL_ARB_instanced_arrays
-	GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
-	void glVertexAttribDivisorARB (GLuint index, GLuint divisor)
-	void glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount)
-	void glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount)

+ 0 - 103
libobs-opengl/glew/auto/core/gl/GL_ARB_internalformat_query2

@@ -1,103 +0,0 @@
-GL_ARB_internalformat_query2
-http://www.opengl.org/registry/specs/ARB/internalformat_query2.txt
-GL_ARB_internalformat_query2
-	GL_INTERNALFORMAT_SUPPORTED 0x826F
-	GL_INTERNALFORMAT_PREFERRED 0x8270
-	GL_INTERNALFORMAT_RED_SIZE 0x8271
-	GL_INTERNALFORMAT_GREEN_SIZE 0x8272
-	GL_INTERNALFORMAT_BLUE_SIZE 0x8273
-	GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
-	GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
-	GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
-	GL_INTERNALFORMAT_SHARED_SIZE 0x8277
-	GL_INTERNALFORMAT_RED_TYPE 0x8278
-	GL_INTERNALFORMAT_GREEN_TYPE 0x8279
-	GL_INTERNALFORMAT_BLUE_TYPE 0x827A
-	GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
-	GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
-	GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
-	GL_MAX_WIDTH 0x827E
-	GL_MAX_HEIGHT 0x827F
-	GL_MAX_DEPTH 0x8280
-	GL_MAX_LAYERS 0x8281
-	GL_MAX_COMBINED_DIMENSIONS 0x8282
-	GL_COLOR_COMPONENTS 0x8283
-	GL_DEPTH_COMPONENTS 0x8284
-	GL_STENCIL_COMPONENTS 0x8285
-	GL_COLOR_RENDERABLE 0x8286
-	GL_DEPTH_RENDERABLE 0x8287
-	GL_STENCIL_RENDERABLE 0x8288
-	GL_FRAMEBUFFER_RENDERABLE 0x8289
-	GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
-	GL_FRAMEBUFFER_BLEND 0x828B
-	GL_READ_PIXELS 0x828C
-	GL_READ_PIXELS_FORMAT 0x828D
-	GL_READ_PIXELS_TYPE 0x828E
-	GL_TEXTURE_IMAGE_FORMAT 0x828F
-	GL_TEXTURE_IMAGE_TYPE 0x8290
-	GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
-	GL_GET_TEXTURE_IMAGE_TYPE 0x8292
-	GL_MIPMAP 0x8293
-	GL_MANUAL_GENERATE_MIPMAP 0x8294
-	GL_AUTO_GENERATE_MIPMAP 0x8295
-	GL_COLOR_ENCODING 0x8296
-	GL_SRGB_READ 0x8297
-	GL_SRGB_WRITE 0x8298
-	GL_SRGB_DECODE_ARB 0x8299
-	GL_FILTER 0x829A
-	GL_VERTEX_TEXTURE 0x829B
-	GL_TESS_CONTROL_TEXTURE 0x829C
-	GL_TESS_EVALUATION_TEXTURE 0x829D
-	GL_GEOMETRY_TEXTURE 0x829E
-	GL_FRAGMENT_TEXTURE 0x829F
-	GL_COMPUTE_TEXTURE 0x82A0
-	GL_TEXTURE_SHADOW 0x82A1
-	GL_TEXTURE_GATHER 0x82A2
-	GL_TEXTURE_GATHER_SHADOW 0x82A3
-	GL_SHADER_IMAGE_LOAD 0x82A4
-	GL_SHADER_IMAGE_STORE 0x82A5
-	GL_SHADER_IMAGE_ATOMIC 0x82A6
-	GL_IMAGE_TEXEL_SIZE 0x82A7
-	GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
-	GL_IMAGE_PIXEL_FORMAT 0x82A9
-	GL_IMAGE_PIXEL_TYPE 0x82AA
-	GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
-	GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
-	GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
-	GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
-	GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
-	GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
-	GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
-	GL_CLEAR_BUFFER 0x82B4
-	GL_TEXTURE_VIEW 0x82B5
-	GL_VIEW_COMPATIBILITY_CLASS 0x82B6
-	GL_FULL_SUPPORT 0x82B7
-	GL_CAVEAT_SUPPORT 0x82B8
-	GL_IMAGE_CLASS_4_X_32 0x82B9
-	GL_IMAGE_CLASS_2_X_32 0x82BA
-	GL_IMAGE_CLASS_1_X_32 0x82BB
-	GL_IMAGE_CLASS_4_X_16 0x82BC
-	GL_IMAGE_CLASS_2_X_16 0x82BD
-	GL_IMAGE_CLASS_1_X_16 0x82BE
-	GL_IMAGE_CLASS_4_X_8 0x82BF
-	GL_IMAGE_CLASS_2_X_8 0x82C0
-	GL_IMAGE_CLASS_1_X_8 0x82C1
-	GL_IMAGE_CLASS_11_11_10 0x82C2
-	GL_IMAGE_CLASS_10_10_10_2 0x82C3
-	GL_VIEW_CLASS_128_BITS 0x82C4
-	GL_VIEW_CLASS_96_BITS 0x82C5
-	GL_VIEW_CLASS_64_BITS 0x82C6
-	GL_VIEW_CLASS_48_BITS 0x82C7
-	GL_VIEW_CLASS_32_BITS 0x82C8
-	GL_VIEW_CLASS_24_BITS 0x82C9
-	GL_VIEW_CLASS_16_BITS 0x82CA
-	GL_VIEW_CLASS_8_BITS 0x82CB
-	GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
-	GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
-	GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
-	GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
-	GL_VIEW_CLASS_RGTC1_RED 0x82D0
-	GL_VIEW_CLASS_RGTC2_RG 0x82D1
-	GL_VIEW_CLASS_BPTC_UNORM 0x82D2
-	GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
-	void glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params)

+ 0 - 18
libobs-opengl/glew/auto/core/gl/GL_ARB_matrix_palette

@@ -1,18 +0,0 @@
-GL_ARB_matrix_palette
-http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt
-GL_ARB_matrix_palette
-	GL_MATRIX_PALETTE_ARB 0x8840
-	GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
-	GL_MAX_PALETTE_MATRICES_ARB 0x8842
-	GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
-	GL_MATRIX_INDEX_ARRAY_ARB 0x8844
-	GL_CURRENT_MATRIX_INDEX_ARB 0x8845
-	GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
-	GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
-	GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
-	GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
-	void glCurrentPaletteMatrixARB (GLint index)
-	void glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
-	void glMatrixIndexubvARB (GLint size, GLubyte *indices)
-	void glMatrixIndexusvARB (GLint size, GLushort *indices)
-	void glMatrixIndexuivARB (GLint size, GLuint *indices)

+ 0 - 72
libobs-opengl/glew/auto/core/gl/GL_ARB_multitexture

@@ -1,72 +0,0 @@
-GL_ARB_multitexture
-http://oss.sgi.com/projects/ogl-sample/registry/ARB/multitexture.txt
-GL_ARB_multitexture
-	GL_TEXTURE0_ARB 0x84C0
-	GL_TEXTURE1_ARB 0x84C1
-	GL_TEXTURE2_ARB 0x84C2
-	GL_TEXTURE3_ARB 0x84C3
-	GL_TEXTURE4_ARB 0x84C4
-	GL_TEXTURE5_ARB 0x84C5
-	GL_TEXTURE6_ARB 0x84C6
-	GL_TEXTURE7_ARB 0x84C7
-	GL_TEXTURE8_ARB 0x84C8
-	GL_TEXTURE9_ARB 0x84C9
-	GL_TEXTURE10_ARB 0x84CA
-	GL_TEXTURE11_ARB 0x84CB
-	GL_TEXTURE12_ARB 0x84CC
-	GL_TEXTURE13_ARB 0x84CD
-	GL_TEXTURE14_ARB 0x84CE
-	GL_TEXTURE15_ARB 0x84CF
-	GL_TEXTURE16_ARB 0x84D0
-	GL_TEXTURE17_ARB 0x84D1
-	GL_TEXTURE18_ARB 0x84D2
-	GL_TEXTURE19_ARB 0x84D3
-	GL_TEXTURE20_ARB 0x84D4
-	GL_TEXTURE21_ARB 0x84D5
-	GL_TEXTURE22_ARB 0x84D6
-	GL_TEXTURE23_ARB 0x84D7
-	GL_TEXTURE24_ARB 0x84D8
-	GL_TEXTURE25_ARB 0x84D9
-	GL_TEXTURE26_ARB 0x84DA
-	GL_TEXTURE27_ARB 0x84DB
-	GL_TEXTURE28_ARB 0x84DC
-	GL_TEXTURE29_ARB 0x84DD
-	GL_TEXTURE30_ARB 0x84DE
-	GL_TEXTURE31_ARB 0x84DF
-	GL_ACTIVE_TEXTURE_ARB 0x84E0
-	GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
-	GL_MAX_TEXTURE_UNITS_ARB 0x84E2
-	void glActiveTextureARB (GLenum texture)
-	void glClientActiveTextureARB (GLenum texture)
-	void glMultiTexCoord1dARB (GLenum target, GLdouble s)
-	void glMultiTexCoord1dvARB (GLenum target, const GLdouble *v)
-	void glMultiTexCoord1fARB (GLenum target, GLfloat s)
-	void glMultiTexCoord1fvARB (GLenum target, const GLfloat *v)
-	void glMultiTexCoord1iARB (GLenum target, GLint s)
-	void glMultiTexCoord1ivARB (GLenum target, const GLint *v)
-	void glMultiTexCoord1sARB (GLenum target, GLshort s)
-	void glMultiTexCoord1svARB (GLenum target, const GLshort *v)
-	void glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t)
-	void glMultiTexCoord2dvARB (GLenum target, const GLdouble *v)
-	void glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t)
-	void glMultiTexCoord2fvARB (GLenum target, const GLfloat *v)
-	void glMultiTexCoord2iARB (GLenum target, GLint s, GLint t)
-	void glMultiTexCoord2ivARB (GLenum target, const GLint *v)
-	void glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t)
-	void glMultiTexCoord2svARB (GLenum target, const GLshort *v)
-	void glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r)
-	void glMultiTexCoord3dvARB (GLenum target, const GLdouble *v)
-	void glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r)
-	void glMultiTexCoord3fvARB (GLenum target, const GLfloat *v)
-	void glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r)
-	void glMultiTexCoord3ivARB (GLenum target, const GLint *v)
-	void glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r)
-	void glMultiTexCoord3svARB (GLenum target, const GLshort *v)
-	void glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
-	void glMultiTexCoord4dvARB (GLenum target, const GLdouble *v)
-	void glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
-	void glMultiTexCoord4fvARB (GLenum target, const GLfloat *v)
-	void glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q)
-	void glMultiTexCoord4ivARB (GLenum target, const GLint *v)
-	void glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
-	void glMultiTexCoord4svARB (GLenum target, const GLshort *v)

+ 0 - 30
libobs-opengl/glew/auto/core/gl/GL_ARB_robustness

@@ -1,30 +0,0 @@
-GL_ARB_robustness
-http://www.opengl.org/registry/specs/ARB/robustness.txt
-GL_ARB_robustness
-	GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
-	GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
-	GL_GUILTY_CONTEXT_RESET_ARB 0x8253
-	GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
-	GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
-	GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
-	GL_NO_RESET_NOTIFICATION_ARB 0x8261
-	GLenum glGetGraphicsResetStatusARB (void)
-	void glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table)
-	void glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void* img)
-	void glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image)
-	void glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
-	void glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v)
-	void glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v)
-	void glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint* v)
-	void glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
-	void glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat* values)
-	void glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint* values)
-	void glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort* values)
-	void glGetnPolygonStippleARB (GLsizei bufSize, GLubyte* pattern)
-	void glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span)
-	void glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img)
-	void glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble* params)
-	void glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat* params)
-	void glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint* params)
-	void glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint* params)
-	void glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data)

+ 0 - 72
libobs-opengl/glew/auto/core/gl/GL_ARB_separate_shader_objects

@@ -1,72 +0,0 @@
-GL_ARB_separate_shader_objects
-http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
-GL_ARB_separate_shader_objects
-	GL_VERTEX_SHADER_BIT 0x00000001
-	GL_FRAGMENT_SHADER_BIT 0x00000002
-	GL_GEOMETRY_SHADER_BIT 0x00000004
-	GL_TESS_CONTROL_SHADER_BIT 0x00000008
-	GL_TESS_EVALUATION_SHADER_BIT 0x00000010
-	GL_PROGRAM_SEPARABLE 0x8258
-	GL_ACTIVE_PROGRAM 0x8259
-	GL_PROGRAM_PIPELINE_BINDING 0x825A
-	GL_ALL_SHADER_BITS 0xFFFFFFFF
-	void glActiveShaderProgram (GLuint pipeline, GLuint program)
-	void glBindProgramPipeline (GLuint pipeline)
-	GLuint glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar ** strings)
-	void glDeleteProgramPipelines (GLsizei n, const GLuint* pipelines)
-	void glGenProgramPipelines (GLsizei n, GLuint* pipelines)
-	void glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog)
-	void glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint* params)
-	GLboolean glIsProgramPipeline (GLuint pipeline)
-	void glProgramUniform1d (GLuint program, GLint location, GLdouble x)
-	void glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
-	void glProgramUniform1f (GLuint program, GLint location, GLfloat x)
-	void glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
-	void glProgramUniform1i (GLuint program, GLint location, GLint x)
-	void glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint* value)
-	void glProgramUniform1ui (GLuint program, GLint location, GLuint x)
-	void glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
-	void glProgramUniform2d (GLuint program, GLint location, GLdouble x, GLdouble y)
-	void glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
-	void glProgramUniform2f (GLuint program, GLint location, GLfloat x, GLfloat y)
-	void glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
-	void glProgramUniform2i (GLuint program, GLint location, GLint x, GLint y)
-	void glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint* value)
-	void glProgramUniform2ui (GLuint program, GLint location, GLuint x, GLuint y)
-	void glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
-	void glProgramUniform3d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)
-	void glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
-	void glProgramUniform3f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
-	void glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
-	void glProgramUniform3i (GLuint program, GLint location, GLint x, GLint y, GLint z)
-	void glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint* value)
-	void glProgramUniform3ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z)
-	void glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
-	void glProgramUniform4d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-	void glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
-	void glProgramUniform4f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-	void glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
-	void glProgramUniform4i (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
-	void glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint* value)
-	void glProgramUniform4ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w)
-	void glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
-	void glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
-	void glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-	void glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program)
-	void glValidateProgramPipeline (GLuint pipeline)

+ 0 - 13
libobs-opengl/glew/auto/core/gl/GL_ARB_vertex_attrib_64bit

@@ -1,13 +0,0 @@
-GL_ARB_vertex_attrib_64bit
-http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
-GL_ARB_vertex_attrib_64bit
-	void glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble* params)
-	void glVertexAttribL1d (GLuint index, GLdouble x)
-	void glVertexAttribL1dv (GLuint index, const GLdouble* v)
-	void glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y)
-	void glVertexAttribL2dv (GLuint index, const GLdouble* v)
-	void glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z)
-	void glVertexAttribL3dv (GLuint index, const GLdouble* v)
-	void glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-	void glVertexAttribL4dv (GLuint index, const GLdouble* v)
-	void glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer)

+ 0 - 55
libobs-opengl/glew/auto/core/gl/GL_ARB_vertex_blend

@@ -1,55 +0,0 @@
-GL_ARB_vertex_blend
-http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt
-GL_ARB_vertex_blend
-	GL_MAX_VERTEX_UNITS_ARB 0x86A4
-	GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
-	GL_WEIGHT_SUM_UNITY_ARB 0x86A6
-	GL_VERTEX_BLEND_ARB 0x86A7
-	GL_CURRENT_WEIGHT_ARB 0x86A8
-	GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
-	GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
-	GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
-	GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
-	GL_WEIGHT_ARRAY_ARB 0x86AD
-	GL_MODELVIEW0_ARB 0x1700
-	GL_MODELVIEW1_ARB 0x850A
-	GL_MODELVIEW2_ARB 0x8722
-	GL_MODELVIEW3_ARB 0x8723
-	GL_MODELVIEW4_ARB 0x8724
-	GL_MODELVIEW5_ARB 0x8725
-	GL_MODELVIEW6_ARB 0x8726
-	GL_MODELVIEW7_ARB 0x8727
-	GL_MODELVIEW8_ARB 0x8728
-	GL_MODELVIEW9_ARB 0x8729
-	GL_MODELVIEW10_ARB 0x872A
-	GL_MODELVIEW11_ARB 0x872B
-	GL_MODELVIEW12_ARB 0x872C
-	GL_MODELVIEW13_ARB 0x872D
-	GL_MODELVIEW14_ARB 0x872E
-	GL_MODELVIEW15_ARB 0x872F
-	GL_MODELVIEW16_ARB 0x8730
-	GL_MODELVIEW17_ARB 0x8731
-	GL_MODELVIEW18_ARB 0x8732
-	GL_MODELVIEW19_ARB 0x8733
-	GL_MODELVIEW20_ARB 0x8734
-	GL_MODELVIEW21_ARB 0x8735
-	GL_MODELVIEW22_ARB 0x8736
-	GL_MODELVIEW23_ARB 0x8737
-	GL_MODELVIEW24_ARB 0x8738
-	GL_MODELVIEW25_ARB 0x8739
-	GL_MODELVIEW26_ARB 0x873A
-	GL_MODELVIEW27_ARB 0x873B
-	GL_MODELVIEW28_ARB 0x873C
-	GL_MODELVIEW29_ARB 0x873D
-	GL_MODELVIEW30_ARB 0x873E
-	GL_MODELVIEW31_ARB 0x873F
-	void glWeightbvARB (GLint size, GLbyte *weights)
-	void glWeightsvARB (GLint size, GLshort *weights)
-	void glWeightivARB (GLint size, GLint *weights)
-	void glWeightfvARB (GLint size, GLfloat *weights)
-	void glWeightdvARB (GLint size, GLdouble *weights)
-	void glWeightubvARB (GLint size, GLubyte *weights)
-	void glWeightusvARB (GLint size, GLushort *weights)
-	void glWeightuivARB (GLint size, GLuint *weights)
-	void glWeightPointerARB (GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
-	void glVertexBlendARB (GLint count)

+ 0 - 9
libobs-opengl/glew/auto/core/gl/GL_ATIX_point_sprites

@@ -1,9 +0,0 @@
-GL_ATIX_point_sprites
-http://www.ati.com/developer/atiopengl.pdf
-GL_ATIX_point_sprites
-	GL_TEXTURE_POINT_MODE_ATIX 0x60B0
-	GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1
-	GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2
-	GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3
-	GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4
-	GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5

+ 0 - 6
libobs-opengl/glew/auto/core/gl/GL_ATIX_texture_env_combine3

@@ -1,6 +0,0 @@
-GL_ATIX_texture_env_combine3
-http://www.ati.com/developer/atiopengl.pdf
-GL_ATIX_texture_env_combine3
-	GL_MODULATE_ADD_ATIX 0x8744
-	GL_MODULATE_SIGNED_ADD_ATIX 0x8745
-	GL_MODULATE_SUBTRACT_ATIX 0x8746

+ 0 - 6
libobs-opengl/glew/auto/core/gl/GL_ATIX_texture_env_route

@@ -1,6 +0,0 @@
-GL_ATIX_texture_env_route
-http://www.ati.com/developer/sdk/RadeonSDK/Html/Info/ATIX_texture_env_route.txt
-GL_ATIX_texture_env_route
-	GL_SECONDARY_COLOR_ATIX 0x8747
-	GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
-	GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GL_ATIX_vertex_shader_output_point_size

@@ -1,4 +0,0 @@
-GL_ATIX_vertex_shader_output_point_size
-http://www.ati.com/developer/atiopengl.pdf
-GL_ATIX_vertex_shader_output_point_size
-	GL_OUTPUT_POINT_SIZE_ATIX 0x610E

+ 0 - 15
libobs-opengl/glew/auto/core/gl/GL_ATI_envmap_bumpmap

@@ -1,15 +0,0 @@
-GL_ATI_envmap_bumpmap
-http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt
-GL_ATI_envmap_bumpmap
-	GL_BUMP_ROT_MATRIX_ATI 0x8775
-	GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
-	GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
-	GL_BUMP_TEX_UNITS_ATI 0x8778
-	GL_DUDV_ATI 0x8779
-	GL_DU8DV8_ATI 0x877A
-	GL_BUMP_ENVMAP_ATI 0x877B
-	GL_BUMP_TARGET_ATI 0x877C
-	void glTexBumpParameterivATI (GLenum pname, GLint *param)
-	void glTexBumpParameterfvATI (GLenum pname, GLfloat *param)
-	void glGetTexBumpParameterivATI (GLenum pname, GLint *param)
-	void glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GL_ATI_map_object_buffer

@@ -1,5 +0,0 @@
-GL_ATI_map_object_buffer
-http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt
-GL_ATI_map_object_buffer
-	GLvoid * glMapObjectBufferATI (GLuint buffer)
-	void glUnmapObjectBufferATI (GLuint buffer)

+ 0 - 14
libobs-opengl/glew/auto/core/gl/GL_ATI_pn_triangles

@@ -1,14 +0,0 @@
-GL_ATI_pn_triangles
-http://www.opengl.org/registry/specs/ATI/pn_triangles.txt
-GL_ATI_pn_triangles
-	GL_PN_TRIANGLES_ATI 0x87F0
-	GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
-	GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
-	GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
-	GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
-	GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
-	GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
-	GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
-	GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
-	void glPNTrianglesiATI (GLenum pname, GLint param)
-	void glPNTrianglesfATI (GLenum pname, GLfloat param)

+ 0 - 9
libobs-opengl/glew/auto/core/gl/GL_ATI_separate_stencil

@@ -1,9 +0,0 @@
-GL_ATI_separate_stencil
-http://www.opengl.org/registry/specs/ATI/separate_stencil.txt
-GL_ATI_separate_stencil
-	GL_STENCIL_BACK_FUNC_ATI 0x8800
-	GL_STENCIL_BACK_FAIL_ATI 0x8801
-	GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
-	GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
-	void glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
-	void glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)

+ 0 - 3
libobs-opengl/glew/auto/core/gl/GL_ATI_shader_texture_lod

@@ -1,3 +0,0 @@
-GL_ATI_shader_texture_lod
-
-GL_ATI_shader_texture_lod

+ 0 - 4
libobs-opengl/glew/auto/core/gl/GL_ATI_texture_compression_3dc

@@ -1,4 +0,0 @@
-GL_ATI_texture_compression_3dc
-
-GL_ATI_texture_compression_3dc
-	GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837

+ 0 - 58
libobs-opengl/glew/auto/core/gl/GL_ATI_vertex_streams

@@ -1,58 +0,0 @@
-GL_ATI_vertex_streams
-http://www.opengl.org/registry/specs/ATI/vertex_streams.txt
-GL_ATI_vertex_streams
-	GL_MAX_VERTEX_STREAMS_ATI 0x876B
-	GL_VERTEX_SOURCE_ATI 0x876C
-	GL_VERTEX_STREAM0_ATI 0x876D
-	GL_VERTEX_STREAM1_ATI 0x876E
-	GL_VERTEX_STREAM2_ATI 0x876F
-	GL_VERTEX_STREAM3_ATI 0x8770
-	GL_VERTEX_STREAM4_ATI 0x8771
-	GL_VERTEX_STREAM5_ATI 0x8772
-	GL_VERTEX_STREAM6_ATI 0x8773
-	GL_VERTEX_STREAM7_ATI 0x8774
-	void glClientActiveVertexStreamATI (GLenum stream)
-	void glVertexBlendEnviATI (GLenum pname, GLint param)
-	void glVertexBlendEnvfATI (GLenum pname, GLfloat param)
-	void glVertexStream1sATI (GLenum stream, GLshort x)
-	void glVertexStream1svATI (GLenum stream, const GLshort *coords)
-	void glVertexStream1iATI (GLenum stream, GLint x)
-	void glVertexStream1ivATI (GLenum stream, const GLint *coords)
-	void glVertexStream1fATI (GLenum stream, GLfloat x)
-	void glVertexStream1fvATI (GLenum stream, const GLfloat *coords)
-	void glVertexStream1dATI (GLenum stream, GLdouble x)
-	void glVertexStream1dvATI (GLenum stream, const GLdouble *coords)
-	void glVertexStream2sATI (GLenum stream, GLshort x, GLshort y)
-	void glVertexStream2svATI (GLenum stream, const GLshort *coords)
-	void glVertexStream2iATI (GLenum stream, GLint x, GLint y)
-	void glVertexStream2ivATI (GLenum stream, const GLint *coords)
-	void glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y)
-	void glVertexStream2fvATI (GLenum stream, const GLfloat *coords)
-	void glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y)
-	void glVertexStream2dvATI (GLenum stream, const GLdouble *coords)
-	void glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
-	void glVertexStream3svATI (GLenum stream, const GLshort *coords)
-	void glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
-	void glVertexStream3ivATI (GLenum stream, const GLint *coords)
-	void glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
-	void glVertexStream3fvATI (GLenum stream, const GLfloat *coords)
-	void glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
-	void glVertexStream3dvATI (GLenum stream, const GLdouble *coords)
-	void glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w)
-	void glVertexStream4svATI (GLenum stream, const GLshort *coords)
-	void glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w)
-	void glVertexStream4ivATI (GLenum stream, const GLint *coords)
-	void glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-	void glVertexStream4fvATI (GLenum stream, const GLfloat *coords)
-	void glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
-	void glVertexStream4dvATI (GLenum stream, const GLdouble *coords)
-	void glNormalStream3bATI (GLenum stream, GLbyte x, GLbyte y, GLbyte z)
-	void glNormalStream3bvATI (GLenum stream, const GLbyte *coords)
-	void glNormalStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
-	void glNormalStream3svATI (GLenum stream, const GLshort *coords)
-	void glNormalStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
-	void glNormalStream3ivATI (GLenum stream, const GLint *coords)
-	void glNormalStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
-	void glNormalStream3fvATI (GLenum stream, const GLfloat *coords)
-	void glNormalStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
-	void glNormalStream3dvATI (GLenum stream, const GLdouble *coords)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GL_EXT_Cg_shader

@@ -1,5 +0,0 @@
-GL_EXT_Cg_shader
-http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf
-GL_EXT_Cg_shader
-	GL_CG_VERTEX_SHADER_EXT 0x890E
-	GL_CG_FRAGMENT_SHADER_EXT 0x890F

+ 0 - 12
libobs-opengl/glew/auto/core/gl/GL_EXT_bindable_uniform

@@ -1,12 +0,0 @@
-GL_EXT_bindable_uniform
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_bindable_uniform.txt
-GL_EXT_bindable_uniform
-	GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
-	GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
-	GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
-	GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
-	GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
-	GL_UNIFORM_BUFFER_EXT 0x8DEE
-	void glUniformBufferEXT (GLuint program, GLint location, GLuint buffer)
-	GLint glGetUniformBufferSizeEXT (GLuint program, GLint location)
-	GLintptr glGetUniformOffsetEXT (GLuint program, GLint location)

+ 0 - 6
libobs-opengl/glew/auto/core/gl/GL_EXT_debug_marker

@@ -1,6 +0,0 @@
-GL_EXT_debug_marker
-http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt
-GL_EXT_debug_marker
-	void glInsertEventMarkerEXT (GLsizei length, const GLchar* marker)
-	void glPushGroupMarkerEXT (GLsizei length, const GLchar* marker)
-	void glPopGroupMarkerEXT (void)

+ 0 - 6
libobs-opengl/glew/auto/core/gl/GL_EXT_depth_bounds_test

@@ -1,6 +0,0 @@
-GL_EXT_depth_bounds_test
-http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_depth_bounds_test.txt
-GL_EXT_depth_bounds_test
-	GL_DEPTH_BOUNDS_TEST_EXT 0x8890
-	GL_DEPTH_BOUNDS_EXT 0x8891
-	void glDepthBoundsEXT (GLclampd zmin, GLclampd zmax)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GL_EXT_draw_instanced

@@ -1,5 +0,0 @@
-GL_EXT_draw_instanced
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_draw_instanced.txt
-GL_EXT_draw_instanced
-	void glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount)
-	void glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount)

+ 0 - 6
libobs-opengl/glew/auto/core/gl/GL_EXT_draw_range_elements

@@ -1,6 +0,0 @@
-GL_EXT_draw_range_elements
-http://oss.sgi.com/projects/ogl-sample/registry/EXT/draw_range_elements.txt
-GL_EXT_draw_range_elements
-	GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
-	GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
-	void glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)

+ 0 - 16
libobs-opengl/glew/auto/core/gl/GL_EXT_fog_coord

@@ -1,16 +0,0 @@
-GL_EXT_fog_coord
-http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt
-GL_EXT_fog_coord
-	GL_FOG_COORDINATE_SOURCE_EXT 0x8450
-	GL_FOG_COORDINATE_EXT 0x8451
-	GL_FRAGMENT_DEPTH_EXT 0x8452
-	GL_CURRENT_FOG_COORDINATE_EXT 0x8453
-	GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
-	GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
-	GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
-	GL_FOG_COORDINATE_ARRAY_EXT 0x8457
-	void glFogCoordfEXT (GLfloat coord)
-	void glFogCoordfvEXT (const GLfloat *coord)
-	void glFogCoorddEXT (GLdouble coord)
-	void glFogCoorddvEXT (const GLdouble *coord)
-	void glFogCoordPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GL_EXT_framebuffer_sRGB

@@ -1,5 +0,0 @@
-GL_EXT_framebuffer_sRGB
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt
-GL_EXT_framebuffer_sRGB
-	GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
-	GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA

+ 0 - 26
libobs-opengl/glew/auto/core/gl/GL_EXT_geometry_shader4

@@ -1,26 +0,0 @@
-GL_EXT_geometry_shader4
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_geometry_shader4.txt
-GL_EXT_geometry_shader4
-	GL_GEOMETRY_SHADER_EXT 0x8DD9
-	GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
-	GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
-	GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
-	GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
-	GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
-	GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
-	GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
-	GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
-	GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
-	GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
-	GL_LINES_ADJACENCY_EXT 0xA
-	GL_LINE_STRIP_ADJACENCY_EXT 0xB
-	GL_TRIANGLES_ADJACENCY_EXT 0xC
-	GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
-	GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
-	GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
-	GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
-	GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
-	GL_PROGRAM_POINT_SIZE_EXT 0x8642
-	void glProgramParameteriEXT (GLuint program, GLenum pname, GLint value)
-	void glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level)
-	void glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face)

+ 0 - 5
libobs-opengl/glew/auto/core/gl/GL_EXT_gpu_program_parameters

@@ -1,5 +0,0 @@
-GL_EXT_gpu_program_parameters
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_program_parameters.txt
-GL_EXT_gpu_program_parameters
-	void glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)
-	void glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)

+ 0 - 63
libobs-opengl/glew/auto/core/gl/GL_EXT_gpu_shader4

@@ -1,63 +0,0 @@
-GL_EXT_gpu_shader4
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_shader4.txt
-GL_EXT_gpu_shader4
-	GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
-	GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
-	GL_SAMPLER_BUFFER_EXT 0x8DC2
-	GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
-	GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
-	GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
-	GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
-	GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
-	GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
-	GL_INT_SAMPLER_1D_EXT 0x8DC9
-	GL_INT_SAMPLER_2D_EXT 0x8DCA
-	GL_INT_SAMPLER_3D_EXT 0x8DCB
-	GL_INT_SAMPLER_CUBE_EXT 0x8DCC
-	GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
-	GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
-	GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
-	GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
-	GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
-	GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
-	GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
-	GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
-	GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
-	GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
-	GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
-	GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
-	GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
-	void glGetUniformuivEXT (GLuint program, GLint location, GLuint *params)
-	void glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name)
-	GLint glGetFragDataLocationEXT (GLuint program, const GLchar *name)
-	void glUniform1uiEXT (GLint location, GLuint v0)
-	void glUniform2uiEXT (GLint location, GLuint v0, GLuint v1)
-	void glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2)
-	void glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
-	void glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value)
-	void glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value)
-	void glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value)
-	void glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value)
-	void glVertexAttribI1iEXT (GLuint index, GLint x)
-	void glVertexAttribI2iEXT (GLuint index, GLint x, GLint y)
-	void glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z)
-	void glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w)
-	void glVertexAttribI1uiEXT (GLuint index, GLuint x)
-	void glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y)
-	void glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z)
-	void glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
-	void glVertexAttribI1ivEXT (GLuint index, const GLint *v)
-	void glVertexAttribI2ivEXT (GLuint index, const GLint *v)
-	void glVertexAttribI3ivEXT (GLuint index, const GLint *v)
-	void glVertexAttribI4ivEXT (GLuint index, const GLint *v)
-	void glVertexAttribI1uivEXT (GLuint index, const GLuint *v)
-	void glVertexAttribI2uivEXT (GLuint index, const GLuint *v)
-	void glVertexAttribI3uivEXT (GLuint index, const GLuint *v)
-	void glVertexAttribI4uivEXT (GLuint index, const GLuint *v)
-	void glVertexAttribI4bvEXT (GLuint index, const GLbyte *v)
-	void glVertexAttribI4svEXT (GLuint index, const GLshort *v)
-	void glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v)
-	void glVertexAttribI4usvEXT (GLuint index, const GLushort *v)
-	void glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-	void glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params)
-	void glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params)

+ 0 - 6
libobs-opengl/glew/auto/core/gl/GL_EXT_packed_float

@@ -1,6 +0,0 @@
-GL_EXT_packed_float
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt
-GL_EXT_packed_float
-	GL_R11F_G11F_B10F_EXT 0x8C3A
-	GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
-	GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C

+ 0 - 7
libobs-opengl/glew/auto/core/gl/GL_EXT_pixel_buffer_object

@@ -1,7 +0,0 @@
-GL_EXT_pixel_buffer_object
-http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_pixel_buffer_object.txt
-GL_EXT_pixel_buffer_object
-	GL_PIXEL_PACK_BUFFER_EXT 0x88EB
-	GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
-	GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
-	GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF

+ 0 - 27
libobs-opengl/glew/auto/core/gl/GL_EXT_secondary_color

@@ -1,27 +0,0 @@
-GL_EXT_secondary_color
-http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt
-GL_EXT_secondary_color
-	GL_COLOR_SUM_EXT 0x8458
-	GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
-	GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
-	GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
-	GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
-	GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
-	GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
-	void glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue)
-	void glSecondaryColor3bvEXT (const GLbyte *v)
-	void glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue)
-	void glSecondaryColor3dvEXT (const GLdouble *v)
-	void glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue)
-	void glSecondaryColor3fvEXT (const GLfloat *v)
-	void glSecondaryColor3iEXT (GLint red, GLint green, GLint blue)
-	void glSecondaryColor3ivEXT (const GLint *v)
-	void glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue)
-	void glSecondaryColor3svEXT (const GLshort *v)
-	void glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue)
-	void glSecondaryColor3ubvEXT (const GLubyte *v)
-	void glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue)
-	void glSecondaryColor3uivEXT (const GLuint *v)
-	void glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue)
-	void glSecondaryColor3usvEXT (const GLushort *v)
-	void glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)

+ 0 - 12
libobs-opengl/glew/auto/core/gl/GL_EXT_texture_array

@@ -1,12 +0,0 @@
-GL_EXT_texture_array
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_array.txt
-GL_EXT_texture_array
-	GL_TEXTURE_1D_ARRAY_EXT 0x8C18
-	GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
-	GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
-	GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
-	GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
-	GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
-	GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
-	GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
-	void glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)

+ 0 - 9
libobs-opengl/glew/auto/core/gl/GL_EXT_texture_buffer_object

@@ -1,9 +0,0 @@
-GL_EXT_texture_buffer_object
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_buffer_object.txt
-GL_EXT_texture_buffer_object
-	GL_TEXTURE_BUFFER_EXT 0x8C2A
-	GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
-	GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
-	GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
-	GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
-	void glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer)

+ 0 - 7
libobs-opengl/glew/auto/core/gl/GL_EXT_texture_compression_latc

@@ -1,7 +0,0 @@
-GL_EXT_texture_compression_latc
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_latc.txt
-GL_EXT_texture_compression_latc
-	GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
-	GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
-	GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
-	GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73

+ 0 - 7
libobs-opengl/glew/auto/core/gl/GL_EXT_texture_compression_rgtc

@@ -1,7 +0,0 @@
-GL_EXT_texture_compression_rgtc
-http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_rgtc.txt
-GL_EXT_texture_compression_rgtc
-	GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
-	GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
-	GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
-	GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE

Some files were not shown because too many files changed in this diff