diff options
author | juj <jujjyl@gmail.com> | 2014-01-14 07:12:48 -0800 |
---|---|---|
committer | juj <jujjyl@gmail.com> | 2014-01-14 07:12:48 -0800 |
commit | 899b2b41e696ff627ee9b8690d9ef8ba04e73df3 (patch) | |
tree | 221e61708bbbd3fcf95c1d964f48a3bb3333698e | |
parent | 0e36f078d4a9666303340506638726d316096e07 (diff) | |
parent | a39788f5020f726cbe6cfcc49de9cc669f445237 (diff) |
Merge pull request #1878 from Cloudef/incoming
Add GLEW 1.10.0 emulation
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | src/library_glew.js | 135 | ||||
-rw-r--r-- | src/modules.js | 2 | ||||
-rw-r--r-- | system/include/GL/glew.h | 839 | ||||
-rw-r--r-- | tests/glew.c | 51 | ||||
-rw-r--r-- | tests/test_browser.py | 6 |
6 files changed, 1029 insertions, 5 deletions
@@ -117,3 +117,4 @@ a license to everyone to use it as detailed in LICENSE.) * Andre Weissflog <floooh@gmail.com> * Alexandre Perrot <alexandre.perrot@gmail.com> * Emerson José Silveira da Costa <emerson.costa@gmail.com> +* Jari Vetoniemi <mailroxas@gmail.com> diff --git a/src/library_glew.js b/src/library_glew.js new file mode 100644 index 00000000..f7da5f82 --- /dev/null +++ b/src/library_glew.js @@ -0,0 +1,135 @@ +/******************************************************************************* + * EMSCRIPTEN GLEW 1.10.0 emulation + * + * What it does: + * - Stubs init function. + * - GL Extensions support. + * + * Optional: + * - isLinaroFork variable to enable glew-es specific error strings. + * This is enabled by default, but should be disabled when upstream glew conflicts. + * + * Authors: + * - Jari Vetoniemi <mailroxas@gmail.com> + ******************************************************************************/ + +var LibraryGLEW = { + $GLEW__deps: ['glGetString'], + $GLEW: { + isLinaroFork: 1, + extensions: null, + + error: { + 0:null, // GLEW_OK || GLEW_NO_ERROR + 1:null, // GLEW_ERROR_NO_GL_VERSION + 2:null, // GLEW_ERROR_GL_VERSION_10_ONLY + 3:null, // GLEW_ERROR_GLX_VERSION_11_ONLY + + 4:null, // GLEW_ERROR_NOT_GLES_VERSION + 5:null, // GLEW_ERROR_GLES_VERSION + 6:null, // GLEW_ERROR_NO_EGL_VERSION + 7:null, // GLEW_ERROR_EGL_VERSION_10_ONLY + + 8:null, // Unknown error + }, + + version: { + 1:null, // GLEW_VERSION + 2:null, // GLEW_VERSION_MAJOR + 3:null, // GLEW_VERSION_MINOR + 4:null, // GLEW_VERSION_MICRO + }, + + errorStringConstantFromCode: function(error) { + if (GLEW.isLinaroFork) { + switch (error) { + case 4:return "OpenGL ES lib expected, found OpenGL lib"; // GLEW_ERROR_NOT_GLES_VERSION + case 5:return "OpenGL lib expected, found OpenGL ES lib"; // GLEW_ERROR_GLES_VERSION + case 6:return "Missing EGL version"; // GLEW_ERROR_NO_EGL_VERSION + case 7:return "EGL 1.1 and up are supported"; // GLEW_ERROR_EGL_VERSION_10_ONLY + default:break; + } + } + + switch (error) { + case 0:return "No error"; // GLEW_OK || GLEW_NO_ERROR + case 1:return "Missing GL version"; // GLEW_ERROR_NO_GL_VERSION + case 2:return "GL 1.1 and up are supported"; // GLEW_ERROR_GL_VERSION_10_ONLY + case 3:return "GLX 1.2 and up are supported"; // GLEW_ERROR_GLX_VERSION_11_ONLY + default:return null; + } + }, + + errorString: function(error) { + if (!GLEW.error[error]) { + var string = GLEW.errorStringConstantFromCode(error); + if (!string) { + string = "Unknown error"; + error = 8; // prevent array from growing more than this + } + GLEW.error[error] = allocate(intArrayFromString(string), 'i8', ALLOC_NORMAL); + } + return GLEW.error[error]; + }, + + versionStringConstantFromCode: function(name) { + switch (name) { + case 1:return "1.10.0"; // GLEW_VERSION + case 2:return "1"; // GLEW_VERSION_MAJOR + case 3:return "10"; // GLEW_VERSION_MINOR + case 4:return "0"; // GLEW_VERSION_MICRO + default:return null; + } + }, + + versionString: function(name) { + if (!GLEW.version[name]) { + var string = GLEW.versionStringConstantFromCode(name); + if (!string) + return 0; + GLEW.version[name] = allocate(intArrayFromString(string), 'i8', ALLOC_NORMAL); + } + return GLEW.version[name]; + }, + + extensionIsSupported: function(name) { + if (!GLEW.extensions) { + GLEW.extensions = Pointer_stringify(_glGetString(0x1F03)).split(' '); + } + + if (GLEW.extensions.indexOf(name) != -1) + return 1; + + // extensions from GLEmulations do not come unprefixed + // so, try with prefix + return (GLEW.extensions.indexOf("GL_" + name) != -1); + }, + }, + + glewInit: function() { return 0; }, + + glewIsSupported: function(name) { + var exts = Pointer_stringify(name).split(' '); + for (i in exts) { + if (!GLEW.extensionIsSupported(exts[i])) + return 0; + } + return 1; + }, + + glewGetExtension: function(name) { + return GLEW.extensionIsSupported(Pointer_stringify(name)); + }, + + glewGetErrorString: function(error) { + return GLEW.errorString(error); + }, + + glewGetString: function(name) { + return GLEW.versionString(name); + }, + +}; + +autoAddDeps(LibraryGLEW, '$GLEW'); +mergeInto(LibraryManager.library, LibraryGLEW); diff --git a/src/modules.js b/src/modules.js index c0b98f6f..ad467ba7 100644 --- a/src/modules.js +++ b/src/modules.js @@ -424,7 +424,7 @@ var LibraryManager = { load: function() { if (this.library) return; - var libraries = ['library.js', 'library_path.js', 'library_fs.js', 'library_idbfs.js', 'library_memfs.js', 'library_nodefs.js', 'library_sockfs.js', 'library_tty.js', 'library_browser.js', 'library_sdl.js', 'library_gl.js', 'library_glut.js', 'library_xlib.js', 'library_egl.js', 'library_gc.js', 'library_jansson.js', 'library_openal.js', 'library_glfw.js', 'library_uuid.js'].concat(additionalLibraries); + var libraries = ['library.js', 'library_path.js', 'library_fs.js', 'library_idbfs.js', 'library_memfs.js', 'library_nodefs.js', 'library_sockfs.js', 'library_tty.js', 'library_browser.js', 'library_sdl.js', 'library_gl.js', 'library_glut.js', 'library_xlib.js', 'library_egl.js', 'library_gc.js', 'library_jansson.js', 'library_openal.js', 'library_glfw.js', 'library_uuid.js', 'library_glew.js'].concat(additionalLibraries); for (var i = 0; i < libraries.length; i++) { eval(processMacros(preprocess(read(libraries[i])))); } diff --git a/system/include/GL/glew.h b/system/include/GL/glew.h index 324c6b29..efd90d6f 100644 --- a/system/include/GL/glew.h +++ b/system/include/GL/glew.h @@ -1,6 +1,839 @@ +/* GLEW 1.10.0 emulation include header + * this include file provides neccessary stuff to function with most GLEW programs. + * library_glew.js is also provided to support extensions and error strings + * + * This file is based on GLEW (1.10.0) and linaro fork generated include files. + * + * What it lacks: + * - Some constants and function declarations that are in GLEW 1.10.0 might be missing. + * - The real glew-es fork also includes normal GL constants and function pointers, this does not. + * + * Authors: + * - Jari Vetoniemi <mailroxas@gmail.com> + */ -// Basically do nothing, just use existing symbols +#ifndef __glew_h__ +#define __glew_h__ +#define __GLEW_H__ -#include "SDL/SDL_opengl.h" -#define glewInit() {} +/* linaro fork (glew-es) support */ +#ifndef GLEW_USE_LIB_ES11 +# define __GLEW_VERSION_ES11 0 +#else +# define __GLEW_VERSION_ES11 1 +# include <SDL/SDL_opengles.h> +#endif +#ifndef GLEW_USE_LIB_ES20 +# define __GLEW_VERSION_ES20 0 +#else +# define __GLEW_VERSION_ES20 1 +# include <SDL/SDL_opengles2.h> +#endif + +#if !__GLEW_VERSION_ES11 && !__GLEW_VERSION_ES20 +# define __GLEW_NOT_ES 1 +# include <SDL/SDL_opengl.h> +#else +# define __GLEW_NOT_ES 0 +#endif + +/* report us up to GLEW_VERSION_2_1, when no GLEW_USE_LIB_ESXX is specified. + * in source, it's possible to #undef and redefine these constants, for + * better OpenGL path suitable for emscripten. */ +#define GLEW_VERSION_1_1 __GLEW_NOT_ES +#define GLEW_VERSION_1_2 __GLEW_NOT_ES +#define GLEW_VERSION_1_2_1 __GLEW_NOT_ES +#define GLEW_VERSION_1_3 __GLEW_NOT_ES +#define GLEW_VERSION_1_4 __GLEW_NOT_ES +#define GLEW_VERSION_1_5 __GLEW_NOT_ES +#define GLEW_VERSION_2_0 __GLEW_NOT_ES +#define GLEW_VERSION_2_1 __GLEW_NOT_ES +#define GLEW_VERSION_3_0 0 +#define GLEW_VERSION_3_1 0 +#define GLEW_VERSION_3_2 0 +#define GLEW_VERSION_3_3 0 +#define GLEW_VERSION_4_0 0 +#define GLEW_VERSION_4_1 0 +#define GLEW_VERSION_4_2 0 +#define GLEW_VERSION_4_3 0 +#define GLEW_VERSION_4_4 0 + +/* linaro-fork (glew-es) version constants */ +#define GLEW_ES_VERSION_1_0 __GLEW_VERSION_ES11 +#define GLEW_ES_VERSION_2_0 __GLEW_VERSION_ES20 + +/* string codes */ +#define GLEW_VERSION 1 +#define GLEW_VERSION_MAJOR 2 +#define GLEW_VERSION_MINOR 3 +#define GLEW_VERSION_MICRO 4 + +/* error codes */ +#define GLEW_OK 0 +#define GLEW_NO_ERROR 0 +#define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ +#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ +#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ + +/* linaro-fork (glew-es) error codes */ +#define GLEW_ERROR_NOT_GLES_VERSION 4 /* Need to be OpenGL ES version */ +#define GLEW_ERROR_GLES_VERSION 5 /* Need to be desktop OpenGL version */ +#define GLEW_ERROR_NO_EGL_VERSION 6 /* missing EGL version */ +#define GLEW_ERROR_EGL_VERSION_10_ONLY 7 /* need at least EGL 1.1 */ + +/* maps to glewGetExtension */ +#define GLEW_GET_VAR(x) glewGetExtension(#x) + +/* support GLEW constants, wrangling is done by SDL_opengl.h */ +#define GLEW_3DFX_multisample GLEW_GET_VAR(GL_3DFX_multisample) +#define GLEW_3DFX_tbuffer GLEW_GET_VAR(GL_3DFX_tbuffer) +#define GLEW_3DFX_texture_compression_FXT1 GLEW_GET_VAR(GL_3DFX_texture_compression_FXT1) +#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(GL_AMD_blend_minmax_factor) +#define GLEW_AMD_conservative_depth GLEW_GET_VAR(GL_AMD_conservative_depth) +#define GLEW_AMD_debug_output GLEW_GET_VAR(GL_AMD_debug_output) +#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(GL_AMD_depth_clamp_separate) +#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(GL_AMD_draw_buffers_blend) +#define GLEW_AMD_interleaved_elements GLEW_GET_VAR(GL_AMD_interleaved_elements) +#define GLEW_AMD_multi_draw_indirect GLEW_GET_VAR(GL_AMD_multi_draw_indirect) +#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(GL_AMD_name_gen_delete) +#define GLEW_AMD_performance_monitor GLEW_GET_VAR(GL_AMD_performance_monitor) +#define GLEW_AMD_pinned_memory GLEW_GET_VAR(GL_AMD_pinned_memory) +#define GLEW_AMD_query_buffer_object GLEW_GET_VAR(GL_AMD_query_buffer_object) +#define GLEW_AMD_sample_positions GLEW_GET_VAR(GL_AMD_sample_positions) +#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(GL_AMD_seamless_cubemap_per_texture) +#define GLEW_AMD_shader_atomic_counter_ops GLEW_GET_VAR(GL_AMD_shader_atomic_counter_ops) +#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(GL_AMD_shader_stencil_export) +#define GLEW_AMD_shader_trinary_minmax GLEW_GET_VAR(GL_AMD_shader_trinary_minmax) +#define GLEW_AMD_sparse_texture GLEW_GET_VAR(GL_AMD_sparse_texture) +#define GLEW_AMD_stencil_operation_extended GLEW_GET_VAR(GL_AMD_stencil_operation_extended) +#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(GL_AMD_texture_texture4) +#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(GL_AMD_transform_feedback3_lines_triangles) +#define GLEW_AMD_vertex_shader_layer GLEW_GET_VAR(GL_AMD_vertex_shader_layer) +#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(GL_AMD_vertex_shader_tessellator) +#define GLEW_AMD_vertex_shader_viewport_index GLEW_GET_VAR(GL_AMD_vertex_shader_viewport_index) +#define GLEW_ANGLE_depth_texture GLEW_GET_VAR(GL_ANGLE_depth_texture) +#define GLEW_ANGLE_framebuffer_blit GLEW_GET_VAR(GL_ANGLE_framebuffer_blit) +#define GLEW_ANGLE_framebuffer_multisample GLEW_GET_VAR(GL_ANGLE_framebuffer_multisample) +#define GLEW_ANGLE_instanced_arrays GLEW_GET_VAR(GL_ANGLE_instanced_arrays) +#define GLEW_ANGLE_pack_reverse_row_order GLEW_GET_VAR(GL_ANGLE_pack_reverse_row_order) +#define GLEW_ANGLE_program_binary GLEW_GET_VAR(GL_ANGLE_program_binary) +#define GLEW_ANGLE_texture_compression_dxt1 GLEW_GET_VAR(GL_ANGLE_texture_compression_dxt1) +#define GLEW_ANGLE_texture_compression_dxt3 GLEW_GET_VAR(GL_ANGLE_texture_compression_dxt3) +#define GLEW_ANGLE_texture_compression_dxt5 GLEW_GET_VAR(GL_ANGLE_texture_compression_dxt5) +#define GLEW_ANGLE_texture_usage GLEW_GET_VAR(GL_ANGLE_texture_usage) +#define GLEW_ANGLE_timer_query GLEW_GET_VAR(GL_ANGLE_timer_query) +#define GLEW_ANGLE_translated_shader_source GLEW_GET_VAR(GL_ANGLE_translated_shader_source) +#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(GL_APPLE_aux_depth_stencil) +#define GLEW_APPLE_client_storage GLEW_GET_VAR(GL_APPLE_client_storage) +#define GLEW_APPLE_element_array GLEW_GET_VAR(GL_APPLE_element_array) +#define GLEW_APPLE_fence GLEW_GET_VAR(GL_APPLE_fence) +#define GLEW_APPLE_float_pixels GLEW_GET_VAR(GL_APPLE_float_pixels) +#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(GL_APPLE_flush_buffer_range) +#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(GL_APPLE_object_purgeable) +#define GLEW_APPLE_pixel_buffer GLEW_GET_VAR(GL_APPLE_pixel_buffer) +#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(GL_APPLE_rgb_422) +#define GLEW_APPLE_row_bytes GLEW_GET_VAR(GL_APPLE_row_bytes) +#define GLEW_APPLE_specular_vector GLEW_GET_VAR(GL_APPLE_specular_vector) +#define GLEW_APPLE_texture_range GLEW_GET_VAR(GL_APPLE_texture_range) +#define GLEW_APPLE_transform_hint GLEW_GET_VAR(GL_APPLE_transform_hint) +#define GLEW_APPLE_vertex_array_object GLEW_GET_VAR(GL_APPLE_vertex_array_object) +#define GLEW_APPLE_vertex_array_range GLEW_GET_VAR(GL_APPLE_vertex_array_range) +#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(GL_APPLE_vertex_program_evaluators) +#define GLEW_APPLE_ycbcr_422 GLEW_GET_VAR(GL_APPLE_ycbcr_422) +#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(GL_ARB_ES2_compatibility) +#define GLEW_ARB_ES3_compatibility GLEW_GET_VAR(GL_ARB_ES3_compatibility) +#define GLEW_ARB_arrays_of_arrays GLEW_GET_VAR(GL_ARB_arrays_of_arrays) +#define GLEW_ARB_base_instance GLEW_GET_VAR(GL_ARB_base_instance) +#define GLEW_ARB_bindless_texture GLEW_GET_VAR(GL_ARB_bindless_texture) +#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(GL_ARB_blend_func_extended) +#define GLEW_ARB_buffer_storage GLEW_GET_VAR(GL_ARB_buffer_storage) +#define GLEW_ARB_cl_event GLEW_GET_VAR(GL_ARB_cl_event) +#define GLEW_ARB_clear_buffer_object GLEW_GET_VAR(GL_ARB_clear_buffer_object) +#define GLEW_ARB_clear_texture GLEW_GET_VAR(GL_ARB_clear_texture) +#define GLEW_ARB_color_buffer_float GLEW_GET_VAR(GL_ARB_color_buffer_float) +#define GLEW_ARB_compatibility GLEW_GET_VAR(GL_ARB_compatibility) +#define GLEW_ARB_compressed_texture_pixel_storage GLEW_GET_VAR(GL_ARB_compressed_texture_pixel_storage) +#define GLEW_ARB_compute_shader GLEW_GET_VAR(GL_ARB_compute_shader) +#define GLEW_ARB_compute_variable_group_size GLEW_GET_VAR(GL_ARB_compute_variable_group_size) +#define GLEW_ARB_conservative_depth GLEW_GET_VAR(GL_ARB_conservative_depth) +#define GLEW_ARB_copy_buffer GLEW_GET_VAR(GL_ARB_copy_buffer) +#define GLEW_ARB_copy_image GLEW_GET_VAR(GL_ARB_copy_image) +#define GLEW_ARB_debug_output GLEW_GET_VAR(GL_ARB_debug_output) +#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(GL_ARB_depth_buffer_float) +#define GLEW_ARB_depth_clamp GLEW_GET_VAR(GL_ARB_depth_clamp) +#define GLEW_ARB_depth_texture GLEW_GET_VAR(GL_ARB_depth_texture) +#define GLEW_ARB_draw_buffers GLEW_GET_VAR(GL_ARB_draw_buffers) +#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(GL_ARB_draw_buffers_blend) +#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(GL_ARB_draw_elements_base_vertex) +#define GLEW_ARB_draw_indirect GLEW_GET_VAR(GL_ARB_draw_indirect) +#define GLEW_ARB_draw_instanced GLEW_GET_VAR(GL_ARB_draw_instanced) +#define GLEW_ARB_enhanced_layouts GLEW_GET_VAR(GL_ARB_enhanced_layouts) +#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(GL_ARB_explicit_attrib_location) +#define GLEW_ARB_explicit_uniform_location GLEW_GET_VAR(GL_ARB_explicit_uniform_location) +#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(GL_ARB_fragment_coord_conventions) +#define GLEW_ARB_fragment_layer_viewport GLEW_GET_VAR(GL_ARB_fragment_layer_viewport) +#define GLEW_ARB_fragment_program GLEW_GET_VAR(GL_ARB_fragment_program) +#define GLEW_ARB_fragment_program_shadow GLEW_GET_VAR(GL_ARB_fragment_program_shadow) +#define GLEW_ARB_fragment_shader GLEW_GET_VAR(GL_ARB_fragment_shader) +#define GLEW_ARB_framebuffer_no_attachments GLEW_GET_VAR(GL_ARB_framebuffer_no_attachments) +#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(GL_ARB_framebuffer_object) +#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(GL_ARB_framebuffer_sRGB) +#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(GL_ARB_geometry_shader4) +#define GLEW_ARB_get_program_binary GLEW_GET_VAR(GL_ARB_get_program_binary) +#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(GL_ARB_gpu_shader5) +#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(GL_ARB_gpu_shader_fp64) +#define GLEW_ARB_half_float_pixel GLEW_GET_VAR(GL_ARB_half_float_pixel) +#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(GL_ARB_half_float_vertex) +#define GLEW_ARB_imaging GLEW_GET_VAR(GL_ARB_imaging) +#define GLEW_ARB_indirect_parameters GLEW_GET_VAR(GL_ARB_indirect_parameters) +#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(GL_ARB_instanced_arrays) +#define GLEW_ARB_internalformat_query GLEW_GET_VAR(GL_ARB_internalformat_query) +#define GLEW_ARB_internalformat_query2 GLEW_GET_VAR(GL_ARB_internalformat_query2) +#define GLEW_ARB_invalidate_subdata GLEW_GET_VAR(GL_ARB_invalidate_subdata) +#define GLEW_ARB_map_buffer_alignment GLEW_GET_VAR(GL_ARB_map_buffer_alignment) +#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(GL_ARB_map_buffer_range) +#define GLEW_ARB_matrix_palette GLEW_GET_VAR(GL_ARB_matrix_palette) +#define GLEW_ARB_multi_bind GLEW_GET_VAR(GL_ARB_multi_bind) +#define GLEW_ARB_multi_draw_indirect GLEW_GET_VAR(GL_ARB_multi_draw_indirect) +#define GLEW_ARB_multisample GLEW_GET_VAR(GL_ARB_multisample) +#define GLEW_ARB_multitexture GLEW_GET_VAR(GL_ARB_multitexture) +#define GLEW_ARB_occlusion_query GLEW_GET_VAR(GL_ARB_occlusion_query) +#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(GL_ARB_occlusion_query2) +#define GLEW_ARB_pixel_buffer_object GLEW_GET_VAR(GL_ARB_pixel_buffer_object) +#define GLEW_ARB_point_parameters GLEW_GET_VAR(GL_ARB_point_parameters) +#define GLEW_ARB_point_sprite GLEW_GET_VAR(GL_ARB_point_sprite) +#define GLEW_ARB_program_interface_query GLEW_GET_VAR(GL_ARB_program_interface_query) +#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(GL_ARB_provoking_vertex) +#define GLEW_ARB_query_buffer_object GLEW_GET_VAR(GL_ARB_query_buffer_object) +#define GLEW_ARB_robust_buffer_access_behavior GLEW_GET_VAR(GL_ARB_robust_buffer_access_behavior) +#define GLEW_ARB_robustness GLEW_GET_VAR(GL_ARB_robustness) +#define GLEW_ARB_robustness_application_isolation GLEW_GET_VAR(GL_ARB_robustness_application_isolation) +#define GLEW_ARB_robustness_share_group_isolation GLEW_GET_VAR(GL_ARB_robustness_share_group_isolation) +#define GLEW_ARB_sample_shading GLEW_GET_VAR(GL_ARB_sample_shading) +#define GLEW_ARB_sampler_objects GLEW_GET_VAR(GL_ARB_sampler_objects) +#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(GL_ARB_seamless_cube_map) +#define GLEW_ARB_seamless_cubemap_per_texture GLEW_GET_VAR(GL_ARB_seamless_cubemap_per_texture) +#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(GL_ARB_separate_shader_objects) +#define GLEW_ARB_shader_atomic_counters GLEW_GET_VAR(GL_ARB_shader_atomic_counters) +#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(GL_ARB_shader_bit_encoding) +#define GLEW_ARB_shader_draw_parameters GLEW_GET_VAR(GL_ARB_shader_draw_parameters) +#define GLEW_ARB_shader_group_vote GLEW_GET_VAR(GL_ARB_shader_group_vote) +#define GLEW_ARB_shader_image_load_store GLEW_GET_VAR(GL_ARB_shader_image_load_store) +#define GLEW_ARB_shader_image_size GLEW_GET_VAR(GL_ARB_shader_image_size) +#define GLEW_ARB_shader_objects GLEW_GET_VAR(GL_ARB_shader_objects) +#define GLEW_ARB_shader_precision GLEW_GET_VAR(GL_ARB_shader_precision) +#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(GL_ARB_shader_stencil_export) +#define GLEW_ARB_shader_storage_buffer_object GLEW_GET_VAR(GL_ARB_shader_storage_buffer_object) +#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(GL_ARB_shader_subroutine) +#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(GL_ARB_shader_texture_lod) +#define GLEW_ARB_shading_language_100 GLEW_GET_VAR(GL_ARB_shading_language_100) +#define GLEW_ARB_shading_language_420pack GLEW_GET_VAR(GL_ARB_shading_language_420pack) +#define GLEW_ARB_shading_language_include GLEW_GET_VAR(GL_ARB_shading_language_include) +#define GLEW_ARB_shading_language_packing GLEW_GET_VAR(GL_ARB_shading_language_packing) +#define GLEW_ARB_shadow GLEW_GET_VAR(GL_ARB_shadow) +#define GLEW_ARB_shadow_ambient GLEW_GET_VAR(GL_ARB_shadow_ambient) +#define GLEW_ARB_sparse_texture GLEW_GET_VAR(GL_ARB_sparse_texture) +#define GLEW_ARB_stencil_texturing GLEW_GET_VAR(GL_ARB_stencil_texturing) +#define GLEW_ARB_sync GLEW_GET_VAR(GL_ARB_sync) +#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(GL_ARB_tessellation_shader) +#define GLEW_ARB_texture_border_clamp GLEW_GET_VAR(GL_ARB_texture_border_clamp) +#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(GL_ARB_texture_buffer_object) +#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(GL_ARB_texture_buffer_object_rgb32) +#define GLEW_ARB_texture_buffer_range GLEW_GET_VAR(GL_ARB_texture_buffer_range) +#define GLEW_ARB_texture_compression GLEW_GET_VAR(GL_ARB_texture_compression) +#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(GL_ARB_texture_compression_bptc) +#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(GL_ARB_texture_compression_rgtc) +#define GLEW_ARB_texture_cube_map GLEW_GET_VAR(GL_ARB_texture_cube_map) +#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(GL_ARB_texture_cube_map_array) +#define GLEW_ARB_texture_env_add GLEW_GET_VAR(GL_ARB_texture_env_add) +#define GLEW_ARB_texture_env_combine GLEW_GET_VAR(GL_ARB_texture_env_combine) +#define GLEW_ARB_texture_env_crossbar GLEW_GET_VAR(GL_ARB_texture_env_crossbar) +#define GLEW_ARB_texture_env_dot3 GLEW_GET_VAR(GL_ARB_texture_env_dot3) +#define GLEW_ARB_texture_float GLEW_GET_VAR(GL_ARB_texture_float) +#define GLEW_ARB_texture_gather GLEW_GET_VAR(GL_ARB_texture_gather) +#define GLEW_ARB_texture_mirror_clamp_to_edge GLEW_GET_VAR(GL_ARB_texture_mirror_clamp_to_edge) +#define GLEW_ARB_texture_mirrored_repeat GLEW_GET_VAR(GL_ARB_texture_mirrored_repeat) +#define GLEW_ARB_texture_multisample GLEW_GET_VAR(GL_ARB_texture_multisample) +#define GLEW_ARB_texture_non_power_of_two GLEW_GET_VAR(GL_ARB_texture_non_power_of_two) +#define GLEW_ARB_texture_query_levels GLEW_GET_VAR(GL_ARB_texture_query_levels) +#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(GL_ARB_texture_query_lod) +#define GLEW_ARB_texture_rectangle GLEW_GET_VAR(GL_ARB_texture_rectangle) +#define GLEW_ARB_texture_rg GLEW_GET_VAR(GL_ARB_texture_rg) +#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(GL_ARB_texture_rgb10_a2ui) +#define GLEW_ARB_texture_stencil8 GLEW_GET_VAR(GL_ARB_texture_stencil8) +#define GLEW_ARB_texture_storage GLEW_GET_VAR(GL_ARB_texture_storage) +#define GLEW_ARB_texture_storage_multisample GLEW_GET_VAR(GL_ARB_texture_storage_multisample) +#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(GL_ARB_texture_swizzle) +#define GLEW_ARB_texture_view GLEW_GET_VAR(GL_ARB_texture_view) +#define GLEW_ARB_timer_query GLEW_GET_VAR(GL_ARB_timer_query) +#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(GL_ARB_transform_feedback2) +#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(GL_ARB_transform_feedback3) +#define GLEW_ARB_transform_feedback_instanced GLEW_GET_VAR(GL_ARB_transform_feedback_instanced) +#define GLEW_ARB_transpose_matrix GLEW_GET_VAR(GL_ARB_transpose_matrix) +#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(GL_ARB_uniform_buffer_object) +#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(GL_ARB_vertex_array_bgra) +#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(GL_ARB_vertex_array_object) +#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(GL_ARB_vertex_attrib_64bit) +#define GLEW_ARB_vertex_attrib_binding GLEW_GET_VAR(GL_ARB_vertex_attrib_binding) +#define GLEW_ARB_vertex_blend GLEW_GET_VAR(GL_ARB_vertex_blend) +#define GLEW_ARB_vertex_buffer_object GLEW_GET_VAR(GL_ARB_vertex_buffer_object) +#define GLEW_ARB_vertex_program GLEW_GET_VAR(GL_ARB_vertex_program) +#define GLEW_ARB_vertex_shader GLEW_GET_VAR(GL_ARB_vertex_shader) +#define GLEW_ARB_vertex_type_10f_11f_11f_rev GLEW_GET_VAR(GL_ARB_vertex_type_10f_11f_11f_rev) +#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(GL_ARB_vertex_type_2_10_10_10_rev) +#define GLEW_ARB_viewport_array GLEW_GET_VAR(GL_ARB_viewport_array) +#define GLEW_ARB_window_pos GLEW_GET_VAR(GL_ARB_window_pos) +#define GLEW_ATIX_point_sprites GLEW_GET_VAR(GL_ATIX_point_sprites) +#define GLEW_ATIX_texture_env_combine3 GLEW_GET_VAR(GL_ATIX_texture_env_combine3) +#define GLEW_ATIX_texture_env_route GLEW_GET_VAR(GL_ATIX_texture_env_route) +#define GLEW_ATIX_vertex_shader_output_point_size GLEW_GET_VAR(GL_ATIX_vertex_shader_output_point_size) +#define GLEW_ATI_draw_buffers GLEW_GET_VAR(GL_ATI_draw_buffers) +#define GLEW_ATI_element_array GLEW_GET_VAR(GL_ATI_element_array) +#define GLEW_ATI_envmap_bumpmap GLEW_GET_VAR(GL_ATI_envmap_bumpmap) +#define GLEW_ATI_fragment_shader GLEW_GET_VAR(GL_ATI_fragment_shader) +#define GLEW_ATI_map_object_buffer GLEW_GET_VAR(GL_ATI_map_object_buffer) +#define GLEW_ATI_meminfo GLEW_GET_VAR(GL_ATI_meminfo) +#define GLEW_ATI_pn_triangles GLEW_GET_VAR(GL_ATI_pn_triangles) +#define GLEW_ATI_separate_stencil GLEW_GET_VAR(GL_ATI_separate_stencil) +#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(GL_ATI_shader_texture_lod) +#define GLEW_ATI_text_fragment_shader GLEW_GET_VAR(GL_ATI_text_fragment_shader) +#define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(GL_ATI_texture_compression_3dc) +#define GLEW_ATI_texture_env_combine3 GLEW_GET_VAR(GL_ATI_texture_env_combine3) +#define GLEW_ATI_texture_float GLEW_GET_VAR(GL_ATI_texture_float) +#define GLEW_ATI_texture_mirror_once GLEW_GET_VAR(GL_ATI_texture_mirror_once) +#define GLEW_ATI_vertex_array_object GLEW_GET_VAR(GL_ATI_vertex_array_object) +#define GLEW_ATI_vertex_attrib_array_object GLEW_GET_VAR(GL_ATI_vertex_attrib_array_object) +#define GLEW_ATI_vertex_streams GLEW_GET_VAR(GL_ATI_vertex_streams) +#define GLEW_EXT_422_pixels GLEW_GET_VAR(GL_EXT_422_pixels) +#define GLEW_EXT_Cg_shader GLEW_GET_VAR(GL_EXT_Cg_shader) +#define GLEW_EXT_abgr GLEW_GET_VAR(GL_EXT_abgr) +#define GLEW_EXT_bgra GLEW_GET_VAR(GL_EXT_bgra) +#define GLEW_EXT_bindable_uniform GLEW_GET_VAR(GL_EXT_bindable_uniform) +#define GLEW_EXT_blend_color GLEW_GET_VAR(GL_EXT_blend_color) +#define GLEW_EXT_blend_equation_separate GLEW_GET_VAR(GL_EXT_blend_equation_separate) +#define GLEW_EXT_blend_func_separate GLEW_GET_VAR(GL_EXT_blend_func_separate) +#define GLEW_EXT_blend_logic_op GLEW_GET_VAR(GL_EXT_blend_logic_op) +#define GLEW_EXT_blend_minmax GLEW_GET_VAR(GL_EXT_blend_minmax) +#define GLEW_EXT_blend_subtract GLEW_GET_VAR(GL_EXT_blend_subtract) +#define GLEW_EXT_clip_volume_hint GLEW_GET_VAR(GL_EXT_clip_volume_hint) +#define GLEW_EXT_cmyka GLEW_GET_VAR(GL_EXT_cmyka) +#define GLEW_EXT_color_subtable GLEW_GET_VAR(GL_EXT_color_subtable) +#define GLEW_EXT_compiled_vertex_array GLEW_GET_VAR(GL_EXT_compiled_vertex_array) +#define GLEW_EXT_convolution GLEW_GET_VAR(GL_EXT_convolution) +#define GLEW_EXT_coordinate_frame GLEW_GET_VAR(GL_EXT_coordinate_frame) +#define GLEW_EXT_copy_texture GLEW_GET_VAR(GL_EXT_copy_texture) +#define GLEW_EXT_cull_vertex GLEW_GET_VAR(GL_EXT_cull_vertex) +#define GLEW_EXT_debug_label GLEW_GET_VAR(GL_EXT_debug_label) +#define GLEW_EXT_debug_marker GLEW_GET_VAR(GL_EXT_debug_marker) +#define GLEW_EXT_depth_bounds_test GLEW_GET_VAR(GL_EXT_depth_bounds_test) +#define GLEW_EXT_direct_state_access GLEW_GET_VAR(GL_EXT_direct_state_access) +#define GLEW_EXT_draw_buffers2 GLEW_GET_VAR(GL_EXT_draw_buffers2) +#define GLEW_EXT_draw_instanced GLEW_GET_VAR(GL_EXT_draw_instanced) +#define GLEW_EXT_draw_range_elements GLEW_GET_VAR(GL_EXT_draw_range_elements) +#define GLEW_EXT_fog_coord GLEW_GET_VAR(GL_EXT_fog_coord) +#define GLEW_EXT_fragment_lighting GLEW_GET_VAR(GL_EXT_fragment_lighting) +#define GLEW_EXT_framebuffer_blit GLEW_GET_VAR(GL_EXT_framebuffer_blit) +#define GLEW_EXT_framebuffer_multisample GLEW_GET_VAR(GL_EXT_framebuffer_multisample) +#define GLEW_EXT_framebuffer_multisample_blit_scaled GLEW_GET_VAR(GL_EXT_framebuffer_multisample_blit_scaled) +#define GLEW_EXT_framebuffer_object GLEW_GET_VAR(GL_EXT_framebuffer_object) +#define GLEW_EXT_framebuffer_sRGB GLEW_GET_VAR(GL_EXT_framebuffer_sRGB) +#define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(GL_EXT_geometry_shader4) +#define GLEW_EXT_gpu_program_parameters GLEW_GET_VAR(GL_EXT_gpu_program_parameters) +#define GLEW_EXT_gpu_shader4 GLEW_GET_VAR(GL_EXT_gpu_shader4) +#define GLEW_EXT_histogram GLEW_GET_VAR(GL_EXT_histogram) +#define GLEW_EXT_index_array_formats GLEW_GET_VAR(GL_EXT_index_array_formats) +#define GLEW_EXT_index_func GLEW_GET_VAR(GL_EXT_index_func) +#define GLEW_EXT_index_material GLEW_GET_VAR(GL_EXT_index_material) +#define GLEW_EXT_index_texture GLEW_GET_VAR(GL_EXT_index_texture) +#define GLEW_EXT_light_texture GLEW_GET_VAR(GL_EXT_light_texture) +#define GLEW_EXT_misc_attribute GLEW_GET_VAR(GL_EXT_misc_attribute) +#define GLEW_EXT_multi_draw_arrays GLEW_GET_VAR(GL_EXT_multi_draw_arrays) +#define GLEW_EXT_multisample GLEW_GET_VAR(GL_EXT_multisample) +#define GLEW_EXT_packed_depth_stencil GLEW_GET_VAR(GL_EXT_packed_depth_stencil) +#define GLEW_EXT_packed_float GLEW_GET_VAR(GL_EXT_packed_float) +#define GLEW_EXT_packed_pixels GLEW_GET_VAR(GL_EXT_packed_pixels) +#define GLEW_EXT_paletted_texture GLEW_GET_VAR(GL_EXT_paletted_texture) +#define GLEW_EXT_pixel_buffer_object GLEW_GET_VAR(GL_EXT_pixel_buffer_object) +#define GLEW_EXT_pixel_transform GLEW_GET_VAR(GL_EXT_pixel_transform) +#define GLEW_EXT_pixel_transform_color_table GLEW_GET_VAR(GL_EXT_pixel_transform_color_table) +#define GLEW_EXT_point_parameters GLEW_GET_VAR(GL_EXT_point_parameters) +#define GLEW_EXT_polygon_offset GLEW_GET_VAR(GL_EXT_polygon_offset) +#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(GL_EXT_provoking_vertex) +#define GLEW_EXT_rescale_normal GLEW_GET_VAR(GL_EXT_rescale_normal) +#define GLEW_EXT_scene_marker GLEW_GET_VAR(GL_EXT_scene_marker) +#define GLEW_EXT_secondary_color GLEW_GET_VAR(GL_EXT_secondary_color) +#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(GL_EXT_separate_shader_objects) +#define GLEW_EXT_separate_specular_color GLEW_GET_VAR(GL_EXT_separate_specular_color) +#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(GL_EXT_shader_image_load_store) +#define GLEW_EXT_shader_integer_mix GLEW_GET_VAR(GL_EXT_shader_integer_mix) +#define GLEW_EXT_shadow_funcs GLEW_GET_VAR(GL_EXT_shadow_funcs) +#define GLEW_EXT_shared_texture_palette GLEW_GET_VAR(GL_EXT_shared_texture_palette) +#define GLEW_EXT_stencil_clear_tag GLEW_GET_VAR(GL_EXT_stencil_clear_tag) +#define GLEW_EXT_stencil_two_side GLEW_GET_VAR(GL_EXT_stencil_two_side) +#define GLEW_EXT_stencil_wrap GLEW_GET_VAR(GL_EXT_stencil_wrap) +#define GLEW_EXT_subtexture GLEW_GET_VAR(GL_EXT_subtexture) +#define GLEW_EXT_texture GLEW_GET_VAR(GL_EXT_texture) +#define GLEW_EXT_texture3D GLEW_GET_VAR(GL_EXT_texture3D) +#define GLEW_EXT_texture_array GLEW_GET_VAR(GL_EXT_texture_array) +#define GLEW_EXT_texture_buffer_object GLEW_GET_VAR(GL_EXT_texture_buffer_object) +#define GLEW_EXT_texture_compression_dxt1 GLEW_GET_VAR(GL_EXT_texture_compression_dxt1) +#define GLEW_EXT_texture_compression_latc GLEW_GET_VAR(GL_EXT_texture_compression_latc) +#define GLEW_EXT_texture_compression_rgtc GLEW_GET_VAR(GL_EXT_texture_compression_rgtc) +#define GLEW_EXT_texture_compression_s3tc GLEW_GET_VAR(GL_EXT_texture_compression_s3tc) +#define GLEW_EXT_texture_cube_map GLEW_GET_VAR(GL_EXT_texture_cube_map) +#define GLEW_EXT_texture_edge_clamp GLEW_GET_VAR(GL_EXT_texture_edge_clamp) +#define GLEW_EXT_texture_env GLEW_GET_VAR(GL_EXT_texture_env) +#define GLEW_EXT_texture_env_add GLEW_GET_VAR(GL_EXT_texture_env_add) +#define GLEW_EXT_texture_env_combine GLEW_GET_VAR(GL_EXT_texture_env_combine) +#define GLEW_EXT_texture_env_dot3 GLEW_GET_VAR(GL_EXT_texture_env_dot3) +#define GLEW_EXT_texture_filter_anisotropic GLEW_GET_VAR(GL_EXT_texture_filter_anisotropic) +#define GLEW_EXT_texture_integer GLEW_GET_VAR(GL_EXT_texture_integer) +#define GLEW_EXT_texture_lod_bias GLEW_GET_VAR(GL_EXT_texture_lod_bias) +#define GLEW_EXT_texture_mirror_clamp GLEW_GET_VAR(GL_EXT_texture_mirror_clamp) +#define GLEW_EXT_texture_object GLEW_GET_VAR(GL_EXT_texture_object) +#define GLEW_EXT_texture_perturb_normal GLEW_GET_VAR(GL_EXT_texture_perturb_normal) +#define GLEW_EXT_texture_rectangle GLEW_GET_VAR(GL_EXT_texture_rectangle) +#define GLEW_EXT_texture_sRGB GLEW_GET_VAR(GL_EXT_texture_sRGB) +#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(GL_EXT_texture_sRGB_decode) +#define GLEW_EXT_texture_shared_exponent GLEW_GET_VAR(GL_EXT_texture_shared_exponent) +#define GLEW_EXT_texture_snorm GLEW_GET_VAR(GL_EXT_texture_snorm) +#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(GL_EXT_texture_swizzle) +#define GLEW_EXT_timer_query GLEW_GET_VAR(GL_EXT_timer_query) +#define GLEW_EXT_transform_feedback GLEW_GET_VAR(GL_EXT_transform_feedback) +#define GLEW_EXT_vertex_array GLEW_GET_VAR(GL_EXT_vertex_array) +#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(GL_EXT_vertex_array_bgra) +#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(GL_EXT_vertex_attrib_64bit) +#define GLEW_EXT_vertex_shader GLEW_GET_VAR(GL_EXT_vertex_shader) +#define GLEW_EXT_vertex_weighting GLEW_GET_VAR(GL_EXT_vertex_weighting) +#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(GL_EXT_x11_sync_object) +#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(GL_GREMEDY_frame_terminator) +#define GLEW_GREMEDY_string_marker GLEW_GET_VAR(GL_GREMEDY_string_marker) +#define GLEW_HP_convolution_border_modes GLEW_GET_VAR(GL_HP_convolution_border_modes) +#define GLEW_HP_image_transform GLEW_GET_VAR(GL_HP_image_transform) +#define GLEW_HP_occlusion_test GLEW_GET_VAR(GL_HP_occlusion_test) +#define GLEW_HP_texture_lighting GLEW_GET_VAR(GL_HP_texture_lighting) +#define GLEW_IBM_cull_vertex GLEW_GET_VAR(GL_IBM_cull_vertex) +#define GLEW_IBM_multimode_draw_arrays GLEW_GET_VAR(GL_IBM_multimode_draw_arrays) +#define GLEW_IBM_rasterpos_clip GLEW_GET_VAR(GL_IBM_rasterpos_clip) +#define GLEW_IBM_static_data GLEW_GET_VAR(GL_IBM_static_data) +#define GLEW_IBM_texture_mirrored_repeat GLEW_GET_VAR(GL_IBM_texture_mirrored_repeat) +#define GLEW_IBM_vertex_array_lists GLEW_GET_VAR(GL_IBM_vertex_array_lists) +#define GLEW_INGR_color_clamp GLEW_GET_VAR(GL_INGR_color_clamp) +#define GLEW_INGR_interlace_read GLEW_GET_VAR(GL_INGR_interlace_read) +#define GLEW_INTEL_fragment_shader_ordering GLEW_GET_VAR(GL_INTEL_fragment_shader_ordering) +#define GLEW_INTEL_map_texture GLEW_GET_VAR(GL_INTEL_map_texture) +#define GLEW_INTEL_parallel_arrays GLEW_GET_VAR(GL_INTEL_parallel_arrays) +#define GLEW_INTEL_texture_scissor GLEW_GET_VAR(GL_INTEL_texture_scissor) +#define GLEW_KHR_debug GLEW_GET_VAR(GL_KHR_debug) +#define GLEW_KHR_texture_compression_astc_hdr GLEW_GET_VAR(GL_KHR_texture_compression_astc_hdr) +#define GLEW_KHR_texture_compression_astc_ldr GLEW_GET_VAR(GL_KHR_texture_compression_astc_ldr) +#define GLEW_KTX_buffer_region GLEW_GET_VAR(GL_KTX_buffer_region) +#define GLEW_MESAX_texture_stack GLEW_GET_VAR(GL_MESAX_texture_stack) +#define GLEW_MESA_pack_invert GLEW_GET_VAR(GL_MESA_pack_invert) +#define GLEW_MESA_resize_buffers GLEW_GET_VAR(GL_MESA_resize_buffers) +#define GLEW_MESA_window_pos GLEW_GET_VAR(GL_MESA_window_pos) +#define GLEW_MESA_ycbcr_texture GLEW_GET_VAR(GL_MESA_ycbcr_texture) +#define GLEW_NVX_conditional_render GLEW_GET_VAR(GL_NVX_conditional_render) +#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(GL_NVX_gpu_memory_info) +#define GLEW_NV_bindless_multi_draw_indirect GLEW_GET_VAR(GL_NV_bindless_multi_draw_indirect) +#define GLEW_NV_bindless_texture GLEW_GET_VAR(GL_NV_bindless_texture) +#define GLEW_NV_blend_equation_advanced GLEW_GET_VAR(GL_NV_blend_equation_advanced) +#define GLEW_NV_blend_equation_advanced_coherent GLEW_GET_VAR(GL_NV_blend_equation_advanced_coherent) +#define GLEW_NV_blend_square GLEW_GET_VAR(GL_NV_blend_square) +#define GLEW_NV_compute_program5 GLEW_GET_VAR(GL_NV_compute_program5) +#define GLEW_NV_conditional_render GLEW_GET_VAR(GL_NV_conditional_render) +#define GLEW_NV_copy_depth_to_color GLEW_GET_VAR(GL_NV_copy_depth_to_color) +#define GLEW_NV_copy_image GLEW_GET_VAR(GL_NV_copy_image) +#define GLEW_NV_deep_texture3D GLEW_GET_VAR(GL_NV_deep_texture3D) +#define GLEW_NV_depth_buffer_float GLEW_GET_VAR(GL_NV_depth_buffer_float) +#define GLEW_NV_depth_clamp GLEW_GET_VAR(GL_NV_depth_clamp) +#define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(GL_NV_depth_range_unclamped) +#define GLEW_NV_draw_texture GLEW_GET_VAR(GL_NV_draw_texture) +#define GLEW_NV_evaluators GLEW_GET_VAR(GL_NV_evaluators) +#define GLEW_NV_explicit_multisample GLEW_GET_VAR(GL_NV_explicit_multisample) +#define GLEW_NV_fence GLEW_GET_VAR(GL_NV_fence) +#define GLEW_NV_float_buffer GLEW_GET_VAR(GL_NV_float_buffer) +#define GLEW_NV_fog_distance GLEW_GET_VAR(GL_NV_fog_distance) +#define GLEW_NV_fragment_program GLEW_GET_VAR(GL_NV_fragment_program) +#define GLEW_NV_fragment_program2 GLEW_GET_VAR(GL_NV_fragment_program2) +#define GLEW_NV_fragment_program4 GLEW_GET_VAR(GL_NV_fragment_program4) +#define GLEW_NV_fragment_program_option GLEW_GET_VAR(GL_NV_fragment_program_option) +#define GLEW_NV_framebuffer_multisample_coverage GLEW_GET_VAR(GL_NV_framebuffer_multisample_coverage) +#define GLEW_NV_geometry_program4 GLEW_GET_VAR(GL_NV_geometry_program4) +#define GLEW_NV_geometry_shader4 GLEW_GET_VAR(GL_NV_geometry_shader4) +#define GLEW_NV_gpu_program4 GLEW_GET_VAR(GL_NV_gpu_program4) +#define GLEW_NV_gpu_program5 GLEW_GET_VAR(GL_NV_gpu_program5) +#define GLEW_NV_gpu_program5_mem_extended GLEW_GET_VAR(GL_NV_gpu_program5_mem_extended) +#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(GL_NV_gpu_program_fp64) +#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(GL_NV_gpu_shader5) +#define GLEW_NV_half_float GLEW_GET_VAR(GL_NV_half_float) +#define GLEW_NV_light_max_exponent GLEW_GET_VAR(GL_NV_light_max_exponent) +#define GLEW_NV_multisample_coverage GLEW_GET_VAR(GL_NV_multisample_coverage) +#define GLEW_NV_multisample_filter_hint GLEW_GET_VAR(GL_NV_multisample_filter_hint) +#define GLEW_NV_occlusion_query GLEW_GET_VAR(GL_NV_occlusion_query) +#define GLEW_NV_packed_depth_stencil GLEW_GET_VAR(GL_NV_packed_depth_stencil) +#define GLEW_NV_parameter_buffer_object GLEW_GET_VAR(GL_NV_parameter_buffer_object) +#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(GL_NV_parameter_buffer_object2) +#define GLEW_NV_path_rendering GLEW_GET_VAR(GL_NV_path_rendering) +#define GLEW_NV_pixel_data_range GLEW_GET_VAR(GL_NV_pixel_data_range) +#define GLEW_NV_point_sprite GLEW_GET_VAR(GL_NV_point_sprite) +#define GLEW_NV_present_video GLEW_GET_VAR(GL_NV_present_video) +#define GLEW_NV_primitive_restart GLEW_GET_VAR(GL_NV_primitive_restart) +#define GLEW_NV_register_combiners GLEW_GET_VAR(GL_NV_register_combiners) +#define GLEW_NV_register_combiners2 GLEW_GET_VAR(GL_NV_register_combiners2) +#define GLEW_NV_shader_atomic_counters GLEW_GET_VAR(GL_NV_shader_atomic_counters) +#define GLEW_NV_shader_atomic_float GLEW_GET_VAR(GL_NV_shader_atomic_float) +#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(GL_NV_shader_buffer_load) +#define GLEW_NV_shader_storage_buffer_object GLEW_GET_VAR(GL_NV_shader_storage_buffer_object) +#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(GL_NV_tessellation_program5) +#define GLEW_NV_texgen_emboss GLEW_GET_VAR(GL_NV_texgen_emboss) +#define GLEW_NV_texgen_reflection GLEW_GET_VAR(GL_NV_texgen_reflection) +#define GLEW_NV_texture_barrier GLEW_GET_VAR(GL_NV_texture_barrier) +#define GLEW_NV_texture_compression_vtc GLEW_GET_VAR(GL_NV_texture_compression_vtc) +#define GLEW_NV_texture_env_combine4 GLEW_GET_VAR(GL_NV_texture_env_combine4) +#define GLEW_NV_texture_expand_normal GLEW_GET_VAR(GL_NV_texture_expand_normal) +#define GLEW_NV_texture_multisample GLEW_GET_VAR(GL_NV_texture_multisample) +#define GLEW_NV_texture_rectangle GLEW_GET_VAR(GL_NV_texture_rectangle) +#define GLEW_NV_texture_shader GLEW_GET_VAR(GL_NV_texture_shader) +#define GLEW_NV_texture_shader2 GLEW_GET_VAR(GL_NV_texture_shader2) +#define GLEW_NV_texture_shader3 GLEW_GET_VAR(GL_NV_texture_shader3) +#define GLEW_NV_transform_feedback GLEW_GET_VAR(GL_NV_transform_feedback) +#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(GL_NV_transform_feedback2) +#define GLEW_NV_vdpau_interop GLEW_GET_VAR(GL_NV_vdpau_interop) +#define GLEW_NV_vertex_array_range GLEW_GET_VAR(GL_NV_vertex_array_range) +#define GLEW_NV_vertex_array_range2 GLEW_GET_VAR(GL_NV_vertex_array_range2) +#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(GL_NV_vertex_attrib_integer_64bit) +#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(GL_NV_vertex_buffer_unified_memory) +#define GLEW_NV_vertex_program GLEW_GET_VAR(GL_NV_vertex_program) +#define GLEW_NV_vertex_program1_1 GLEW_GET_VAR(GL_NV_vertex_program1_1) +#define GLEW_NV_vertex_program2 GLEW_GET_VAR(GL_NV_vertex_program2) +#define GLEW_NV_vertex_program2_option GLEW_GET_VAR(GL_NV_vertex_program2_option) +#define GLEW_NV_vertex_program3 GLEW_GET_VAR(GL_NV_vertex_program3) +#define GLEW_NV_vertex_program4 GLEW_GET_VAR(GL_NV_vertex_program4) +#define GLEW_NV_video_capture GLEW_GET_VAR(GL_NV_video_capture) +#define GLEW_OES_byte_coordinates GLEW_GET_VAR(GL_OES_byte_coordinates) +#define GLEW_OES_compressed_paletted_texture GLEW_GET_VAR(GL_OES_compressed_paletted_texture) +#define GLEW_OES_read_format GLEW_GET_VAR(GL_OES_read_format) +#define GLEW_OES_single_precision GLEW_GET_VAR(GL_OES_single_precision) +#define GLEW_OML_interlace GLEW_GET_VAR(GL_OML_interlace) +#define GLEW_OML_resample GLEW_GET_VAR(GL_OML_resample) +#define GLEW_OML_subsamp |