summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot2016-09-25 08:23:52 +0200
committerEmmanuel Gil Peyrot2016-09-25 08:23:52 +0200
commit7418b8b5097f92c353812e4051bb526e2a65c244 (patch)
treebad16499bb9b4efda7f76bfac68ca628938d6e39
downloadaur-7418b8b5097f92c353812e4051bb526e2a65c244.tar.gz
Initial commit.
-rw-r--r--.SRCINFO19
-rw-r--r--PKGBUILD22
-rw-r--r--glew.h715
-rw-r--r--glew.pc11
-rw-r--r--libGLEW.so1
5 files changed, 768 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 00000000000..c0fc04435f5
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,19 @@
+# Generated by mksrcinfo v8
+# Sun Sep 25 06:19:06 UTC 2016
+pkgbase = glew-libepoxy
+ pkgdesc = Dummy package providing glew using libepoxy instead
+ pkgver = 99
+ pkgrel = 1
+ arch = any
+ depends = libepoxy
+ provides = glew
+ conflicts = glew
+ source = glew.h
+ source = glew.pc
+ source = libGLEW.so
+ md5sums = 4aeb5f113ffdc41d90fdf845d0ac15e8
+ md5sums = fcafee532ab772bad2e1cc2122ef20e8
+ md5sums = 02ad2f73b671bea81381e65f0e036b9e
+
+pkgname = glew-libepoxy
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 00000000000..64cb92fce4a
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
+
+pkgname=glew-libepoxy
+pkgver=99
+pkgrel=1
+pkgdesc='Dummy package providing glew using libepoxy instead'
+arch=('any')
+depends=('libepoxy')
+provides=('glew')
+conflicts=('glew')
+source=('glew.h' 'glew.pc' 'libGLEW.so')
+md5sums=('4aeb5f113ffdc41d90fdf845d0ac15e8'
+ 'fcafee532ab772bad2e1cc2122ef20e8'
+ '02ad2f73b671bea81381e65f0e036b9e')
+
+package() {
+ cd "$srcdir"
+
+ install -Dm644 glew.h "$pkgdir/usr/include/GL/glew.h"
+ install -Dm644 glew.pc "$pkgdir/usr/lib/pkgconfig/glew.pc"
+ install -Dm644 libGLEW.so "$pkgdir/usr/lib/libGLEW.so"
+}
diff --git a/glew.h b/glew.h
new file mode 100644
index 00000000000..ec8d9d984a1
--- /dev/null
+++ b/glew.h
@@ -0,0 +1,715 @@
+#ifndef __glew_h__
+#define __glew_h__
+#define __GLEW_H__
+
+#include <epoxy/gl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ----------------------------- GL_VERSION_1_1 ---------------------------- */
+
+#define GLEW_VERSION_1_1 epoxy_gl_version() >= 11
+
+/* ---------------------------------- GLU ---------------------------------- */
+
+#ifndef GLEW_NO_GLU
+# ifdef __APPLE__
+# include <Availability.h>
+# if defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
+# define GLEW_NO_GLU
+# endif
+# endif
+#endif
+
+#ifndef GLEW_NO_GLU
+/* this is where we can safely include GLU */
+# if defined(__APPLE__) && defined(__MACH__)
+# include <OpenGL/glu.h>
+# else
+# include <GL/glu.h>
+# endif
+#endif
+
+/* ----------------------------- GL_VERSION_1_2 ---------------------------- */
+
+#define GLEW_VERSION_1_2 epoxy_gl_version() >= 12
+#define GLEW_VERSION_1_2_1 epoxy_gl_version() >= 12
+#define GLEW_VERSION_1_3 epoxy_gl_version() >= 13
+#define GLEW_VERSION_1_4 epoxy_gl_version() >= 14
+#define GLEW_VERSION_1_5 epoxy_gl_version() >= 15
+#define GLEW_VERSION_2_0 epoxy_gl_version() >= 20
+#define GLEW_VERSION_2_1 epoxy_gl_version() >= 21
+#define GLEW_VERSION_3_0 epoxy_gl_version() >= 30
+#define GLEW_VERSION_3_1 epoxy_gl_version() >= 31
+#define GLEW_VERSION_3_2 epoxy_gl_version() >= 32
+#define GLEW_VERSION_3_3 epoxy_gl_version() >= 33
+#define GLEW_VERSION_4_0 epoxy_gl_version() >= 40
+#define GLEW_VERSION_4_1 epoxy_gl_version() >= 41
+#define GLEW_VERSION_4_2 epoxy_gl_version() >= 42
+#define GLEW_VERSION_4_3 epoxy_gl_version() >= 43
+#define GLEW_VERSION_4_4 epoxy_gl_version() >= 44
+#define GLEW_VERSION_4_5 epoxy_gl_version() >= 45
+
+#define GLEW_3DFX_multisample epoxy_has_gl_extension("GL_3DFX_multisample")
+#define GLEW_3DFX_tbuffer epoxy_has_gl_extension("GL_3DFX_tbuffer")
+#define GLEW_3DFX_texture_compression_FXT1 epoxy_has_gl_extension("GL_3DFX_texture_compression_FXT1")
+#define GLEW_AMD_blend_minmax_factor epoxy_has_gl_extension("GL_AMD_blend_minmax_factor")
+#define GLEW_AMD_conservative_depth epoxy_has_gl_extension("GL_AMD_conservative_depth")
+#define GLEW_AMD_debug_output epoxy_has_gl_extension("GL_AMD_debug_output")
+#define GLEW_AMD_depth_clamp_separate epoxy_has_gl_extension("GL_AMD_depth_clamp_separate")
+#define GLEW_AMD_draw_buffers_blend epoxy_has_gl_extension("GL_AMD_draw_buffers_blend")
+#define GLEW_AMD_gcn_shader epoxy_has_gl_extension("GL_AMD_gcn_shader")
+#define GLEW_AMD_gpu_shader_int64 epoxy_has_gl_extension("GL_AMD_gpu_shader_int64")
+#define GLEW_AMD_interleaved_elements epoxy_has_gl_extension("GL_AMD_interleaved_elements")
+#define GLEW_AMD_multi_draw_indirect epoxy_has_gl_extension("GL_AMD_multi_draw_indirect")
+#define GLEW_AMD_name_gen_delete epoxy_has_gl_extension("GL_AMD_name_gen_delete")
+#define GLEW_AMD_occlusion_query_event epoxy_has_gl_extension("GL_AMD_occlusion_query_event")
+#define GLEW_AMD_performance_monitor epoxy_has_gl_extension("GL_AMD_performance_monitor")
+#define GLEW_AMD_pinned_memory epoxy_has_gl_extension("GL_AMD_pinned_memory")
+#define GLEW_AMD_query_buffer_object epoxy_has_gl_extension("GL_AMD_query_buffer_object")
+#define GLEW_AMD_sample_positions epoxy_has_gl_extension("GL_AMD_sample_positions")
+#define GLEW_AMD_seamless_cubemap_per_texture epoxy_has_gl_extension("GL_AMD_seamless_cubemap_per_texture")
+#define GLEW_AMD_shader_atomic_counter_ops epoxy_has_gl_extension("GL_AMD_shader_atomic_counter_ops")
+#define GLEW_AMD_shader_explicit_vertex_parameter epoxy_has_gl_extension("GL_AMD_shader_explicit_vertex_parameter")
+#define GLEW_AMD_shader_stencil_export epoxy_has_gl_extension("GL_AMD_shader_stencil_export")
+#define GLEW_AMD_shader_stencil_value_export epoxy_has_gl_extension("GL_AMD_shader_stencil_value_export")
+#define GLEW_AMD_shader_trinary_minmax epoxy_has_gl_extension("GL_AMD_shader_trinary_minmax")
+#define GLEW_AMD_sparse_texture epoxy_has_gl_extension("GL_AMD_sparse_texture")
+#define GLEW_AMD_stencil_operation_extended epoxy_has_gl_extension("GL_AMD_stencil_operation_extended")
+#define GLEW_AMD_texture_texture4 epoxy_has_gl_extension("GL_AMD_texture_texture4")
+#define GLEW_AMD_transform_feedback3_lines_triangles epoxy_has_gl_extension("GL_AMD_transform_feedback3_lines_triangles")
+#define GLEW_AMD_transform_feedback4 epoxy_has_gl_extension("GL_AMD_transform_feedback4")
+#define GLEW_AMD_vertex_shader_layer epoxy_has_gl_extension("GL_AMD_vertex_shader_layer")
+#define GLEW_AMD_vertex_shader_tessellator epoxy_has_gl_extension("GL_AMD_vertex_shader_tessellator")
+#define GLEW_AMD_vertex_shader_viewport_index epoxy_has_gl_extension("GL_AMD_vertex_shader_viewport_index")
+#define GLEW_ANGLE_depth_texture epoxy_has_gl_extension("GL_ANGLE_depth_texture")
+#define GLEW_ANGLE_framebuffer_blit epoxy_has_gl_extension("GL_ANGLE_framebuffer_blit")
+#define GLEW_ANGLE_framebuffer_multisample epoxy_has_gl_extension("GL_ANGLE_framebuffer_multisample")
+#define GLEW_ANGLE_instanced_arrays epoxy_has_gl_extension("GL_ANGLE_instanced_arrays")
+#define GLEW_ANGLE_pack_reverse_row_order epoxy_has_gl_extension("GL_ANGLE_pack_reverse_row_order")
+#define GLEW_ANGLE_program_binary epoxy_has_gl_extension("GL_ANGLE_program_binary")
+#define GLEW_ANGLE_texture_compression_dxt1 epoxy_has_gl_extension("GL_ANGLE_texture_compression_dxt1")
+#define GLEW_ANGLE_texture_compression_dxt3 epoxy_has_gl_extension("GL_ANGLE_texture_compression_dxt3")
+#define GLEW_ANGLE_texture_compression_dxt5 epoxy_has_gl_extension("GL_ANGLE_texture_compression_dxt5")
+#define GLEW_ANGLE_texture_usage epoxy_has_gl_extension("GL_ANGLE_texture_usage")
+#define GLEW_ANGLE_timer_query epoxy_has_gl_extension("GL_ANGLE_timer_query")
+#define GLEW_ANGLE_translated_shader_source epoxy_has_gl_extension("GL_ANGLE_translated_shader_source")
+#define GLEW_APPLE_aux_depth_stencil epoxy_has_gl_extension("GL_APPLE_aux_depth_stencil")
+#define GLEW_APPLE_client_storage epoxy_has_gl_extension("GL_APPLE_client_storage")
+#define GLEW_APPLE_element_array epoxy_has_gl_extension("GL_APPLE_element_array")
+#define GLEW_APPLE_fence epoxy_has_gl_extension("GL_APPLE_fence")
+#define GLEW_APPLE_float_pixels epoxy_has_gl_extension("GL_APPLE_float_pixels")
+#define GLEW_APPLE_flush_buffer_range epoxy_has_gl_extension("GL_APPLE_flush_buffer_range")
+#define GLEW_APPLE_object_purgeable epoxy_has_gl_extension("GL_APPLE_object_purgeable")
+#define GLEW_APPLE_pixel_buffer epoxy_has_gl_extension("GL_APPLE_pixel_buffer")
+#define GLEW_APPLE_rgb_422 epoxy_has_gl_extension("GL_APPLE_rgb_422")
+#define GLEW_APPLE_row_bytes epoxy_has_gl_extension("GL_APPLE_row_bytes")
+#define GLEW_APPLE_specular_vector epoxy_has_gl_extension("GL_APPLE_specular_vector")
+#define GLEW_APPLE_texture_range epoxy_has_gl_extension("GL_APPLE_texture_range")
+#define GLEW_APPLE_transform_hint epoxy_has_gl_extension("GL_APPLE_transform_hint")
+#define GLEW_APPLE_vertex_array_object epoxy_has_gl_extension("GL_APPLE_vertex_array_object")
+#define GLEW_APPLE_vertex_array_range epoxy_has_gl_extension("GL_APPLE_vertex_array_range")
+#define GLEW_APPLE_vertex_program_evaluators epoxy_has_gl_extension("GL_APPLE_vertex_program_evaluators")
+#define GLEW_APPLE_ycbcr_422 epoxy_has_gl_extension("GL_APPLE_ycbcr_422")
+#define GLEW_ARB_ES2_compatibility epoxy_has_gl_extension("GL_ARB_ES2_compatibility")
+#define GLEW_ARB_ES3_1_compatibility epoxy_has_gl_extension("GL_ARB_ES3_1_compatibility")
+#define GLEW_ARB_ES3_2_compatibility epoxy_has_gl_extension("GL_ARB_ES3_2_compatibility")
+#define GLEW_ARB_ES3_compatibility epoxy_has_gl_extension("GL_ARB_ES3_compatibility")
+#define GLEW_ARB_arrays_of_arrays epoxy_has_gl_extension("GL_ARB_arrays_of_arrays")
+#define GLEW_ARB_base_instance epoxy_has_gl_extension("GL_ARB_base_instance")
+#define GLEW_ARB_bindless_texture epoxy_has_gl_extension("GL_ARB_bindless_texture")
+#define GLEW_ARB_blend_func_extended epoxy_has_gl_extension("GL_ARB_blend_func_extended")
+#define GLEW_ARB_buffer_storage epoxy_has_gl_extension("GL_ARB_buffer_storage")
+#define GLEW_ARB_cl_event epoxy_has_gl_extension("GL_ARB_cl_event")
+#define GLEW_ARB_clear_buffer_object epoxy_has_gl_extension("GL_ARB_clear_buffer_object")
+#define GLEW_ARB_clear_texture epoxy_has_gl_extension("GL_ARB_clear_texture")
+#define GLEW_ARB_clip_control epoxy_has_gl_extension("GL_ARB_clip_control")
+#define GLEW_ARB_color_buffer_float epoxy_has_gl_extension("GL_ARB_color_buffer_float")
+#define GLEW_ARB_compatibility epoxy_has_gl_extension("GL_ARB_compatibility")
+#define GLEW_ARB_compressed_texture_pixel_storage epoxy_has_gl_extension("GL_ARB_compressed_texture_pixel_storage")
+#define GLEW_ARB_compute_shader epoxy_has_gl_extension("GL_ARB_compute_shader")
+#define GLEW_ARB_compute_variable_group_size epoxy_has_gl_extension("GL_ARB_compute_variable_group_size")
+#define GLEW_ARB_conditional_render_inverted epoxy_has_gl_extension("GL_ARB_conditional_render_inverted")
+#define GLEW_ARB_conservative_depth epoxy_has_gl_extension("GL_ARB_conservative_depth")
+#define GLEW_ARB_copy_buffer epoxy_has_gl_extension("GL_ARB_copy_buffer")
+#define GLEW_ARB_copy_image epoxy_has_gl_extension("GL_ARB_copy_image")
+#define GLEW_ARB_cull_distance epoxy_has_gl_extension("GL_ARB_cull_distance")
+#define GLEW_ARB_debug_output epoxy_has_gl_extension("GL_ARB_debug_output")
+#define GLEW_ARB_depth_buffer_float epoxy_has_gl_extension("GL_ARB_depth_buffer_float")
+#define GLEW_ARB_depth_clamp epoxy_has_gl_extension("GL_ARB_depth_clamp")
+#define GLEW_ARB_depth_texture epoxy_has_gl_extension("GL_ARB_depth_texture")
+#define GLEW_ARB_derivative_control epoxy_has_gl_extension("GL_ARB_derivative_control")
+#define GLEW_ARB_direct_state_access epoxy_has_gl_extension("GL_ARB_direct_state_access")
+#define GLEW_ARB_draw_buffers epoxy_has_gl_extension("GL_ARB_draw_buffers")
+#define GLEW_ARB_draw_buffers_blend epoxy_has_gl_extension("GL_ARB_draw_buffers_blend")
+#define GLEW_ARB_draw_elements_base_vertex epoxy_has_gl_extension("GL_ARB_draw_elements_base_vertex")
+#define GLEW_ARB_draw_indirect epoxy_has_gl_extension("GL_ARB_draw_indirect")
+#define GLEW_ARB_draw_instanced epoxy_has_gl_extension("GL_ARB_draw_instanced")
+#define GLEW_ARB_enhanced_layouts epoxy_has_gl_extension("GL_ARB_enhanced_layouts")
+#define GLEW_ARB_explicit_attrib_location epoxy_has_gl_extension("GL_ARB_explicit_attrib_location")
+#define GLEW_ARB_explicit_uniform_location epoxy_has_gl_extension("GL_ARB_explicit_uniform_location")
+#define GLEW_ARB_fragment_coord_conventions epoxy_has_gl_extension("GL_ARB_fragment_coord_conventions")
+#define GLEW_ARB_fragment_layer_viewport epoxy_has_gl_extension("GL_ARB_fragment_layer_viewport")
+#define GLEW_ARB_fragment_program epoxy_has_gl_extension("GL_ARB_fragment_program")
+#define GLEW_ARB_fragment_program_shadow epoxy_has_gl_extension("GL_ARB_fragment_program_shadow")
+#define GLEW_ARB_fragment_shader epoxy_has_gl_extension("GL_ARB_fragment_shader")
+#define GLEW_ARB_fragment_shader_interlock epoxy_has_gl_extension("GL_ARB_fragment_shader_interlock")
+#define GLEW_ARB_framebuffer_no_attachments epoxy_has_gl_extension("GL_ARB_framebuffer_no_attachments")
+#define GLEW_ARB_framebuffer_object epoxy_has_gl_extension("GL_ARB_framebuffer_object")
+#define GLEW_ARB_framebuffer_sRGB epoxy_has_gl_extension("GL_ARB_framebuffer_sRGB")
+#define GLEW_ARB_geometry_shader4 epoxy_has_gl_extension("GL_ARB_geometry_shader4")
+#define GLEW_ARB_get_program_binary epoxy_has_gl_extension("GL_ARB_get_program_binary")
+#define GLEW_ARB_get_texture_sub_image epoxy_has_gl_extension("GL_ARB_get_texture_sub_image")
+#define GLEW_ARB_gl_spirv epoxy_has_gl_extension("GL_ARB_gl_spirv")
+#define GLEW_ARB_gpu_shader5 epoxy_has_gl_extension("GL_ARB_gpu_shader5")
+#define GLEW_ARB_gpu_shader_fp64 epoxy_has_gl_extension("GL_ARB_gpu_shader_fp64")
+#define GLEW_ARB_gpu_shader_int64 epoxy_has_gl_extension("GL_ARB_gpu_shader_int64")
+#define GLEW_ARB_half_float_pixel epoxy_has_gl_extension("GL_ARB_half_float_pixel")
+#define GLEW_ARB_half_float_vertex epoxy_has_gl_extension("GL_ARB_half_float_vertex")
+#define GLEW_ARB_imaging epoxy_has_gl_extension("GL_ARB_imaging")
+#define GLEW_ARB_indirect_parameters epoxy_has_gl_extension("GL_ARB_indirect_parameters")
+#define GLEW_ARB_instanced_arrays epoxy_has_gl_extension("GL_ARB_instanced_arrays")
+#define GLEW_ARB_internalformat_query epoxy_has_gl_extension("GL_ARB_internalformat_query")
+#define GLEW_ARB_internalformat_query2 epoxy_has_gl_extension("GL_ARB_internalformat_query2")
+#define GLEW_ARB_invalidate_subdata epoxy_has_gl_extension("GL_ARB_invalidate_subdata")
+#define GLEW_ARB_map_buffer_alignment epoxy_has_gl_extension("GL_ARB_map_buffer_alignment")
+#define GLEW_ARB_map_buffer_range epoxy_has_gl_extension("GL_ARB_map_buffer_range")
+#define GLEW_ARB_matrix_palette epoxy_has_gl_extension("GL_ARB_matrix_palette")
+#define GLEW_ARB_multi_bind epoxy_has_gl_extension("GL_ARB_multi_bind")
+#define GLEW_ARB_multi_draw_indirect epoxy_has_gl_extension("GL_ARB_multi_draw_indirect")
+#define GLEW_ARB_multisample epoxy_has_gl_extension("GL_ARB_multisample")
+#define GLEW_ARB_multitexture epoxy_has_gl_extension("GL_ARB_multitexture")
+#define GLEW_ARB_occlusion_query epoxy_has_gl_extension("GL_ARB_occlusion_query")
+#define GLEW_ARB_occlusion_query2 epoxy_has_gl_extension("GL_ARB_occlusion_query2")
+#define GLEW_ARB_parallel_shader_compile epoxy_has_gl_extension("GL_ARB_parallel_shader_compile")
+#define GLEW_ARB_pipeline_statistics_query epoxy_has_gl_extension("GL_ARB_pipeline_statistics_query")
+#define GLEW_ARB_pixel_buffer_object epoxy_has_gl_extension("GL_ARB_pixel_buffer_object")
+#define GLEW_ARB_point_parameters epoxy_has_gl_extension("GL_ARB_point_parameters")
+#define GLEW_ARB_point_sprite epoxy_has_gl_extension("GL_ARB_point_sprite")
+#define GLEW_ARB_post_depth_coverage epoxy_has_gl_extension("GL_ARB_post_depth_coverage")
+#define GLEW_ARB_program_interface_query epoxy_has_gl_extension("GL_ARB_program_interface_query")
+#define GLEW_ARB_provoking_vertex epoxy_has_gl_extension("GL_ARB_provoking_vertex")
+#define GLEW_ARB_query_buffer_object epoxy_has_gl_extension("GL_ARB_query_buffer_object")
+#define GLEW_ARB_robust_buffer_access_behavior epoxy_has_gl_extension("GL_ARB_robust_buffer_access_behavior")
+#define GLEW_ARB_robustness epoxy_has_gl_extension("GL_ARB_robustness")
+#define GLEW_ARB_robustness_application_isolation epoxy_has_gl_extension("GL_ARB_robustness_application_isolation")
+#define GLEW_ARB_robustness_share_group_isolation epoxy_has_gl_extension("GL_ARB_robustness_share_group_isolation")
+#define GLEW_ARB_sample_locations epoxy_has_gl_extension("GL_ARB_sample_locations")
+#define GLEW_ARB_sample_shading epoxy_has_gl_extension("GL_ARB_sample_shading")
+#define GLEW_ARB_sampler_objects epoxy_has_gl_extension("GL_ARB_sampler_objects")
+#define GLEW_ARB_seamless_cube_map epoxy_has_gl_extension("GL_ARB_seamless_cube_map")
+#define GLEW_ARB_seamless_cubemap_per_texture epoxy_has_gl_extension("GL_ARB_seamless_cubemap_per_texture")
+#define GLEW_ARB_separate_shader_objects epoxy_has_gl_extension("GL_ARB_separate_shader_objects")
+#define GLEW_ARB_shader_atomic_counter_ops epoxy_has_gl_extension("GL_ARB_shader_atomic_counter_ops")
+#define GLEW_ARB_shader_atomic_counters epoxy_has_gl_extension("GL_ARB_shader_atomic_counters")
+#define GLEW_ARB_shader_ballot epoxy_has_gl_extension("GL_ARB_shader_ballot")
+#define GLEW_ARB_shader_bit_encoding epoxy_has_gl_extension("GL_ARB_shader_bit_encoding")
+#define GLEW_ARB_shader_clock epoxy_has_gl_extension("GL_ARB_shader_clock")
+#define GLEW_ARB_shader_draw_parameters epoxy_has_gl_extension("GL_ARB_shader_draw_parameters")
+#define GLEW_ARB_shader_group_vote epoxy_has_gl_extension("GL_ARB_shader_group_vote")
+#define GLEW_ARB_shader_image_load_store epoxy_has_gl_extension("GL_ARB_shader_image_load_store")
+#define GLEW_ARB_shader_image_size epoxy_has_gl_extension("GL_ARB_shader_image_size")
+#define GLEW_ARB_shader_objects epoxy_has_gl_extension("GL_ARB_shader_objects")
+#define GLEW_ARB_shader_precision epoxy_has_gl_extension("GL_ARB_shader_precision")
+#define GLEW_ARB_shader_stencil_export epoxy_has_gl_extension("GL_ARB_shader_stencil_export")
+#define GLEW_ARB_shader_storage_buffer_object epoxy_has_gl_extension("GL_ARB_shader_storage_buffer_object")
+#define GLEW_ARB_shader_subroutine epoxy_has_gl_extension("GL_ARB_shader_subroutine")
+#define GLEW_ARB_shader_texture_image_samples epoxy_has_gl_extension("GL_ARB_shader_texture_image_samples")
+#define GLEW_ARB_shader_texture_lod epoxy_has_gl_extension("GL_ARB_shader_texture_lod")
+#define GLEW_ARB_shader_viewport_layer_array epoxy_has_gl_extension("GL_ARB_shader_viewport_layer_array")
+#define GLEW_ARB_shading_language_100 epoxy_has_gl_extension("GL_ARB_shading_language_100")
+#define GLEW_ARB_shading_language_420pack epoxy_has_gl_extension("GL_ARB_shading_language_420pack")
+#define GLEW_ARB_shading_language_include epoxy_has_gl_extension("GL_ARB_shading_language_include")
+#define GLEW_ARB_shading_language_packing epoxy_has_gl_extension("GL_ARB_shading_language_packing")
+#define GLEW_ARB_shadow epoxy_has_gl_extension("GL_ARB_shadow")
+#define GLEW_ARB_shadow_ambient epoxy_has_gl_extension("GL_ARB_shadow_ambient")
+#define GLEW_ARB_sparse_buffer epoxy_has_gl_extension("GL_ARB_sparse_buffer")
+#define GLEW_ARB_sparse_texture epoxy_has_gl_extension("GL_ARB_sparse_texture")
+#define GLEW_ARB_sparse_texture2 epoxy_has_gl_extension("GL_ARB_sparse_texture2")
+#define GLEW_ARB_sparse_texture_clamp epoxy_has_gl_extension("GL_ARB_sparse_texture_clamp")
+#define GLEW_ARB_stencil_texturing epoxy_has_gl_extension("GL_ARB_stencil_texturing")
+#define GLEW_ARB_sync epoxy_has_gl_extension("GL_ARB_sync")
+#define GLEW_ARB_tessellation_shader epoxy_has_gl_extension("GL_ARB_tessellation_shader")
+#define GLEW_ARB_texture_barrier epoxy_has_gl_extension("GL_ARB_texture_barrier")
+#define GLEW_ARB_texture_border_clamp epoxy_has_gl_extension("GL_ARB_texture_border_clamp")
+#define GLEW_ARB_texture_buffer_object epoxy_has_gl_extension("GL_ARB_texture_buffer_object")
+#define GLEW_ARB_texture_buffer_object_rgb32 epoxy_has_gl_extension("GL_ARB_texture_buffer_object_rgb32")
+#define GLEW_ARB_texture_buffer_range epoxy_has_gl_extension("GL_ARB_texture_buffer_range")
+#define GLEW_ARB_texture_compression epoxy_has_gl_extension("GL_ARB_texture_compression")
+#define GLEW_ARB_texture_compression_bptc epoxy_has_gl_extension("GL_ARB_texture_compression_bptc")
+#define GLEW_ARB_texture_compression_rgtc epoxy_has_gl_extension("GL_ARB_texture_compression_rgtc")
+#define GLEW_ARB_texture_cube_map epoxy_has_gl_extension("GL_ARB_texture_cube_map")
+#define GLEW_ARB_texture_cube_map_array epoxy_has_gl_extension("GL_ARB_texture_cube_map_array")
+#define GLEW_ARB_texture_env_add epoxy_has_gl_extension("GL_ARB_texture_env_add")
+#define GLEW_ARB_texture_env_combine epoxy_has_gl_extension("GL_ARB_texture_env_combine")
+#define GLEW_ARB_texture_env_crossbar epoxy_has_gl_extension("GL_ARB_texture_env_crossbar")
+#define GLEW_ARB_texture_env_dot3 epoxy_has_gl_extension("GL_ARB_texture_env_dot3")
+#define GLEW_ARB_texture_filter_minmax epoxy_has_gl_extension("GL_ARB_texture_filter_minmax")
+#define GLEW_ARB_texture_float epoxy_has_gl_extension("GL_ARB_texture_float")
+#define GLEW_ARB_texture_gather epoxy_has_gl_extension("GL_ARB_texture_gather")
+#define GLEW_ARB_texture_mirror_clamp_to_edge epoxy_has_gl_extension("GL_ARB_texture_mirror_clamp_to_edge")
+#define GLEW_ARB_texture_mirrored_repeat epoxy_has_gl_extension("GL_ARB_texture_mirrored_repeat")
+#define GLEW_ARB_texture_multisample epoxy_has_gl_extension("GL_ARB_texture_multisample")
+#define GLEW_ARB_texture_non_power_of_two epoxy_has_gl_extension("GL_ARB_texture_non_power_of_two")
+#define GLEW_ARB_texture_query_levels epoxy_has_gl_extension("GL_ARB_texture_query_levels")
+#define GLEW_ARB_texture_query_lod epoxy_has_gl_extension("GL_ARB_texture_query_lod")
+#define GLEW_ARB_texture_rectangle epoxy_has_gl_extension("GL_ARB_texture_rectangle")
+#define GLEW_ARB_texture_rg epoxy_has_gl_extension("GL_ARB_texture_rg")
+#define GLEW_ARB_texture_rgb10_a2ui epoxy_has_gl_extension("GL_ARB_texture_rgb10_a2ui")
+#define GLEW_ARB_texture_stencil8 epoxy_has_gl_extension("GL_ARB_texture_stencil8")
+#define GLEW_ARB_texture_storage epoxy_has_gl_extension("GL_ARB_texture_storage")
+#define GLEW_ARB_texture_storage_multisample epoxy_has_gl_extension("GL_ARB_texture_storage_multisample")
+#define GLEW_ARB_texture_swizzle epoxy_has_gl_extension("GL_ARB_texture_swizzle")
+#define GLEW_ARB_texture_view epoxy_has_gl_extension("GL_ARB_texture_view")
+#define GLEW_ARB_timer_query epoxy_has_gl_extension("GL_ARB_timer_query")
+#define GLEW_ARB_transform_feedback2 epoxy_has_gl_extension("GL_ARB_transform_feedback2")
+#define GLEW_ARB_transform_feedback3 epoxy_has_gl_extension("GL_ARB_transform_feedback3")
+#define GLEW_ARB_transform_feedback_instanced epoxy_has_gl_extension("GL_ARB_transform_feedback_instanced")
+#define GLEW_ARB_transform_feedback_overflow_query epoxy_has_gl_extension("GL_ARB_transform_feedback_overflow_query")
+#define GLEW_ARB_transpose_matrix epoxy_has_gl_extension("GL_ARB_transpose_matrix")
+#define GLEW_ARB_uniform_buffer_object epoxy_has_gl_extension("GL_ARB_uniform_buffer_object")
+#define GLEW_ARB_vertex_array_bgra epoxy_has_gl_extension("GL_ARB_vertex_array_bgra")
+#define GLEW_ARB_vertex_array_object epoxy_has_gl_extension("GL_ARB_vertex_array_object")
+#define GLEW_ARB_vertex_attrib_64bit epoxy_has_gl_extension("GL_ARB_vertex_attrib_64bit")
+#define GLEW_ARB_vertex_attrib_binding epoxy_has_gl_extension("GL_ARB_vertex_attrib_binding")
+#define GLEW_ARB_vertex_blend epoxy_has_gl_extension("GL_ARB_vertex_blend")
+#define GLEW_ARB_vertex_buffer_object epoxy_has_gl_extension("GL_ARB_vertex_buffer_object")
+#define GLEW_ARB_vertex_program epoxy_has_gl_extension("GL_ARB_vertex_program")
+#define GLEW_ARB_vertex_shader epoxy_has_gl_extension("GL_ARB_vertex_shader")
+#define GLEW_ARB_vertex_type_10f_11f_11f_rev epoxy_has_gl_extension("GL_ARB_vertex_type_10f_11f_11f_rev")
+#define GLEW_ARB_vertex_type_2_10_10_10_rev epoxy_has_gl_extension("GL_ARB_vertex_type_2_10_10_10_rev")
+#define GLEW_ARB_viewport_array epoxy_has_gl_extension("GL_ARB_viewport_array")
+#define GLEW_ARB_window_pos epoxy_has_gl_extension("GL_ARB_window_pos")
+#define GLEW_ATIX_point_sprites epoxy_has_gl_extension("GL_ATIX_point_sprites")
+#define GLEW_ATIX_texture_env_combine3 epoxy_has_gl_extension("GL_ATIX_texture_env_combine3")
+#define GLEW_ATIX_texture_env_route epoxy_has_gl_extension("GL_ATIX_texture_env_route")
+#define GLEW_ATIX_vertex_shader_output_point_size epoxy_has_gl_extension("GL_ATIX_vertex_shader_output_point_size")
+#define GLEW_ATI_draw_buffers epoxy_has_gl_extension("GL_ATI_draw_buffers")
+#define GLEW_ATI_element_array epoxy_has_gl_extension("GL_ATI_element_array")
+#define GLEW_ATI_envmap_bumpmap epoxy_has_gl_extension("GL_ATI_envmap_bumpmap")
+#define GLEW_ATI_fragment_shader epoxy_has_gl_extension("GL_ATI_fragment_shader")
+#define GLEW_ATI_map_object_buffer epoxy_has_gl_extension("GL_ATI_map_object_buffer")
+#define GLEW_ATI_meminfo epoxy_has_gl_extension("GL_ATI_meminfo")
+#define GLEW_ATI_pn_triangles epoxy_has_gl_extension("GL_ATI_pn_triangles")
+#define GLEW_ATI_separate_stencil epoxy_has_gl_extension("GL_ATI_separate_stencil")
+#define GLEW_ATI_shader_texture_lod epoxy_has_gl_extension("GL_ATI_shader_texture_lod")
+#define GLEW_ATI_text_fragment_shader epoxy_has_gl_extension("GL_ATI_text_fragment_shader")
+#define GLEW_ATI_texture_compression_3dc epoxy_has_gl_extension("GL_ATI_texture_compression_3dc")
+#define GLEW_ATI_texture_env_combine3 epoxy_has_gl_extension("GL_ATI_texture_env_combine3")
+#define GLEW_ATI_texture_float epoxy_has_gl_extension("GL_ATI_texture_float")
+#define GLEW_ATI_texture_mirror_once epoxy_has_gl_extension("GL_ATI_texture_mirror_once")
+#define GLEW_ATI_vertex_array_object epoxy_has_gl_extension("GL_ATI_vertex_array_object")
+#define GLEW_ATI_vertex_attrib_array_object epoxy_has_gl_extension("GL_ATI_vertex_attrib_array_object")
+#define GLEW_ATI_vertex_streams epoxy_has_gl_extension("GL_ATI_vertex_streams")
+#define GLEW_EGL_NV_robustness_video_memory_purge epoxy_has_gl_extension("GL_EGL_NV_robustness_video_memory_purge")
+#define GLEW_EXT_422_pixels epoxy_has_gl_extension("GL_EXT_422_pixels")
+#define GLEW_EXT_Cg_shader epoxy_has_gl_extension("GL_EXT_Cg_shader")
+#define GLEW_EXT_abgr epoxy_has_gl_extension("GL_EXT_abgr")
+#define GLEW_EXT_bgra epoxy_has_gl_extension("GL_EXT_bgra")
+#define GLEW_EXT_bindable_uniform epoxy_has_gl_extension("GL_EXT_bindable_uniform")
+#define GLEW_EXT_blend_color epoxy_has_gl_extension("GL_EXT_blend_color")
+#define GLEW_EXT_blend_equation_separate epoxy_has_gl_extension("GL_EXT_blend_equation_separate")
+#define GLEW_EXT_blend_func_separate epoxy_has_gl_extension("GL_EXT_blend_func_separate")
+#define GLEW_EXT_blend_logic_op epoxy_has_gl_extension("GL_EXT_blend_logic_op")
+#define GLEW_EXT_blend_minmax epoxy_has_gl_extension("GL_EXT_blend_minmax")
+#define GLEW_EXT_blend_subtract epoxy_has_gl_extension("GL_EXT_blend_subtract")
+#define GLEW_EXT_clip_volume_hint epoxy_has_gl_extension("GL_EXT_clip_volume_hint")
+#define GLEW_EXT_cmyka epoxy_has_gl_extension("GL_EXT_cmyka")
+#define GLEW_EXT_color_subtable epoxy_has_gl_extension("GL_EXT_color_subtable")
+#define GLEW_EXT_compiled_vertex_array epoxy_has_gl_extension("GL_EXT_compiled_vertex_array")
+#define GLEW_EXT_convolution epoxy_has_gl_extension("GL_EXT_convolution")
+#define GLEW_EXT_coordinate_frame epoxy_has_gl_extension("GL_EXT_coordinate_frame")
+#define GLEW_EXT_copy_texture epoxy_has_gl_extension("GL_EXT_copy_texture")
+#define GLEW_EXT_cull_vertex epoxy_has_gl_extension("GL_EXT_cull_vertex")
+#define GLEW_EXT_debug_label epoxy_has_gl_extension("GL_EXT_debug_label")
+#define GLEW_EXT_debug_marker epoxy_has_gl_extension("GL_EXT_debug_marker")
+#define GLEW_EXT_depth_bounds_test epoxy_has_gl_extension("GL_EXT_depth_bounds_test")
+#define GLEW_EXT_direct_state_access epoxy_has_gl_extension("GL_EXT_direct_state_access")
+#define GLEW_EXT_draw_buffers2 epoxy_has_gl_extension("GL_EXT_draw_buffers2")
+#define GLEW_EXT_draw_instanced epoxy_has_gl_extension("GL_EXT_draw_instanced")
+#define GLEW_EXT_draw_range_elements epoxy_has_gl_extension("GL_EXT_draw_range_elements")
+#define GLEW_EXT_fog_coord epoxy_has_gl_extension("GL_EXT_fog_coord")
+#define GLEW_EXT_fragment_lighting epoxy_has_gl_extension("GL_EXT_fragment_lighting")
+#define GLEW_EXT_framebuffer_blit epoxy_has_gl_extension("GL_EXT_framebuffer_blit")
+#define GLEW_EXT_framebuffer_multisample epoxy_has_gl_extension("GL_EXT_framebuffer_multisample")
+#define GLEW_EXT_framebuffer_multisample_blit_scaled epoxy_has_gl_extension("GL_EXT_framebuffer_multisample_blit_scaled")
+#define GLEW_EXT_framebuffer_object epoxy_has_gl_extension("GL_EXT_framebuffer_object")
+#define GLEW_EXT_framebuffer_sRGB epoxy_has_gl_extension("GL_EXT_framebuffer_sRGB")
+#define GLEW_EXT_geometry_shader4 epoxy_has_gl_extension("GL_EXT_geometry_shader4")
+#define GLEW_EXT_gpu_program_parameters epoxy_has_gl_extension("GL_EXT_gpu_program_parameters")
+#define GLEW_EXT_gpu_shader4 epoxy_has_gl_extension("GL_EXT_gpu_shader4")
+#define GLEW_EXT_histogram epoxy_has_gl_extension("GL_EXT_histogram")
+#define GLEW_EXT_index_array_formats epoxy_has_gl_extension("GL_EXT_index_array_formats")
+#define GLEW_EXT_index_func epoxy_has_gl_extension("GL_EXT_index_func")
+#define GLEW_EXT_index_material epoxy_has_gl_extension("GL_EXT_index_material")
+#define GLEW_EXT_index_texture epoxy_has_gl_extension("GL_EXT_index_texture")
+#define GLEW_EXT_light_texture epoxy_has_gl_extension("GL_EXT_light_texture")
+#define GLEW_EXT_misc_attribute epoxy_has_gl_extension("GL_EXT_misc_attribute")
+#define GLEW_EXT_multi_draw_arrays epoxy_has_gl_extension("GL_EXT_multi_draw_arrays")
+#define GLEW_EXT_multisample epoxy_has_gl_extension("GL_EXT_multisample")
+#define GLEW_EXT_packed_depth_stencil epoxy_has_gl_extension("GL_EXT_packed_depth_stencil")
+#define GLEW_EXT_packed_float epoxy_has_gl_extension("GL_EXT_packed_float")
+#define GLEW_EXT_packed_pixels epoxy_has_gl_extension("GL_EXT_packed_pixels")
+#define GLEW_EXT_paletted_texture epoxy_has_gl_extension("GL_EXT_paletted_texture")
+#define GLEW_EXT_pixel_buffer_object epoxy_has_gl_extension("GL_EXT_pixel_buffer_object")
+#define GLEW_EXT_pixel_transform epoxy_has_gl_extension("GL_EXT_pixel_transform")
+#define GLEW_EXT_pixel_transform_color_table epoxy_has_gl_extension("GL_EXT_pixel_transform_color_table")
+#define GLEW_EXT_point_parameters epoxy_has_gl_extension("GL_EXT_point_parameters")
+#define GLEW_EXT_polygon_offset epoxy_has_gl_extension("GL_EXT_polygon_offset")
+#define GLEW_EXT_polygon_offset_clamp epoxy_has_gl_extension("GL_EXT_polygon_offset_clamp")
+#define GLEW_EXT_post_depth_coverage epoxy_has_gl_extension("GL_EXT_post_depth_coverage")
+#define GLEW_EXT_provoking_vertex epoxy_has_gl_extension("GL_EXT_provoking_vertex")
+#define GLEW_EXT_raster_multisample epoxy_has_gl_extension("GL_EXT_raster_multisample")
+#define GLEW_EXT_rescale_normal epoxy_has_gl_extension("GL_EXT_rescale_normal")
+#define GLEW_EXT_scene_marker epoxy_has_gl_extension("GL_EXT_scene_marker")
+#define GLEW_EXT_secondary_color epoxy_has_gl_extension("GL_EXT_secondary_color")
+#define GLEW_EXT_separate_shader_objects epoxy_has_gl_extension("GL_EXT_separate_shader_objects")
+#define GLEW_EXT_separate_specular_color epoxy_has_gl_extension("GL_EXT_separate_specular_color")
+#define GLEW_EXT_shader_image_load_formatted epoxy_has_gl_extension("GL_EXT_shader_image_load_formatted")
+#define GLEW_EXT_shader_image_load_store epoxy_has_gl_extension("GL_EXT_shader_image_load_store")
+#define GLEW_EXT_shader_integer_mix epoxy_has_gl_extension("GL_EXT_shader_integer_mix")
+#define GLEW_EXT_shadow_funcs epoxy_has_gl_extension("GL_EXT_shadow_funcs")
+#define GLEW_EXT_shared_texture_palette epoxy_has_gl_extension("GL_EXT_shared_texture_palette")
+#define GLEW_EXT_sparse_texture2 epoxy_has_gl_extension("GL_EXT_sparse_texture2")
+#define GLEW_EXT_stencil_clear_tag epoxy_has_gl_extension("GL_EXT_stencil_clear_tag")
+#define GLEW_EXT_stencil_two_side epoxy_has_gl_extension("GL_EXT_stencil_two_side")
+#define GLEW_EXT_stencil_wrap epoxy_has_gl_extension("GL_EXT_stencil_wrap")
+#define GLEW_EXT_subtexture epoxy_has_gl_extension("GL_EXT_subtexture")
+#define GLEW_EXT_texture epoxy_has_gl_extension("GL_EXT_texture")
+#define GLEW_EXT_texture3D epoxy_has_gl_extension("GL_EXT_texture3D")
+#define GLEW_EXT_texture_array epoxy_has_gl_extension("GL_EXT_texture_array")
+#define GLEW_EXT_texture_buffer_object epoxy_has_gl_extension("GL_EXT_texture_buffer_object")
+#define GLEW_EXT_texture_compression_dxt1 epoxy_has_gl_extension("GL_EXT_texture_compression_dxt1")
+#define GLEW_EXT_texture_compression_latc epoxy_has_gl_extension("GL_EXT_texture_compression_latc")
+#define GLEW_EXT_texture_compression_rgtc epoxy_has_gl_extension("GL_EXT_texture_compression_rgtc")
+#define GLEW_EXT_texture_compression_s3tc epoxy_has_gl_extension("GL_EXT_texture_compression_s3tc")
+#define GLEW_EXT_texture_cube_map epoxy_has_gl_extension("GL_EXT_texture_cube_map")
+#define GLEW_EXT_texture_edge_clamp epoxy_has_gl_extension("GL_EXT_texture_edge_clamp")
+#define GLEW_EXT_texture_env epoxy_has_gl_extension("GL_EXT_texture_env")
+#define GLEW_EXT_texture_env_add epoxy_has_gl_extension("GL_EXT_texture_env_add")
+#define GLEW_EXT_texture_env_combine epoxy_has_gl_extension("GL_EXT_texture_env_combine")
+#define GLEW_EXT_texture_env_dot3 epoxy_has_gl_extension("GL_EXT_texture_env_dot3")
+#define GLEW_EXT_texture_filter_anisotropic epoxy_has_gl_extension("GL_EXT_texture_filter_anisotropic")
+#define GLEW_EXT_texture_filter_minmax epoxy_has_gl_extension("GL_EXT_texture_filter_minmax")
+#define GLEW_EXT_texture_integer epoxy_has_gl_extension("GL_EXT_texture_integer")
+#define GLEW_EXT_texture_lod_bias epoxy_has_gl_extension("GL_EXT_texture_lod_bias")
+#define GLEW_EXT_texture_mirror_clamp epoxy_has_gl_extension("GL_EXT_texture_mirror_clamp")
+#define GLEW_EXT_texture_object epoxy_has_gl_extension("GL_EXT_texture_object")
+#define GLEW_EXT_texture_perturb_normal epoxy_has_gl_extension("GL_EXT_texture_perturb_normal")
+#define GLEW_EXT_texture_rectangle epoxy_has_gl_extension("GL_EXT_texture_rectangle")
+#define GLEW_EXT_texture_sRGB epoxy_has_gl_extension("GL_EXT_texture_sRGB")
+#define GLEW_EXT_texture_sRGB_decode epoxy_has_gl_extension("GL_EXT_texture_sRGB_decode")
+#define GLEW_EXT_texture_shared_exponent epoxy_has_gl_extension("GL_EXT_texture_shared_exponent")
+#define GLEW_EXT_texture_snorm epoxy_has_gl_extension("GL_EXT_texture_snorm")
+#define GLEW_EXT_texture_swizzle epoxy_has_gl_extension("GL_EXT_texture_swizzle")
+#define GLEW_EXT_timer_query epoxy_has_gl_extension("GL_EXT_timer_query")
+#define GLEW_EXT_transform_feedback epoxy_has_gl_extension("GL_EXT_transform_feedback")
+#define GLEW_EXT_vertex_array epoxy_has_gl_extension("GL_EXT_vertex_array")
+#define GLEW_EXT_vertex_array_bgra epoxy_has_gl_extension("GL_EXT_vertex_array_bgra")
+#define GLEW_EXT_vertex_attrib_64bit epoxy_has_gl_extension("GL_EXT_vertex_attrib_64bit")
+#define GLEW_EXT_vertex_shader epoxy_has_gl_extension("GL_EXT_vertex_shader")
+#define GLEW_EXT_vertex_weighting epoxy_has_gl_extension("GL_EXT_vertex_weighting")
+#define GLEW_EXT_window_rectangles epoxy_has_gl_extension("GL_EXT_window_rectangles")
+#define GLEW_EXT_x11_sync_object epoxy_has_gl_extension("GL_EXT_x11_sync_object")
+#define GLEW_GREMEDY_frame_terminator epoxy_has_gl_extension("GL_GREMEDY_frame_terminator")
+#define GLEW_GREMEDY_string_marker epoxy_has_gl_extension("GL_GREMEDY_string_marker")
+#define GLEW_HP_convolution_border_modes epoxy_has_gl_extension("GL_HP_convolution_border_modes")
+#define GLEW_HP_image_transform epoxy_has_gl_extension("GL_HP_image_transform")
+#define GLEW_HP_occlusion_test epoxy_has_gl_extension("GL_HP_occlusion_test")
+#define GLEW_HP_texture_lighting epoxy_has_gl_extension("GL_HP_texture_lighting")
+#define GLEW_IBM_cull_vertex epoxy_has_gl_extension("GL_IBM_cull_vertex")
+#define GLEW_IBM_multimode_draw_arrays epoxy_has_gl_extension("GL_IBM_multimode_draw_arrays")
+#define GLEW_IBM_rasterpos_clip epoxy_has_gl_extension("GL_IBM_rasterpos_clip")
+#define GLEW_IBM_static_data epoxy_has_gl_extension("GL_IBM_static_data")
+#define GLEW_IBM_texture_mirrored_repeat epoxy_has_gl_extension("GL_IBM_texture_mirrored_repeat")
+#define GLEW_IBM_vertex_array_lists epoxy_has_gl_extension("GL_IBM_vertex_array_lists")
+#define GLEW_INGR_color_clamp epoxy_has_gl_extension("GL_INGR_color_clamp")
+#define GLEW_INGR_interlace_read epoxy_has_gl_extension("GL_INGR_interlace_read")
+#define GLEW_INTEL_conservative_rasterization epoxy_has_gl_extension("GL_INTEL_conservative_rasterization")
+#define GLEW_INTEL_fragment_shader_ordering epoxy_has_gl_extension("GL_INTEL_fragment_shader_ordering")
+#define GLEW_INTEL_framebuffer_CMAA epoxy_has_gl_extension("GL_INTEL_framebuffer_CMAA")
+#define GLEW_INTEL_map_texture epoxy_has_gl_extension("GL_INTEL_map_texture")
+#define GLEW_INTEL_parallel_arrays epoxy_has_gl_extension("GL_INTEL_parallel_arrays")
+#define GLEW_INTEL_performance_query epoxy_has_gl_extension("GL_INTEL_performance_query")
+#define GLEW_INTEL_texture_scissor epoxy_has_gl_extension("GL_INTEL_texture_scissor")
+#define GLEW_KHR_blend_equation_advanced epoxy_has_gl_extension("GL_KHR_blend_equation_advanced")
+#define GLEW_KHR_blend_equation_advanced_coherent epoxy_has_gl_extension("GL_KHR_blend_equation_advanced_coherent")
+#define GLEW_KHR_context_flush_control epoxy_has_gl_extension("GL_KHR_context_flush_control")
+#define GLEW_KHR_debug epoxy_has_gl_extension("GL_KHR_debug")
+#define GLEW_KHR_no_error epoxy_has_gl_extension("GL_KHR_no_error")
+#define GLEW_KHR_robust_buffer_access_behavior epoxy_has_gl_extension("GL_KHR_robust_buffer_access_behavior")
+#define GLEW_KHR_robustness epoxy_has_gl_extension("GL_KHR_robustness")
+#define GLEW_KHR_texture_compression_astc_hdr epoxy_has_gl_extension("GL_KHR_texture_compression_astc_hdr")
+#define GLEW_KHR_texture_compression_astc_ldr epoxy_has_gl_extension("GL_KHR_texture_compression_astc_ldr")
+#define GLEW_KHR_texture_compression_astc_sliced_3d epoxy_has_gl_extension("GL_KHR_texture_compression_astc_sliced_3d")
+#define GLEW_KTX_buffer_region epoxy_has_gl_extension("GL_KTX_buffer_region")
+#define GLEW_MESAX_texture_stack epoxy_has_gl_extension("GL_MESAX_texture_stack")
+#define GLEW_MESA_pack_invert epoxy_has_gl_extension("GL_MESA_pack_invert")
+#define GLEW_MESA_resize_buffers epoxy_has_gl_extension("GL_MESA_resize_buffers")
+#define GLEW_MESA_shader_integer_functions epoxy_has_gl_extension("GL_MESA_shader_integer_functions")
+#define GLEW_MESA_window_pos epoxy_has_gl_extension("GL_MESA_window_pos")
+#define GLEW_MESA_ycbcr_texture epoxy_has_gl_extension("GL_MESA_ycbcr_texture")
+#define GLEW_NVX_blend_equation_advanced_multi_draw_buffers epoxy_has_gl_extension("GL_NVX_blend_equation_advanced_multi_draw_buffers")
+#define GLEW_NVX_conditional_render epoxy_has_gl_extension("GL_NVX_conditional_render")
+#define GLEW_NVX_gpu_memory_info epoxy_has_gl_extension("GL_NVX_gpu_memory_info")
+#define GLEW_NVX_linked_gpu_multicast epoxy_has_gl_extension("GL_NVX_linked_gpu_multicast")
+#define GLEW_NV_bindless_multi_draw_indirect epoxy_has_gl_extension("GL_NV_bindless_multi_draw_indirect")
+#define GLEW_NV_bindless_multi_draw_indirect_count epoxy_has_gl_extension("GL_NV_bindless_multi_draw_indirect_count")
+#define GLEW_NV_bindless_texture epoxy_has_gl_extension("GL_NV_bindless_texture")
+#define GLEW_NV_blend_equation_advanced epoxy_has_gl_extension("GL_NV_blend_equation_advanced")
+#define GLEW_NV_blend_equation_advanced_coherent epoxy_has_gl_extension("GL_NV_blend_equation_advanced_coherent")
+#define GLEW_NV_blend_square epoxy_has_gl_extension("GL_NV_blend_square")
+#define GLEW_NV_clip_space_w_scaling epoxy_has_gl_extension("GL_NV_clip_space_w_scaling")
+#define GLEW_NV_command_list epoxy_has_gl_extension("GL_NV_command_list")
+#define GLEW_NV_compute_program5 epoxy_has_gl_extension("GL_NV_compute_program5")
+#define GLEW_NV_conditional_render epoxy_has_gl_extension("GL_NV_conditional_render")
+#define GLEW_NV_conservative_raster epoxy_has_gl_extension("GL_NV_conservative_raster")
+#define GLEW_NV_conservative_raster_dilate epoxy_has_gl_extension("GL_NV_conservative_raster_dilate")
+#define GLEW_NV_conservative_raster_pre_snap_triangles epoxy_has_gl_extension("GL_NV_conservative_raster_pre_snap_triangles")
+#define GLEW_NV_copy_depth_to_color epoxy_has_gl_extension("GL_NV_copy_depth_to_color")
+#define GLEW_NV_copy_image epoxy_has_gl_extension("GL_NV_copy_image")
+#define GLEW_NV_deep_texture3D epoxy_has_gl_extension("GL_NV_deep_texture3D")
+#define GLEW_NV_depth_buffer_float epoxy_has_gl_extension("GL_NV_depth_buffer_float")
+#define GLEW_NV_depth_clamp epoxy_has_gl_extension("GL_NV_depth_clamp")
+#define GLEW_NV_depth_range_unclamped epoxy_has_gl_extension("GL_NV_depth_range_unclamped")
+#define GLEW_NV_draw_texture epoxy_has_gl_extension("GL_NV_draw_texture")
+#define GLEW_NV_draw_vulkan_image epoxy_has_gl_extension("GL_NV_draw_vulkan_image")
+#define GLEW_NV_evaluators epoxy_has_gl_extension("GL_NV_evaluators")
+#define GLEW_NV_explicit_multisample epoxy_has_gl_extension("GL_NV_explicit_multisample")
+#define GLEW_NV_fence epoxy_has_gl_extension("GL_NV_fence")
+#define GLEW_NV_fill_rectangle epoxy_has_gl_extension("GL_NV_fill_rectangle")
+#define GLEW_NV_float_buffer epoxy_has_gl_extension("GL_NV_float_buffer")
+#define GLEW_NV_fog_distance epoxy_has_gl_extension("GL_NV_fog_distance")
+#define GLEW_NV_fragment_coverage_to_color epoxy_has_gl_extension("GL_NV_fragment_coverage_to_color")
+#define GLEW_NV_fragment_program epoxy_has_gl_extension("GL_NV_fragment_program")
+#define GLEW_NV_fragment_program2 epoxy_has_gl_extension("GL_NV_fragment_program2")
+#define GLEW_NV_fragment_program4 epoxy_has_gl_extension("GL_NV_fragment_program4")
+#define GLEW_NV_fragment_program_option epoxy_has_gl_extension("GL_NV_fragment_program_option")
+#define GLEW_NV_fragment_shader_interlock epoxy_has_gl_extension("GL_NV_fragment_shader_interlock")
+#define GLEW_NV_framebuffer_mixed_samples epoxy_has_gl_extension("GL_NV_framebuffer_mixed_samples")
+#define GLEW_NV_framebuffer_multisample_coverage epoxy_has_gl_extension("GL_NV_framebuffer_multisample_coverage")
+#define GLEW_NV_geometry_program4 epoxy_has_gl_extension("GL_NV_geometry_program4")
+#define GLEW_NV_geometry_shader4 epoxy_has_gl_extension("GL_NV_geometry_shader4")
+#define GLEW_NV_geometry_shader_passthrough epoxy_has_gl_extension("GL_NV_geometry_shader_passthrough")
+#define GLEW_NV_gpu_multicast epoxy_has_gl_extension("GL_NV_gpu_multicast")
+#define GLEW_NV_gpu_program4 epoxy_has_gl_extension("GL_NV_gpu_program4")
+#define GLEW_NV_gpu_program5 epoxy_has_gl_extension("GL_NV_gpu_program5")
+#define GLEW_NV_gpu_program5_mem_extended epoxy_has_gl_extension("GL_NV_gpu_program5_mem_extended")
+#define GLEW_NV_gpu_program_fp64 epoxy_has_gl_extension("GL_NV_gpu_program_fp64")
+#define GLEW_NV_gpu_shader5 epoxy_has_gl_extension("GL_NV_gpu_shader5")
+#define GLEW_NV_half_float epoxy_has_gl_extension("GL_NV_half_float")
+#define GLEW_NV_internalformat_sample_query epoxy_has_gl_extension("GL_NV_internalformat_sample_query")
+#define GLEW_NV_light_max_exponent epoxy_has_gl_extension("GL_NV_light_max_exponent")
+#define GLEW_NV_multisample_coverage epoxy_has_gl_extension("GL_NV_multisample_coverage")
+#define GLEW_NV_multisample_filter_hint epoxy_has_gl_extension("GL_NV_multisample_filter_hint")
+#define GLEW_NV_occlusion_query epoxy_has_gl_extension("GL_NV_occlusion_query")
+#define GLEW_NV_packed_depth_stencil epoxy_has_gl_extension("GL_NV_packed_depth_stencil")
+#define GLEW_NV_parameter_buffer_object epoxy_has_gl_extension("GL_NV_parameter_buffer_object")
+#define GLEW_NV_parameter_buffer_object2 epoxy_has_gl_extension("GL_NV_parameter_buffer_object2")
+#define GLEW_NV_path_rendering epoxy_has_gl_extension("GL_NV_path_rendering")
+#define GLEW_NV_path_rendering_shared_edge epoxy_has_gl_extension("GL_NV_path_rendering_shared_edge")
+#define GLEW_NV_pixel_data_range epoxy_has_gl_extension("GL_NV_pixel_data_range")
+#define GLEW_NV_point_sprite epoxy_has_gl_extension("GL_NV_point_sprite")
+#define GLEW_NV_present_video epoxy_has_gl_extension("GL_NV_present_video")
+#define GLEW_NV_primitive_restart epoxy_has_gl_extension("GL_NV_primitive_restart")
+#define GLEW_NV_register_combiners epoxy_has_gl_extension("GL_NV_register_combiners")
+#define GLEW_NV_register_combiners2 epoxy_has_gl_extension("GL_NV_register_combiners2")
+#define GLEW_NV_robustness_video_memory_purge epoxy_has_gl_extension("GL_NV_robustness_video_memory_purge")
+#define GLEW_NV_sample_locations epoxy_has_gl_extension("GL_NV_sample_locations")
+#define GLEW_NV_sample_mask_override_coverage epoxy_has_gl_extension("GL_NV_sample_mask_override_coverage")
+#define GLEW_NV_shader_atomic_counters epoxy_has_gl_extension("GL_NV_shader_atomic_counters")
+#define GLEW_NV_shader_atomic_float epoxy_has_gl_extension("GL_NV_shader_atomic_float")
+#define GLEW_NV_shader_atomic_float64 epoxy_has_gl_extension("GL_NV_shader_atomic_float64")
+#define GLEW_NV_shader_atomic_fp16_vector epoxy_has_gl_extension("GL_NV_shader_atomic_fp16_vector")
+#define GLEW_NV_shader_atomic_int64 epoxy_has_gl_extension("GL_NV_shader_atomic_int64")
+#define GLEW_NV_shader_buffer_load epoxy_has_gl_extension("GL_NV_shader_buffer_load")
+#define GLEW_NV_shader_storage_buffer_object epoxy_has_gl_extension("GL_NV_shader_storage_buffer_object")
+#define GLEW_NV_shader_thread_group epoxy_has_gl_extension("GL_NV_shader_thread_group")
+#define GLEW_NV_shader_thread_shuffle epoxy_has_gl_extension("GL_NV_shader_thread_shuffle")
+#define GLEW_NV_stereo_view_rendering epoxy_has_gl_extension("GL_NV_stereo_view_rendering")
+#define GLEW_NV_tessellation_program5 epoxy_has_gl_extension("GL_NV_tessellation_program5")
+#define GLEW_NV_texgen_emboss epoxy_has_gl_extension("GL_NV_texgen_emboss")
+#define GLEW_NV_texgen_reflection epoxy_has_gl_extension("GL_NV_texgen_reflection")
+#define GLEW_NV_texture_barrier epoxy_has_gl_extension("GL_NV_texture_barrier")
+#define GLEW_NV_texture_compression_vtc epoxy_has_gl_extension("GL_NV_texture_compression_vtc")
+#define GLEW_NV_texture_env_combine4 epoxy_has_gl_extension("GL_NV_texture_env_combine4")
+#define GLEW_NV_texture_expand_normal epoxy_has_gl_extension("GL_NV_texture_expand_normal")
+#define GLEW_NV_texture_multisample epoxy_has_gl_extension("GL_NV_texture_multisample")
+#define GLEW_NV_texture_rectangle epoxy_has_gl_extension("GL_NV_texture_rectangle")
+#define GLEW_NV_texture_shader epoxy_has_gl_extension("GL_NV_texture_shader")
+#define GLEW_NV_texture_shader2 epoxy_has_gl_extension("GL_NV_texture_shader2")
+#define GLEW_NV_texture_shader3 epoxy_has_gl_extension("GL_NV_texture_shader3")
+#define GLEW_NV_transform_feedback epoxy_has_gl_extension("GL_NV_transform_feedback")
+#define GLEW_NV_transform_feedback2 epoxy_has_gl_extension("GL_NV_transform_feedback2")
+#define GLEW_NV_uniform_buffer_unified_memory epoxy_has_gl_extension("GL_NV_uniform_buffer_unified_memory")
+#define GLEW_NV_vdpau_interop epoxy_has_gl_extension("GL_NV_vdpau_interop")
+#define GLEW_NV_vertex_array_range epoxy_has_gl_extension("GL_NV_vertex_array_range")
+#define GLEW_NV_vertex_array_range2 epoxy_has_gl_extension("GL_NV_vertex_array_range2")
+#define GLEW_NV_vertex_attrib_integer_64bit epoxy_has_gl_extension("GL_NV_vertex_attrib_integer_64bit")
+#define GLEW_NV_vertex_buffer_unified_memory epoxy_has_gl_extension("GL_NV_vertex_buffer_unified_memory")
+#define GLEW_NV_vertex_program epoxy_has_gl_extension("GL_NV_vertex_program")
+#define GLEW_NV_vertex_program1_1 epoxy_has_gl_extension("GL_NV_vertex_program1_1")
+#define GLEW_NV_vertex_program2 epoxy_has_gl_extension("GL_NV_vertex_program2")
+#define GLEW_NV_vertex_program2_option epoxy_has_gl_extension("GL_NV_vertex_program2_option")
+#define GLEW_NV_vertex_program3 epoxy_has_gl_extension("GL_NV_vertex_program3")
+#define GLEW_NV_vertex_program4 epoxy_has_gl_extension("GL_NV_vertex_program4")
+#define GLEW_NV_video_capture epoxy_has_gl_extension("GL_NV_video_capture")
+#define GLEW_NV_viewport_array2 epoxy_has_gl_extension("GL_NV_viewport_array2")
+#define GLEW_NV_viewport_swizzle epoxy_has_gl_extension("GL_NV_viewport_swizzle")
+#define GLEW_OES_byte_coordinates epoxy_has_gl_extension("GL_OES_byte_coordinates")
+#define GLEW_OES_compressed_paletted_texture epoxy_has_gl_extension("GL_OES_compressed_paletted_texture")
+#define GLEW_OES_read_format epoxy_has_gl_extension("GL_OES_read_format")
+#define GLEW_OES_single_precision epoxy_has_gl_extension("GL_OES_single_precision")
+#define GLEW_OML_interlace epoxy_has_gl_extension("GL_OML_interlace")
+#define GLEW_OML_resample epoxy_has_gl_extension("GL_OML_resample")
+#define GLEW_OML_subsample epoxy_has_gl_extension("GL_OML_subsample")
+#define GLEW_OVR_multiview epoxy_has_gl_extension("GL_OVR_multiview")
+#define GLEW_OVR_multiview2 epoxy_has_gl_extension("GL_OVR_multiview2")
+#define GLEW_PGI_misc_hints epoxy_has_gl_extension("GL_PGI_misc_hints")
+#define GLEW_PGI_vertex_hints epoxy_has_gl_extension("GL_PGI_vertex_hints")
+#define GLEW_REGAL_ES1_0_compatibility epoxy_has_gl_extension("GL_REGAL_ES1_0_compatibility")
+#define GLEW_REGAL_ES1_1_compatibility epoxy_has_gl_extension("GL_REGAL_ES1_1_compatibility")
+#define GLEW_REGAL_enable epoxy_has_gl_extension("GL_REGAL_enable")
+#define GLEW_REGAL_error_string epoxy_has_gl_extension("GL_REGAL_error_string")
+#define GLEW_REGAL_extension_query epoxy_has_gl_extension("GL_REGAL_extension_query")
+#define GLEW_REGAL_log epoxy_has_gl_extension("GL_REGAL_log")
+#define GLEW_REGAL_proc_address epoxy_has_gl_extension("GL_REGAL_proc_address")
+#define GLEW_REND_screen_coordinates epoxy_has_gl_extension("GL_REND_screen_coordinates")
+#define GLEW_S3_s3tc epoxy_has_gl_extension("GL_S3_s3tc")
+#define GLEW_SGIS_color_range epoxy_has_gl_extension("GL_SGIS_color_range")
+#define GLEW_SGIS_detail_texture epoxy_has_gl_extension("GL_SGIS_detail_texture")
+#define GLEW_SGIS_fog_function epoxy_has_gl_extension("GL_SGIS_fog_function")
+#define GLEW_SGIS_generate_mipmap epoxy_has_gl_extension("GL_SGIS_generate_mipmap")
+#define GLEW_SGIS_multisample epoxy_has_gl_extension("GL_SGIS_multisample")
+#define GLEW_SGIS_pixel_texture epoxy_has_gl_extension("GL_SGIS_pixel_texture")
+#define GLEW_SGIS_point_line_texgen epoxy_has_gl_extension("GL_SGIS_point_line_texgen")
+#define GLEW_SGIS_sharpen_texture epoxy_has_gl_extension("GL_SGIS_sharpen_texture")
+#define GLEW_SGIS_texture4D epoxy_has_gl_extension("GL_SGIS_texture4D")
+#define GLEW_SGIS_texture_border_clamp epoxy_has_gl_extension("GL_SGIS_texture_border_clamp")
+#define GLEW_SGIS_texture_edge_clamp epoxy_has_gl_extension("GL_SGIS_texture_edge_clamp")
+#define GLEW_SGIS_texture_filter4 epoxy_has_gl_extension("GL_SGIS_texture_filter4")
+#define GLEW_SGIS_texture_lod epoxy_has_gl_extension("GL_SGIS_texture_lod")
+#define GLEW_SGIS_texture_select epoxy_has_gl_extension("GL_SGIS_texture_select")
+#define GLEW_SGIX_async epoxy_has_gl_extension("GL_SGIX_async")
+#define GLEW_SGIX_async_histogram epoxy_has_gl_extension("GL_SGIX_async_histogram")
+#define GLEW_SGIX_async_pixel epoxy_has_gl_extension("GL_SGIX_async_pixel")
+#define GLEW_SGIX_blend_alpha_minmax epoxy_has_gl_extension("GL_SGIX_blend_alpha_minmax")
+#define GLEW_SGIX_clipmap epoxy_has_gl_extension("GL_SGIX_clipmap")
+#define GLEW_SGIX_convolution_accuracy epoxy_has_gl_extension("GL_SGIX_convolution_accuracy")
+#define GLEW_SGIX_depth_texture epoxy_has_gl_extension("GL_SGIX_depth_texture")
+#define GLEW_SGIX_flush_raster epoxy_has_gl_extension("GL_SGIX_flush_raster")
+#define GLEW_SGIX_fog_offset epoxy_has_gl_extension("GL_SGIX_fog_offset")
+#define GLEW_SGIX_fog_texture epoxy_has_gl_extension("GL_SGIX_fog_texture")
+#define GLEW_SGIX_fragment_specular_lighting epoxy_has_gl_extension("GL_SGIX_fragment_specular_lighting")
+#define GLEW_SGIX_framezoom epoxy_has_gl_extension("GL_SGIX_framezoom")
+#define GLEW_SGIX_interlace epoxy_has_gl_extension("GL_SGIX_interlace")
+#define GLEW_SGIX_ir_instrument1 epoxy_has_gl_extension("GL_SGIX_ir_instrument1")
+#define GLEW_SGIX_list_priority epoxy_has_gl_extension("GL_SGIX_list_priority")
+#define GLEW_SGIX_pixel_texture epoxy_has_gl_extension("GL_SGIX_pixel_texture")
+#define GLEW_SGIX_pixel_texture_bits epoxy_has_gl_extension("GL_SGIX_pixel_texture_bits")
+#define GLEW_SGIX_reference_plane epoxy_has_gl_extension("GL_SGIX_reference_plane")
+#define GLEW_SGIX_resample epoxy_has_gl_extension("GL_SGIX_resample")
+#define GLEW_SGIX_shadow epoxy_has_gl_extension("GL_SGIX_shadow")
+#define GLEW_SGIX_shadow_ambient epoxy_has_gl_extension("GL_SGIX_shadow_ambient")
+#define GLEW_SGIX_sprite epoxy_has_gl_extension("GL_SGIX_sprite")
+#define GLEW_SGIX_tag_sample_buffer epoxy_has_gl_extension("GL_SGIX_tag_sample_buffer")
+#define GLEW_SGIX_texture_add_env epoxy_has_gl_extension("GL_SGIX_texture_add_env")
+#define GLEW_SGIX_texture_coordinate_clamp epoxy_has_gl_extension("GL_SGIX_texture_coordinate_clamp")
+#define GLEW_SGIX_texture_lod_bias epoxy_has_gl_extension("GL_SGIX_texture_lod_bias")
+#define GLEW_SGIX_texture_multi_buffer epoxy_has_gl_extension("GL_SGIX_texture_multi_buffer")
+#define GLEW_SGIX_texture_range epoxy_has_gl_extension("GL_SGIX_texture_range")
+#define GLEW_SGIX_texture_scale_bias epoxy_has_gl_extension("GL_SGIX_texture_scale_bias")
+#define GLEW_SGIX_vertex_preclip epoxy_has_gl_extension("GL_SGIX_vertex_preclip")
+#define GLEW_SGIX_vertex_preclip_hint epoxy_has_gl_extension("GL_SGIX_vertex_preclip_hint")
+#define GLEW_SGIX_ycrcb epoxy_has_gl_extension("GL_SGIX_ycrcb")
+#define GLEW_SGI_color_matrix epoxy_has_gl_extension("GL_SGI_color_matrix")
+#define GLEW_SGI_color_table epoxy_has_gl_extension("GL_SGI_color_table")
+#define GLEW_SGI_texture_color_table epoxy_has_gl_extension("GL_SGI_texture_color_table")
+#define GLEW_SUNX_constant_data epoxy_has_gl_extension("GL_SUNX_constant_data")
+#define GLEW_SUN_convolution_border_modes epoxy_has_gl_extension("GL_SUN_convolution_border_modes")
+#define GLEW_SUN_global_alpha epoxy_has_gl_extension("GL_SUN_global_alpha")
+#define GLEW_SUN_mesh_array epoxy_has_gl_extension("GL_SUN_mesh_array")
+#define GLEW_SUN_read_video_pixels epoxy_has_gl_extension("GL_SUN_read_video_pixels")
+#define GLEW_SUN_slice_accum epoxy_has_gl_extension("GL_SUN_slice_accum")
+#define GLEW_SUN_triangle_list epoxy_has_gl_extension("GL_SUN_triangle_list")
+#define GLEW_SUN_vertex epoxy_has_gl_extension("GL_SUN_vertex")
+#define GLEW_WIN_phong_shading epoxy_has_gl_extension("GL_WIN_phong_shading")
+#define GLEW_WIN_specular_fog epoxy_has_gl_extension("GL_WIN_specular_fog")
+#define GLEW_WIN_swap_hint epoxy_has_gl_extension("GL_WIN_swap_hint")
+
+/* ------------------------------------------------------------------------- */
+
+/* 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 */
+
+/* string codes */
+#define GLEW_VERSION 1
+#define GLEW_VERSION_MAJOR 2
+#define GLEW_VERSION_MINOR 3
+#define GLEW_VERSION_MICRO 4
+
+/* ------------------------------------------------------------------------- */
+
+/* GLEW version info */
+
+/*
+VERSION 2.0.0
+VERSION_MAJOR 2
+VERSION_MINOR 0
+VERSION_MICRO 0
+*/
+
+/* API */
+static inline GLenum glewInit (void)
+{
+ return GLEW_OK;
+}
+
+static inline GLboolean glewIsSupported (const char *name)
+{
+ return epoxy_has_gl_extension(name);
+}
+
+#define glewIsExtensionSupported(x) glewIsSupported(x)
+
+static GLboolean glewExperimental = true;
+static inline GLboolean glewGetExtension (const char *name)
+{
+ return epoxy_has_gl_extension(name);
+}
+
+static inline const char * glewGetErrorString (GLenum error)
+{
+ switch (error) {
+ case GLEW_NO_ERROR:
+ return "No error";
+ case GLEW_ERROR_NO_GL_VERSION:
+ return "Missing GL version";
+ case GLEW_ERROR_GL_VERSION_10_ONLY:
+ return "Wrong GL version"; // XXX
+ case GLEW_ERROR_GLX_VERSION_11_ONLY:
+ return "Wrong GLX version"; // XXX
+ default:
+ return "Unknown error";
+ }
+}
+
+static inline const char * glewGetString (GLenum name)
+{
+ switch (name) {
+ case GLEW_VERSION:
+ return "99.0.0";
+ }
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __glew_h__ */
diff --git a/glew.pc b/glew.pc
new file mode 100644
index 00000000000..c11157d9ca6
--- /dev/null
+++ b/glew.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=/usr/lib
+includedir=${prefix}/include
+
+Name: glew-libepoxy
+Description: GLEW-like wrapper around libepoxy
+Version: 99.0.0
+Cflags: -I${includedir}
+Libs: -L${libdir} -lGLEW
+Requires: glu
diff --git a/libGLEW.so b/libGLEW.so
new file mode 100644
index 00000000000..ef84edb8388
--- /dev/null
+++ b/libGLEW.so
@@ -0,0 +1 @@
+INPUT(-lepoxy)