1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */
28 module derelict.opengl.extloader;
29 
30 private
31 {
32     import std.algorithm;
33  
34     import derelict.opengl.extfuncs;
35     import derelict.opengl.gltypes;
36     import derelict.opengl.glfuncs;
37     import derelict.util.compat;
38     import derelict.util.exception;
39 
40     version (darwin) version = CGL;
41     else version (OSX) version = CGL;
42     else version (linux) version = GLX;
43     else version (freebsd) version = GLX;
44     else version (FreeBSD) version = GLX;
45 
46     version(Windows)
47     {
48         import derelict.opengl.wgl;
49         import derelict.util.wintypes;
50     }
51 
52     version(GLX)
53     {
54         import derelict.opengl.glx;
55     }
56 
57     version (CGL)
58     {
59         import derelict.opengl.cgl;
60         import derelict.opengl.gl;
61     }
62 }
63 
64 version = DerelictGL_ALL;
65 
66 version(DerelictGL_ALL)
67 {
68     version = DerelictGL_ARB;
69     version = DerelictGL_EXT;
70     version = DerelictGL_NV;
71     version = DerelictGL_ATI;
72     version = DerelictGL_AMD;
73     version = DerelictGL_SGI;
74     version = DerelictGL_SGIS;
75     version = DerelictGL_SGIX;
76     version = DerelictGL_HP;
77     version = DerelictGL_PGI;
78     version = DerelictGL_IBM;
79     version = DerelictGL_WIN;
80     version = DerelictGL_INTEL;
81     version = DerelictGL_REND;
82     version = DerelictGL_APPLE;
83     version = DerelictGL_SUNX;
84     version = DerelictGL_SUN;
85     version = DerelictGL_INGR;
86     version = DerelictGL_MESA;
87     version = DerelictGL_3DFX;
88     version = DerelictGL_OML;
89     version = DerelictGL_S3;
90     version = DerelictGL_OES;
91     version = DerelictGL_GREMEDY;
92     version = DerelictGL_MESAX;
93     version = DerelictGL_I3D;
94     version = DerelictGL_3DL;
95 }
96 
97 private
98 {
99     string extStr;
100     version(Windows) string winExtStr;
101     GLExtensionState[string] loaded;
102 }
103 
104 package
105 {
106     void extLoadAll()
107     {
108         extLoadCommon();
109         extLoadPlatform();
110     }
111 
112     void extLoadMinimal()
113     {
114         loaded["GL_ARB_multitexture"] = load_GL_ARB_multitexture();
115     }
116 
117     string[] getLoadedExtensionNames()
118     {
119         auto keys = loaded.keys;
120         string[] ret;
121         foreach(key; keys)
122         {
123             if(GLExtensionState.Loaded == loaded[key])
124                 ret ~= key;
125         }
126         ret.sort;
127         return ret;
128     }
129 
130     string[] getNotLoadedExtensionNames()
131     {
132         auto keys = loaded.keys;
133         string[] ret;
134         foreach(key; keys)
135         {
136             GLExtensionState state = loaded[key];
137             if(GLExtensionState.Loaded != state)
138             {
139                 if(GLExtensionState.DriverUnsupported == state)
140                     ret ~= key ~ " (Unsupported by Driver)";
141                 else
142                     ret ~= key ~ " (Failed to Load)";
143             }
144         }
145         ret.sort;
146         return ret;
147     }
148 
149     bool extIsSupported(string extName)
150     {
151         if(extStr is null) extStr = toDString(glGetString(GL_EXTENSIONS));
152         auto index = extStr.findStr(extName);
153 
154         bool verify(string s)
155         {
156             auto idx = index + extName.length;
157             if(idx >= s.length || s[idx] == ' ' || s[idx] == '\0')
158                 return true;
159             return false;
160         }
161 
162         bool found;
163         if(index != -1)
164             found = verify(extStr);
165         version(Windows)
166         {
167             if(!found && winExtStr !is null)
168             {
169                 index = winExtStr.findStr(extName);
170                 if(index != -1)
171                     found = verify(winExtStr);
172             }
173         }
174         return found;
175     }
176 
177     GLExtensionState extGetState(string extName)
178     {
179         GLExtensionState* state = (extName in loaded);
180         return (state !is null) ? *state : GLExtensionState.DerelictUnsupported;
181     }
182 }
183 
184 private
185 {
186     void extLoadCommon()
187     {
188         version(DerelictGL_ARB)
189         {
190             loaded["GL_ARB_multitexture"] = load_GL_ARB_multitexture();
191             loaded["GL_ARB_transpose_matrix"] = load_GL_ARB_transpose_matrix();
192             loaded["GL_ARB_multisample"] = load_GL_ARB_multisample();
193             loaded["GL_ARB_texture_env_add"] = load_GL_ARB_texture_env_add();
194             loaded["GL_ARB_texture_cube_map"] = load_GL_ARB_texture_cube_map();
195             loaded["GL_ARB_texture_compression"] = load_GL_ARB_texture_compression();
196             loaded["GL_ARB_texture_border_clamp"] = load_GL_ARB_texture_border_clamp();
197             loaded["GL_ARB_point_parameters"] = load_GL_ARB_point_parameters();
198             loaded["GL_ARB_vertex_blend"] = load_GL_ARB_vertex_blend();
199             loaded["GL_ARB_matrix_palette"] = load_GL_ARB_matrix_palette();
200             loaded["GL_ARB_texture_env_combine"] = load_GL_ARB_texture_env_combine();
201             loaded["GL_ARB_texture_env_crossbar"] = load_GL_ARB_texture_env_crossbar();
202             loaded["GL_ARB_texture_env_dot3"] = load_GL_ARB_texture_env_dot3();
203             loaded["GL_ARB_texture_mirrored_repeat"] = load_GL_ARB_texture_mirrored_repeat();
204             loaded["GL_ARB_depth_texture"] = load_GL_ARB_depth_texture();
205             loaded["GL_ARB_shadow"] = load_GL_ARB_shadow();
206             loaded["GL_ARB_shadow_ambient"] = load_GL_ARB_shadow_ambient();
207             loaded["GL_ARB_window_pos"] = load_GL_ARB_window_pos();
208             loaded["GL_ARB_vertex_program"] = load_GL_ARB_vertex_program();
209             loaded["GL_ARB_fragment_program"] = load_GL_ARB_fragment_program();
210             loaded["GL_ARB_vertex_buffer_object"] = load_GL_ARB_vertex_buffer_object();
211             loaded["GL_ARB_occlusion_query"] = load_GL_ARB_occlusion_query();
212             loaded["GL_ARB_shader_objects"] = load_GL_ARB_shader_objects();
213             loaded["GL_ARB_vertex_shader"] = load_GL_ARB_vertex_shader();
214             loaded["GL_ARB_fragment_shader"] = load_GL_ARB_fragment_shader();
215             loaded["GL_ARB_shading_language_100"] = load_GL_ARB_shading_language_100();
216             loaded["GL_ARB_texture_non_power_of_two"] = load_GL_ARB_texture_non_power_of_two();
217             loaded["GL_ARB_point_sprite"] = load_GL_ARB_point_sprite();
218             loaded["GL_ARB_fragment_program_shadow"] = load_GL_ARB_fragment_program_shadow();
219             loaded["GL_ARB_draw_buffers"] = load_GL_ARB_draw_buffers();
220             loaded["GL_ARB_texture_rectangle"] = load_GL_ARB_texture_rectangle();
221             loaded["GL_ARB_color_buffer_float"] = load_GL_ARB_color_buffer_float();
222             loaded["GL_ARB_half_float_pixel"] = load_GL_ARB_half_float_pixel();
223             loaded["GL_ARB_texture_float"] = load_GL_ARB_texture_float();
224             loaded["GL_ARB_pixel_buffer_object"] = load_GL_ARB_pixel_buffer_object();
225             loaded["GL_ARB_depth_buffer_float"] = load_GL_ARB_depth_buffer_float();
226             loaded["GL_ARB_draw_instanced"] = load_GL_ARB_draw_instanced();
227             loaded["GL_ARB_framebuffer_object"] = load_GL_ARB_framebuffer_object();
228             loaded["GL_ARB_framebuffer_sRGB"] = load_GL_ARB_framebuffer_sRGB();
229             loaded["GL_ARB_geometry_shader4"] = load_GL_ARB_geometry_shader4();
230             loaded["GL_ARB_half_float_vertex"] = load_GL_ARB_half_float_vertex();
231             loaded["GL_ARB_imaging"] = load_GL_ARB_imaging();
232             loaded["GL_ARB_instanced_arrays"] = load_GL_ARB_instanced_arrays();
233             loaded["GL_ARB_texture_buffer_object"] = load_GL_ARB_texture_buffer_object();
234             loaded["GL_ARB_texture_compression_rgtc"] = load_GL_ARB_texture_compression_rgtc();
235             loaded["GL_ARB_texture_rg"] = load_GL_ARB_texture_rg();
236             loaded["GL_ARB_vertex_array_object"] = load_GL_ARB_vertex_array_object();
237             loaded["GL_ARB_copy_buffer"] = load_GL_ARB_copy_buffer();
238             loaded["GL_ARB_uniform_buffer_object"] = load_GL_ARB_uniform_buffer_object();
239             loaded["GL_ARB_vertex_array_bgra"] = load_GL_ARB_vertex_array_bgra();
240             loaded["GL_ARB_draw_elements_base_vertex"] = load_GL_ARB_draw_elements_base_vertex();
241             loaded["GL_ARB_vertex_attrib_64bit"] = load_GL_ARB_vertex_attrib_64bit();
242             loaded["GL_ARB_provoking_vertex"] = load_GL_ARB_provoking_vertex();
243             loaded["GL_ARB_sync"] = load_GL_ARB_sync();
244             loaded["GL_ARB_texture_multisample"] = load_GL_ARB_texture_multisample();
245             loaded["GL_ARB_viewport_array"] = load_GL_ARB_viewport_array();
246             loaded["GL_ARB_cl_event"] = load_GL_ARB_cl_event();
247             loaded["GL_ARB_debug_output"] = load_GL_ARB_debug_output();
248             loaded["GL_ARB_robustness"] = load_GL_ARB_robustness();
249             loaded["GL_ARB_shader_stencil_export"] = load_GL_ARB_shader_stencil_export();
250             loaded["GL_ARB_compatibility"] = load_GL_ARB_compatibility();
251             loaded["GL_ARB_depth_clamp"] = load_GL_ARB_depth_clamp();
252             loaded["GL_ARB_blend_func_extended"] = load_GL_ARB_blend_func_extended();
253             loaded["GL_ARB_sampler_objects"] = load_GL_ARB_sampler_objects();
254             loaded["GL_ARB_timer_query"] = load_GL_ARB_timer_query();
255         }
256 
257         version(DerelictGL_EXT)
258         {
259             loaded["GL_EXT_abgr"] = load_GL_EXT_abgr();
260             loaded["GL_EXT_blend_color"] = load_GL_EXT_blend_color();
261             loaded["GL_EXT_polygon_offset"] = load_GL_EXT_polygon_offset();
262             loaded["GL_EXT_texture"] = load_GL_EXT_texture();
263             loaded["GL_EXT_texture3D"] = load_GL_EXT_texture3D();
264             loaded["GL_EXT_subtexture"] = load_GL_EXT_subtexture();
265             loaded["GL_EXT_copy_texture"] = load_GL_EXT_copy_texture();
266             loaded["GL_EXT_histogram"] = load_GL_EXT_histogram();
267             loaded["GL_EXT_convolution"] = load_GL_EXT_convolution();
268             loaded["GL_EXT_cmyka"] = load_GL_EXT_cmyka();
269             loaded["GL_EXT_texture_object"] = load_GL_EXT_texture_object();
270             loaded["GL_EXT_packed_pixels"] = load_GL_EXT_packed_pixels();
271             loaded["GL_EXT_rescale_normal"] = load_GL_EXT_rescale_normal();
272             loaded["GL_EXT_vertex_array"] = load_GL_EXT_vertex_array();
273             loaded["GL_EXT_misc_attribute"] = load_GL_EXT_misc_attribute();
274             loaded["GL_EXT_blend_minmax"] = load_GL_EXT_blend_minmax();
275             loaded["GL_EXT_blend_subtract"] = load_GL_EXT_blend_subtract();
276             loaded["GL_EXT_blend_logic_op"] = load_GL_EXT_blend_logic_op();
277             loaded["GL_EXT_point_parameters"] = load_GL_EXT_point_parameters();
278             loaded["GL_EXT_color_subtable"] = load_GL_EXT_color_subtable();
279             loaded["GL_EXT_paletted_texture"] = load_GL_EXT_paletted_texture();
280             loaded["GL_EXT_clip_volume_hint"] = load_GL_EXT_clip_volume_hint();
281             loaded["GL_EXT_index_texture"] = load_GL_EXT_index_texture();
282             loaded["GL_EXT_index_material"] = load_GL_EXT_index_material();
283             loaded["GL_EXT_index_func"] = load_GL_EXT_index_func();
284             loaded["GL_EXT_index_array_formats"] = load_GL_EXT_index_array_formats();
285             loaded["GL_EXT_compiled_vertex_array"] = load_GL_EXT_compiled_vertex_array();
286             loaded["GL_EXT_cull_vertex"] = load_GL_EXT_cull_vertex();
287             loaded["GL_EXT_draw_range_elements"] = load_GL_EXT_draw_range_elements();
288             loaded["GL_EXT_light_texture"] = load_GL_EXT_light_texture();
289             loaded["GL_EXT_bgra"] = load_GL_EXT_bgra();
290             loaded["GL_EXT_pixel_transform"] = load_GL_EXT_pixel_transform();
291             loaded["GL_EXT_pixel_transform_color_table"] = load_GL_EXT_pixel_transform_color_table();
292             loaded["GL_EXT_shared_texture_palette"] = load_GL_EXT_shared_texture_palette();
293             loaded["GL_EXT_separate_specular_color"] = load_GL_EXT_separate_specular_color();
294             loaded["GL_EXT_secondary_color"] = load_GL_EXT_secondary_color();
295             loaded["GL_EXT_texture_perturb_normal"] = load_GL_EXT_texture_perturb_normal();
296             loaded["GL_EXT_multi_draw_arrays"] = load_GL_EXT_multi_draw_arrays();
297             loaded["GL_EXT_fog_coord"] = load_GL_EXT_fog_coord();
298             loaded["GL_EXT_coordinate_frame"] = load_GL_EXT_coordinate_frame();
299             loaded["GL_EXT_texture_env_combine"] = load_GL_EXT_texture_env_combine();
300             loaded["GL_EXT_blend_func_separate"] = load_GL_EXT_blend_func_separate();
301             loaded["GL_EXT_stencil_wrap"] = load_GL_EXT_stencil_wrap();
302             loaded["GL_EXT_422_pixels"] = load_GL_EXT_422_pixels();
303             loaded["GL_EXT_texture_cube_map"] = load_GL_EXT_texture_cube_map();
304             loaded["GL_EXT_texture_env_add"] = load_GL_EXT_texture_env_add();
305             loaded["GL_EXT_texture_lod_bias"] = load_GL_EXT_texture_lod_bias();
306             loaded["GL_EXT_texture_filter_anisotropic"] = load_GL_EXT_texture_filter_anisotropic();
307             loaded["GL_EXT_vertex_weighting"] = load_GL_EXT_vertex_weighting();
308             loaded["GL_EXT_texture_compression_s3tc"] = load_GL_EXT_texture_compression_s3tc();
309             loaded["GL_EXT_multisample"] = load_GL_EXT_multisample();
310             loaded["GL_EXT_texture_env_dot3"] = load_GL_EXT_texture_env_dot3();
311             loaded["GL_EXT_vertex_shader"] = load_GL_EXT_vertex_shader();
312             loaded["GL_EXT_shadow_funcs"] = load_GL_EXT_shadow_funcs();
313             loaded["GL_EXT_stencil_two_side"] = load_GL_EXT_stencil_two_side();
314             loaded["GL_EXT_depth_bounds_test"] = load_GL_EXT_depth_bounds_test();
315             loaded["GL_EXT_texture_mirror_clamp"] = load_GL_EXT_texture_mirror_clamp();
316             loaded["GL_EXT_blend_equation_separate"] = load_GL_EXT_blend_equation_separate();
317             loaded["GL_EXT_pixel_buffer_object"] = load_GL_EXT_pixel_buffer_object();
318             loaded["GL_EXT_framebuffer_object"] = load_GL_EXT_framebuffer_object();
319             loaded["GL_EXT_packed_depth_stencil"] = load_GL_EXT_packed_depth_stencil();
320             loaded["GL_EXT_stencil_clear_tag"] = load_GL_EXT_stencil_clear_tag();
321             loaded["GL_EXT_texture_sRGB"] = load_GL_EXT_texture_sRGB();
322             loaded["GL_EXT_framebuffer_blit"] = load_GL_EXT_framebuffer_blit();
323             loaded["GL_EXT_framebuffer_multisample"] = load_GL_EXT_framebuffer_multisample();
324             loaded["GL_EXT_timer_query"] = load_GL_EXT_timer_query();
325             loaded["GL_EXT_gpu_program_parameters"] = load_GL_EXT_gpu_program_parameters();
326             loaded["GL_EXT_geometry_shader4"] = load_GL_EXT_geometry_shader4();
327             loaded["GL_EXT_gpu_shader4"] = load_GL_EXT_gpu_shader4();
328             loaded["GL_EXT_draw_instanced"] = load_GL_EXT_draw_instanced();
329             loaded["GL_EXT_packed_float"] = load_GL_EXT_packed_float();
330             loaded["GL_EXT_texture_array"] = load_GL_EXT_texture_array();
331             loaded["GL_EXT_texture_buffer_object"] = load_GL_EXT_texture_buffer_object();
332             loaded["GL_EXT_texture_compression_latc"] = load_GL_EXT_texture_compression_latc();
333             loaded["GL_EXT_texture_compression_rgtc"] = load_GL_EXT_texture_compression_rgtc();
334             loaded["GL_EXT_texture_shared_exponent"] = load_GL_EXT_texture_shared_exponent();
335             loaded["GL_EXT_framebuffer_sRGB"] = load_GL_EXT_framebuffer_sRGB();
336             loaded["GL_EXT_draw_buffers2"] = load_GL_EXT_draw_buffers2();
337             loaded["GL_EXT_bindable_uniform"] = load_GL_EXT_bindable_uniform();
338             loaded["GL_EXT_texture_integer"] = load_GL_EXT_texture_integer();
339             loaded["GL_EXT_transform_feedback"] = load_GL_EXT_transform_feedback();
340             loaded["GL_EXT_direct_state_access"] = load_GL_EXT_direct_state_access();
341             loaded["GL_EXT_vertex_array_bgra"] = load_GL_EXT_vertex_array_bgra();
342             loaded["GL_EXT_texture_swizzle"] = load_GL_EXT_texture_swizzle();
343             loaded["GL_EXT_provoking_vertex"] = load_GL_EXT_provoking_vertex();
344             loaded["GL_EXT_texture_snorm"] = load_GL_EXT_texture_snorm();
345             loaded["GL_EXT_separate_shader_objects"] = load_GL_EXT_separate_shader_objects();
346         }
347 
348         version(DerelictGL_NV)
349         {
350             loaded["GL_NV_texgen_reflection"] = load_GL_NV_texgen_reflection();
351             loaded["GL_NV_light_max_exponent"] = load_GL_NV_light_max_exponent();
352             loaded["GL_NV_vertex_array_range"] = load_GL_NV_vertex_array_range();
353             loaded["GL_NV_register_combiners"] = load_GL_NV_register_combiners();
354             loaded["GL_NV_fog_distance"] = load_GL_NV_fog_distance();
355             loaded["GL_NV_texgen_emboss"] = load_GL_NV_texgen_emboss();
356             loaded["GL_NV_blend_square"] = load_GL_NV_blend_square();
357             loaded["GL_NV_texture_env_combine4"] = load_GL_NV_texture_env_combine4();
358             loaded["GL_NV_fence"] = load_GL_NV_fence();
359             loaded["GL_NV_evaluators"] = load_GL_NV_evaluators();
360             loaded["GL_NV_packed_depth_stencil"] = load_GL_NV_packed_depth_stencil();
361             loaded["GL_NV_register_combiners2"] = load_GL_NV_register_combiners2();
362             loaded["GL_NV_texture_compression_vtc"] = load_GL_NV_texture_compression_vtc();
363             loaded["GL_NV_texture_rectangle"] = load_GL_NV_texture_rectangle();
364             loaded["GL_NV_texture_shader"] = load_GL_NV_texture_shader();
365             loaded["GL_NV_texture_shader2"] = load_GL_NV_texture_shader2();
366             loaded["GL_NV_vertex_array_range2"] = load_GL_NV_vertex_array_range2();
367             loaded["GL_NV_vertex_program"] = load_GL_NV_vertex_program();
368             loaded["GL_NV_copy_depth_to_color"] = load_GL_NV_copy_depth_to_color();
369             loaded["GL_NV_multisample_filter_hint"] = load_GL_NV_multisample_filter_hint();
370             loaded["GL_NV_depth_clamp"] = load_GL_NV_depth_clamp();
371             loaded["GL_NV_occlusion_query"] = load_GL_NV_occlusion_query();
372             loaded["GL_NV_point_sprite"] = load_GL_NV_point_sprite();
373             loaded["GL_NV_texture_shader3"] = load_GL_NV_texture_shader3();
374             loaded["GL_NV_vertex_program1_1"] = load_GL_NV_vertex_program1_1();
375             loaded["GL_NV_float_buffer"] = load_GL_NV_float_buffer();
376             loaded["GL_NV_fragment_program"] = load_GL_NV_fragment_program();
377             loaded["GL_NV_half_float"] = load_GL_NV_half_float();
378             loaded["GL_NV_pixel_data_range"] = load_GL_NV_pixel_data_range();
379             loaded["GL_NV_primitive_restart"] = load_GL_NV_primitive_restart();
380             loaded["GL_NV_texture_expand_normal"] = load_GL_NV_texture_expand_normal();
381             loaded["GL_NV_vertex_program2"] = load_GL_NV_vertex_program2();
382             loaded["GL_NV_fragment_program_option"] = load_GL_NV_fragment_program_option();
383             loaded["GL_NV_fragment_program2"] = load_GL_NV_fragment_program2();
384             loaded["GL_NV_vertex_program2_option"] = load_GL_NV_vertex_program2_option();
385             loaded["GL_NV_vertex_program3"] = load_GL_NV_vertex_program3();
386             loaded["GL_NV_gpu_program4"] = load_GL_NV_gpu_program4();
387             loaded["GL_NV_geometry_program4"] = load_GL_NV_geometry_program4();
388             loaded["GL_NV_vertex_program4"] = load_GL_NV_vertex_program4();
389             loaded["GL_NV_depth_buffer_float"] = load_GL_NV_depth_buffer_float();
390             loaded["GL_NV_fragment_program4"] = load_GL_NV_fragment_program4();
391             loaded["GL_NV_framebuffer_multisample_coverage"] = load_GL_NV_framebuffer_multisample_coverage();
392             loaded["GL_NV_geometry_shader4"] = load_GL_NV_geometry_shader4();
393             loaded["GL_NV_transform_feedback"] = load_GL_NV_transform_feedback();
394             loaded["GL_NV_conditional_render"] = load_GL_NV_conditional_render();
395             loaded["GL_NV_present_video"] = load_GL_NV_present_video();
396             loaded["GL_NV_explicit_multisample"] = load_GL_NV_explicit_multisample();
397             loaded["GL_NV_transform_feedback2"] = load_GL_NV_transform_feedback2();
398             loaded["GL_NV_video_capture"] = load_GL_NV_video_capture();
399             loaded["GL_NV_copy_image"] = load_GL_NV_copy_image();
400             loaded["GL_NV_parameter_buffer_object2"] = load_GL_NV_parameter_buffer_object2();
401             loaded["GL_NV_shader_buffer_load"] = load_GL_NV_shader_buffer_load();
402             loaded["GL_NV_vertex_buffer_unified_memory"] = load_GL_NV_vertex_buffer_unified_memory();
403             loaded["GL_NV_texture_barrier"] = load_GL_NV_texture_barrier();
404         }
405 
406         version(DerelictGL_ATI)
407         {
408             loaded["GL_ATI_texture_mirror_once"] = load_GL_ATI_texture_mirror_once();
409             loaded["GL_ATI_envmap_bumpmap"] = load_GL_ATI_envmap_bumpmap();
410             loaded["GL_ATI_fragment_shader"] = load_GL_ATI_fragment_shader();
411             loaded["GL_ATI_pn_triangles"] = load_GL_ATI_pn_triangles();
412             loaded["GL_ATI_vertex_array_object"] = load_GL_ATI_vertex_array_object();
413             loaded["GL_ATI_vertex_streams"] = load_GL_ATI_vertex_streams();
414             loaded["GL_ATI_element_array"] = load_GL_ATI_element_array();
415             loaded["GL_ATI_text_fragment_shader"] = load_GL_ATI_text_fragment_shader();
416             loaded["GL_ATI_draw_buffers"] = load_GL_ATI_draw_buffers();
417             loaded["GL_ATI_pixel_format_float"] = load_GL_ATI_pixel_format_float();
418             loaded["GL_ATI_texture_env_combine3"] = load_GL_ATI_texture_env_combine3();
419             loaded["GL_ATI_texture_float"] = load_GL_ATI_texture_float();
420             loaded["GL_ATI_map_object_buffer"] = load_GL_ATI_map_object_buffer();
421             loaded["GL_ATI_separate_stencil"] = load_GL_ATI_separate_stencil();
422             loaded["GL_ATI_vertex_attrib_array_object"] = load_GL_ATI_vertex_attrib_array_object();
423             loaded["GL_ATI_meminfo"] = load_GL_ATI_meminfo();
424         }
425 
426         version(DerelictGL_AMD)
427         {
428             loaded["GL_AMD_performance_monitor"] = load_GL_AMD_performance_monitor();
429             loaded["GL_AMD_texture_texture4"] = load_GL_AMD_texture_texture4();
430             loaded["GL_AMD_vertex_shader_tesselator"] = load_GL_AMD_vertex_shader_tesselator();
431             loaded["GL_AMD_draw_buffers_blend"] = load_GL_AMD_draw_buffers_blend();
432         }
433 
434         version(DerelictGL_SGI)
435         {
436             loaded["GL_SGI_color_matrix"] = load_GL_SGI_color_matrix();
437             loaded["GL_SGI_color_table"] = load_GL_SGI_color_table();
438             loaded["GL_SGI_texture_color_table"] = load_GL_SGI_texture_color_table();
439         }
440 
441         version(DerelictGL_SGIS)
442         {
443             loaded["GL_SGIS_texture_filter4"] = load_GL_SGIS_texture_filter4;
444             loaded["GL_SGIS_pixel_texture"] = load_GL_SGIS_pixel_texture();
445             loaded["GL_SGIS_texture4D"] = load_GL_SGIS_texture4D();
446             loaded["GL_SGIS_detail_texture"] = load_GL_SGIS_detail_texture();
447             loaded["GL_SGIS_sharpen_texture"] = load_GL_SGIS_sharpen_texture();
448             loaded["GL_SGIS_texture_lod"] = load_GL_SGIS_texture_lod();
449             loaded["GL_SGIS_multisample"] = load_GL_SGIS_multisample();
450             loaded["GL_SGIS_generate_mipmap"] = load_GL_SGIS_generate_mipmap();
451             loaded["GL_SGIS_texture_edge_clamp"] = load_GL_SGIS_texture_edge_clamp();
452             loaded["GL_SGIS_texture_border_clamp"] = load_GL_SGIS_texture_border_clamp();
453             loaded["GL_SGIS_texture_select"] = load_GL_SGIS_texture_select();
454             loaded["GL_SGIS_point_parameters"] = load_GL_SGIS_point_parameters();
455             loaded["GL_SGIS_fog_function"] = load_GL_SGIS_fog_function();
456             loaded["GL_SGIS_point_line_texgen"] = load_GL_SGIS_point_line_texgen();
457             loaded["GL_SGIS_texture_color_mask"] = load_GL_SGIS_texture_color_mask();
458         }
459 
460         version(DerelictGL_SGIX)
461         {
462             loaded["GL_SGIX_pixel_texture"] = load_GL_SGIX_pixel_texture();
463             loaded["GL_SGIX_clipmap"] = load_GL_SGIX_clipmap();
464             loaded["GL_SGIX_shadow"] = load_GL_SGIX_shadow();
465             loaded["GL_SGIX_interlace"] = load_GL_SGIX_interlace();
466             loaded["GL_SGIX_pixel_tiles"] = load_GL_SGIX_pixel_tiles();
467             loaded["GL_SGIX_sprite"] = load_GL_SGIX_sprite();
468             loaded["GL_SGIX_texture_multi_buffer"] = load_GL_SGIX_texture_multi_buffer();
469             loaded["GL_SGIX_instruments"] = load_GL_SGIX_instruments();
470             loaded["GL_SGIX_texture_scale_bias"] = load_GL_SGIX_texture_scale_bias();
471             loaded["GL_SGIX_framezoom"] = load_GL_SGIX_framezoom();
472             loaded["GL_SGIX_tag_sample_buffer"] = load_GL_SGIX_tag_sample_buffer();
473             loaded["GL_SGIX_polynomial_ffd"] = load_GL_SGIX_polynomial_ffd();
474             loaded["GL_SGIX_reference_plane"] = load_GL_SGIX_reference_plane();
475             loaded["GL_SGIX_flush_raster"] = load_GL_SGIX_flush_raster();
476             loaded["GL_SGIX_depth_texture"] = load_GL_SGIX_depth_texture();
477             loaded["GL_SGIX_fog_offset"] = load_GL_SGIX_fog_offset();
478             loaded["GL_SGIX_texture_add_env"] = load_GL_SGIX_texture_add_env();
479             loaded["GL_SGIX_list_priority"] = load_GL_SGIX_list_priority();
480             loaded["GL_SGIX_ir_instrument1"] = load_GL_SGIX_ir_instrument1();
481             loaded["GL_SGIX_calligraphic_fragment"] = load_GL_SGIX_calligraphic_fragment();
482             loaded["GL_SGIX_texture_lod_bias"] = load_GL_SGIX_texture_lod_bias();
483             loaded["GL_SGIX_shadow_ambient"] = load_GL_SGIX_shadow_ambient();
484             loaded["GL_SGIX_ycrcb"] = load_GL_SGIX_ycrcb();
485             loaded["GL_SGIX_fragment_lighting"] = load_GL_SGIX_fragment_lighting();
486             loaded["GL_SGIX_blend_alpha_minmax"] = load_GL_SGIX_blend_alpha_minmax();
487             loaded["GL_SGIX_impact_pixel_texture"] = load_GL_SGIX_impact_pixel_texture();
488             loaded["GL_SGIX_async"] = load_GL_SGIX_async();
489             loaded["GL_SGIX_async_pixel"] = load_GL_SGIX_async_pixel();
490             loaded["GL_SGIX_async_histogram"] = load_GL_SGIX_async_histogram();
491             loaded["GL_SGIX_fog_scale"] = load_GL_SGIX_fog_scale();
492             loaded["GL_SGIX_subsample"] = load_GL_SGIX_subsample();
493             loaded["GL_SGIX_ycrcb_subsample"] = load_GL_SGIX_ycrcb_subsample();
494             loaded["GL_SGIX_ycrcba"] = load_GL_SGIX_ycrcba();
495             loaded["GL_SGIX_depth_pass_instrument"] = load_GL_SGIX_depth_pass_instrument();
496             loaded["GL_SGIX_vertex_preclip"] = load_GL_SGIX_vertex_preclip();
497             loaded["GL_SGIX_convolution_accuracy"] = load_GL_SGIX_convolution_accuracy();
498             loaded["GL_SGIX_resample"] = load_GL_SGIX_resample();
499             loaded["GL_SGIX_texture_coordinate_clamp"] = load_GL_SGIX_texture_coordinate_clamp();
500             loaded["GL_SGIX_scalebias_hint"] = load_GL_SGIX_scalebias_hint();
501 
502         }
503 
504         version(DerelictGL_HP)
505         {
506             loaded["GL_HP_image_transform"] = load_GL_HP_image_transform();
507             loaded["GL_HP_convolution_border_modes"] = load_GL_HP_convolution_border_modes();
508             loaded["GL_HP_texture_lighting"] = load_GL_HP_texture_lighting();
509             loaded["GL_HP_occlusion_test"] = load_GL_HP_occlusion_test();
510         }
511 
512         version(DerelictGL_PGI)
513         {
514             loaded["GL_PGI_vertex_hints"] = load_GL_PGI_vertex_hints();
515             loaded["GL_PGI_misc_hints"] = load_GL_PGI_misc_hints();
516         }
517 
518         version(DerelictGL_IBM)
519         {
520             loaded["GL_IBM_rasterpos_clip"] = load_GL_IBM_rasterpos_clip();
521             loaded["GL_IBM_cull_vertex"] = load_GL_IBM_cull_vertex();
522             loaded["GL_IBM_multimode_draw_arrays"] = load_GL_IBM_multimode_draw_arrays();
523             loaded["GL_IBM_vertex_array_lists"] = load_GL_IBM_vertex_array_lists();
524             loaded["GL_IBM_texture_mirrored_repeat"] = load_GL_IBM_texture_mirrored_repeat();
525         }
526 
527         version(DerelictGL_WIN)
528         {
529             loaded["GL_WIN_phong_shading"] = load_GL_WIN_phong_shading();
530             loaded["GL_WIN_specular_fog"] = load_GL_WIN_specular_fog();
531         }
532 
533         version(DerelictGL_INTEL)
534         {
535             loaded["GL_INTEL_parallel_arrays"] = load_GL_INTEL_parallel_arrays();
536         }
537 
538         version(DerelictGL_REND)
539         {
540             loaded["GL_REND_screen_coordinates"] = load_GL_REND_screen_coordinates();
541         }
542 
543         version(DerelictGL_APPLE)
544         {
545             loaded["GL_APPLE_specular_vector"] = load_GL_APPLE_specular_vector();
546             loaded["GL_APPLE_transform_hint"] = load_GL_APPLE_transform_hint();
547             loaded["GL_APPLE_client_storage"] = load_GL_APPLE_client_storage();
548             loaded["GL_APPLE_element_array"] = load_GL_APPLE_element_array();
549             loaded["GL_APPLE_fence"] = load_GL_APPLE_fence();
550             loaded["GL_APPLE_vertex_array_object"] = load_GL_APPLE_vertex_array_object();
551             loaded["GL_APPLE_vertex_array_range"] = load_GL_APPLE_vertex_array_range();
552             loaded["GL_APPLE_ycbcr_422"] = load_GL_APPLE_ycbcr_422();
553             loaded["GL_APPLE_flush_buffer_range"] = load_GL_APPLE_flush_buffer_range();
554             loaded["GL_APPLE_texture_range"] = load_GL_APPLE_texture_range();
555             loaded["GL_APPLE_float_pixels"] = load_GL_APPLE_float_pixels();
556             loaded["GL_APPLE_vertex_program_evaluators"] = load_GL_APPLE_vertex_program_evaluators();
557             loaded["GL_APPLE_aux_depth_stencil"] = load_GL_APPLE_aux_depth_stencil();
558             loaded["GL_APPLE_object_purgeable"] = load_GL_APPLE_object_purgeable();
559             loaded["GL_APPLE_row_bytes"] = load_GL_APPLE_row_bytes();
560             loaded["GL_APPLE_rgb_422"] = load_GL_APPLE_rgb_422();
561         }
562 
563         version(DerelictGL_SUNX)
564         {
565             loaded["GL_SUNX_constant_data"] = load_GL_SUNX_constant_data();
566         }
567 
568         version(DerelictGL_SUN)
569         {
570             loaded["GL_SUN_global_alpha"] = load_GL_SUN_global_alpha();
571             loaded["GL_SUN_triangle_list"] = load_GL_SUN_triangle_list();
572             loaded["GL_SUN_vertex"] = load_GL_SUN_vertex();
573             loaded["GL_SUN_convolution_border_modes"] = load_GL_SUN_convolution_border_modes();
574             loaded["GL_SUN_mesh_array"] = load_GL_SUN_mesh_array();
575             loaded["GL_SUN_slice_accum"] = load_GL_SUN_slice_accum();
576         }
577 
578         version(DerelictGL_INGR)
579         {
580             loaded["GL_INGR_color_clamp"] = load_GL_INGR_color_clamp();
581             loaded["GL_INGR_interlace_read"] = load_GL_INGR_interlace_read();
582         }
583 
584         version(DerelictGL_MESA)
585         {
586             loaded["GL_MESA_resize_buffers"] = load_GL_MESA_resize_buffers();
587             loaded["GL_MESA_window_pos"] = load_GL_MESA_window_pos();
588             loaded["GL_MESA_pack_invert"] = load_GL_MESA_pack_invert();
589             loaded["GL_MESA_ycbcr_texture"] = load_GL_MESA_ycbcr_texture();
590         }
591 
592         version(DerelictGL_3DFX)
593         {
594             loaded["GL_3DFX_texture_compression_FXT1"] = load_GL_3DFX_texture_compression_FXT1();
595             loaded["GL_3DFX_multisample"] = load_GL_3DFX_multisample();
596             loaded["GL_3DFX_tbuffer"] = load_GL_3DFX_tbuffer();
597         }
598 
599         version(DerelictGL_OML)
600         {
601             loaded["GL_OML_interlace"] = load_GL_OML_interlace();
602             loaded["GL_OML_subsample"] = load_GL_OML_subsample();
603             loaded["GL_OML_resample"] = load_GL_OML_resample();
604         }
605 
606         version(DerelictGL_S3)
607         {
608             loaded["GL_S3_s3tc"] = load_GL_S3_s3tc();
609         }
610 
611         version(DerelictGL_OES)
612         {
613             loaded["GL_OES_read_format"] = load_GL_OES_read_format();
614         }
615 
616         version(DerelictGL_GREMEDY)
617         {
618             loaded["GL_GREMEDY_string_marker"] = load_GL_GREMEDY_string_marker();
619             loaded["GL_GREMEDY_frame_terminator"] = load_GL_GREMEDY_frame_terminator();
620         }
621 
622         version(DerelictGL_MESAX)
623         {
624             loaded["GL_MESAX_texture_stack"] = load_GL_MESAX_texture_stack();
625         }
626     }
627 
628     void extLoadPlatform()
629     {
630         version (Windows)
631         {
632             // wgl extensions (mostly) all rely on WGL_ARB_extensions_string or WGL_EXT_extensions_string,
633             // so load them first and always, regardless of whether or not DerelictGL_ARB/EXT is active.
634             loaded["WGL_ARB_extensions_string"] = load_WGL_ARB_extensions_string();
635             loaded["WGL_EXT_extensions_string"] = load_WGL_EXT_extensions_string();
636 
637             // load the wgl extensions string
638             if(wglGetExtensionsStringARB !is null)
639             {
640                 HDC dc = wglGetCurrentDC();
641                 if(dc !is null)
642                     winExtStr = toDString(wglGetExtensionsStringARB(dc));
643                 else
644                     throw new DerelictException("Cannot load WGL extensions: No valid Device Context!");
645             }
646             else if(wglGetExtensionsStringEXT !is null)
647             {
648                 winExtStr = toDString(wglGetExtensionsStringEXT());
649             }
650 
651             if(winExtStr is null || winExtStr == "")
652                 return;
653 
654             // now load the other WGL extensions
655             version(DerelictGL_ARB)
656             {
657                 loaded["WGL_ARB_buffer_region"] = load_WGL_ARB_buffer_region();
658                 loaded["WGL_ARB_multisample"] = load_WGL_ARB_multisample();
659                 loaded["WGL_ARB_pixel_format"] = load_WGL_ARB_pixel_format();
660                 loaded["WGL_ARB_make_current_read"] = load_WGL_ARB_make_current_read();
661                 loaded["WGL_ARB_pbuffer"] = load_WGL_ARB_pbuffer();
662                 loaded["WGL_ARB_render_texture"] = load_WGL_ARB_render_texture();
663                 loaded["WGL_ARB_pixel_format_float"] = load_WGL_ARB_pixel_format_float();
664                 loaded["WGL_ARB_create_context"] = load_WGL_ARB_create_context();
665                 loaded["WGL_ARB_create_context_profile"] = load_WGL_ARB_create_context_profile();
666                 loaded["WGL_ARB_framebuffer_sRGB"] = load_WGL_ARB_framebuffer_sRGB();
667             }
668 
669             version(DerelictGL_EXT)
670             {
671                 loaded["WGL_EXT_depth_float"] = load_WGL_EXT_depth_float();
672                 loaded["WGL_EXT_display_color_table"] = load_WGL_EXT_display_color_table();
673                 loaded["WGL_EXT_framebuffer_sRGB"] = load_WGL_EXT_framebuffer_sRGB();
674                 loaded["WGL_EXT_make_current_read"] = load_WGL_EXT_make_current_read();
675                 loaded["WGL_EXT_multisample"] = load_WGL_EXT_multisample();
676                 loaded["WGL_EXT_pbuffer"] = load_WGL_EXT_pbuffer();
677                 loaded["WGL_EXT_pixel_format"] = load_WGL_EXT_pixel_format();
678                 loaded["WGL_EXT_pixel_format_packed_float"] = load_WGL_EXT_pixel_format_packed_float();
679                 loaded["WGL_EXT_swap_control"] = load_WGL_EXT_swap_control();
680             }
681 
682             version(DerelictGL_NV)
683             {
684                 loaded["WGL_NV_copy_image"] = load_WGL_NV_copy_image();
685                 loaded["WGL_NV_float_buffer"] = load_WGL_NV_float_buffer();
686                 loaded["WGL_NV_gpu_affinity"] = load_WGL_NV_gpu_affinity();
687                 loaded["WGL_NV_multisample_coverage"] = load_WGL_NV_multisample_coverage();
688                 loaded["WGL_NV_present_video"] = load_WGL_NV_present_video();
689                 loaded["WGL_NV_render_depth_texture"] = load_WGL_NV_render_depth_texture();
690                 loaded["WGL_NV_render_texture_rectangle"] = load_WGL_NV_render_texture_rectangle();
691                 loaded["WGL_NV_swap_group"] = load_WGL_NV_swap_group();
692                 loaded["WGL_NV_vertex_array_range"] = load_WGL_NV_vertex_array_range();
693                 loaded["WGL_NV_video_output"] = load_WGL_NV_video_output();
694             }
695 
696             version(DerelictGL_ATI)
697             {
698                 loaded["WGL_ATI_pixel_format_float"] = load_WGL_ATI_pixel_format_float();
699                 loaded["WGL_ATI_render_texture_rectangle"] = load_WGL_ATI_render_texture_rectangle();
700             }
701 
702             version(DerelictGL_AMD)
703             {
704                 loaded["WGL_AMD_gpu_association"] = load_WGL_AMD_gpu_association();
705             }
706 
707             version(DerelictGL_I3D)
708             {
709                 loaded["WGL_I3D_digital_video_control"] = load_WGL_I3D_digital_video_control();
710                 loaded["WGL_I3D_gamma"] = load_WGL_I3D_gamma();
711                 loaded["WGL_I3D_genlock"] = load_WGL_I3D_genlock();
712                 loaded["WGL_I3D_image_buffer"] = load_WGL_I3D_image_buffer();
713                 loaded["WGL_I3D_swap_frame_lock"] = load_WGL_I3D_swap_frame_lock();
714                 loaded["WGL_I3D_swap_frame_usage"] = load_WGL_I3D_swap_frame_usage();
715             }
716 
717             version(DerelictGL_OML)
718             {
719                 loaded["WGL_OML_sync_control"] = load_WGL_OML_sync_control();
720             }
721 
722             version(DerelictGL_3DFX)
723             {
724                 loaded["WGL_3DFX_multisample"] = load_WGL_3DFX_multisample();
725             }
726 
727             version(DerelictGL_3DL)
728             {
729                 loaded["WGL_3DL_stereo_control"] = load_WGL_3DL_stereo_control();
730             }
731         }
732     }
733 
734     bool bindExtFunc(void** ptr, string funcName)
735     {
736         version(CGL)
737         {
738             debug bool doThrow = true;
739             else bool doThrow = false;
740 
741             DerelictGL.bindExtendedFunc(ptr, funcName, doThrow);
742 
743             return (*ptr !is null);
744         }
745 
746         else
747         {
748             *ptr = loadGLSymbol(funcName);
749             return (*ptr !is null);
750         }
751     }
752 
753     version(DerelictGL_ARB)
754     {
755         GLExtensionState load_GL_ARB_multitexture()
756         {
757             if(!extIsSupported("GL_ARB_multitexture"))
758                 return GLExtensionState.DriverUnsupported;
759             if(!bindExtFunc(cast(void**)&glActiveTextureARB, "glActiveTextureARB"))
760                 return GLExtensionState.FailedToLoad;
761             if(!bindExtFunc(cast(void**)&glClientActiveTextureARB, "glClientActiveTextureARB"))
762                 return GLExtensionState.FailedToLoad;
763             if(!bindExtFunc(cast(void**)&glMultiTexCoord1dARB, "glMultiTexCoord1dARB"))
764                 return GLExtensionState.FailedToLoad;
765             if(!bindExtFunc(cast(void**)&glMultiTexCoord1dvARB, "glMultiTexCoord1dvARB"))
766                 return GLExtensionState.FailedToLoad;
767             if(!bindExtFunc(cast(void**)&glMultiTexCoord1fARB, "glMultiTexCoord1fARB"))
768                 return GLExtensionState.FailedToLoad;
769             if(!bindExtFunc(cast(void**)&glMultiTexCoord1fvARB, "glMultiTexCoord1fvARB"))
770                 return GLExtensionState.FailedToLoad;
771             if(!bindExtFunc(cast(void**)&glMultiTexCoord1iARB, "glMultiTexCoord1iARB"))
772                 return GLExtensionState.FailedToLoad;
773             if(!bindExtFunc(cast(void**)&glMultiTexCoord1ivARB, "glMultiTexCoord1ivARB"))
774                 return GLExtensionState.FailedToLoad;
775             if(!bindExtFunc(cast(void**)&glMultiTexCoord1sARB, "glMultiTexCoord1sARB"))
776                 return GLExtensionState.FailedToLoad;
777             if(!bindExtFunc(cast(void**)&glMultiTexCoord1svARB, "glMultiTexCoord1svARB"))
778                 return GLExtensionState.FailedToLoad;
779             if(!bindExtFunc(cast(void**)&glMultiTexCoord2dARB, "glMultiTexCoord2dARB"))
780                 return GLExtensionState.FailedToLoad;
781             if(!bindExtFunc(cast(void**)&glMultiTexCoord2dvARB, "glMultiTexCoord2dvARB"))
782                 return GLExtensionState.FailedToLoad;
783             if(!bindExtFunc(cast(void**)&glMultiTexCoord2fARB, "glMultiTexCoord2fARB"))
784                 return GLExtensionState.FailedToLoad;
785             if(!bindExtFunc(cast(void**)&glMultiTexCoord2fvARB, "glMultiTexCoord2fvARB"))
786                 return GLExtensionState.FailedToLoad;
787             if(!bindExtFunc(cast(void**)&glMultiTexCoord2iARB, "glMultiTexCoord2iARB"))
788                 return GLExtensionState.FailedToLoad;
789             if(!bindExtFunc(cast(void**)&glMultiTexCoord2ivARB, "glMultiTexCoord2ivARB"))
790                 return GLExtensionState.FailedToLoad;
791             if(!bindExtFunc(cast(void**)&glMultiTexCoord2sARB, "glMultiTexCoord2sARB"))
792                 return GLExtensionState.FailedToLoad;
793             if(!bindExtFunc(cast(void**)&glMultiTexCoord2svARB, "glMultiTexCoord2svARB"))
794                 return GLExtensionState.FailedToLoad;
795             if(!bindExtFunc(cast(void**)&glMultiTexCoord3dARB, "glMultiTexCoord3dARB"))
796                 return GLExtensionState.FailedToLoad;
797             if(!bindExtFunc(cast(void**)&glMultiTexCoord3dvARB, "glMultiTexCoord3dvARB"))
798                 return GLExtensionState.FailedToLoad;
799             if(!bindExtFunc(cast(void**)&glMultiTexCoord3fARB, "glMultiTexCoord3fARB"))
800                 return GLExtensionState.FailedToLoad;
801             if(!bindExtFunc(cast(void**)&glMultiTexCoord3fvARB, "glMultiTexCoord3fvARB"))
802                 return GLExtensionState.FailedToLoad;
803             if(!bindExtFunc(cast(void**)&glMultiTexCoord3iARB, "glMultiTexCoord3iARB"))
804                 return GLExtensionState.FailedToLoad;
805             if(!bindExtFunc(cast(void**)&glMultiTexCoord3ivARB, "glMultiTexCoord3ivARB"))
806                 return GLExtensionState.FailedToLoad;
807             if(!bindExtFunc(cast(void**)&glMultiTexCoord3sARB, "glMultiTexCoord3sARB"))
808                 return GLExtensionState.FailedToLoad;
809             if(!bindExtFunc(cast(void**)&glMultiTexCoord3svARB, "glMultiTexCoord3svARB"))
810                 return GLExtensionState.FailedToLoad;
811             if(!bindExtFunc(cast(void**)&glMultiTexCoord4dARB, "glMultiTexCoord4dARB"))
812                 return GLExtensionState.FailedToLoad;
813             if(!bindExtFunc(cast(void**)&glMultiTexCoord4dvARB, "glMultiTexCoord4dvARB"))
814                 return GLExtensionState.FailedToLoad;
815             if(!bindExtFunc(cast(void**)&glMultiTexCoord4fARB, "glMultiTexCoord4fARB"))
816                 return GLExtensionState.FailedToLoad;
817             if(!bindExtFunc(cast(void**)&glMultiTexCoord4fvARB, "glMultiTexCoord4fvARB"))
818                 return GLExtensionState.FailedToLoad;
819             if(!bindExtFunc(cast(void**)&glMultiTexCoord4iARB, "glMultiTexCoord4iARB"))
820                 return GLExtensionState.FailedToLoad;
821             if(!bindExtFunc(cast(void**)&glMultiTexCoord4ivARB, "glMultiTexCoord4ivARB"))
822                 return GLExtensionState.FailedToLoad;
823             if(!bindExtFunc(cast(void**)&glMultiTexCoord4sARB, "glMultiTexCoord4sARB"))
824                 return GLExtensionState.FailedToLoad;
825             if(!bindExtFunc(cast(void**)&glMultiTexCoord4svARB, "glMultiTexCoord4svARB"))
826                 return GLExtensionState.FailedToLoad;
827             return GLExtensionState.Loaded;
828         }
829 
830         GLExtensionState load_GL_ARB_transpose_matrix()
831         {
832             if(!extIsSupported("GL_ARB_transpose_matrix"))
833                 return GLExtensionState.DriverUnsupported;
834             if(!bindExtFunc(cast(void**)&glLoadTransposeMatrixfARB, "glLoadTransposeMatrixfARB"))
835                 return GLExtensionState.FailedToLoad;
836             if(!bindExtFunc(cast(void**)&glLoadTransposeMatrixdARB, "glLoadTransposeMatrixdARB"))
837                 return GLExtensionState.FailedToLoad;
838             if(!bindExtFunc(cast(void**)&glMultTransposeMatrixfARB, "glMultTransposeMatrixfARB"))
839                 return GLExtensionState.FailedToLoad;
840             if(!bindExtFunc(cast(void**)&glMultTransposeMatrixdARB, "glMultTransposeMatrixdARB"))
841                 return GLExtensionState.FailedToLoad;
842             return GLExtensionState.Loaded;
843         }
844 
845         GLExtensionState load_GL_ARB_multisample()
846         {
847             if(!extIsSupported("GL_ARB_multisample"))
848                 return GLExtensionState.DriverUnsupported;
849             if(!bindExtFunc(cast(void**)&glSampleCoverageARB, "glSampleCoverageARB"))
850                 return GLExtensionState.FailedToLoad;
851             return GLExtensionState.Loaded;
852         }
853 
854         GLExtensionState load_GL_ARB_texture_env_add()
855         {
856             if(!extIsSupported("GL_ARB_texture_env_add"))
857                 return GLExtensionState.DriverUnsupported;
858             return GLExtensionState.Loaded;
859         }
860 
861         GLExtensionState load_GL_ARB_texture_cube_map()
862         {
863             if(!extIsSupported("GL_ARB_texture_cube_map"))
864                 return GLExtensionState.DriverUnsupported;
865             return GLExtensionState.Loaded;
866         }
867 
868         GLExtensionState load_GL_ARB_texture_compression()
869         {
870             if(!extIsSupported("GL_ARB_texture_compression"))
871                 return GLExtensionState.DriverUnsupported;
872             if(!bindExtFunc(cast(void**)&glCompressedTexImage3DARB, "glCompressedTexImage3DARB"))
873                 return GLExtensionState.FailedToLoad;
874             if(!bindExtFunc(cast(void**)&glCompressedTexImage2DARB, "glCompressedTexImage2DARB"))
875                 return GLExtensionState.FailedToLoad;
876             if(!bindExtFunc(cast(void**)&glCompressedTexImage1DARB, "glCompressedTexImage1DARB"))
877                 return GLExtensionState.FailedToLoad;
878             if(!bindExtFunc(cast(void**)&glCompressedTexSubImage3DARB, "glCompressedTexSubImage3DARB"))
879                 return GLExtensionState.FailedToLoad;
880             if(!bindExtFunc(cast(void**)&glCompressedTexSubImage2DARB, "glCompressedTexSubImage2DARB"))
881                 return GLExtensionState.FailedToLoad;
882             if(!bindExtFunc(cast(void**)&glCompressedTexSubImage1DARB, "glCompressedTexSubImage1DARB"))
883                 return GLExtensionState.FailedToLoad;
884             if(!bindExtFunc(cast(void**)&glGetCompressedTexImageARB, "glGetCompressedTexImageARB"))
885                 return GLExtensionState.FailedToLoad;
886             return GLExtensionState.Loaded;
887         }
888 
889         GLExtensionState load_GL_ARB_texture_border_clamp()
890         {
891             if(!extIsSupported("GL_ARB_texture_border_clamp"))
892                 return GLExtensionState.DriverUnsupported;
893             return GLExtensionState.Loaded;
894         }
895 
896         GLExtensionState load_GL_ARB_point_parameters()
897         {
898             if(!extIsSupported("GL_ARB_point_parameters"))
899                 return GLExtensionState.DriverUnsupported;
900             if(!bindExtFunc(cast(void**)&glPointParameterfARB, "glPointParameterfARB"))
901                 return GLExtensionState.FailedToLoad;
902             if(!bindExtFunc(cast(void**)&glPointParameterfvARB, "glPointParameterfvARB"))
903                 return GLExtensionState.FailedToLoad;
904             return GLExtensionState.Loaded;
905         }
906 
907         GLExtensionState load_GL_ARB_vertex_blend()
908         {
909             if(!extIsSupported("GL_ARB_vertex_blend"))
910                 return GLExtensionState.DriverUnsupported;
911             if(!bindExtFunc(cast(void**)&glWeightbvARB, "glWeightbvARB"))
912                 return GLExtensionState.FailedToLoad;
913             if(!bindExtFunc(cast(void**)&glWeightsvARB, "glWeightsvARB"))
914                 return GLExtensionState.FailedToLoad;
915             if(!bindExtFunc(cast(void**)&glWeightivARB, "glWeightivARB"))
916                 return GLExtensionState.FailedToLoad;
917             if(!bindExtFunc(cast(void**)&glWeightfvARB, "glWeightfvARB"))
918                 return GLExtensionState.FailedToLoad;
919             if(!bindExtFunc(cast(void**)&glWeightdvARB, "glWeightdvARB"))
920                 return GLExtensionState.FailedToLoad;
921             if(!bindExtFunc(cast(void**)&glWeightubvARB, "glMatrixIndexPointerARB"))
922                 return GLExtensionState.FailedToLoad;
923             if(!bindExtFunc(cast(void**)&glWeightusvARB, "glWeightusvARB"))
924                 return GLExtensionState.FailedToLoad;
925             if(!bindExtFunc(cast(void**)&glWeightuivARB, "glWeightuivARB"))
926                 return GLExtensionState.FailedToLoad;
927             if(!bindExtFunc(cast(void**)&glWeightPointerARB, "glWeightPointerARB"))
928                 return GLExtensionState.FailedToLoad;
929             if(!bindExtFunc(cast(void**)&glVertexBlendARB, "glVertexBlendARB"))
930                 return GLExtensionState.FailedToLoad;
931             return GLExtensionState.Loaded;
932         }
933 
934         GLExtensionState load_GL_ARB_matrix_palette()
935         {
936             if(!extIsSupported("GL_ARB_matrix_palette"))
937                 return GLExtensionState.DriverUnsupported;
938             if(!bindExtFunc(cast(void**)&glCurrentPaletteMatrixARB, "glCurrentPaletteMatrixARB"))
939                 return GLExtensionState.FailedToLoad;
940             if(!bindExtFunc(cast(void**)&glMatrixIndexubvARB, "glMatrixIndexubvARB"))
941                 return GLExtensionState.FailedToLoad;
942             if(!bindExtFunc(cast(void**)&glMatrixIndexusvARB, "glMatrixIndexusvARB"))
943                 return GLExtensionState.FailedToLoad;
944             if(!bindExtFunc(cast(void**)&glMatrixIndexuivARB, "glMatrixIndexuivARB"))
945                 return GLExtensionState.FailedToLoad;
946             if(!bindExtFunc(cast(void**)&glMatrixIndexPointerARB, "glMatrixIndexPointerARB"))
947                 return GLExtensionState.FailedToLoad;
948             return GLExtensionState.Loaded;
949         }
950 
951         GLExtensionState load_GL_ARB_texture_env_combine()
952         {
953             if(!extIsSupported("GL_ARB_texture_env_combine"))
954                 return GLExtensionState.DriverUnsupported;
955             return GLExtensionState.Loaded;
956         }
957 
958         GLExtensionState load_GL_ARB_texture_env_crossbar()
959         {
960             if(!extIsSupported("GL_ARB_texture_env_crossbar"))
961                 return GLExtensionState.DriverUnsupported;
962             return GLExtensionState.Loaded;
963         }
964 
965         GLExtensionState load_GL_ARB_texture_env_dot3()
966         {
967             if(!extIsSupported("GL_ARB_texture_env_dot3"))
968                 return GLExtensionState.DriverUnsupported;
969             return GLExtensionState.Loaded;
970         }
971 
972         GLExtensionState load_GL_ARB_texture_mirrored_repeat()
973         {
974             if(!extIsSupported("GL_ARB_texture_mirrored_repeat"))
975                 return GLExtensionState.DriverUnsupported;
976             return GLExtensionState.Loaded;
977         }
978 
979         GLExtensionState load_GL_ARB_depth_texture()
980         {
981             if(!extIsSupported("GL_ARB_depth_texture"))
982                 return GLExtensionState.DriverUnsupported;
983             return GLExtensionState.Loaded;
984         }
985 
986         GLExtensionState load_GL_ARB_shadow()
987         {
988             if(!extIsSupported("GL_ARB_shadow"))
989                 return GLExtensionState.DriverUnsupported;
990             return GLExtensionState.Loaded;
991         }
992 
993         GLExtensionState load_GL_ARB_shadow_ambient()
994         {
995             if(!extIsSupported("GL_ARB_shadow_ambient"))
996                 return GLExtensionState.DriverUnsupported;
997             return GLExtensionState.Loaded;
998         }
999 
1000         GLExtensionState load_GL_ARB_window_pos()
1001         {
1002             if(!extIsSupported("GL_ARB_window_pos"))
1003                 return GLExtensionState.DriverUnsupported;
1004             if(!bindExtFunc(cast(void**)&glWindowPos2dARB, "glWindowPos2dARB"))
1005                 return GLExtensionState.FailedToLoad;
1006             if(!bindExtFunc(cast(void**)&glWindowPos2dvARB, "glWindowPos2dvARB"))
1007                 return GLExtensionState.FailedToLoad;
1008             if(!bindExtFunc(cast(void**)&glWindowPos2fARB, "glWindowPos2fARB"))
1009                 return GLExtensionState.FailedToLoad;
1010             if(!bindExtFunc(cast(void**)&glWindowPos2fvARB, "glWindowPos2fvARB"))
1011                 return GLExtensionState.FailedToLoad;
1012             if(!bindExtFunc(cast(void**)&glWindowPos2iARB, "glWindowPos2iARB"))
1013                 return GLExtensionState.FailedToLoad;
1014             if(!bindExtFunc(cast(void**)&glWindowPos2ivARB, "glWindowPos2ivARB"))
1015                 return GLExtensionState.FailedToLoad;
1016             if(!bindExtFunc(cast(void**)&glWindowPos2sARB, "glWindowPos2sARB"))
1017                 return GLExtensionState.FailedToLoad;
1018             if(!bindExtFunc(cast(void**)&glWindowPos2svARB, "glWindowPos2svARB"))
1019                 return GLExtensionState.FailedToLoad;
1020             if(!bindExtFunc(cast(void**)&glWindowPos3dARB, "glWindowPos3dARB"))
1021                 return GLExtensionState.FailedToLoad;
1022             if(!bindExtFunc(cast(void**)&glWindowPos3dvARB, "glWindowPos3dvARB"))
1023                 return GLExtensionState.FailedToLoad;
1024             if(!bindExtFunc(cast(void**)&glWindowPos3fARB, "glWindowPos3fARB"))
1025                 return GLExtensionState.FailedToLoad;
1026             if(!bindExtFunc(cast(void**)&glWindowPos3fvARB, "glWindowPos3fvARB"))
1027                 return GLExtensionState.FailedToLoad;
1028             if(!bindExtFunc(cast(void**)&glWindowPos3iARB, "glWindowPos3iARB"))
1029                 return GLExtensionState.FailedToLoad;
1030             if(!bindExtFunc(cast(void**)&glWindowPos3ivARB, "glWindowPos3ivARB"))
1031                 return GLExtensionState.FailedToLoad;
1032             if(!bindExtFunc(cast(void**)&glWindowPos3sARB, "glWindowPos3sARB"))
1033                 return GLExtensionState.FailedToLoad;
1034             if(!bindExtFunc(cast(void**)&glWindowPos3svARB, "glWindowPos3svARB"))
1035                 return GLExtensionState.FailedToLoad;
1036             return GLExtensionState.Loaded;
1037         }
1038 
1039         GLExtensionState load_GL_ARB_vertex_program()
1040         {
1041             if(!extIsSupported("GL_ARB_vertex_program"))
1042                 return GLExtensionState.DriverUnsupported;
1043             if(!bindExtFunc(cast(void**)&glVertexAttrib1dARB, "glVertexAttrib1dARB"))
1044                 return GLExtensionState.FailedToLoad;
1045             if(!bindExtFunc(cast(void**)&glVertexAttrib1dvARB, "glVertexAttrib1dvARB"))
1046                 return GLExtensionState.FailedToLoad;
1047             if(!bindExtFunc(cast(void**)&glVertexAttrib1fARB, "glVertexAttrib1fARB"))
1048                 return GLExtensionState.FailedToLoad;
1049             if(!bindExtFunc(cast(void**)&glVertexAttrib1fvARB, "glVertexAttrib1fvARB"))
1050                 return GLExtensionState.FailedToLoad;
1051             if(!bindExtFunc(cast(void**)&glVertexAttrib1sARB, "glVertexAttrib1sARB"))
1052                 return GLExtensionState.FailedToLoad;
1053             if(!bindExtFunc(cast(void**)&glVertexAttrib1svARB, "glVertexAttrib1svARB"))
1054                 return GLExtensionState.FailedToLoad;
1055             if(!bindExtFunc(cast(void**)&glVertexAttrib2dARB, "glVertexAttrib2dARB"))
1056                 return GLExtensionState.FailedToLoad;
1057             if(!bindExtFunc(cast(void**)&glVertexAttrib2dvARB, "glVertexAttrib2dvARB"))
1058                 return GLExtensionState.FailedToLoad;
1059             if(!bindExtFunc(cast(void**)&glVertexAttrib2fARB, "glVertexAttrib2fARB"))
1060                 return GLExtensionState.FailedToLoad;
1061             if(!bindExtFunc(cast(void**)&glVertexAttrib2fvARB, "glVertexAttrib2fvARB"))
1062                 return GLExtensionState.FailedToLoad;
1063             if(!bindExtFunc(cast(void**)&glVertexAttrib2sARB, "glVertexAttrib2sARB"))
1064                 return GLExtensionState.FailedToLoad;
1065             if(!bindExtFunc(cast(void**)&glVertexAttrib2svARB, "glVertexAttrib2svARB"))
1066                 return GLExtensionState.FailedToLoad;
1067             if(!bindExtFunc(cast(void**)&glVertexAttrib3dARB, "glVertexAttrib3dARB"))
1068                 return GLExtensionState.FailedToLoad;
1069             if(!bindExtFunc(cast(void**)&glVertexAttrib3dvARB, "glVertexAttrib3dvARB"))
1070                 return GLExtensionState.FailedToLoad;
1071             if(!bindExtFunc(cast(void**)&glVertexAttrib3fARB, "glVertexAttrib3fARB"))
1072                 return GLExtensionState.FailedToLoad;
1073             if(!bindExtFunc(cast(void**)&glVertexAttrib3fvARB, "glVertexAttrib3fvARB"))
1074                 return GLExtensionState.FailedToLoad;
1075             if(!bindExtFunc(cast(void**)&glVertexAttrib3sARB, "glVertexAttrib3sARB"))
1076                 return GLExtensionState.FailedToLoad;
1077             if(!bindExtFunc(cast(void**)&glVertexAttrib3svARB, "glVertexAttrib3svARB"))
1078                 return GLExtensionState.FailedToLoad;
1079             if(!bindExtFunc(cast(void**)&glVertexAttrib4NbvARB, "glVertexAttrib4NbvARB"))
1080                 return GLExtensionState.FailedToLoad;
1081             if(!bindExtFunc(cast(void**)&glVertexAttrib4NivARB, "glVertexAttrib4NivARB"))
1082                 return GLExtensionState.FailedToLoad;
1083             if(!bindExtFunc(cast(void**)&glVertexAttrib4NsvARB, "glVertexAttrib4NsvARB"))
1084                 return GLExtensionState.FailedToLoad;
1085             if(!bindExtFunc(cast(void**)&glVertexAttrib4NubARB, "glVertexAttrib4NubARB"))
1086                 return GLExtensionState.FailedToLoad;
1087             if(!bindExtFunc(cast(void**)&glVertexAttrib4NubvARB, "glVertexAttrib4NubvARB"))
1088                 return GLExtensionState.FailedToLoad;
1089             if(!bindExtFunc(cast(void**)&glVertexAttrib4NuivARB, "glVertexAttrib4NuivARB"))
1090                 return GLExtensionState.FailedToLoad;
1091             if(!bindExtFunc(cast(void**)&glVertexAttrib4NusvARB, "glVertexAttrib4NusvARB"))
1092                 return GLExtensionState.FailedToLoad;
1093             if(!bindExtFunc(cast(void**)&glVertexAttrib4bvARB, "glVertexAttrib4bvARB"))
1094                 return GLExtensionState.FailedToLoad;
1095             if(!bindExtFunc(cast(void**)&glVertexAttrib4dARB, "glVertexAttrib4dARB"))
1096                 return GLExtensionState.FailedToLoad;
1097             if(!bindExtFunc(cast(void**)&glVertexAttrib4dvARB, "glVertexAttrib4dvARB"))
1098                 return GLExtensionState.FailedToLoad;
1099             if(!bindExtFunc(cast(void**)&glVertexAttrib4fARB, "glVertexAttrib4fARB"))
1100                 return GLExtensionState.FailedToLoad;
1101             if(!bindExtFunc(cast(void**)&glVertexAttrib4fvARB, "glVertexAttrib4fvARB"))
1102                 return GLExtensionState.FailedToLoad;
1103             if(!bindExtFunc(cast(void**)&glVertexAttrib4ivARB, "glVertexAttrib4ivARB"))
1104                 return GLExtensionState.FailedToLoad;
1105             if(!bindExtFunc(cast(void**)&glVertexAttrib4sARB, "glVertexAttrib4sARB"))
1106                 return GLExtensionState.FailedToLoad;
1107             if(!bindExtFunc(cast(void**)&glVertexAttrib4svARB, "glVertexAttrib4svARB"))
1108                 return GLExtensionState.FailedToLoad;
1109             if(!bindExtFunc(cast(void**)&glVertexAttrib4ubvARB, "glVertexAttrib4ubvARB"))
1110                 return GLExtensionState.FailedToLoad;
1111             if(!bindExtFunc(cast(void**)&glVertexAttrib4uivARB, "glVertexAttrib4uivARB"))
1112                 return GLExtensionState.FailedToLoad;
1113             if(!bindExtFunc(cast(void**)&glVertexAttrib4usvARB, "glVertexAttrib4usvARB"))
1114                 return GLExtensionState.FailedToLoad;
1115             if(!bindExtFunc(cast(void**)&glVertexAttribPointerARB, "glVertexAttribPointerARB"))
1116                 return GLExtensionState.FailedToLoad;
1117             if(!bindExtFunc(cast(void**)&glEnableVertexAttribArrayARB, "glEnableVertexAttribArrayARB"))
1118                 return GLExtensionState.FailedToLoad;
1119             if(!bindExtFunc(cast(void**)&glDisableVertexAttribArrayARB, "glDisableVertexAttribArrayARB"))
1120                 return GLExtensionState.FailedToLoad;
1121             if(!bindExtFunc(cast(void**)&glProgramStringARB, "glProgramStringARB"))
1122                 return GLExtensionState.FailedToLoad;
1123             if(!bindExtFunc(cast(void**)&glBindProgramARB, "glBindProgramARB"))
1124                 return GLExtensionState.FailedToLoad;
1125             if(!bindExtFunc(cast(void**)&glDeleteProgramsARB, "glDeleteProgramsARB"))
1126                 return GLExtensionState.FailedToLoad;
1127             if(!bindExtFunc(cast(void**)&glGenProgramsARB, "glGenProgramsARB"))
1128                 return GLExtensionState.FailedToLoad;
1129             if(!bindExtFunc(cast(void**)&glProgramEnvParameter4dARB, "glProgramEnvParameter4dARB"))
1130                 return GLExtensionState.FailedToLoad;
1131             if(!bindExtFunc(cast(void**)&glProgramEnvParameter4dvARB, "glProgramEnvParameter4dvARB"))
1132                 return GLExtensionState.FailedToLoad;
1133             if(!bindExtFunc(cast(void**)&glProgramEnvParameter4fARB, "glProgramEnvParameter4fARB"))
1134                 return GLExtensionState.FailedToLoad;
1135             if(!bindExtFunc(cast(void**)&glProgramEnvParameter4fvARB, "glProgramEnvParameter4fvARB"))
1136                 return GLExtensionState.FailedToLoad;
1137             if(!bindExtFunc(cast(void**)&glProgramLocalParameter4dARB, "glProgramLocalParameter4dARB"))
1138                 return GLExtensionState.FailedToLoad;
1139             if(!bindExtFunc(cast(void**)&glProgramLocalParameter4dvARB, "glProgramLocalParameter4dvARB"))
1140                 return GLExtensionState.FailedToLoad;
1141             if(!bindExtFunc(cast(void**)&glProgramLocalParameter4fARB, "glProgramLocalParameter4fARB"))
1142                 return GLExtensionState.FailedToLoad;
1143             if(!bindExtFunc(cast(void**)&glProgramLocalParameter4fvARB, "glProgramLocalParameter4fvARB"))
1144                 return GLExtensionState.FailedToLoad;
1145             if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterdvARB, "glGetProgramEnvParameterdvARB"))
1146                 return GLExtensionState.FailedToLoad;
1147             if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterfvARB, "glGetProgramEnvParameterfvARB"))
1148                 return GLExtensionState.FailedToLoad;
1149             if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterdvARB, "glGetProgramLocalParameterdvARB"))
1150                 return GLExtensionState.FailedToLoad;
1151             if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterfvARB, "glGetProgramLocalParameterfvARB"))
1152                 return GLExtensionState.FailedToLoad;
1153             if(!bindExtFunc(cast(void**)&glGetProgramivARB, "glGetProgramivARB"))
1154                 return GLExtensionState.FailedToLoad;
1155             if(!bindExtFunc(cast(void**)&glGetProgramStringARB, "glGetProgramStringARB"))
1156                 return GLExtensionState.FailedToLoad;
1157             if(!bindExtFunc(cast(void**)&glGetVertexAttribdvARB, "glGetVertexAttribdvARB"))
1158                 return GLExtensionState.FailedToLoad;
1159             if(!bindExtFunc(cast(void**)&glGetVertexAttribfvARB, "glGetVertexAttribfvARB"))
1160                 return GLExtensionState.FailedToLoad;
1161             if(!bindExtFunc(cast(void**)&glGetVertexAttribivARB, "glGetVertexAttribivARB"))
1162                 return GLExtensionState.FailedToLoad;
1163             if(!bindExtFunc(cast(void**)&glGetVertexAttribPointervARB, "glGetVertexAttribPointervARB"))
1164                 return GLExtensionState.FailedToLoad;
1165             if(!bindExtFunc(cast(void**)&glIsProgramARB, "glIsProgramARB"))
1166                 return GLExtensionState.FailedToLoad;
1167             return GLExtensionState.Loaded;
1168         }
1169 
1170         GLExtensionState load_GL_ARB_fragment_program()
1171         {
1172             if(!extIsSupported("GL_ARB_fragment_program"))
1173                 return GLExtensionState.DriverUnsupported;
1174             return GLExtensionState.Loaded;
1175         }
1176 
1177         GLExtensionState load_GL_ARB_vertex_buffer_object()
1178         {
1179             if(!extIsSupported("GL_ARB_vertex_buffer_object"))
1180                 return GLExtensionState.DriverUnsupported;
1181             if(!bindExtFunc(cast(void**)&glBindBufferARB, "glBindBufferARB"))
1182                 return GLExtensionState.FailedToLoad;
1183             if(!bindExtFunc(cast(void**)&glDeleteBuffersARB, "glDeleteBuffersARB"))
1184                 return GLExtensionState.FailedToLoad;
1185             if(!bindExtFunc(cast(void**)&glGenBuffersARB, "glGenBuffersARB"))
1186                 return GLExtensionState.FailedToLoad;
1187             if(!bindExtFunc(cast(void**)&glIsBufferARB, "glIsBufferARB"))
1188                 return GLExtensionState.FailedToLoad;
1189             if(!bindExtFunc(cast(void**)&glBufferDataARB, "glBufferDataARB"))
1190                 return GLExtensionState.FailedToLoad;
1191             if(!bindExtFunc(cast(void**)&glBufferSubDataARB, "glBufferSubDataARB"))
1192                 return GLExtensionState.FailedToLoad;
1193             if(!bindExtFunc(cast(void**)&glGetBufferSubDataARB, "glGetBufferSubDataARB"))
1194                 return GLExtensionState.FailedToLoad;
1195             if(!bindExtFunc(cast(void**)&glMapBufferARB, "glMapBufferARB"))
1196                 return GLExtensionState.FailedToLoad;
1197             if(!bindExtFunc(cast(void**)&glUnmapBufferARB, "glUnmapBufferARB"))
1198                 return GLExtensionState.FailedToLoad;
1199             if(!bindExtFunc(cast(void**)&glGetBufferParameterivARB, "glGetBufferParameterivARB"))
1200                 return GLExtensionState.FailedToLoad;
1201             if(!bindExtFunc(cast(void**)&glGetBufferPointervARB, "glGetBufferPointervARB"))
1202                 return GLExtensionState.FailedToLoad;
1203             return GLExtensionState.Loaded;
1204         }
1205 
1206         GLExtensionState load_GL_ARB_occlusion_query()
1207         {
1208             if(!extIsSupported("GL_ARB_occlusion_query"))
1209                 return GLExtensionState.DriverUnsupported;
1210             if(!bindExtFunc(cast(void**)&glGenQueriesARB, "glGenQueriesARB"))
1211                 return GLExtensionState.FailedToLoad;
1212             if(!bindExtFunc(cast(void**)&glDeleteQueriesARB, "glDeleteQueriesARB"))
1213                 return GLExtensionState.FailedToLoad;
1214             if(!bindExtFunc(cast(void**)&glIsQueryARB, "glIsQueryARB"))
1215                 return GLExtensionState.FailedToLoad;
1216             if(!bindExtFunc(cast(void**)&glBeginQueryARB, "glBeginQueryARB"))
1217                 return GLExtensionState.FailedToLoad;
1218             if(!bindExtFunc(cast(void**)&glEndQueryARB, "glEndQueryARB"))
1219                 return GLExtensionState.FailedToLoad;
1220             if(!bindExtFunc(cast(void**)&glGetQueryivARB, "glGetQueryivARB"))
1221                 return GLExtensionState.FailedToLoad;
1222             if(!bindExtFunc(cast(void**)&glGetQueryObjectivARB, "glGetQueryObjectivARB"))
1223                 return GLExtensionState.FailedToLoad;
1224             if(!bindExtFunc(cast(void**)&glGetQueryObjectuivARB, "glGetQueryObjectuivARB"))
1225                 return GLExtensionState.FailedToLoad;
1226             return GLExtensionState.Loaded;
1227         }
1228 
1229         GLExtensionState load_GL_ARB_shader_objects()
1230         {
1231             if(!extIsSupported("GL_ARB_shader_objects"))
1232                 return GLExtensionState.DriverUnsupported;
1233             if(!bindExtFunc(cast(void**)&glDeleteObjectARB, "glDeleteObjectARB"))
1234                 return GLExtensionState.FailedToLoad;
1235             if(!bindExtFunc(cast(void**)&glGetHandleARB, "glGetHandleARB"))
1236                 return GLExtensionState.FailedToLoad;
1237             if(!bindExtFunc(cast(void**)&glDetachObjectARB, "glDetachObjectARB"))
1238                 return GLExtensionState.FailedToLoad;
1239             if(!bindExtFunc(cast(void**)&glCreateShaderObjectARB, "glCreateShaderObjectARB"))
1240                 return GLExtensionState.FailedToLoad;
1241             if(!bindExtFunc(cast(void**)&glShaderSourceARB, "glShaderSourceARB"))
1242                 return GLExtensionState.FailedToLoad;
1243             if(!bindExtFunc(cast(void**)&glCompileShaderARB, "glCompileShaderARB"))
1244                 return GLExtensionState.FailedToLoad;
1245             if(!bindExtFunc(cast(void**)&glCreateProgramObjectARB, "glCreateProgramObjectARB"))
1246                 return GLExtensionState.FailedToLoad;
1247             if(!bindExtFunc(cast(void**)&glAttachObjectARB, "glAttachObjectARB"))
1248                 return GLExtensionState.FailedToLoad;
1249             if(!bindExtFunc(cast(void**)&glLinkProgramARB, "glLinkProgramARB"))
1250                 return GLExtensionState.FailedToLoad;
1251             if(!bindExtFunc(cast(void**)&glUseProgramObjectARB, "glUseProgramObjectARB"))
1252                 return GLExtensionState.FailedToLoad;
1253             if(!bindExtFunc(cast(void**)&glValidateProgramARB, "glValidateProgramARB"))
1254                 return GLExtensionState.FailedToLoad;
1255             if(!bindExtFunc(cast(void**)&glUniform1fARB, "glUniform1fARB"))
1256                 return GLExtensionState.FailedToLoad;
1257             if(!bindExtFunc(cast(void**)&glUniform2fARB, "glUniform2fARB"))
1258                 return GLExtensionState.FailedToLoad;
1259             if(!bindExtFunc(cast(void**)&glUniform3fARB, "glUniform3fARB"))
1260                 return GLExtensionState.FailedToLoad;
1261             if(!bindExtFunc(cast(void**)&glUniform4fARB, "glUniform4fARB"))
1262                 return GLExtensionState.FailedToLoad;
1263             if(!bindExtFunc(cast(void**)&glUniform1iARB, "glUniform1iARB"))
1264                 return GLExtensionState.FailedToLoad;
1265             if(!bindExtFunc(cast(void**)&glUniform2iARB, "glUniform2iARB"))
1266                 return GLExtensionState.FailedToLoad;
1267             if(!bindExtFunc(cast(void**)&glUniform3iARB, "glUniform3iARB"))
1268                 return GLExtensionState.FailedToLoad;
1269             if(!bindExtFunc(cast(void**)&glUniform4iARB, "glUniform4iARB"))
1270                 return GLExtensionState.FailedToLoad;
1271             if(!bindExtFunc(cast(void**)&glUniform1fvARB, "glUniform1fvARB"))
1272                 return GLExtensionState.FailedToLoad;
1273             if(!bindExtFunc(cast(void**)&glUniform2fvARB, "glUniform2fvARB"))
1274                 return GLExtensionState.FailedToLoad;
1275             if(!bindExtFunc(cast(void**)&glUniform3fvARB, "glUniform3fvARB"))
1276                 return GLExtensionState.FailedToLoad;
1277             if(!bindExtFunc(cast(void**)&glUniform4fvARB, "glUniform4fvARB"))
1278                 return GLExtensionState.FailedToLoad;
1279             if(!bindExtFunc(cast(void**)&glUniform1ivARB, "glUniform1ivARB"))
1280                 return GLExtensionState.FailedToLoad;
1281             if(!bindExtFunc(cast(void**)&glUniform2ivARB, "glUniform2ivARB"))
1282                 return GLExtensionState.FailedToLoad;
1283             if(!bindExtFunc(cast(void**)&glUniform3ivARB, "glUniform3ivARB"))
1284                 return GLExtensionState.FailedToLoad;
1285             if(!bindExtFunc(cast(void**)&glUniform4ivARB, "glUniform4ivARB"))
1286                 return GLExtensionState.FailedToLoad;
1287             if(!bindExtFunc(cast(void**)&glUniformMatrix2fvARB, "glUniformMatrix2fvARB"))
1288                 return GLExtensionState.FailedToLoad;
1289             if(!bindExtFunc(cast(void**)&glUniformMatrix3fvARB, "glUniformMatrix3fvARB"))
1290                 return GLExtensionState.FailedToLoad;
1291             if(!bindExtFunc(cast(void**)&glUniformMatrix4fvARB, "glUniformMatrix4fvARB"))
1292                 return GLExtensionState.FailedToLoad;
1293             if(!bindExtFunc(cast(void**)&glGetObjectParameterfvARB, "glGetObjectParameterfvARB"))
1294                 return GLExtensionState.FailedToLoad;
1295             if(!bindExtFunc(cast(void**)&glGetObjectParameterivARB, "glGetObjectParameterivARB"))
1296                 return GLExtensionState.FailedToLoad;
1297             if(!bindExtFunc(cast(void**)&glGetInfoLogARB, "glGetInfoLogARB"))
1298                 return GLExtensionState.FailedToLoad;
1299             if(!bindExtFunc(cast(void**)&glGetAttachedObjectsARB, "glGetAttachedObjectsARB"))
1300                 return GLExtensionState.FailedToLoad;
1301             if(!bindExtFunc(cast(void**)&glGetUniformLocationARB, "glGetUniformLocationARB"))
1302                 return GLExtensionState.FailedToLoad;
1303             if(!bindExtFunc(cast(void**)&glGetActiveUniformARB, "glGetActiveUniformARB"))
1304                 return GLExtensionState.FailedToLoad;
1305             if(!bindExtFunc(cast(void**)&glGetUniformfvARB, "glGetUniformfvARB"))
1306                 return GLExtensionState.FailedToLoad;
1307             if(!bindExtFunc(cast(void**)&glGetUniformivARB, "glGetUniformivARB"))
1308                 return GLExtensionState.FailedToLoad;
1309             if(!bindExtFunc(cast(void**)&glGetShaderSourceARB, "glGetShaderSourceARB"))
1310                 return GLExtensionState.FailedToLoad;
1311 
1312             return GLExtensionState.Loaded;
1313         }
1314 
1315         GLExtensionState load_GL_ARB_vertex_shader()
1316         {
1317             if(!extIsSupported("GL_ARB_vertex_shader"))
1318                 return GLExtensionState.DriverUnsupported;
1319             if(!bindExtFunc(cast(void**)&glBindAttribLocationARB, "glBindAttribLocationARB"))
1320                 return GLExtensionState.FailedToLoad;
1321             if(!bindExtFunc(cast(void**)&glGetActiveAttribARB, "glGetActiveAttribARB"))
1322                 return GLExtensionState.FailedToLoad;
1323             if(!bindExtFunc(cast(void**)&glGetAttribLocationARB, "glGetAttribLocationARB"))
1324                 return GLExtensionState.FailedToLoad;
1325             return GLExtensionState.Loaded;
1326         }
1327 
1328         GLExtensionState load_GL_ARB_fragment_shader()
1329         {
1330             if(!extIsSupported("GL_ARB_fragment_shader"))
1331                 return GLExtensionState.DriverUnsupported;
1332             return GLExtensionState.Loaded;
1333         }
1334 
1335         GLExtensionState load_GL_ARB_shading_language_100()
1336         {
1337             if(!extIsSupported("GL_ARB_shading_language_100"))
1338                 return GLExtensionState.DriverUnsupported;
1339             return GLExtensionState.Loaded;
1340         }
1341 
1342         GLExtensionState load_GL_ARB_texture_non_power_of_two()
1343         {
1344             if(!extIsSupported("GL_ARB_texture_non_power_of_two"))
1345                 return GLExtensionState.DriverUnsupported;
1346             return GLExtensionState.Loaded;
1347         }
1348 
1349         GLExtensionState load_GL_ARB_point_sprite()
1350         {
1351             if(!extIsSupported("GL_ARB_point_sprite"))
1352                 return GLExtensionState.DriverUnsupported;
1353             return GLExtensionState.Loaded;
1354         }
1355 
1356         GLExtensionState load_GL_ARB_fragment_program_shadow()
1357         {
1358             if(!extIsSupported("GL_ARB_fragment_program_shadow"))
1359                 return GLExtensionState.DriverUnsupported;
1360             return GLExtensionState.Loaded;
1361         }
1362 
1363         GLExtensionState load_GL_ARB_draw_buffers()
1364         {
1365             if(!extIsSupported("GL_ARB_draw_buffers"))
1366                 return GLExtensionState.DriverUnsupported;
1367             if(!bindExtFunc(cast(void**)&glDrawBuffersARB, "glDrawBuffersARB"))
1368                 return GLExtensionState.FailedToLoad;
1369             return GLExtensionState.Loaded;
1370         }
1371 
1372         GLExtensionState load_GL_ARB_texture_rectangle()
1373         {
1374             if(!extIsSupported("GL_ARB_texture_rectangle"))
1375                 return GLExtensionState.DriverUnsupported;
1376             return GLExtensionState.Loaded;
1377         }
1378 
1379         GLExtensionState load_GL_ARB_color_buffer_float()
1380         {
1381             if(!extIsSupported("GL_ARB_color_buffer_float"))
1382                 return GLExtensionState.DriverUnsupported;
1383             if(!bindExtFunc(cast(void**)&glClampColorARB, "glClampColorARB"))
1384                 return GLExtensionState.FailedToLoad;
1385             return GLExtensionState.Loaded;
1386         }
1387 
1388         GLExtensionState load_GL_ARB_half_float_pixel()
1389         {
1390             if(!extIsSupported("GL_ARB_half_float_pixel"))
1391                 return GLExtensionState.DriverUnsupported;
1392             return GLExtensionState.Loaded;
1393         }
1394 
1395         GLExtensionState load_GL_ARB_texture_float()
1396         {
1397             if(!extIsSupported("GL_ARB_texture_float"))
1398                 return GLExtensionState.DriverUnsupported;
1399             return GLExtensionState.Loaded;
1400         }
1401 
1402         GLExtensionState load_GL_ARB_pixel_buffer_object()
1403         {
1404             if(!extIsSupported("GL_ARB_pixel_buffer_object"))
1405                 return GLExtensionState.DriverUnsupported;
1406             return GLExtensionState.Loaded;
1407         }
1408 
1409         GLExtensionState load_GL_ARB_depth_buffer_float()
1410         {
1411             if(!extIsSupported("GL_ARB_depth_buffer_float"))
1412                 return GLExtensionState.DriverUnsupported;
1413             return GLExtensionState.Loaded;
1414         }
1415 
1416         GLExtensionState load_GL_ARB_draw_instanced()
1417         {
1418             if(!extIsSupported("GL_ARB_draw_instanced"))
1419                 return GLExtensionState.DriverUnsupported;
1420             if(!bindExtFunc(cast(void**)&glDrawArraysInstancedARB, "glDrawArraysInstancedARB"))
1421                 return GLExtensionState.FailedToLoad;
1422             if(!bindExtFunc(cast(void**)&glDrawElementsInstancedARB, "glDrawElementsInstancedARB"))
1423                 return GLExtensionState.FailedToLoad;
1424             return GLExtensionState.Loaded;
1425         }
1426 
1427         GLExtensionState load_GL_ARB_framebuffer_object()
1428         {
1429             if(!extIsSupported("GL_ARB_framebuffer_object"))
1430                 return GLExtensionState.DriverUnsupported;
1431             if(!bindExtFunc(cast(void**)&glIsRenderbuffer, "glIsRenderbuffer"))
1432                 return GLExtensionState.FailedToLoad;
1433             if(!bindExtFunc(cast(void**)&glBindRenderbuffer, "glBindRenderbuffer"))
1434                 return GLExtensionState.FailedToLoad;
1435             if(!bindExtFunc(cast(void**)&glDeleteRenderbuffers, "glDeleteRenderbuffers"))
1436                 return GLExtensionState.FailedToLoad;
1437             if(!bindExtFunc(cast(void**)&glGenRenderbuffers, "glGenRenderbuffers"))
1438                 return GLExtensionState.FailedToLoad;
1439             if(!bindExtFunc(cast(void**)&glRenderbufferStorage, "glRenderbufferStorage"))
1440                 return GLExtensionState.FailedToLoad;
1441             if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisample, "glRenderbufferStorageMultisample"))
1442                 return GLExtensionState.FailedToLoad;
1443             if(!bindExtFunc(cast(void**)&glGetRenderbufferParameteriv, "glGetRenderbufferParameteriv"))
1444                 return GLExtensionState.FailedToLoad;
1445             if(!bindExtFunc(cast(void**)&glIsFramebuffer, "glIsFramebuffer"))
1446                 return GLExtensionState.FailedToLoad;
1447             if(!bindExtFunc(cast(void**)&glBindFramebuffer, "glBindFramebuffer"))
1448                 return GLExtensionState.FailedToLoad;
1449             if(!bindExtFunc(cast(void**)&glDeleteFramebuffers, "glDeleteFramebuffers"))
1450                 return GLExtensionState.FailedToLoad;
1451             if(!bindExtFunc(cast(void**)&glGenFramebuffers, "glGenFramebuffers"))
1452                 return GLExtensionState.FailedToLoad;
1453             if(!bindExtFunc(cast(void**)&glCheckFramebufferStatus, "glCheckFramebufferStatus"))
1454                 return GLExtensionState.FailedToLoad;
1455             if(!bindExtFunc(cast(void**)&glFramebufferTexture1D, "glFramebufferTexture1D"))
1456                 return GLExtensionState.FailedToLoad;
1457             if(!bindExtFunc(cast(void**)&glFramebufferTexture2D, "glFramebufferTexture2D"))
1458                 return GLExtensionState.FailedToLoad;
1459             if(!bindExtFunc(cast(void**)&glFramebufferTexture3D, "glFramebufferTexture3D"))
1460                 return GLExtensionState.FailedToLoad;
1461             if(!bindExtFunc(cast(void**)&glFramebufferTextureLayer, "glFramebufferTextureLayer"))
1462                 return GLExtensionState.FailedToLoad;
1463             if(!bindExtFunc(cast(void**)&glFramebufferRenderbuffer, "glFramebufferRenderbuffer"))
1464                 return GLExtensionState.FailedToLoad;
1465             if(!bindExtFunc(cast(void**)&glGetFramebufferAttachmentParameteriv, "glGetFramebufferAttachmentParameteriv"))
1466                 return GLExtensionState.FailedToLoad;
1467             if(!bindExtFunc(cast(void**)&glBlitFramebuffer, "glBlitFramebuffer"))
1468                 return GLExtensionState.FailedToLoad;
1469             if(!bindExtFunc(cast(void**)&glGenerateMipmap, "glGenerateMipmap"))
1470                 return GLExtensionState.FailedToLoad;
1471             return GLExtensionState.Loaded;
1472         }
1473 
1474         GLExtensionState load_GL_ARB_framebuffer_sRGB()
1475         {
1476             if(!extIsSupported("GL_ARB_framebuffer_sRGB"))
1477                 return GLExtensionState.DriverUnsupported;
1478             return GLExtensionState.Loaded;
1479         }
1480 
1481         GLExtensionState load_GL_ARB_geometry_shader4()
1482         {
1483             if(!extIsSupported("GL_ARB_geometry_shader4"))
1484                 return GLExtensionState.DriverUnsupported;
1485             if(!bindExtFunc(cast(void**)&glProgramParameteriARB, "glProgramParameteriARB"))
1486                 return GLExtensionState.FailedToLoad;
1487             if(!bindExtFunc(cast(void**)&glFramebufferTextureARB, "glFramebufferTextureARB"))
1488                 return GLExtensionState.FailedToLoad;
1489             if(!bindExtFunc(cast(void**)&glFramebufferTextureLayerARB, "glFramebufferTextureLayerARB"))
1490                 return GLExtensionState.FailedToLoad;
1491             if(!bindExtFunc(cast(void**)&glFramebufferTextureFaceARB, "glFramebufferTextureFaceARB"))
1492                 return GLExtensionState.FailedToLoad;
1493             return GLExtensionState.Loaded;
1494         }
1495 
1496         GLExtensionState load_GL_ARB_half_float_vertex()
1497         {
1498             if(!extIsSupported("GL_ARB_half_float_vertex"))
1499                 return GLExtensionState.DriverUnsupported;
1500             return GLExtensionState.Loaded;
1501         }
1502 
1503         GLExtensionState load_GL_ARB_imaging()
1504         {
1505             if(!extIsSupported("GL_ARB_imaging"))
1506                 return GLExtensionState.DriverUnsupported;
1507             if(!bindExtFunc(cast(void**)&glColorTable, "glColorTable"))
1508                 return GLExtensionState.FailedToLoad;
1509             if(!bindExtFunc(cast(void**)&glColorSubTable, "glColorSubTable"))
1510                 return GLExtensionState.FailedToLoad;
1511             if(!bindExtFunc(cast(void**)&glColorTableParameteriv, "glColorTableParameteriv"))
1512                 return GLExtensionState.FailedToLoad;
1513             if(!bindExtFunc(cast(void**)&glColorTableParameterfv, "glColorTableParameterfv"))
1514                 return GLExtensionState.FailedToLoad;
1515             if(!bindExtFunc(cast(void**)&glCopyColorSubTable, "glCopyColorSubTable"))
1516                 return GLExtensionState.FailedToLoad;
1517             if(!bindExtFunc(cast(void**)&glCopyColorTable, "glCopyColorTable"))
1518                 return GLExtensionState.FailedToLoad;
1519             if(!bindExtFunc(cast(void**)&glGetColorTable, "glGetColorTable"))
1520                 return GLExtensionState.FailedToLoad;
1521             if(!bindExtFunc(cast(void**)&glGetColorTableParameterfv, "glGetColorTableParameterfv"))
1522                 return GLExtensionState.FailedToLoad;
1523             if(!bindExtFunc(cast(void**)&glGetColorTableParameteriv, "glGetColorTableParameteriv"))
1524                 return GLExtensionState.FailedToLoad;
1525             if(!bindExtFunc(cast(void**)&glHistogram, "glHistogram"))
1526                 return GLExtensionState.FailedToLoad;
1527             if(!bindExtFunc(cast(void**)&glResetHistogram, "glResetHistogram"))
1528                 return GLExtensionState.FailedToLoad;
1529             if(!bindExtFunc(cast(void**)&glGetHistogram, "glGetHistogram"))
1530                 return GLExtensionState.FailedToLoad;
1531             if(!bindExtFunc(cast(void**)&glGetHistogramParameterfv, "glGetHistogramParameterfv"))
1532                 return GLExtensionState.FailedToLoad;
1533             if(!bindExtFunc(cast(void**)&glGetHistogramParameteriv, "glGetHistogramParameteriv"))
1534                 return GLExtensionState.FailedToLoad;
1535             if(!bindExtFunc(cast(void**)&glMinmax, "glMinmax"))
1536                 return GLExtensionState.FailedToLoad;
1537             if(!bindExtFunc(cast(void**)&glResetMinmax, "glResetMinmax"))
1538                 return GLExtensionState.FailedToLoad;
1539             if(!bindExtFunc(cast(void**)&glGetMinmax, "glGetMinmax"))
1540                 return GLExtensionState.FailedToLoad;
1541             if(!bindExtFunc(cast(void**)&glGetMinmaxParameterfv, "glGetMinmaxParameterfv"))
1542                 return GLExtensionState.FailedToLoad;
1543             if(!bindExtFunc(cast(void**)&glGetMinmaxParameteriv, "glGetMinmaxParameteriv"))
1544                 return GLExtensionState.FailedToLoad;
1545             if(!bindExtFunc(cast(void**)&glConvolutionFilter1D, "glConvolutionFilter1D"))
1546                 return GLExtensionState.FailedToLoad;
1547             if(!bindExtFunc(cast(void**)&glConvolutionFilter2D, "glConvolutionFilter2D"))
1548                 return GLExtensionState.FailedToLoad;
1549             if(!bindExtFunc(cast(void**)&glConvolutionParameterf, "glConvolutionParameterf"))
1550                 return GLExtensionState.FailedToLoad;
1551             if(!bindExtFunc(cast(void**)&glConvolutionParameterfv, "glConvolutionParameterfv"))
1552                 return GLExtensionState.FailedToLoad;
1553             if(!bindExtFunc(cast(void**)&glConvolutionParameteri, "glConvolutionParameteri"))
1554                 return GLExtensionState.FailedToLoad;
1555             if(!bindExtFunc(cast(void**)&glConvolutionParameteriv, "glConvolutionParameteriv"))
1556                 return GLExtensionState.FailedToLoad;
1557             if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter1D, "glCopyConvolutionFilter1D"))
1558                 return GLExtensionState.FailedToLoad;
1559             if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter2D, "glCopyConvolutionFilter2D"))
1560                 return GLExtensionState.FailedToLoad;
1561             if(!bindExtFunc(cast(void**)&glGetConvolutionFilter, "glGetConvolutionFilter"))
1562                 return GLExtensionState.FailedToLoad;
1563             if(!bindExtFunc(cast(void**)&glGetConvolutionParameterfv, "glGetConvolutionParameterfv"))
1564                 return GLExtensionState.FailedToLoad;
1565             if(!bindExtFunc(cast(void**)&glGetConvolutionParameteriv, "glGetConvolutionParameteriv"))
1566                 return GLExtensionState.FailedToLoad;
1567             if(!bindExtFunc(cast(void**)&glSeparableFilter2D, "glSeparableFilter2D"))
1568                 return GLExtensionState.FailedToLoad;
1569             if(!bindExtFunc(cast(void**)&glGetSeparableFilter, "glGetSeparableFilter"))
1570                 return GLExtensionState.FailedToLoad;
1571             return GLExtensionState.Loaded;
1572         }
1573 
1574         GLExtensionState load_GL_ARB_instanced_arrays()
1575         {
1576             if(!extIsSupported("GL_ARB_instanced_arrays"))
1577                 return GLExtensionState.DriverUnsupported;
1578             if(!bindExtFunc(cast(void**)&glVertexAttribDivisorARB, "glVertexAttribDivisorARB"))
1579                 return GLExtensionState.FailedToLoad;
1580             return GLExtensionState.Loaded;
1581         }
1582 
1583         GLExtensionState load_GL_ARB_map_buffer_range()
1584         {
1585             if(!extIsSupported("GL_ARB_map_buffer_range"))
1586                 return GLExtensionState.DriverUnsupported;
1587             if(!bindExtFunc(cast(void**)&glMapBufferRange, "glMapBufferRange"))
1588                 return GLExtensionState.FailedToLoad;
1589             if(!bindExtFunc(cast(void**)&glFlushMappedBufferRange, "glFlushMappedBufferRange"))
1590                 return GLExtensionState.FailedToLoad;
1591             return GLExtensionState.Loaded;
1592         }
1593 
1594         GLExtensionState load_GL_ARB_texture_buffer_object()
1595         {
1596             if(!extIsSupported("GL_ARB_texture_buffer_object"))
1597                 return GLExtensionState.DriverUnsupported;
1598             if(!bindExtFunc(cast(void**)&glTexBufferARB, "glTexBufferARB"))
1599                 return GLExtensionState.FailedToLoad;
1600             return GLExtensionState.Loaded;
1601         }
1602 
1603         GLExtensionState load_GL_ARB_texture_compression_rgtc()
1604         {
1605             if(!extIsSupported("GL_ARB_texture_compression_rgtc"))
1606                 return GLExtensionState.DriverUnsupported;
1607             return GLExtensionState.Loaded;
1608         }
1609 
1610         GLExtensionState load_GL_ARB_texture_rg()
1611         {
1612             if(!extIsSupported("GL_ARB_texture_rg"))
1613                 return GLExtensionState.DriverUnsupported;
1614             return GLExtensionState.Loaded;
1615         }
1616 
1617         GLExtensionState load_GL_ARB_vertex_array_object()
1618         {
1619             if(!extIsSupported("GL_ARB_vertex_array_object"))
1620                 return GLExtensionState.DriverUnsupported;
1621             if(!bindExtFunc(cast(void**)&glBindVertexArray, "glBindVertexArray"))
1622                 return GLExtensionState.FailedToLoad;
1623             if(!bindExtFunc(cast(void**)&glDeleteVertexArrays, "glDeleteVertexArrays"))
1624                 return GLExtensionState.FailedToLoad;
1625             if(!bindExtFunc(cast(void**)&glGenVertexArrays, "glGenVertexArrays"))
1626                 return GLExtensionState.FailedToLoad;
1627             if(!bindExtFunc(cast(void**)&glIsVertexArray, "glIsVertexArray"))
1628                 return GLExtensionState.FailedToLoad;
1629             return GLExtensionState.Loaded;
1630         }
1631 
1632         GLExtensionState load_GL_ARB_copy_buffer()
1633         {
1634             if(!extIsSupported("GL_ARB_copy_bffer"))
1635                 return GLExtensionState.DriverUnsupported;
1636             if(!bindExtFunc(cast(void**)&glCopyBufferSubData, "glCopyBufferSubData"))
1637                 return GLExtensionState.FailedToLoad;
1638             return GLExtensionState.Loaded;
1639         }
1640 
1641         GLExtensionState load_GL_ARB_uniform_buffer_object()
1642         {
1643             if(!extIsSupported("GL_ARB_uniform_buffer_object"))
1644                 return GLExtensionState.DriverUnsupported;
1645             if(!bindExtFunc(cast(void**)&glGetUniformIndices, "glGetUniformIndices"))
1646                 return GLExtensionState.FailedToLoad;
1647             if(!bindExtFunc(cast(void**)&glGetActiveUniformsiv, "glGetActiveUniformsiv"))
1648                 return GLExtensionState.FailedToLoad;
1649             if(!bindExtFunc(cast(void**)&glGetActiveUniformName, "glGetActiveUniformName"))
1650                 return GLExtensionState.FailedToLoad;
1651             if(!bindExtFunc(cast(void**)&glGetUniformBlockIndex, "glGetUniformBlockIndex"))
1652                 return GLExtensionState.FailedToLoad;
1653             if(!bindExtFunc(cast(void**)&glGetActiveUniformBlockiv, "glGetActiveUniformBlockiv"))
1654                 return GLExtensionState.FailedToLoad;
1655             if(!bindExtFunc(cast(void**)&glGetActiveUniformBlockName, "glGetActiveUniformBlockName"))
1656                 return GLExtensionState.FailedToLoad;
1657             if(!bindExtFunc(cast(void**)&glUniformBlockBinding, "glUniformBlockBinding"))
1658                 return GLExtensionState.FailedToLoad;
1659             return GLExtensionState.Loaded;
1660         }
1661 
1662         GLExtensionState load_GL_ARB_vertex_array_bgra()
1663         {
1664             if(!extIsSupported("GL_ARB_vertex_array_bgra"))
1665                 return GLExtensionState.DriverUnsupported;
1666             return GLExtensionState.Loaded;
1667         }
1668 
1669         GLExtensionState load_GL_ARB_draw_elements_base_vertex()
1670         {
1671             if(!extIsSupported("GL_ARB_uniform_buffer_object"))
1672                 return GLExtensionState.DriverUnsupported;
1673             if(!bindExtFunc(cast(void**)&glDrawElementsBaseVertex, "glDrawElementsBaseVertex"))
1674                 return GLExtensionState.FailedToLoad;
1675             if(!bindExtFunc(cast(void**)&glDrawRangeElementsBaseVertex, "glDrawRangeElementsBaseVertex"))
1676                 return GLExtensionState.FailedToLoad;
1677             if(!bindExtFunc(cast(void**)&glDrawElementsInstancedBaseVertex, "glDrawElementsInstancedBaseVertex"))
1678                 return GLExtensionState.FailedToLoad;
1679             if(!bindExtFunc(cast(void**)&glMultiDrawElementsBaseVertex, "glMultiDrawElementsBaseVertex"))
1680                 return GLExtensionState.FailedToLoad;
1681             return GLExtensionState.Loaded;
1682         }
1683 
1684         GLExtensionState load_GL_ARB_vertex_attrib_64bit()
1685         {
1686             if(!extIsSupported("GL_ARB_vertex_attrib_64bit"))
1687                 return GLExtensionState.DriverUnsupported;
1688             if(!bindExtFunc(cast(void**)&glGetVertexAttribLdv, "glGetVertexAttribLdv"))
1689                 return GLExtensionState.FailedToLoad;
1690             if(!bindExtFunc(cast(void**)&glVertexAttribL1d, "glVertexAttribL1d"))
1691                 return GLExtensionState.FailedToLoad;
1692             if(!bindExtFunc(cast(void**)&glVertexAttribL1dv, "glVertexAttribL1dv"))
1693                 return GLExtensionState.FailedToLoad;
1694             if(!bindExtFunc(cast(void**)&glVertexAttribL2d, "glVertexAttribL2d"))
1695                 return GLExtensionState.FailedToLoad;
1696             if(!bindExtFunc(cast(void**)&glVertexAttribL2dv, "glVertexAttribL2dv"))
1697                 return GLExtensionState.FailedToLoad;
1698             if(!bindExtFunc(cast(void**)&glVertexAttribL3d, "glVertexAttribL3d"))
1699                 return GLExtensionState.FailedToLoad;
1700             if(!bindExtFunc(cast(void**)&glVertexAttribL3dv, "glVertexAttribL3dv"))
1701                 return GLExtensionState.FailedToLoad;
1702             if(!bindExtFunc(cast(void**)&glVertexAttribL4d, "glVertexAttribL4d"))
1703                 return GLExtensionState.FailedToLoad;
1704             if(!bindExtFunc(cast(void**)&glVertexAttribL4dv, "glVertexAttribL4dv"))
1705                 return GLExtensionState.FailedToLoad;
1706             if(!bindExtFunc(cast(void**)&glVertexAttribLPointer, "glVertexAttribLPointer"))
1707                 return GLExtensionState.FailedToLoad;
1708             return GLExtensionState.Loaded;
1709         }
1710 
1711         GLExtensionState load_GL_ARB_provoking_vertex()
1712         {
1713             if(!extIsSupported("GL_ARB_provoking_vertex"))
1714                 return GLExtensionState.DriverUnsupported;
1715             if(!bindExtFunc(cast(void**)&glProvokingVertex, "glProvokingVertex"))
1716                 return GLExtensionState.FailedToLoad;
1717             return GLExtensionState.Loaded;
1718         }
1719 
1720         GLExtensionState load_GL_ARB_sync()
1721         {
1722             if(!extIsSupported("GL_ARB_sync"))
1723                 return GLExtensionState.DriverUnsupported;
1724             if(!bindExtFunc(cast(void**)&glFenceSync, "glFenceSync"))
1725                 return GLExtensionState.FailedToLoad;
1726             if(!bindExtFunc(cast(void**)&glIsSync, "glIsSync"))
1727                 return GLExtensionState.FailedToLoad;
1728             if(!bindExtFunc(cast(void**)&glDeleteSync, "glDeleteSync"))
1729                 return GLExtensionState.FailedToLoad;
1730             if(!bindExtFunc(cast(void**)&glClientWaitSync, "glClientWaitSync"))
1731                 return GLExtensionState.FailedToLoad;
1732             if(!bindExtFunc(cast(void**)&glWaitSync, "glWaitSync"))
1733                 return GLExtensionState.FailedToLoad;
1734             if(!bindExtFunc(cast(void**)&glGetInteger64v, "glGetInteger64v"))
1735                 return GLExtensionState.FailedToLoad;
1736             if(!bindExtFunc(cast(void**)&glGetSynciv, "glGetSynciv"))
1737                 return GLExtensionState.FailedToLoad;
1738             return GLExtensionState.Loaded;
1739         }
1740 
1741         GLExtensionState load_GL_ARB_texture_multisample()
1742         {
1743             if(!extIsSupported("GL_ARB_texture_multisample"))
1744                 return GLExtensionState.DriverUnsupported;
1745             if(!bindExtFunc(cast(void**)&glTexImage2DMultisample, "glTexImage2DMultisample"))
1746                 return GLExtensionState.FailedToLoad;
1747             if(!bindExtFunc(cast(void**)&glTexImage3DMultisample, "glTexImage3DMultisample"))
1748                 return GLExtensionState.FailedToLoad;
1749             if(!bindExtFunc(cast(void**)&glGetMultisamplefv, "glGetMultisamplefv"))
1750                 return GLExtensionState.FailedToLoad;
1751             if(!bindExtFunc(cast(void**)&glSampleMaski, "glSampleMaski"))
1752                 return GLExtensionState.FailedToLoad;
1753             return GLExtensionState.Loaded;
1754         }
1755 
1756         GLExtensionState load_GL_ARB_viewport_array()
1757         {
1758             if(!extIsSupported("GL_ARB_viewport_array"))
1759                 return GLExtensionState.DriverUnsupported;
1760             if(!bindExtFunc(cast(void**)&glDepthRangeArrayv, "glDepthRangeArrayv"))
1761                 return GLExtensionState.FailedToLoad;
1762             if(!bindExtFunc(cast(void**)&glDepthRangeIndexed, "glDepthRangeIndexed"))
1763                 return GLExtensionState.FailedToLoad;
1764             if(!bindExtFunc(cast(void**)&glGetDoublei_v, "glGetDoublei_v"))
1765                 return GLExtensionState.FailedToLoad;
1766             if(!bindExtFunc(cast(void**)&glGetFloati_v, "glGetFloati_v"))
1767                 return GLExtensionState.FailedToLoad;
1768             if(!bindExtFunc(cast(void**)&glScissorArrayv, "glScissorArrayv"))
1769                 return GLExtensionState.FailedToLoad;
1770             if(!bindExtFunc(cast(void**)&glScissorArrayIndexed, "glScissorArrayIndexed"))
1771                 return GLExtensionState.FailedToLoad;
1772             if(!bindExtFunc(cast(void**)&glScissorArrayIndexedv, "glScissorArrayIndexedv"))
1773                 return GLExtensionState.FailedToLoad;
1774             if(!bindExtFunc(cast(void**)&glViewportArrayv, "glViewportArrayv"))
1775                 return GLExtensionState.FailedToLoad;
1776             if(!bindExtFunc(cast(void**)&glViewportIndexedf, "glViewportIndexedf"))
1777                 return GLExtensionState.FailedToLoad;
1778             if(!bindExtFunc(cast(void**)&glViewportIndexedfv, "glViewportIndexedfv"))
1779                 return GLExtensionState.FailedToLoad;
1780             return GLExtensionState.Loaded;
1781         }
1782 
1783         GLExtensionState load_GL_ARB_cl_event()
1784         {
1785             if(!extIsSupported("GL_ARB_cl_event"))
1786                 return GLExtensionState.DriverUnsupported;
1787             if(!bindExtFunc(cast(void**)&glCreateSyncFromCLeventARB, "glCreateSyncFromCLeventARB"))
1788                 return GLExtensionState.FailedToLoad;
1789 
1790             return GLExtensionState.Loaded;
1791         }
1792 
1793         GLExtensionState load_GL_ARB_debug_output()
1794         {
1795             if(!extIsSupported("GL_ARB_debug_output"))
1796                 return GLExtensionState.DriverUnsupported;
1797             if(!bindExtFunc(cast(void**)&glDebugMessageCallbackARB, "glDebugMessageCallbackARB"))
1798                 return GLExtensionState.FailedToLoad;
1799             if(!bindExtFunc(cast(void**)&glDebugMessageControlARB, "glDebugMessageControlARB"))
1800                 return GLExtensionState.FailedToLoad;
1801             if(!bindExtFunc(cast(void**)&glDebugMessageInsertARB, "glDebugMessageInsertARB"))
1802                 return GLExtensionState.FailedToLoad;
1803             if(!bindExtFunc(cast(void**)&glGetDebugMessageLogARB, "glGetDebugMessageLogARB"))
1804                 return GLExtensionState.FailedToLoad;
1805 
1806             return GLExtensionState.Loaded;
1807         }
1808 
1809         GLExtensionState load_GL_ARB_robustness()
1810         {
1811             if(!extIsSupported("GL_ARB_robustness"))
1812                 return GLExtensionState.DriverUnsupported;
1813             if(!bindExtFunc(cast(void**)&glGetnColorTableARB, "glGetnColorTableARB"))
1814                 return GLExtensionState.FailedToLoad;
1815             if(!bindExtFunc(cast(void**)&glGetnCompressedTexImageARB, "glGetnCompressedTexImageARB"))
1816                 return GLExtensionState.FailedToLoad;
1817             if(!bindExtFunc(cast(void**)&glGetnConvolutionFilterARB, "glGetnConvolutionFilterARB"))
1818                 return GLExtensionState.FailedToLoad;
1819             if(!bindExtFunc(cast(void**)&glGetnHistogramARB, "glGetnHistogramARB"))
1820                 return GLExtensionState.FailedToLoad;
1821             if(!bindExtFunc(cast(void**)&glGetnMapdvARB, "glGetnMapdvARB"))
1822                 return GLExtensionState.FailedToLoad;
1823             if(!bindExtFunc(cast(void**)&glGetnMapfvARB, "glGetnMapfvARB"))
1824                 return GLExtensionState.FailedToLoad;
1825             if(!bindExtFunc(cast(void**)&glGetnMapivARB, "glGetnMapivARB"))
1826                 return GLExtensionState.FailedToLoad;
1827             if(!bindExtFunc(cast(void**)&glGetnMinMaxARB, "glGetnMinMaxARB"))
1828                 return GLExtensionState.FailedToLoad;
1829             if(!bindExtFunc(cast(void**)&glGetnPixelMapfvARB, "glGetnPixelMapfvARB"))
1830                 return GLExtensionState.FailedToLoad;
1831             if(!bindExtFunc(cast(void**)&glGetnPixelMapuivARB, "glGetnPixelMapuivARB"))
1832                 return GLExtensionState.FailedToLoad;
1833             if(!bindExtFunc(cast(void**)&glGetnPixelMapusvARB, "glGetnPixelMapusvARB"))
1834                 return GLExtensionState.FailedToLoad;
1835             if(!bindExtFunc(cast(void**)&glGetnPolygonStippleARB, "glGetnPolygonStippleARB"))
1836                 return GLExtensionState.FailedToLoad;
1837             if(!bindExtFunc(cast(void**)&glGetnSeparableFilterARB, "glGetnSeparableFilterARB"))
1838                 return GLExtensionState.FailedToLoad;
1839             if(!bindExtFunc(cast(void**)&glGetnTexImageARB, "glGetnTexImageARB"))
1840                 return GLExtensionState.FailedToLoad;
1841             if(!bindExtFunc(cast(void**)&glGetnUniformdvARB, "glGetnUniformdvARB"))
1842                 return GLExtensionState.FailedToLoad;
1843             if(!bindExtFunc(cast(void**)&glGetnUniformfvARB, "glGetnUniformfvARB"))
1844                 return GLExtensionState.FailedToLoad;
1845             if(!bindExtFunc(cast(void**)&glGetnUniformivARB, "glGetnUniformivARB"))
1846                 return GLExtensionState.FailedToLoad;
1847             if(!bindExtFunc(cast(void**)&glGetUniformuivARB, "glGetUniformuivARB"))
1848                 return GLExtensionState.FailedToLoad;
1849             if(!bindExtFunc(cast(void**)&glReadnPixelsARB, "glReadnPixelsARB"))
1850                 return GLExtensionState.FailedToLoad;
1851             return GLExtensionState.Loaded;
1852         }
1853 
1854         GLExtensionState load_GL_ARB_shader_stencil_export()
1855         {
1856             if(!extIsSupported("GL_ARB_shader_stencil_export"))
1857                 return GLExtensionState.DriverUnsupported;
1858             return GLExtensionState.Loaded;
1859         }
1860 
1861         GLExtensionState load_GL_ARB_compatibility()
1862         {
1863             if(!extIsSupported("GL_ARB_compatibility"))
1864                 return GLExtensionState.DriverUnsupported;
1865             return GLExtensionState.Loaded;
1866         }
1867 
1868         GLExtensionState load_GL_ARB_depth_clamp()
1869         {
1870             if(!extIsSupported("GL_ARB_depth_clamp"))
1871                 return GLExtensionState.DriverUnsupported;
1872             return GLExtensionState.Loaded;
1873         }
1874 
1875         GLExtensionState load_GL_ARB_blend_func_extended()
1876         {
1877             if(!extIsSupported("GL_ARB_blend_func_extended"))
1878                 return GLExtensionState.DriverUnsupported;
1879             if(!bindExtFunc(cast(void**)&glBindFragDataLocationIndexed, "glBindFragDataLocationIndexed"))
1880                 return GLExtensionState.FailedToLoad;
1881             if(!bindExtFunc(cast(void**)&glGetFragDataIndex, "glGetFragDataIndex"))
1882                 return GLExtensionState.FailedToLoad;
1883             return GLExtensionState.Loaded;
1884         }
1885 
1886         GLExtensionState load_GL_ARB_sampler_objects()
1887         {
1888             if(!extIsSupported("GL_ARB_sampler_objects"))
1889                 return GLExtensionState.DriverUnsupported;
1890             if(!bindExtFunc(cast(void**)&glGenSamplers, "glGenSamplers"))
1891                 return GLExtensionState.FailedToLoad;
1892             if(!bindExtFunc(cast(void**)&glDeleteSamplers, "glDeleteSamplers"))
1893                 return GLExtensionState.FailedToLoad;
1894             if(!bindExtFunc(cast(void**)&glIsSampler, "glIsSampler"))
1895                 return GLExtensionState.FailedToLoad;
1896             if(!bindExtFunc(cast(void**)&glBindSampler, "glBindSampler"))
1897                 return GLExtensionState.FailedToLoad;
1898             if(!bindExtFunc(cast(void**)&glSamplerParameteri, "glSamplerParameteri"))
1899                 return GLExtensionState.FailedToLoad;
1900             if(!bindExtFunc(cast(void**)&glSamplerParameteriv, "glSamplerParameteriv"))
1901                 return GLExtensionState.FailedToLoad;
1902             if(!bindExtFunc(cast(void**)&glSamplerParameterf, "glSamplerParameterf"))
1903                 return GLExtensionState.FailedToLoad;
1904             if(!bindExtFunc(cast(void**)&glSamplerParameterfv, "glSamplerParameterfv"))
1905                 return GLExtensionState.FailedToLoad;
1906             if(!bindExtFunc(cast(void**)&glSamplerParameterIiv, "glSamplerParameterIiv"))
1907                 return GLExtensionState.FailedToLoad;
1908             if(!bindExtFunc(cast(void**)&glSamplerParameterIuiv, "glSamplerParameterIuiv"))
1909                 return GLExtensionState.FailedToLoad;
1910             if(!bindExtFunc(cast(void**)&glGetSamplerParameteriv, "glGetSamplerParameteriv"))
1911                 return GLExtensionState.FailedToLoad;
1912             if(!bindExtFunc(cast(void**)&glGetSamplerParameterIiv, "glGetSamplerParameterIiv"))
1913                 return GLExtensionState.FailedToLoad;
1914             if(!bindExtFunc(cast(void**)&glGetSamplerParameterfv, "glGetSamplerParameterfv"))
1915                 return GLExtensionState.FailedToLoad;
1916             if(!bindExtFunc(cast(void**)&glGetSamplerParameterIuiv, "glGetSamplerParameterIuiv"))
1917                 return GLExtensionState.FailedToLoad;
1918 
1919             return GLExtensionState.Loaded;
1920         }
1921 
1922         GLExtensionState load_GL_ARB_timer_query()
1923         {
1924             if(!extIsSupported("GL_ARB_timer_query"))
1925                 return GLExtensionState.DriverUnsupported;
1926             if(!bindExtFunc(cast(void**)&glQueryCounter, "glQueryCounter"))
1927                 return GLExtensionState.FailedToLoad;
1928             if(!bindExtFunc(cast(void**)&glGetQueryObjecti64v, "glGetQueryObjecti64v"))
1929                 return GLExtensionState.FailedToLoad;
1930             if(!bindExtFunc(cast(void**)&glGetQueryObjectui64v, "glGetQueryObjectui64v"))
1931                 return GLExtensionState.FailedToLoad;
1932             return GLExtensionState.Loaded;
1933         }
1934 
1935         GLExtensionState load_GL_ARB_vertex_type_2_10_10_10_rev()
1936         {
1937             if(!extIsSupported("GL_ARB_vertex_type_2_10_10_10_rev"))
1938                 return GLExtensionState.DriverUnsupported;
1939             if(!bindExtFunc(cast(void**)&glVertexP2ui, "glVertexP2ui"))
1940                 return GLExtensionState.FailedToLoad;
1941             if(!bindExtFunc(cast(void**)&glVertexP2uiv, "glVertexP2uiv"))
1942                 return GLExtensionState.FailedToLoad;
1943             if(!bindExtFunc(cast(void**)&glVertexP3ui, "glVertexP3ui"))
1944                 return GLExtensionState.FailedToLoad;
1945             if(!bindExtFunc(cast(void**)&glVertexP3uiv, "glVertexP3uiv"))
1946                 return GLExtensionState.FailedToLoad;
1947             if(!bindExtFunc(cast(void**)&glVertexP4ui, "glVertexP4ui"))
1948                 return GLExtensionState.FailedToLoad;
1949             if(!bindExtFunc(cast(void**)&glVertexP4uiv, "glVertexP4uiv"))
1950                 return GLExtensionState.FailedToLoad;
1951             if(!bindExtFunc(cast(void**)&glTexCoordP1ui, "glTexCoordP1ui"))
1952                 return GLExtensionState.FailedToLoad;
1953             if(!bindExtFunc(cast(void**)&glTexCoordP1uiv, "glTexCoordP1uiv"))
1954                 return GLExtensionState.FailedToLoad;
1955             if(!bindExtFunc(cast(void**)&glTexCoordP2ui, "glTexCoordP2ui"))
1956                 return GLExtensionState.FailedToLoad;
1957             if(!bindExtFunc(cast(void**)&glTexCoordP2uiv, "glTexCoordP2uiv"))
1958                 return GLExtensionState.FailedToLoad;
1959             if(!bindExtFunc(cast(void**)&glTexCoordP3ui, "glTexCoordP3ui"))
1960                 return GLExtensionState.FailedToLoad;
1961             if(!bindExtFunc(cast(void**)&glTexCoordP3uiv, "glTexCoordP3uiv"))
1962                 return GLExtensionState.FailedToLoad;
1963             if(!bindExtFunc(cast(void**)&glTexCoordP4ui, "glTexCoordP4ui"))
1964                 return GLExtensionState.FailedToLoad;
1965             if(!bindExtFunc(cast(void**)&glTexCoordP4uiv, "glTexCoordP4uiv"))
1966                 return GLExtensionState.FailedToLoad;
1967             if(!bindExtFunc(cast(void**)&glMultiTexCoordP1ui, "glMultiTexCoordP1ui"))
1968                 return GLExtensionState.FailedToLoad;
1969             if(!bindExtFunc(cast(void**)&glMultiTexCoordP1uiv, "glMultiTexCoordP1uiv"))
1970                 return GLExtensionState.FailedToLoad;
1971             if(!bindExtFunc(cast(void**)&glMultiTexCoordP2ui, "glMultiTexCoordP2ui"))
1972                 return GLExtensionState.FailedToLoad;
1973             if(!bindExtFunc(cast(void**)&glMultiTexCoordP2uiv, "glMultiTexCoordP2uiv"))
1974                 return GLExtensionState.FailedToLoad;
1975             if(!bindExtFunc(cast(void**)&glMultiTexCoordP3ui, "glMultiTexCoordP3ui"))
1976                 return GLExtensionState.FailedToLoad;
1977             if(!bindExtFunc(cast(void**)&glMultiTexCoordP3uiv, "glMultiTexCoordP3uiv"))
1978                 return GLExtensionState.FailedToLoad;
1979             if(!bindExtFunc(cast(void**)&glMultiTexCoordP4ui, "glMultiTexCoordP4ui"))
1980                 return GLExtensionState.FailedToLoad;
1981             if(!bindExtFunc(cast(void**)&glMultiTexCoordP4uiv, "glMultiTexCoordP4uiv"))
1982                 return GLExtensionState.FailedToLoad;
1983             if(!bindExtFunc(cast(void**)&glNormalP3ui, "glNormalP3ui"))
1984                 return GLExtensionState.FailedToLoad;
1985             if(!bindExtFunc(cast(void**)&glNormalP3uiv, "glNormalP3uiv"))
1986                 return GLExtensionState.FailedToLoad;
1987             if(!bindExtFunc(cast(void**)&glColorP3ui, "glColorP3ui"))
1988                 return GLExtensionState.FailedToLoad;
1989             if(!bindExtFunc(cast(void**)&glColorP3uiv, "glColorP3uiv"))
1990                 return GLExtensionState.FailedToLoad;
1991             if(!bindExtFunc(cast(void**)&glColorP4ui, "glColorP4ui"))
1992                 return GLExtensionState.FailedToLoad;
1993             if(!bindExtFunc(cast(void**)&glColorP4uiv, "glColorP4uiv"))
1994                 return GLExtensionState.FailedToLoad;
1995             if(!bindExtFunc(cast(void**)&glSecondaryColorP3ui, "glSecondaryColorP3ui"))
1996                 return GLExtensionState.FailedToLoad;
1997             if(!bindExtFunc(cast(void**)&glSecondaryColorP3uiv, "glSecondaryColorP3uiv"))
1998                 return GLExtensionState.FailedToLoad;
1999             if(!bindExtFunc(cast(void**)&glVertexAttribP1ui, "glVertexAttribP1ui"))
2000                 return GLExtensionState.FailedToLoad;
2001             if(!bindExtFunc(cast(void**)&glVertexAttribP1uiv, "glVertexAttribP1uiv"))
2002                 return GLExtensionState.FailedToLoad;
2003             if(!bindExtFunc(cast(void**)&glVertexAttribP2ui, "glVertexAttribP2ui"))
2004                 return GLExtensionState.FailedToLoad;
2005             if(!bindExtFunc(cast(void**)&glVertexAttribP2uiv, "glVertexAttribP2uiv"))
2006                 return GLExtensionState.FailedToLoad;
2007             if(!bindExtFunc(cast(void**)&glVertexAttribP3ui, "glVertexAttribP3ui"))
2008                 return GLExtensionState.FailedToLoad;
2009             if(!bindExtFunc(cast(void**)&glVertexAttribP3uiv, "glVertexAttribP3uiv"))
2010                 return GLExtensionState.FailedToLoad;
2011             if(!bindExtFunc(cast(void**)&glVertexAttribP4ui, "glVertexAttribP4ui"))
2012                 return GLExtensionState.FailedToLoad;
2013             if(!bindExtFunc(cast(void**)&glVertexAttribP4uiv, "glVertexAttribP4uiv"))
2014                 return GLExtensionState.FailedToLoad;
2015 
2016             return GLExtensionState.Loaded;
2017         }
2018     }
2019 
2020     version(DerelictGL_EXT)
2021     {
2022         GLExtensionState load_GL_EXT_abgr()
2023         {
2024             if(!extIsSupported("GL_EXT_abgr"))
2025                 return GLExtensionState.DriverUnsupported;
2026             return GLExtensionState.Loaded;
2027         }
2028 
2029         GLExtensionState load_GL_EXT_blend_color()
2030         {
2031             if(!extIsSupported("GL_EXT_blend_color"))
2032                 return GLExtensionState.DriverUnsupported;
2033             if(!bindExtFunc(cast(void**)&glBlendColorEXT, "glBlendColorEXT"))
2034                 return GLExtensionState.FailedToLoad;
2035             return GLExtensionState.Loaded;
2036         }
2037 
2038         GLExtensionState load_GL_EXT_polygon_offset()
2039         {
2040             if(!extIsSupported("GL_EXT_polygon_offset"))
2041                 return GLExtensionState.DriverUnsupported;
2042             if(!bindExtFunc(cast(void**)&glPolygonOffsetEXT, "glPolygonOffsetEXT"))
2043                 return GLExtensionState.FailedToLoad;
2044             return GLExtensionState.Loaded;
2045         }
2046 
2047         GLExtensionState load_GL_EXT_texture()
2048         {
2049             if(!extIsSupported("GL_EXT_texture"))
2050                 return GLExtensionState.DriverUnsupported;
2051             if(!bindExtFunc(cast(void**)&glTexImage3DEXT, "glTexImage3DEXT"))
2052                 return GLExtensionState.FailedToLoad;
2053             if(!bindExtFunc(cast(void**)&glTexSubImage3DEXT, "glTexSubImage3DEXT"))
2054                 return GLExtensionState.FailedToLoad;
2055             return GLExtensionState.Loaded;
2056         }
2057 
2058         GLExtensionState load_GL_EXT_texture3D()
2059         {
2060             if(!extIsSupported("GL_EXT_texture3D"))
2061                 return GLExtensionState.DriverUnsupported;
2062             return GLExtensionState.Loaded;
2063         }
2064 
2065         GLExtensionState load_GL_EXT_subtexture()
2066         {
2067             if(!extIsSupported("GL_EXT_subtexture"))
2068                 return GLExtensionState.DriverUnsupported;
2069             if(!bindExtFunc(cast(void**)&glTexSubImage1DEXT, "glTexSubImage1DEXT"))
2070                 return GLExtensionState.FailedToLoad;
2071             if(!bindExtFunc(cast(void**)&glTexSubImage21DEXT, "glTexSubImage21DEXT"))
2072                 return GLExtensionState.FailedToLoad;
2073             return GLExtensionState.Loaded;
2074         }
2075 
2076         GLExtensionState load_GL_EXT_copy_texture()
2077         {
2078             if(!extIsSupported("GL_EXT_copy_texture"))
2079                 return GLExtensionState.DriverUnsupported;
2080             if(!bindExtFunc(cast(void**)&glCopyTexImage1DEXT, "glCopyTexImage1DEXT"))
2081                 return GLExtensionState.FailedToLoad;
2082             if(!bindExtFunc(cast(void**)&glCopyTexImage2DEXT, "glCopyTexImage2DEXT"))
2083                 return GLExtensionState.FailedToLoad;
2084             if(!bindExtFunc(cast(void**)&glCopyTexSubImage1DEXT, "glCopyTexSubImage1DEXT"))
2085                 return GLExtensionState.FailedToLoad;
2086             if(!bindExtFunc(cast(void**)&glCopyTexSubImage2DEXT, "glCopyTexSubImage2DEXT"))
2087                 return GLExtensionState.FailedToLoad;
2088             if(!bindExtFunc(cast(void**)&glCopyTexSubImage3DEXT, "glCopyTexSubImage3DEXT"))
2089                 return GLExtensionState.FailedToLoad;
2090             return GLExtensionState.Loaded;
2091         }
2092 
2093         GLExtensionState load_GL_EXT_histogram()
2094         {
2095             if(!extIsSupported("GL_EXT_histogram"))
2096                 return GLExtensionState.DriverUnsupported;
2097             if(!bindExtFunc(cast(void**)&glGetHistogramEXT, "glGetHistogramEXT"))
2098                 return GLExtensionState.FailedToLoad;
2099             if(!bindExtFunc(cast(void**)&glGetHistogramParameterfvEXT, "glGetHistogramParameterfvEXT"))
2100                 return GLExtensionState.FailedToLoad;
2101             if(!bindExtFunc(cast(void**)&glGetHistogramParameterivEXT, "glGetHistogramParameterivEXT"))
2102                 return GLExtensionState.FailedToLoad;
2103             if(!bindExtFunc(cast(void**)&glGetMinmaxEXT, "glGetMinmaxEXT"))
2104                 return GLExtensionState.FailedToLoad;
2105             if(!bindExtFunc(cast(void**)&glGetMinmaxParameterfvEXT, "glGetMinmaxParameterfvEXT"))
2106                 return GLExtensionState.FailedToLoad;
2107             if(!bindExtFunc(cast(void**)&glGetMinmaxParameterivEXT, "glGetMinmaxParameterivEXT"))
2108                 return GLExtensionState.FailedToLoad;
2109             if(!bindExtFunc(cast(void**)&glHistogramEXT, "glHistogramEXT"))
2110                 return GLExtensionState.FailedToLoad;
2111             if(!bindExtFunc(cast(void**)&glMinmaxEXT, "glMinmaxEXT"))
2112                 return GLExtensionState.FailedToLoad;
2113             if(!bindExtFunc(cast(void**)&glResetHistogramEXT, "glResetHistogramEXT"))
2114                 return GLExtensionState.FailedToLoad;
2115             if(!bindExtFunc(cast(void**)&glResetMinmaxEXT, "glResetMinmaxEXT"))
2116                 return GLExtensionState.FailedToLoad;
2117             return GLExtensionState.Loaded;
2118         }
2119 
2120         GLExtensionState load_GL_EXT_convolution()
2121         {
2122             if(!extIsSupported("GL_EXT_convolution"))
2123                 return GLExtensionState.DriverUnsupported;
2124             if(!bindExtFunc(cast(void**)&glConvolutionFilter1DEXT, "glConvolutionFilter1DEXT"))
2125                 return GLExtensionState.FailedToLoad;
2126             if(!bindExtFunc(cast(void**)&glConvolutionFilter2DEXT, "glConvolutionFilter2DEXT"))
2127                 return GLExtensionState.FailedToLoad;
2128             if(!bindExtFunc(cast(void**)&glConvolutionParameterfEXT, "glConvolutionParameterfEXT"))
2129                 return GLExtensionState.FailedToLoad;
2130             if(!bindExtFunc(cast(void**)&glConvolutionParameterfvEXT, "glConvolutionParameterfvEXT"))
2131                 return GLExtensionState.FailedToLoad;
2132             if(!bindExtFunc(cast(void**)&glConvolutionParameteriEXT, "glConvolutionParameteriEXT"))
2133                 return GLExtensionState.FailedToLoad;
2134             if(!bindExtFunc(cast(void**)&glConvolutionParameterivEXT, "glConvolutionParameterivEXT"))
2135                 return GLExtensionState.FailedToLoad;
2136             if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter1DEXT, "glCopyConvolutionFilter1DEXT"))
2137                 return GLExtensionState.FailedToLoad;
2138             if(!bindExtFunc(cast(void**)&glCopyConvolutionFilter2DEXT, "glCopyConvolutionFilter2DEXT"))
2139                 return GLExtensionState.FailedToLoad;
2140             if(!bindExtFunc(cast(void**)&glGetConvolutionFilterEXT, "glGetConvolutionFilterEXT"))
2141                 return GLExtensionState.FailedToLoad;
2142             if(!bindExtFunc(cast(void**)&glGetConvolutionParameterfvEXT, "glGetConvolutionParameterfvEXT"))
2143                 return GLExtensionState.FailedToLoad;
2144             if(!bindExtFunc(cast(void**)&glGetConvolutionParameterivEXT, "glGetConvolutionParameterivEXT"))
2145                 return GLExtensionState.FailedToLoad;
2146             if(!bindExtFunc(cast(void**)&glGetSeparableFilterEXT, "glGetSeparableFilterEXT"))
2147                 return GLExtensionState.FailedToLoad;
2148             if(!bindExtFunc(cast(void**)&glSeparableFilter2DEXT, "glSeparableFilter2DEXT"))
2149                 return GLExtensionState.FailedToLoad;
2150             return GLExtensionState.Loaded;
2151         }
2152 
2153         GLExtensionState load_GL_EXT_cmyka()
2154         {
2155             if(!extIsSupported("GL_EXT_cmyka"))
2156                 return GLExtensionState.DriverUnsupported;
2157             return GLExtensionState.Loaded;
2158         }
2159 
2160         GLExtensionState load_GL_EXT_texture_object()
2161         {
2162             if(!extIsSupported("GL_EXT_texture_object"))
2163                 return GLExtensionState.DriverUnsupported;
2164             if(!bindExtFunc(cast(void**)&glAreTexturesResidentEXT, "glAreTexturesResidentEXT"))
2165                 return GLExtensionState.FailedToLoad;
2166             if(!bindExtFunc(cast(void**)&glBindTextureEXT, "glBindTextureEXT"))
2167                 return GLExtensionState.FailedToLoad;
2168             if(!bindExtFunc(cast(void**)&glDeleteTexturesEXT, "glDeleteTexturesEXT"))
2169                 return GLExtensionState.FailedToLoad;
2170             if(!bindExtFunc(cast(void**)&glGenTexturesEXT, "glGenTexturesEXT"))
2171                 return GLExtensionState.FailedToLoad;
2172             if(!bindExtFunc(cast(void**)&glIsTextureEXT, "glIsTextureEXT"))
2173                 return GLExtensionState.FailedToLoad;
2174             if(!bindExtFunc(cast(void**)&glPrioritizeTexturesEXT, "glPrioritizeTexturesEXT"))
2175                 return GLExtensionState.FailedToLoad;
2176             return GLExtensionState.Loaded;
2177         }
2178 
2179         GLExtensionState load_GL_EXT_packed_pixels()
2180         {
2181             if(!extIsSupported("GL_EXT_packed_pixels"))
2182                 return GLExtensionState.DriverUnsupported;
2183             return GLExtensionState.Loaded;
2184         }
2185 
2186         GLExtensionState load_GL_EXT_rescale_normal()
2187         {
2188             if(!extIsSupported("GL_EXT_rescale_normal"))
2189                 return GLExtensionState.DriverUnsupported;
2190             return GLExtensionState.Loaded;
2191         }
2192 
2193         GLExtensionState load_GL_EXT_vertex_array()
2194         {
2195             if(!extIsSupported("GL_EXT_vertex_array"))
2196                 return GLExtensionState.DriverUnsupported;
2197             if(!bindExtFunc(cast(void**)&glArrayElementEXT, "glArrayElementEXT"))
2198                 return GLExtensionState.FailedToLoad;
2199             if(!bindExtFunc(cast(void**)&glColorPointerEXT, "glColorPointerEXT"))
2200                 return GLExtensionState.FailedToLoad;
2201             if(!bindExtFunc(cast(void**)&glDrawArraysEXT, "glDrawArraysEXT"))
2202                 return GLExtensionState.FailedToLoad;
2203             if(!bindExtFunc(cast(void**)&glEdgeFlagPointerEXT, "glEdgeFlagPointerEXT"))
2204                 return GLExtensionState.FailedToLoad;
2205             if(!bindExtFunc(cast(void**)&glGetPointervEXT, "glGetPointervEXT"))
2206                 return GLExtensionState.FailedToLoad;
2207             if(!bindExtFunc(cast(void**)&glIndexPointerEXT, "glIndexPointerEXT"))
2208                 return GLExtensionState.FailedToLoad;
2209             if(!bindExtFunc(cast(void**)&glDrawArraysEXT, "glDrawArraysEXT"))
2210                 return GLExtensionState.FailedToLoad;
2211             if(!bindExtFunc(cast(void**)&glNormalPointerEXT, "glNormalPointerEXT"))
2212                 return GLExtensionState.FailedToLoad;
2213             if(!bindExtFunc(cast(void**)&glTexCoordPointerEXT, "glTexCoordPointerEXT"))
2214                 return GLExtensionState.FailedToLoad;
2215             if(!bindExtFunc(cast(void**)&glVertexPointerEXT, "glVertexPointerEXT"))
2216                 return GLExtensionState.FailedToLoad;
2217             return GLExtensionState.Loaded;
2218         }
2219 
2220         GLExtensionState load_GL_EXT_misc_attribute()
2221         {
2222             if(!extIsSupported("GL_EXT_misc_attribute"))
2223                 return GLExtensionState.DriverUnsupported;
2224             return GLExtensionState.Loaded;
2225         }
2226 
2227         GLExtensionState load_GL_EXT_blend_minmax()
2228         {
2229             if(!extIsSupported("GL_EXT_blend_minmax"))
2230                 return GLExtensionState.DriverUnsupported;
2231             if(!bindExtFunc(cast(void**)&glBlendEquationEXT, "glBlendEquationEXT"))
2232                 return GLExtensionState.FailedToLoad;
2233             return GLExtensionState.Loaded;
2234         }
2235 
2236         GLExtensionState load_GL_EXT_blend_subtract()
2237         {
2238             if(!extIsSupported("GL_EXT_blend_subtract"))
2239                 return GLExtensionState.DriverUnsupported;
2240             return GLExtensionState.Loaded;
2241         }
2242 
2243         GLExtensionState load_GL_EXT_blend_logic_op()
2244         {
2245             if(!extIsSupported("GL_EXT_blend_logic_op"))
2246                 return GLExtensionState.DriverUnsupported;
2247             return GLExtensionState.Loaded;
2248         }
2249 
2250         GLExtensionState load_GL_EXT_point_parameters()
2251         {
2252             if(!extIsSupported("GL_EXT_point_parameters"))
2253                 return GLExtensionState.DriverUnsupported;
2254             if(!bindExtFunc(cast(void**)&glPointParameterfEXT, "glPointParameterfEXT"))
2255                 return GLExtensionState.FailedToLoad;
2256             if(!bindExtFunc(cast(void**)&glPointParameterfvEXT, "glPointParameterfvEXT"))
2257                 return GLExtensionState.FailedToLoad;
2258             return GLExtensionState.Loaded;
2259         }
2260 
2261         GLExtensionState load_GL_EXT_color_subtable()
2262         {
2263             if(!extIsSupported("GL_EXT_color_subtable"))
2264                 return GLExtensionState.DriverUnsupported;
2265             if(!bindExtFunc(cast(void**)&glColorSubTableEXT, "glColorSubTableEXT"))
2266                 return GLExtensionState.FailedToLoad;
2267             if(!bindExtFunc(cast(void**)&glCopyColorSubTableEXT, "glCopyColorSubTableEXT"))
2268                 return GLExtensionState.FailedToLoad;
2269             return GLExtensionState.Loaded;
2270         }
2271 
2272         GLExtensionState load_GL_EXT_paletted_texture()
2273         {
2274             if(!extIsSupported("GL_EXT_paletted_texture"))
2275                 return GLExtensionState.DriverUnsupported;
2276             if(!bindExtFunc(cast(void**)&glColorTableEXT, "glColorTableEXT"))
2277                 return GLExtensionState.FailedToLoad;
2278             if(!bindExtFunc(cast(void**)&glGetColorTableEXT, "glGetColorTableEXT"))
2279                 return GLExtensionState.FailedToLoad;
2280             if(!bindExtFunc(cast(void**)&glGetColorTableParameterivEXT, "glGetColorTableParameterivEXT"))
2281                 return GLExtensionState.FailedToLoad;
2282             if(!bindExtFunc(cast(void**)&glGetColorTableParameterfvEXT, "glGetColorTableParameterfvEXT"))
2283                 return GLExtensionState.FailedToLoad;
2284             return GLExtensionState.Loaded;
2285         }
2286 
2287         GLExtensionState load_GL_EXT_clip_volume_hint()
2288         {
2289             if(!extIsSupported("GL_EXT_clip_volume_hint"))
2290                 return GLExtensionState.DriverUnsupported;
2291             return GLExtensionState.Loaded;
2292         }
2293 
2294         GLExtensionState load_GL_EXT_index_texture()
2295         {
2296             if(!extIsSupported("GL_EXT_index_texture"))
2297                 return GLExtensionState.DriverUnsupported;
2298             return GLExtensionState.Loaded;
2299         }
2300 
2301         GLExtensionState load_GL_EXT_index_material()
2302         {
2303             if(!extIsSupported("GL_EXT_index_material"))
2304                 return GLExtensionState.DriverUnsupported;
2305             if(!bindExtFunc(cast(void**)&glIndexMaterialEXT, "glIndexMaterialEXT"))
2306                 return GLExtensionState.FailedToLoad;
2307             return GLExtensionState.Loaded;
2308         }
2309 
2310         GLExtensionState load_GL_EXT_index_func()
2311         {
2312             if(!extIsSupported("GL_EXT_index_func"))
2313                 return GLExtensionState.DriverUnsupported;
2314             if(!bindExtFunc(cast(void**)&glIndexFuncEXT, "glIndexFuncEXT"))
2315                 return GLExtensionState.FailedToLoad;
2316             return GLExtensionState.Loaded;
2317         }
2318 
2319         GLExtensionState load_GL_EXT_index_array_formats()
2320         {
2321             if(!extIsSupported("GL_EXT_index_array_formats"))
2322                 return GLExtensionState.DriverUnsupported;
2323             return GLExtensionState.Loaded;
2324         }
2325 
2326         GLExtensionState load_GL_EXT_compiled_vertex_array()
2327         {
2328             if(!extIsSupported("GL_EXT_compiled_vertex_array"))
2329                 return GLExtensionState.DriverUnsupported;
2330             if(!bindExtFunc(cast(void**)&glLockArraysEXT, "glLockArraysEXT"))
2331                 return GLExtensionState.FailedToLoad;
2332             if(!bindExtFunc(cast(void**)&glUnlockArraysEXT, "glUnlockArraysEXT"))
2333                 return GLExtensionState.FailedToLoad;
2334             return GLExtensionState.Loaded;
2335         }
2336 
2337         GLExtensionState load_GL_EXT_cull_vertex()
2338         {
2339             if(!extIsSupported("GL_EXT_cull_vertex"))
2340                 return GLExtensionState.DriverUnsupported;
2341             if(!bindExtFunc(cast(void**)&glCullParameterdvEXT, "glCullParameterdvEXT"))
2342                 return GLExtensionState.FailedToLoad;
2343             if(!bindExtFunc(cast(void**)&glCullParameterfvEXT, "glCullParameterfvEXT"))
2344                 return GLExtensionState.FailedToLoad;
2345             return GLExtensionState.Loaded;
2346         }
2347 
2348         GLExtensionState load_GL_EXT_draw_range_elements()
2349         {
2350             if(!extIsSupported("GL_EXT_draw_range_elements"))
2351                 return GLExtensionState.DriverUnsupported;
2352             if(!bindExtFunc(cast(void**)&glDrawRangeElementsEXT, "glDrawRangeElementsEXT"))
2353                 return GLExtensionState.FailedToLoad;
2354             return GLExtensionState.Loaded;
2355         }
2356 
2357         GLExtensionState load_GL_EXT_light_texture()
2358         {
2359             if(!extIsSupported("GL_EXT_light_texture"))
2360                 return GLExtensionState.DriverUnsupported;
2361             if(!bindExtFunc(cast(void**)&glApplyTextureEXT, "glApplyTextureEXT"))
2362                 return GLExtensionState.FailedToLoad;
2363             if(!bindExtFunc(cast(void**)&glTextureLightEXT, "glTextureLightEXT"))
2364                 return GLExtensionState.FailedToLoad;
2365             if(!bindExtFunc(cast(void**)&glTextureMaterialEXT, "glTextureMaterialEXT"))
2366                 return GLExtensionState.FailedToLoad;
2367             return GLExtensionState.Loaded;
2368         }
2369 
2370         GLExtensionState load_GL_EXT_bgra()
2371         {
2372             if(!extIsSupported("GL_EXT_bgra"))
2373                 return GLExtensionState.DriverUnsupported;
2374             return GLExtensionState.Loaded;
2375         }
2376 
2377         GLExtensionState load_GL_EXT_pixel_transform()
2378         {
2379             if(!extIsSupported("GL_EXT_pixel_transform"))
2380                 return GLExtensionState.DriverUnsupported;
2381             if(!bindExtFunc(cast(void**)&glPixelTransformParameteriEXT, "glPixelTransformParameteriEXT"))
2382                 return GLExtensionState.FailedToLoad;
2383             if(!bindExtFunc(cast(void**)&glPixelTransformParameterfEXT, "glPixelTransformParameterfEXT"))
2384                 return GLExtensionState.FailedToLoad;
2385             if(!bindExtFunc(cast(void**)&glPixelTransformParameterivEXT, "glPixelTransformParameterivEXT"))
2386                 return GLExtensionState.FailedToLoad;
2387             if(!bindExtFunc(cast(void**)&glPixelTransformParameterfvEXT, "glPixelTransformParameterfvEXT"))
2388                 return GLExtensionState.FailedToLoad;
2389             return GLExtensionState.Loaded;
2390         }
2391 
2392         GLExtensionState load_GL_EXT_pixel_transform_color_table()
2393         {
2394             if(!extIsSupported("GL_EXT_pixel_transform_color_table"))
2395                 return GLExtensionState.DriverUnsupported;
2396             return GLExtensionState.Loaded;
2397         }
2398 
2399         GLExtensionState load_GL_EXT_shared_texture_palette()
2400         {
2401             if(!extIsSupported("GL_EXT_shared_texture_palette"))
2402                 return GLExtensionState.DriverUnsupported;
2403             return GLExtensionState.Loaded;
2404         }
2405 
2406         GLExtensionState load_GL_EXT_separate_specular_color()
2407         {
2408             if(!extIsSupported("GL_EXT_separate_specular_color"))
2409                 return GLExtensionState.DriverUnsupported;
2410             return GLExtensionState.Loaded;
2411         }
2412 
2413         GLExtensionState load_GL_EXT_secondary_color()
2414         {
2415             if(!extIsSupported("GL_EXT_secondary_color"))
2416                 return GLExtensionState.DriverUnsupported;
2417             if(!bindExtFunc(cast(void**)&glSecondaryColor3bEXT, "glSecondaryColor3bEXT"))
2418                 return GLExtensionState.FailedToLoad;
2419             if(!bindExtFunc(cast(void**)&glSecondaryColor3bvEXT, "glSecondaryColor3bvEXT"))
2420                 return GLExtensionState.FailedToLoad;
2421             if(!bindExtFunc(cast(void**)&glSecondaryColor3dEXT, "glSecondaryColor3dEXT"))
2422                 return GLExtensionState.FailedToLoad;
2423             if(!bindExtFunc(cast(void**)&glSecondaryColor3dvEXT, "glSecondaryColor3dvEXT"))
2424                 return GLExtensionState.FailedToLoad;
2425             if(!bindExtFunc(cast(void**)&glSecondaryColor3fEXT, "glSecondaryColor3fEXT"))
2426                 return GLExtensionState.FailedToLoad;
2427             if(!bindExtFunc(cast(void**)&glSecondaryColor3fvEXT, "glSecondaryColor3fvEXT"))
2428                 return GLExtensionState.FailedToLoad;
2429             if(!bindExtFunc(cast(void**)&glSecondaryColor3iEXT, "glSecondaryColor3iEXT"))
2430                 return GLExtensionState.FailedToLoad;
2431             if(!bindExtFunc(cast(void**)&glSecondaryColor3ivEXT, "glSecondaryColor3ivEXT"))
2432                 return GLExtensionState.FailedToLoad;
2433             if(!bindExtFunc(cast(void**)&glSecondaryColor3sEXT, "glSecondaryColor3sEXT"))
2434                 return GLExtensionState.FailedToLoad;
2435             if(!bindExtFunc(cast(void**)&glSecondaryColor3svEXT, "glSecondaryColor3svEXT"))
2436                 return GLExtensionState.FailedToLoad;
2437             if(!bindExtFunc(cast(void**)&glSecondaryColor3ubEXT, "glSecondaryColor3ubEXT"))
2438                 return GLExtensionState.FailedToLoad;
2439             if(!bindExtFunc(cast(void**)&glSecondaryColor3ubvEXT, "glSecondaryColor3ubvEXT"))
2440                 return GLExtensionState.FailedToLoad;
2441             if(!bindExtFunc(cast(void**)&glSecondaryColor3uiEXT, "glSecondaryColor3uiEXT"))
2442                 return GLExtensionState.FailedToLoad;
2443             if(!bindExtFunc(cast(void**)&glSecondaryColor3uivEXT, "glSecondaryColor3uivEXT"))
2444                 return GLExtensionState.FailedToLoad;
2445             if(!bindExtFunc(cast(void**)&glSecondaryColor3usEXT, "glSecondaryColor3usEXT"))
2446                 return GLExtensionState.FailedToLoad;
2447             if(!bindExtFunc(cast(void**)&glSecondaryColor3usvEXT, "glSecondaryColor3usvEXT"))
2448                 return GLExtensionState.FailedToLoad;
2449             if(!bindExtFunc(cast(void**)&glSecondaryColorPointerEXT, "glSecondaryColorPointerEXT"))
2450                 return GLExtensionState.FailedToLoad;
2451             return GLExtensionState.Loaded;
2452         }
2453 
2454         GLExtensionState load_GL_EXT_texture_perturb_normal()
2455         {
2456             if(!extIsSupported("GL_EXT_texture_perturb_normal"))
2457                 return GLExtensionState.DriverUnsupported;
2458             if(!bindExtFunc(cast(void**)&glTextureNormalEXT, "glTextureNormalEXT"))
2459                 return GLExtensionState.FailedToLoad;
2460             return GLExtensionState.Loaded;
2461         }
2462 
2463         GLExtensionState load_GL_EXT_multi_draw_arrays()
2464         {
2465             if(!extIsSupported("GL_EXT_multi_draw_arrays"))
2466                 return GLExtensionState.DriverUnsupported;
2467             if(!bindExtFunc(cast(void**)&glMultiDrawArraysEXT, "glMultiDrawArraysEXT"))
2468                 return GLExtensionState.FailedToLoad;
2469             if(!bindExtFunc(cast(void**)&glMultiDrawElementsEXT, "glMultiDrawElementsEXT"))
2470                 return GLExtensionState.FailedToLoad;
2471             return GLExtensionState.Loaded;
2472         }
2473 
2474         GLExtensionState load_GL_EXT_fog_coord()
2475         {
2476             if(!extIsSupported("GL_EXT_fog_coord"))
2477                 return GLExtensionState.DriverUnsupported;
2478             if(!bindExtFunc(cast(void**)&glFogCoordfEXT, "glFogCoordfEXT"))
2479                 return GLExtensionState.FailedToLoad;
2480             if(!bindExtFunc(cast(void**)&glFogCoordfvEXT, "glFogCoordfvEXT"))
2481                 return GLExtensionState.FailedToLoad;
2482             if(!bindExtFunc(cast(void**)&glFogCoorddEXT, "glFogCoorddEXT"))
2483                 return GLExtensionState.FailedToLoad;
2484             if(!bindExtFunc(cast(void**)&glFogCoorddvEXT, "glFogCoorddvEXT"))
2485                 return GLExtensionState.FailedToLoad;
2486             if(!bindExtFunc(cast(void**)&glFogCoordPointerEXT, "glFogCoordPointerEXT"))
2487                 return GLExtensionState.FailedToLoad;
2488             return GLExtensionState.Loaded;
2489         }
2490 
2491         GLExtensionState load_GL_EXT_coordinate_frame()
2492         {
2493             if(!extIsSupported("GL_EXT_coordinate_frame"))
2494                 return GLExtensionState.DriverUnsupported;
2495             if(!bindExtFunc(cast(void**)&glTangent3bEXT, "glTangent3bEXT"))
2496                 return GLExtensionState.FailedToLoad;
2497             if(!bindExtFunc(cast(void**)&glTangent3bvEXT, "glTangent3bvEXT"))
2498                 return GLExtensionState.FailedToLoad;
2499             if(!bindExtFunc(cast(void**)&glTangent3dEXT, "glTangent3dEXT"))
2500                 return GLExtensionState.FailedToLoad;
2501             if(!bindExtFunc(cast(void**)&glTangent3dvEXT, "glTangent3dvEXT"))
2502                 return GLExtensionState.FailedToLoad;
2503             if(!bindExtFunc(cast(void**)&glTangent3fEXT, "glTangent3fEXT"))
2504                 return GLExtensionState.FailedToLoad;
2505             if(!bindExtFunc(cast(void**)&glTangent3fvEXT, "glTangent3fvEXT"))
2506                 return GLExtensionState.FailedToLoad;
2507             if(!bindExtFunc(cast(void**)&glTangent3iEXT, "glTangent3iEXT"))
2508                 return GLExtensionState.FailedToLoad;
2509             if(!bindExtFunc(cast(void**)&glTangent3ivEXT, "glTangent3ivEXT"))
2510                 return GLExtensionState.FailedToLoad;
2511             if(!bindExtFunc(cast(void**)&glTangent3sEXT, "glTangent3sEXT"))
2512                 return GLExtensionState.FailedToLoad;
2513             if(!bindExtFunc(cast(void**)&glTangent3svEXT, "glTangent3svEXT"))
2514                 return GLExtensionState.FailedToLoad;
2515             if(!bindExtFunc(cast(void**)&glBinormal3bEXT, "glBinormal3bEXT"))
2516                 return GLExtensionState.FailedToLoad;
2517             if(!bindExtFunc(cast(void**)&glBinormal3bvEXT, "glBinormal3bvEXT"))
2518                 return GLExtensionState.FailedToLoad;
2519             if(!bindExtFunc(cast(void**)&glBinormal3dEXT, "glBinormal3dEXT"))
2520                 return GLExtensionState.FailedToLoad;
2521             if(!bindExtFunc(cast(void**)&glBinormal3dvEXT, "glBinormal3dvEXT"))
2522                 return GLExtensionState.FailedToLoad;
2523             if(!bindExtFunc(cast(void**)&glBinormal3fEXT, "glBinormal3fEXT"))
2524                 return GLExtensionState.FailedToLoad;
2525             if(!bindExtFunc(cast(void**)&glBinormal3fvEXT, "glBinormal3fvEXT"))
2526                 return GLExtensionState.FailedToLoad;
2527             if(!bindExtFunc(cast(void**)&glBinormal3iEXT, "glBinormal3iEXT"))
2528                 return GLExtensionState.FailedToLoad;
2529             if(!bindExtFunc(cast(void**)&glBinormal3ivEXT, "glBinormal3ivEXT"))
2530                 return GLExtensionState.FailedToLoad;
2531             if(!bindExtFunc(cast(void**)&glBinormal3sEXT, "glBinormal3sEXT"))
2532                 return GLExtensionState.FailedToLoad;
2533             if(!bindExtFunc(cast(void**)&glBinormal3svEXT, "glBinormal3svEXT"))
2534                 return GLExtensionState.FailedToLoad;
2535             if(!bindExtFunc(cast(void**)&glTangentPointerEXT, "glTangentPointerEXT"))
2536                 return GLExtensionState.FailedToLoad;
2537             if(!bindExtFunc(cast(void**)&glBinormalPointerEXT, "glBinormalPointerEXT"))
2538                 return GLExtensionState.FailedToLoad;
2539             return GLExtensionState.Loaded;
2540         }
2541 
2542         GLExtensionState load_GL_EXT_blend_func_separate()
2543         {
2544             if(!extIsSupported("GL_EXT_blend_func_separate"))
2545                 return GLExtensionState.DriverUnsupported;
2546             if(!bindExtFunc(cast(void**)&glBlendFuncSeparateEXT, "glBlendFuncSeparateEXT"))
2547                 return GLExtensionState.FailedToLoad;
2548             return GLExtensionState.Loaded;
2549         }
2550 
2551         GLExtensionState load_GL_EXT_texture_env_combine()
2552         {
2553             if(!extIsSupported("GL_EXT_texture_env_combine"))
2554                 return GLExtensionState.DriverUnsupported;
2555             return GLExtensionState.Loaded;
2556         }
2557 
2558         GLExtensionState load_GL_EXT_stencil_wrap()
2559         {
2560             if(!extIsSupported("GL_EXT_stencil_wrap"))
2561                 return GLExtensionState.DriverUnsupported;
2562             return GLExtensionState.Loaded;
2563         }
2564 
2565         GLExtensionState load_GL_EXT_422_pixels()
2566         {
2567             if(!extIsSupported("GL_EXT_422_pixels"))
2568                 return GLExtensionState.DriverUnsupported;
2569             return GLExtensionState.Loaded;
2570         }
2571 
2572         GLExtensionState load_GL_EXT_texture_cube_map()
2573         {
2574             if(!extIsSupported("GL_EXT_texture_cube_map"))
2575                 return GLExtensionState.DriverUnsupported;
2576             return GLExtensionState.Loaded;
2577         }
2578 
2579         GLExtensionState load_GL_EXT_texture_env_add()
2580         {
2581             if(!extIsSupported("GL_EXT_texture_env_add"))
2582                 return GLExtensionState.DriverUnsupported;
2583             return GLExtensionState.Loaded;
2584         }
2585 
2586         GLExtensionState load_GL_EXT_texture_lod_bias()
2587         {
2588             if(!extIsSupported("GL_EXT_texture_lod_bias"))
2589                 return GLExtensionState.DriverUnsupported;
2590             return GLExtensionState.Loaded;
2591         }
2592 
2593         GLExtensionState load_GL_EXT_texture_filter_anisotropic()
2594         {
2595             if(!extIsSupported("GL_EXT_texture_filter_anisotropic"))
2596                 return GLExtensionState.DriverUnsupported;
2597             return GLExtensionState.Loaded;
2598         }
2599 
2600         GLExtensionState load_GL_EXT_vertex_weighting()
2601         {
2602             if(!extIsSupported("GL_EXT_vertex_weighting"))
2603                 return GLExtensionState.DriverUnsupported;
2604             if(!bindExtFunc(cast(void**)&glVertexWeightfEXT, "glVertexWeightfEXT"))
2605                 return GLExtensionState.FailedToLoad;
2606             if(!bindExtFunc(cast(void**)&glVertexWeightfvEXT, "glVertexWeightfvEXT"))
2607                 return GLExtensionState.FailedToLoad;
2608             if(!bindExtFunc(cast(void**)&glVertexWeightPointerEXT, "glVertexWeightPointerEXT"))
2609                 return GLExtensionState.FailedToLoad;
2610             return GLExtensionState.Loaded;
2611         }
2612 
2613         GLExtensionState load_GL_EXT_texture_compression_s3tc()
2614         {
2615             if(!extIsSupported("GL_EXT_texture_compression_s3tc"))
2616                 return GLExtensionState.DriverUnsupported;
2617             return GLExtensionState.Loaded;
2618         }
2619 
2620         GLExtensionState load_GL_EXT_multisample()
2621         {
2622             if(!extIsSupported("GL_EXT_multisample"))
2623                 return GLExtensionState.DriverUnsupported;
2624             if(!bindExtFunc(cast(void**)&glSampleMaskEXT, "glSampleMaskEXT"))
2625                 return GLExtensionState.FailedToLoad;
2626             if(!bindExtFunc(cast(void**)&glSamplePatternEXT, "glSamplePatternEXT"))
2627                 return GLExtensionState.FailedToLoad;
2628             return GLExtensionState.Loaded;
2629         }
2630 
2631         GLExtensionState load_GL_EXT_texture_env_dot3()
2632         {
2633             if(!extIsSupported("GL_EXT_texture_env_dot3"))
2634                 return GLExtensionState.DriverUnsupported;
2635             return GLExtensionState.Loaded;
2636         }
2637 
2638         GLExtensionState load_GL_EXT_vertex_shader()
2639         {
2640             if(!extIsSupported("GL_EXT_vertex_shader"))
2641                 return GLExtensionState.DriverUnsupported;
2642             if(!bindExtFunc(cast(void**)&glBeginVertexShaderEXT, "glBeginVertexShaderEXT"))
2643                 return GLExtensionState.FailedToLoad;
2644             if(!bindExtFunc(cast(void**)&glEndVertexShaderEXT, "glEndVertexShaderEXT"))
2645                 return GLExtensionState.FailedToLoad;
2646             if(!bindExtFunc(cast(void**)&glBindVertexShaderEXT, "glBindVertexShaderEXT"))
2647                 return GLExtensionState.FailedToLoad;
2648             if(!bindExtFunc(cast(void**)&glGenVertexShadersEXT, "glGenVertexShadersEXT"))
2649                 return GLExtensionState.FailedToLoad;
2650             if(!bindExtFunc(cast(void**)&glDeleteVertexShaderEXT, "glDeleteVertexShaderEXT"))
2651                 return GLExtensionState.FailedToLoad;
2652             if(!bindExtFunc(cast(void**)&glShaderOp1EXT, "glShaderOp1EXT"))
2653                 return GLExtensionState.FailedToLoad;
2654             if(!bindExtFunc(cast(void**)&glShaderOp2EXT, "glShaderOp2EXT"))
2655                 return GLExtensionState.FailedToLoad;
2656             if(!bindExtFunc(cast(void**)&glShaderOp3EXT, "glShaderOp3EXT"))
2657                 return GLExtensionState.FailedToLoad;
2658             if(!bindExtFunc(cast(void**)&glSwizzleEXT, "glSwizzleEXT"))
2659                 return GLExtensionState.FailedToLoad;
2660             if(!bindExtFunc(cast(void**)&glWriteMaskEXT, "glWriteMaskEXT"))
2661                 return GLExtensionState.FailedToLoad;
2662             if(!bindExtFunc(cast(void**)&glInsertComponentEXT, "glInsertComponentEXT"))
2663                 return GLExtensionState.FailedToLoad;
2664             if(!bindExtFunc(cast(void**)&glExtractComponentEXT, "glExtractComponentEXT"))
2665                 return GLExtensionState.FailedToLoad;
2666             if(!bindExtFunc(cast(void**)&glGenSymbolsEXT, "glGenSymbolsEXT"))
2667                 return GLExtensionState.FailedToLoad;
2668             if(!bindExtFunc(cast(void**)&glSetInvariantEXT, "glSetInvariantEXT"))
2669                 return GLExtensionState.FailedToLoad;
2670             if(!bindExtFunc(cast(void**)&glSetLocalConstantEXT, "glSetLocalConstantEXT"))
2671                 return GLExtensionState.FailedToLoad;
2672             if(!bindExtFunc(cast(void**)&glVariantbvEXT, "glVariantbvEXT"))
2673                 return GLExtensionState.FailedToLoad;
2674             if(!bindExtFunc(cast(void**)&glVariantsvEXT, "glVariantsvEXT"))
2675                 return GLExtensionState.FailedToLoad;
2676             if(!bindExtFunc(cast(void**)&glVariantivEXT, "glVariantivEXT"))
2677                 return GLExtensionState.FailedToLoad;
2678             if(!bindExtFunc(cast(void**)&glVariantfvEXT, "glVariantfvEXT"))
2679                 return GLExtensionState.FailedToLoad;
2680             if(!bindExtFunc(cast(void**)&glVariantdvEXT, "glVariantdvEXT"))
2681                 return GLExtensionState.FailedToLoad;
2682             if(!bindExtFunc(cast(void**)&glVariantubvEXT, "glVariantubvEXT"))
2683                 return GLExtensionState.FailedToLoad;
2684             if(!bindExtFunc(cast(void**)&glVariantusvEXT, "glVariantusvEXT"))
2685                 return GLExtensionState.FailedToLoad;
2686             if(!bindExtFunc(cast(void**)&glVariantuivEXT, "glVariantuivEXT"))
2687                 return GLExtensionState.FailedToLoad;
2688             if(!bindExtFunc(cast(void**)&glVariantPointerEXT, "glVariantPointerEXT"))
2689                 return GLExtensionState.FailedToLoad;
2690             if(!bindExtFunc(cast(void**)&glEnableVariantClientStateEXT, "glEnableVariantClientStateEXT"))
2691                 return GLExtensionState.FailedToLoad;
2692             if(!bindExtFunc(cast(void**)&glDisableVariantClientStateEXT, "glDisableVariantClientStateEXT"))
2693                 return GLExtensionState.FailedToLoad;
2694             if(!bindExtFunc(cast(void**)&glBindLightParameterEXT, "glBindLightParameterEXT"))
2695                 return GLExtensionState.FailedToLoad;
2696             if(!bindExtFunc(cast(void**)&glBindMaterialParameterEXT, "glBindMaterialParameterEXT"))
2697                 return GLExtensionState.FailedToLoad;
2698             if(!bindExtFunc(cast(void**)&glBindTexGenParameterEXT, "glBindTexGenParameterEXT"))
2699                 return GLExtensionState.FailedToLoad;
2700             if(!bindExtFunc(cast(void**)&glBindTextureUnitParameterEXT, "glBindTextureUnitParameterEXT"))
2701                 return GLExtensionState.FailedToLoad;
2702             if(!bindExtFunc(cast(void**)&glBindParameterEXT, "glBindParameterEXT"))
2703                 return GLExtensionState.FailedToLoad;
2704             if(!bindExtFunc(cast(void**)&glIsVariantEnabledEXT, "glIsVariantEnabledEXT"))
2705                 return GLExtensionState.FailedToLoad;
2706             if(!bindExtFunc(cast(void**)&glGetVariantBooleanvEXT, "glGetVariantBooleanvEXT"))
2707                 return GLExtensionState.FailedToLoad;
2708             if(!bindExtFunc(cast(void**)&glGetVariantIntegervEXT, "glGetVariantIntegervEXT"))
2709                 return GLExtensionState.FailedToLoad;
2710             if(!bindExtFunc(cast(void**)&glGetVariantFloatvEXT, "glGetVariantFloatvEXT"))
2711                 return GLExtensionState.FailedToLoad;
2712             if(!bindExtFunc(cast(void**)&glGetVariantPointervEXT, "glGetVariantPointervEXT"))
2713                 return GLExtensionState.FailedToLoad;
2714             if(!bindExtFunc(cast(void**)&glGetInvariantBooleanvEXT, "glGetInvariantBooleanvEXT"))
2715                 return GLExtensionState.FailedToLoad;
2716             if(!bindExtFunc(cast(void**)&glGetInvariantIntegervEXT, "glGetInvariantIntegervEXT"))
2717                 return GLExtensionState.FailedToLoad;
2718             if(!bindExtFunc(cast(void**)&glGetInvariantFloatvEXT, "glGetInvariantFloatvEXT"))
2719                 return GLExtensionState.FailedToLoad;
2720             if(!bindExtFunc(cast(void**)&glGetLocalConstantBooleanvEXT, "glGetLocalConstantBooleanvEXT"))
2721                 return GLExtensionState.FailedToLoad;
2722             if(!bindExtFunc(cast(void**)&glGetLocalConstantIntegervEXT, "glGetLocalConstantIntegervEXT"))
2723                 return GLExtensionState.FailedToLoad;
2724             if(!bindExtFunc(cast(void**)&glGetLocalConstantFloatvEXT, "glGetLocalConstantFloatvEXT"))
2725                 return GLExtensionState.FailedToLoad;
2726             return GLExtensionState.Loaded;
2727         }
2728 
2729         GLExtensionState load_GL_EXT_shadow_funcs()
2730         {
2731             if(!extIsSupported("GL_EXT_shadow_funcs"))
2732                 return GLExtensionState.DriverUnsupported;
2733             return GLExtensionState.Loaded;
2734         }
2735 
2736         GLExtensionState load_GL_EXT_stencil_two_side()
2737         {
2738             if(!extIsSupported("GL_EXT_stencil_two_side"))
2739                 return GLExtensionState.DriverUnsupported;
2740             if(!bindExtFunc(cast(void**)&glActiveStencilFaceEXT, "glActiveStencilFaceEXT"))
2741                 return GLExtensionState.FailedToLoad;
2742             return GLExtensionState.Loaded;
2743         }
2744 
2745         GLExtensionState load_GL_EXT_depth_bounds_test()
2746         {
2747             if(!extIsSupported("GL_EXT_depth_bounds_test"))
2748                 return GLExtensionState.DriverUnsupported;
2749             if(!bindExtFunc(cast(void**)&glDepthBoundsEXT, "glDepthBoundsEXT"))
2750                 return GLExtensionState.FailedToLoad;
2751             return GLExtensionState.Loaded;
2752         }
2753 
2754         GLExtensionState load_GL_EXT_texture_mirror_clamp()
2755         {
2756             if(!extIsSupported("GL_EXT_texture_mirror_clamp"))
2757                 return GLExtensionState.DriverUnsupported;
2758             return GLExtensionState.Loaded;
2759         }
2760 
2761         GLExtensionState load_GL_EXT_blend_equation_separate()
2762         {
2763             if(!extIsSupported("GL_EXT_blend_equation_separate"))
2764                 return GLExtensionState.DriverUnsupported;
2765             if(!bindExtFunc(cast(void**)&glBlendEquationSeparateEXT, "glBlendEquationSeparateEXT"))
2766                 return GLExtensionState.FailedToLoad;
2767             return GLExtensionState.Loaded;
2768         }
2769 
2770         GLExtensionState load_GL_EXT_pixel_buffer_object()
2771         {
2772             if(!extIsSupported("GL_EXT_pixel_buffer_object"))
2773                 return GLExtensionState.DriverUnsupported;
2774             return GLExtensionState.Loaded;
2775         }
2776 
2777         GLExtensionState load_GL_EXT_framebuffer_object()
2778         {
2779             if(!extIsSupported("GL_EXT_framebuffer_object"))
2780                 return GLExtensionState.DriverUnsupported;
2781             if(!bindExtFunc(cast(void**)&glIsRenderbufferEXT, "glIsRenderbufferEXT"))
2782                 return GLExtensionState.FailedToLoad;
2783             if(!bindExtFunc(cast(void**)&glBindRenderbufferEXT, "glBindRenderbufferEXT"))
2784                 return GLExtensionState.FailedToLoad;
2785             if(!bindExtFunc(cast(void**)&glDeleteRenderbuffersEXT, "glDeleteRenderbuffersEXT"))
2786                 return GLExtensionState.FailedToLoad;
2787             if(!bindExtFunc(cast(void**)&glGenRenderbuffersEXT, "glGenRenderbuffersEXT"))
2788                 return GLExtensionState.FailedToLoad;
2789             if(!bindExtFunc(cast(void**)&glRenderbufferStorageEXT, "glRenderbufferStorageEXT"))
2790                 return GLExtensionState.FailedToLoad;
2791             if(!bindExtFunc(cast(void**)&glGetRenderbufferParameterivEXT, "glGetRenderbufferParameterivEXT"))
2792                 return GLExtensionState.FailedToLoad;
2793             if(!bindExtFunc(cast(void**)&glIsFramebufferEXT, "glIsFramebufferEXT"))
2794                 return GLExtensionState.FailedToLoad;
2795             if(!bindExtFunc(cast(void**)&glBindFramebufferEXT, "glBindFramebufferEXT"))
2796                 return GLExtensionState.FailedToLoad;
2797             if(!bindExtFunc(cast(void**)&glDeleteFramebuffersEXT, "glDeleteFramebuffersEXT"))
2798                 return GLExtensionState.FailedToLoad;
2799             if(!bindExtFunc(cast(void**)&glGenFramebuffersEXT, "glGenFramebuffersEXT"))
2800                 return GLExtensionState.FailedToLoad;
2801             if(!bindExtFunc(cast(void**)&glCheckFramebufferStatusEXT, "glCheckFramebufferStatusEXT"))
2802                 return GLExtensionState.FailedToLoad;
2803             if(!bindExtFunc(cast(void**)&glFramebufferTexture1DEXT, "glFramebufferTexture1DEXT"))
2804                 return GLExtensionState.FailedToLoad;
2805             if(!bindExtFunc(cast(void**)&glFramebufferTexture2DEXT, "glFramebufferTexture2DEXT"))
2806                 return GLExtensionState.FailedToLoad;
2807             if(!bindExtFunc(cast(void**)&glFramebufferTexture3DEXT, "glFramebufferTexture3DEXT"))
2808                 return GLExtensionState.FailedToLoad;
2809             if(!bindExtFunc(cast(void**)&glFramebufferRenderbufferEXT, "glFramebufferRenderbufferEXT"))
2810                 return GLExtensionState.FailedToLoad;
2811             if(!bindExtFunc(cast(void**)&glGetFramebufferAttachmentParameterivEXT, "glGetFramebufferAttachmentParameterivEXT"))
2812                 return GLExtensionState.FailedToLoad;
2813             if(!bindExtFunc(cast(void**)&glGenerateMipmapEXT, "glGenerateMipmapEXT"))
2814                 return GLExtensionState.FailedToLoad;
2815             return GLExtensionState.Loaded;
2816         }
2817 
2818         GLExtensionState load_GL_EXT_packed_depth_stencil()
2819         {
2820             if(!extIsSupported("GL_EXT_packed_depth_stencil"))
2821                 return GLExtensionState.DriverUnsupported;
2822             return GLExtensionState.Loaded;
2823         }
2824 
2825         GLExtensionState load_GL_EXT_stencil_clear_tag()
2826         {
2827             if(!extIsSupported("GL_EXT_stencil_clear_tag"))
2828                 return GLExtensionState.DriverUnsupported;
2829             if(!bindExtFunc(cast(void**)&glStencilClearTagEXT, "glStencilClearTagEXT"))
2830                 return GLExtensionState.FailedToLoad;
2831             return GLExtensionState.Loaded;
2832         }
2833 
2834         GLExtensionState load_GL_EXT_texture_sRGB()
2835         {
2836             if(!extIsSupported("GL_EXT_texture_sRGB"))
2837                 return GLExtensionState.DriverUnsupported;
2838             return GLExtensionState.Loaded;
2839         }
2840 
2841         GLExtensionState load_GL_EXT_framebuffer_blit()
2842         {
2843             if(!extIsSupported("GL_EXT_framebuffer_blit"))
2844                 return GLExtensionState.DriverUnsupported;
2845             if(!bindExtFunc(cast(void**)&glBlitFramebufferEXT, "glBlitFramebufferEXT"))
2846                 return GLExtensionState.FailedToLoad;
2847             return GLExtensionState.Loaded;
2848         }
2849 
2850         GLExtensionState load_GL_EXT_framebuffer_multisample()
2851         {
2852             if(!extIsSupported("GL_EXT_framebuffer_multisample"))
2853                 return GLExtensionState.DriverUnsupported;
2854             if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisampleEXT, "glRenderbufferStorageMultisampleEXT"))
2855                 return GLExtensionState.FailedToLoad;
2856             return GLExtensionState.Loaded;
2857         }
2858 
2859         GLExtensionState load_GL_EXT_timer_query()
2860         {
2861             if(!extIsSupported("GL_EXT_timer_query"))
2862                 return GLExtensionState.DriverUnsupported;
2863             if(!bindExtFunc(cast(void**)&glGetQueryObjecti64vEXT, "glGetQueryObjecti64vEXT"))
2864                 return GLExtensionState.FailedToLoad;
2865             if(!bindExtFunc(cast(void**)&glGetQueryObjectui64vEXT, "glGetQueryObjectui64vEXT"))
2866                 return GLExtensionState.FailedToLoad;
2867             return GLExtensionState.Loaded;
2868         }
2869 
2870         GLExtensionState load_GL_EXT_gpu_program_parameters()
2871         {
2872             if(!extIsSupported("GL_EXT_gpu_program_parameters"))
2873                 return GLExtensionState.DriverUnsupported;
2874             if(!bindExtFunc(cast(void**)&glProgramEnvParameters4fvEXT, "glProgramEnvParameters4fvEXT"))
2875                 return GLExtensionState.FailedToLoad;
2876             if(!bindExtFunc(cast(void**)&glProgramLocalParameters4fvEXT, "glProgramLocalParameters4fvEXT"))
2877                 return GLExtensionState.FailedToLoad;
2878             return GLExtensionState.Loaded;
2879         }
2880 
2881         GLExtensionState load_GL_EXT_geometry_shader4()
2882         {
2883             if(!extIsSupported("GL_EXT_geometry_shader4"))
2884                 return GLExtensionState.DriverUnsupported;
2885             if(!bindExtFunc(cast(void**)&glProgramParameteriEXT, "glProgramParameteriEXT"))
2886                 return GLExtensionState.FailedToLoad;
2887             return GLExtensionState.Loaded;
2888         }
2889 
2890         GLExtensionState load_GL_EXT_gpu_shader4()
2891         {
2892             if(!extIsSupported("GL_EXT_gpu_shader4"))
2893                 return GLExtensionState.DriverUnsupported;
2894             if(!bindExtFunc(cast(void**)&glGetUniformuivEXT, "glGetUniformuivEXT"))
2895                 return GLExtensionState.FailedToLoad;
2896             if(!bindExtFunc(cast(void**)&glBindFragDataLocationEXT, "glBindFragDataLocationEXT"))
2897                 return GLExtensionState.FailedToLoad;
2898             if(!bindExtFunc(cast(void**)&glGetFragDataLocationEXT, "glGetFragDataLocationEXT"))
2899                 return GLExtensionState.FailedToLoad;
2900             if(!bindExtFunc(cast(void**)&glUniform1uiEXT, "glUniform1uiEXT"))
2901                 return GLExtensionState.FailedToLoad;
2902             if(!bindExtFunc(cast(void**)&glUniform2uiEXT, "glUniform2uiEXT"))
2903                 return GLExtensionState.FailedToLoad;
2904             if(!bindExtFunc(cast(void**)&glUniform3uiEXT, "glUniform3uiEXT"))
2905                 return GLExtensionState.FailedToLoad;
2906             if(!bindExtFunc(cast(void**)&glUniform4uiEXT, "glUniform4uiEXT"))
2907                 return GLExtensionState.FailedToLoad;
2908             if(!bindExtFunc(cast(void**)&glUniform1uivEXT, "glUniform1uivEXT"))
2909                 return GLExtensionState.FailedToLoad;
2910             if(!bindExtFunc(cast(void**)&glUniform2uivEXT, "glUniform2uivEXT"))
2911                 return GLExtensionState.FailedToLoad;
2912             if(!bindExtFunc(cast(void**)&glUniform3uivEXT, "glUniform3uivEXT"))
2913                 return GLExtensionState.FailedToLoad;
2914             if(!bindExtFunc(cast(void**)&glUniform4uivEXT, "glUniform4uivEXT"))
2915                 return GLExtensionState.FailedToLoad;
2916             return GLExtensionState.Loaded;
2917         }
2918 
2919         GLExtensionState load_GL_EXT_draw_instanced()
2920         {
2921             if(!extIsSupported("GL_EXT_draw_instanced"))
2922                 return GLExtensionState.DriverUnsupported;
2923             if(!bindExtFunc(cast(void**)&glDrawArraysInstancedEXT, "glDrawArraysInstancedEXT"))
2924                 return GLExtensionState.FailedToLoad;
2925             if(!bindExtFunc(cast(void**)&glDrawElementsInstancedEXT, "glDrawElementsInstancedEXT"))
2926                 return GLExtensionState.FailedToLoad;
2927             return GLExtensionState.Loaded;
2928         }
2929 
2930         GLExtensionState load_GL_EXT_packed_float()
2931         {
2932             if(!extIsSupported("GL_EXT_packed_float"))
2933                 return GLExtensionState.DriverUnsupported;
2934             return GLExtensionState.Loaded;
2935         }
2936 
2937         GLExtensionState load_GL_EXT_texture_array()
2938         {
2939             if(!extIsSupported("GL_EXT_texture_array"))
2940                 return GLExtensionState.DriverUnsupported;
2941             return GLExtensionState.Loaded;
2942         }
2943 
2944         GLExtensionState load_GL_EXT_texture_buffer_object()
2945         {
2946             if(!extIsSupported("GL_EXT_texture_buffer_object"))
2947                 return GLExtensionState.DriverUnsupported;
2948             if(!bindExtFunc(cast(void**)&glTexBufferEXT, "glTexBufferEXT"))
2949                 return GLExtensionState.FailedToLoad;
2950             return GLExtensionState.Loaded;
2951         }
2952 
2953         GLExtensionState load_GL_EXT_texture_compression_latc()
2954         {
2955             if(!extIsSupported("GL_EXT_texture_compression_latc"))
2956                 return GLExtensionState.DriverUnsupported;
2957             return GLExtensionState.Loaded;
2958         }
2959 
2960         GLExtensionState load_GL_EXT_texture_compression_rgtc()
2961         {
2962             if(!extIsSupported("GL_EXT_texture_compression_rgtc"))
2963                 return GLExtensionState.DriverUnsupported;
2964             return GLExtensionState.Loaded;
2965         }
2966 
2967         GLExtensionState load_GL_EXT_texture_shared_exponent()
2968         {
2969             if(!extIsSupported("GL_EXT_texture_shared_exponent"))
2970                 return GLExtensionState.DriverUnsupported;
2971             return GLExtensionState.Loaded;
2972         }
2973 
2974         GLExtensionState load_GL_EXT_framebuffer_sRGB()
2975         {
2976             if(!extIsSupported("GL_EXT_framebuffer_sRGB"))
2977                 return GLExtensionState.DriverUnsupported;
2978             return GLExtensionState.Loaded;
2979         }
2980 
2981         GLExtensionState load_GL_EXT_draw_buffers2()
2982         {
2983             if(!extIsSupported("GL_EXT_draw_buffers2"))
2984                 return GLExtensionState.DriverUnsupported;
2985             if(!bindExtFunc(cast(void**)&glColorMaskIndexedEXT, "glColorMaskIndexedEXT"))
2986                 return GLExtensionState.FailedToLoad;
2987             if(!bindExtFunc(cast(void**)&glGetBooleanIndexedvEXT, "glGetBooleanIndexedvEXT"))
2988                 return GLExtensionState.FailedToLoad;
2989             if(!bindExtFunc(cast(void**)&glGetIntegerIndexedvEXT, "glGetIntegerIndexedvEXT"))
2990                 return GLExtensionState.FailedToLoad;
2991             if(!bindExtFunc(cast(void**)&glEnableIndexedEXT, "glEnableIndexedEXT"))
2992                 return GLExtensionState.FailedToLoad;
2993             if(!bindExtFunc(cast(void**)&glDisableIndexedEXT, "glDisableIndexedEXT"))
2994                 return GLExtensionState.FailedToLoad;
2995             if(!bindExtFunc(cast(void**)&glIsEnabledIndexedEXT, "glIsEnabledIndexedEXT"))
2996                 return GLExtensionState.FailedToLoad;
2997             return GLExtensionState.Loaded;
2998         }
2999 
3000         GLExtensionState load_GL_EXT_bindable_uniform()
3001         {
3002             if(!extIsSupported("GL_EXT_texture_buffer_object"))
3003                 return GLExtensionState.DriverUnsupported;
3004             if(!bindExtFunc(cast(void**)&glUniformBufferEXT, "glUniformBufferEXT"))
3005                 return GLExtensionState.FailedToLoad;
3006             if(!bindExtFunc(cast(void**)&glGetUniformBufferSizeEXT, "glGetUniformBufferSizeEXT"))
3007                 return GLExtensionState.FailedToLoad;
3008             if(!bindExtFunc(cast(void**)&glGetUniformOffsetEXT, "glGetUniformOffsetEXT"))
3009                 return GLExtensionState.FailedToLoad;
3010             return GLExtensionState.Loaded;
3011         }
3012 
3013         GLExtensionState load_GL_EXT_texture_integer()
3014         {
3015             if(!extIsSupported("GL_EXT_texture_integer"))
3016                 return GLExtensionState.DriverUnsupported;
3017             if(!bindExtFunc(cast(void**)&glTexParameterIivEXT, "glTexParameterIivEXT"))
3018                 return GLExtensionState.FailedToLoad;
3019             if(!bindExtFunc(cast(void**)&glTexParameterIuivEXT, "glTexParameterIuivEXT"))
3020                 return GLExtensionState.FailedToLoad;
3021             if(!bindExtFunc(cast(void**)&glGetTexParameterIivEXT, "glGetTexParameterIivEXT"))
3022                 return GLExtensionState.FailedToLoad;
3023             if(!bindExtFunc(cast(void**)&glGetTexParameterIuivEXT, "glGetTexParameterIuivEXT"))
3024                 return GLExtensionState.FailedToLoad;
3025             if(!bindExtFunc(cast(void**)&glClearColorIiEXT, "glClearColorIiEXT"))
3026                 return GLExtensionState.FailedToLoad;
3027             if(!bindExtFunc(cast(void**)&glClearColorIuiEXT, "glClearColorIuiEXT"))
3028                 return GLExtensionState.FailedToLoad;
3029             return GLExtensionState.Loaded;
3030         }
3031 
3032         GLExtensionState load_GL_EXT_transform_feedback()
3033         {
3034             if(!extIsSupported("GL_EXT_transform_feedback"))
3035                 return GLExtensionState.DriverUnsupported;
3036             if(!bindExtFunc(cast(void**)&glBeginTransformFeedbackEXT, "glBeginTransformFeedbackEXT"))
3037                 return GLExtensionState.FailedToLoad;
3038             if(!bindExtFunc(cast(void**)&glEndTransformFeedbackEXT, "glEndTransformFeedbackEXT"))
3039                 return GLExtensionState.FailedToLoad;
3040             if(!bindExtFunc(cast(void**)&glBindBufferRangeEXT, "glBindBufferRangeEXT"))
3041                 return GLExtensionState.FailedToLoad;
3042             if(!bindExtFunc(cast(void**)&glBindBufferOffsetEXT, "glBindBufferOffsetEXT"))
3043                 return GLExtensionState.FailedToLoad;
3044             if(!bindExtFunc(cast(void**)&glBindBufferBaseEXT, "glBindBufferBaseEXT"))
3045                 return GLExtensionState.FailedToLoad;
3046             if(!bindExtFunc(cast(void**)&glTransformFeedbackVaryingsEXT, "glTransformFeedbackVaryingsEXT"))
3047                 return GLExtensionState.FailedToLoad;
3048             if(!bindExtFunc(cast(void**)&glGetTransformFeedbackVaryingEXT, "glGetTransformFeedbackVaryingEXT"))
3049                 return GLExtensionState.FailedToLoad;
3050             return GLExtensionState.Loaded;
3051         }
3052 
3053         GLExtensionState load_GL_EXT_direct_state_access()
3054         {
3055             if(!extIsSupported("GL_EXT_direct_state_access"))
3056                 return GLExtensionState.DriverUnsupported;
3057             if(!bindExtFunc(cast(void**)&glClientAttribDefaultEXT, "glClientAttribDefaultEXT"))
3058                 return GLExtensionState.FailedToLoad;
3059             if(!bindExtFunc(cast(void**)&glPushClientAttribDefaultEXT, "glPushClientAttribDefaultEXT"))
3060                 return GLExtensionState.FailedToLoad;
3061             if(!bindExtFunc(cast(void**)&glMatrixLoadfEXT, "glMatrixLoadfEXT"))
3062                 return GLExtensionState.FailedToLoad;
3063             if(!bindExtFunc(cast(void**)&glMatrixLoaddEXT, "glMatrixLoaddEXT"))
3064                 return GLExtensionState.FailedToLoad;
3065             if(!bindExtFunc(cast(void**)&glMatrixMultfEXT, "glMatrixMultfEXT"))
3066                 return GLExtensionState.FailedToLoad;
3067             if(!bindExtFunc(cast(void**)&glMatrixMultdEXT, "glMatrixMultdEXT"))
3068                 return GLExtensionState.FailedToLoad;
3069             if(!bindExtFunc(cast(void**)&glMatrixLoadIdentityEXT, "glMatrixLoadIdentityEXT"))
3070                 return GLExtensionState.FailedToLoad;
3071             if(!bindExtFunc(cast(void**)&glMatrixRotatefEXT, "glMatrixRotatefEXT"))
3072                 return GLExtensionState.FailedToLoad;
3073             if(!bindExtFunc(cast(void**)&glMatrixRotatedEXT, "glMatrixRotatedEXT"))
3074                 return GLExtensionState.FailedToLoad;
3075             if(!bindExtFunc(cast(void**)&glMatrixScalefEXT, "glMatrixScalefEXT"))
3076                 return GLExtensionState.FailedToLoad;
3077             if(!bindExtFunc(cast(void**)&glMatrixScaledEXT, "glMatrixScaledEXT"))
3078                 return GLExtensionState.FailedToLoad;
3079             if(!bindExtFunc(cast(void**)&glMatrixTranslatefEXT, "glMatrixTranslatefEXT"))
3080                 return GLExtensionState.FailedToLoad;
3081             if(!bindExtFunc(cast(void**)&glMatrixTranslatedEXT, "glMatrixTranslatedEXT"))
3082                 return GLExtensionState.FailedToLoad;
3083             if(!bindExtFunc(cast(void**)&glMatrixFrustumEXT, "glMatrixFrustumEXT"))
3084                 return GLExtensionState.FailedToLoad;
3085             if(!bindExtFunc(cast(void**)&glMatrixOrthoEXT, "glMatrixOrthoEXT"))
3086                 return GLExtensionState.FailedToLoad;
3087             if(!bindExtFunc(cast(void**)&glMatrixPopEXT, "glMatrixPopEXT"))
3088                 return GLExtensionState.FailedToLoad;
3089             if(!bindExtFunc(cast(void**)&glMatrixPushEXT, "glMatrixPushEXT"))
3090                 return GLExtensionState.FailedToLoad;
3091             if(!bindExtFunc(cast(void**)&glMatrixLoadTransposefEXT, "glMatrixLoadTransposefEXT"))
3092                 return GLExtensionState.FailedToLoad;
3093             if(!bindExtFunc(cast(void**)&glMatrixLoadTransposedEXT, "glMatrixLoadTransposedEXT"))
3094                 return GLExtensionState.FailedToLoad;
3095             if(!bindExtFunc(cast(void**)&glMatrixMultTransposefEXT, "glMatrixMultTransposefEXT"))
3096                 return GLExtensionState.FailedToLoad;
3097             if(!bindExtFunc(cast(void**)&glMatrixMultTransposedEXT, "glMatrixMultTransposedEXT"))
3098                 return GLExtensionState.FailedToLoad;
3099             if(!bindExtFunc(cast(void**)&glTextureParameterfEXT, "glTextureParameterfEXT"))
3100                 return GLExtensionState.FailedToLoad;
3101             if(!bindExtFunc(cast(void**)&glTextureParameterfvEXT, "glTextureParameterfvEXT"))
3102                 return GLExtensionState.FailedToLoad;
3103             if(!bindExtFunc(cast(void**)&glTextureParameteriEXT, "glTextureParameteriEXT"))
3104                 return GLExtensionState.FailedToLoad;
3105             if(!bindExtFunc(cast(void**)&glTextureParameterivEXT, "glTextureParameterivEXT"))
3106                 return GLExtensionState.FailedToLoad;
3107             if(!bindExtFunc(cast(void**)&glTextureImage1DEXT, "glTextureImage1DEXT"))
3108                 return GLExtensionState.FailedToLoad;
3109             if(!bindExtFunc(cast(void**)&glTextureImage2DEXT, "glTextureImage2DEXT"))
3110                 return GLExtensionState.FailedToLoad;
3111             if(!bindExtFunc(cast(void**)&glTextureSubImage1DEXT, "glTextureSubImage1DEXT"))
3112                 return GLExtensionState.FailedToLoad;
3113             if(!bindExtFunc(cast(void**)&glTextureSubImage2DEXT, "glTextureSubImage2DEXT"))
3114                 return GLExtensionState.FailedToLoad;
3115             if(!bindExtFunc(cast(void**)&glCopyTextureImage1DEXT, "glCopyTextureImage1DEXT"))
3116                 return GLExtensionState.FailedToLoad;
3117             if(!bindExtFunc(cast(void**)&glCopyTextureImage2DEXT, "glCopyTextureImage2DEXT"))
3118                 return GLExtensionState.FailedToLoad;
3119             if(!bindExtFunc(cast(void**)&glCopyTextureSubImage1DEXT, "glCopyTextureSubImage1DEXT"))
3120                 return GLExtensionState.FailedToLoad;
3121             if(!bindExtFunc(cast(void**)&glCopyTextureSubImage2DEXT, "glCopyTextureSubImage2DEXT"))
3122                 return GLExtensionState.FailedToLoad;
3123             if(!bindExtFunc(cast(void**)&glGetTextureImageEXT, "glGetTextureImageEXT"))
3124                 return GLExtensionState.FailedToLoad;
3125             if(!bindExtFunc(cast(void**)&glGetTextureParameterfvEXT, "glGetTextureParameterfvEXT"))
3126                 return GLExtensionState.FailedToLoad;
3127             if(!bindExtFunc(cast(void**)&glGetTextureParameterivEXT, "glGetTextureParameterivEXT"))
3128                 return GLExtensionState.FailedToLoad;
3129             if(!bindExtFunc(cast(void**)&glGetTextureLevelParameterfvEXT, "glGetTextureLevelParameterfvEXT"))
3130                 return GLExtensionState.FailedToLoad;
3131             if(!bindExtFunc(cast(void**)&glGetTextureLevelParameterivEXT, "glGetTextureLevelParameterivEXT"))
3132                 return GLExtensionState.FailedToLoad;
3133             if(!bindExtFunc(cast(void**)&glTextureImage3DEXT, "glTextureImage3DEXT"))
3134                 return GLExtensionState.FailedToLoad;
3135             if(!bindExtFunc(cast(void**)&glTextureSubImage3DEXT, "glTextureSubImage3DEXT"))
3136                 return GLExtensionState.FailedToLoad;
3137             if(!bindExtFunc(cast(void**)&glCopyTextureSubImage3DEXT, "glCopyTextureSubImage3DEXT"))
3138                 return GLExtensionState.FailedToLoad;
3139             if(!bindExtFunc(cast(void**)&glMultiTexParameterfEXT, "glMultiTexParameterfEXT"))
3140                 return GLExtensionState.FailedToLoad;
3141             if(!bindExtFunc(cast(void**)&glMultiTexParameterfvEXT, "glMultiTexParameterfvEXT"))
3142                 return GLExtensionState.FailedToLoad;
3143             if(!bindExtFunc(cast(void**)&glMultiTexParameteriEXT, "glMultiTexParameteriEXT"))
3144                 return GLExtensionState.FailedToLoad;
3145             if(!bindExtFunc(cast(void**)&glMultiTexParameterivEXT, "glMultiTexParameterivEXT"))
3146                 return GLExtensionState.FailedToLoad;
3147             if(!bindExtFunc(cast(void**)&glMultiTexImage1DEXT, "glMultiTexImage1DEXT"))
3148                 return GLExtensionState.FailedToLoad;
3149             if(!bindExtFunc(cast(void**)&glMultiTexImage2DEXT, "glMultiTexImage2DEXT"))
3150                 return GLExtensionState.FailedToLoad;
3151             if(!bindExtFunc(cast(void**)&glMultiTexSubImage1DEXT, "glMultiTexSubImage1DEXT"))
3152                 return GLExtensionState.FailedToLoad;
3153             if(!bindExtFunc(cast(void**)&glMultiTexSubImage2DEXT, "glMultiTexSubImage2DEXT"))
3154                 return GLExtensionState.FailedToLoad;
3155             if(!bindExtFunc(cast(void**)&glCopyMultiTexImage1DEXT, "glCopyMultiTexImage1DEXT"))
3156                 return GLExtensionState.FailedToLoad;
3157             if(!bindExtFunc(cast(void**)&glCopyMultiTexImage2DEXT, "glCopyMultiTexImage2DEXT"))
3158                 return GLExtensionState.FailedToLoad;
3159             if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage1DEXT, "glCopyMultiTexSubImage1DEXT"))
3160                 return GLExtensionState.FailedToLoad;
3161             if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage2DEXT, "glCopyMultiTexSubImage2DEXT"))
3162                 return GLExtensionState.FailedToLoad;
3163             if(!bindExtFunc(cast(void**)&glGetMultiTexImageEXT, "glGetMultiTexImageEXT"))
3164                 return GLExtensionState.FailedToLoad;
3165             if(!bindExtFunc(cast(void**)&glGetMultiTexParameterfvEXT, "glGetMultiTexParameterfvEXT"))
3166                 return GLExtensionState.FailedToLoad;
3167             if(!bindExtFunc(cast(void**)&glGetMultiTexParameterivEXT, "glGetMultiTexParameterivEXT"))
3168                 return GLExtensionState.FailedToLoad;
3169             if(!bindExtFunc(cast(void**)&glGetMultiTexLevelParameterfvEXT, "glGetMultiTexLevelParameterfvEXT"))
3170                 return GLExtensionState.FailedToLoad;
3171             if(!bindExtFunc(cast(void**)&glGetMultiTexLevelParameterivEXT, "glGetMultiTexLevelParameterivEXT"))
3172                 return GLExtensionState.FailedToLoad;
3173             if(!bindExtFunc(cast(void**)&glMultiTexImage3DEXT, "glMultiTexImage3DEXT"))
3174                 return GLExtensionState.FailedToLoad;
3175             if(!bindExtFunc(cast(void**)&glMultiTexSubImage3DEXT, "glMultiTexSubImage3DEXT"))
3176                 return GLExtensionState.FailedToLoad;
3177             if(!bindExtFunc(cast(void**)&glCopyMultiTexSubImage3DEXT, "glCopyMultiTexSubImage3DEXT"))
3178                 return GLExtensionState.FailedToLoad;
3179             if(!bindExtFunc(cast(void**)&glBindMultiTextureEXT, "glBindMultiTextureEXT"))
3180                 return GLExtensionState.FailedToLoad;
3181             if(!bindExtFunc(cast(void**)&glEnableClientStateIndexedEXT, "glEnableClientStateIndexedEXT"))
3182                 return GLExtensionState.FailedToLoad;
3183             if(!bindExtFunc(cast(void**)&glDisableClientStateIndexedEXT, "glDisableClientStateIndexedEXT"))
3184                 return GLExtensionState.FailedToLoad;
3185             if(!bindExtFunc(cast(void**)&glMultiTexCoordPointerEXT, "glMultiTexCoordPointerEXT"))
3186                 return GLExtensionState.FailedToLoad;
3187             if(!bindExtFunc(cast(void**)&glMultiTexEnvfEXT, "glMultiTexEnvfEXT"))
3188                 return GLExtensionState.FailedToLoad;
3189             if(!bindExtFunc(cast(void**)&glMultiTexEnvfvEXT, "glMultiTexEnvfvEXT"))
3190                 return GLExtensionState.FailedToLoad;
3191             if(!bindExtFunc(cast(void**)&glMultiTexEnviEXT, "glMultiTexEnviEXT"))
3192                 return GLExtensionState.FailedToLoad;
3193             if(!bindExtFunc(cast(void**)&glMultiTexEnvivEXT, "glMultiTexEnvivEXT"))
3194                 return GLExtensionState.FailedToLoad;
3195             if(!bindExtFunc(cast(void**)&glMultiTexGendEXT, "glMultiTexGendEXT"))
3196                 return GLExtensionState.FailedToLoad;
3197             if(!bindExtFunc(cast(void**)&glMultiTexGendvEXT, "glMultiTexGendvEXT"))
3198                 return GLExtensionState.FailedToLoad;
3199             if(!bindExtFunc(cast(void**)&glMultiTexGenfEXT, "glMultiTexGenfEXT"))
3200                 return GLExtensionState.FailedToLoad;
3201             if(!bindExtFunc(cast(void**)&glMultiTexGenfvEXT, "glMultiTexGenfvEXT"))
3202                 return GLExtensionState.FailedToLoad;
3203             if(!bindExtFunc(cast(void**)&glMultiTexGeniEXT, "glMultiTexGeniEXT"))
3204                 return GLExtensionState.FailedToLoad;
3205             if(!bindExtFunc(cast(void**)&glMultiTexGenivEXT, "glMultiTexGenivEXT"))
3206                 return GLExtensionState.FailedToLoad;
3207             if(!bindExtFunc(cast(void**)&glGetMultiTexEnvfvEXT, "glGetMultiTexEnvfvEXT"))
3208                 return GLExtensionState.FailedToLoad;
3209             if(!bindExtFunc(cast(void**)&glGetMultiTexEnvivEXT, "glGetMultiTexEnvivEXT"))
3210                 return GLExtensionState.FailedToLoad;
3211             if(!bindExtFunc(cast(void**)&glGetMultiTexGendvEXT, "glGetMultiTexGendvEXT"))
3212                 return GLExtensionState.FailedToLoad;
3213             if(!bindExtFunc(cast(void**)&glGetMultiTexGenfvEXT, "glGetMultiTexGenfvEXT"))
3214                 return GLExtensionState.FailedToLoad;
3215             if(!bindExtFunc(cast(void**)&glGetMultiTexGenivEXT, "glGetMultiTexGenivEXT"))
3216                 return GLExtensionState.FailedToLoad;
3217             if(!bindExtFunc(cast(void**)&glGetFloatIndexedvEXT, "glGetFloatIndexedvEXT"))
3218                 return GLExtensionState.FailedToLoad;
3219             if(!bindExtFunc(cast(void**)&glGetDoubleIndexedvEXT, "glGetDoubleIndexedvEXT"))
3220                 return GLExtensionState.FailedToLoad;
3221             if(!bindExtFunc(cast(void**)&glGetPointerIndexedvEXT, "glGetPointerIndexedvEXT"))
3222                 return GLExtensionState.FailedToLoad;
3223             if(!bindExtFunc(cast(void**)&glCompressedTextureImage3DEXT, "glCompressedTextureImage3DEXT"))
3224                 return GLExtensionState.FailedToLoad;
3225             if(!bindExtFunc(cast(void**)&glCompressedTextureImage2DEXT, "glCompressedTextureImage2DEXT"))
3226                 return GLExtensionState.FailedToLoad;
3227             if(!bindExtFunc(cast(void**)&glCompressedTextureImage1DEXT, "glCompressedTextureImage1DEXT"))
3228                 return GLExtensionState.FailedToLoad;
3229             if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage3DEXT, "glCompressedTextureSubImage3DEXT"))
3230                 return GLExtensionState.FailedToLoad;
3231             if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage2DEXT, "glCompressedTextureSubImage2DEXT"))
3232                 return GLExtensionState.FailedToLoad;
3233             if(!bindExtFunc(cast(void**)&glCompressedTextureSubImage1DEXT, "glCompressedTextureSubImage1DEXT"))
3234                 return GLExtensionState.FailedToLoad;
3235             if(!bindExtFunc(cast(void**)&glGetCompressedTextureImageEXT, "glGetCompressedTextureImageEXT"))
3236                 return GLExtensionState.FailedToLoad;
3237             if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage3DEXT, "glCompressedMultiTexImage3DEXT"))
3238                 return GLExtensionState.FailedToLoad;
3239             if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage2DEXT, "glCompressedMultiTexImage2DEXT"))
3240                 return GLExtensionState.FailedToLoad;
3241             if(!bindExtFunc(cast(void**)&glCompressedMultiTexImage1DEXT, "glCompressedMultiTexImage1DEXT"))
3242                 return GLExtensionState.FailedToLoad;
3243             if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage3DEXT, "glCompressedMultiTexSubImage3DEXT"))
3244                 return GLExtensionState.FailedToLoad;
3245             if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage2DEXT, "glCompressedMultiTexSubImage2DEXT"))
3246                 return GLExtensionState.FailedToLoad;
3247             if(!bindExtFunc(cast(void**)&glCompressedMultiTexSubImage1DEXT, "glCompressedMultiTexSubImage1DEXT"))
3248                 return GLExtensionState.FailedToLoad;
3249             if(!bindExtFunc(cast(void**)&glGetCompressedMultiTexImageEXT, "glGetCompressedMultiTexImageEXT"))
3250                 return GLExtensionState.FailedToLoad;
3251             if(!bindExtFunc(cast(void**)&glNamedProgramStringEXT, "glNamedProgramStringEXT"))
3252                 return GLExtensionState.FailedToLoad;
3253             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4dEXT, "glNamedProgramLocalParameter4dEXT"))
3254                 return GLExtensionState.FailedToLoad;
3255             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4dvEXT, "glNamedProgramLocalParameter4dvEXT"))
3256                 return GLExtensionState.FailedToLoad;
3257             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4fEXT, "glNamedProgramLocalParameter4fEXT"))
3258                 return GLExtensionState.FailedToLoad;
3259             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameter4fvEXT, "glNamedProgramLocalParameter4fvEXT"))
3260                 return GLExtensionState.FailedToLoad;
3261             if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterdvEXT, "glGetNamedProgramLocalParameterdvEXT"))
3262                 return GLExtensionState.FailedToLoad;
3263             if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterfvEXT, "glGetNamedProgramLocalParameterfvEXT"))
3264                 return GLExtensionState.FailedToLoad;
3265             if(!bindExtFunc(cast(void**)&glGetNamedProgramivEXT, "glGetNamedProgramivEXT"))
3266                 return GLExtensionState.FailedToLoad;
3267             if(!bindExtFunc(cast(void**)&glGetNamedProgramStringEXT, "glGetNamedProgramStringEXT"))
3268                 return GLExtensionState.FailedToLoad;
3269             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameters4fvEXT, "glNamedProgramLocalParameters4fvEXT"))
3270                 return GLExtensionState.FailedToLoad;
3271             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4iEXT, "glNamedProgramLocalParameterI4iEXT"))
3272                 return GLExtensionState.FailedToLoad;
3273             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4ivEXT, "glNamedProgramLocalParameterI4ivEXT"))
3274                 return GLExtensionState.FailedToLoad;
3275             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParametersI4ivEXT, "glNamedProgramLocalParametersI4ivEXT"))
3276                 return GLExtensionState.FailedToLoad;
3277             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4uiEXT, "glNamedProgramLocalParameterI4uiEXT"))
3278                 return GLExtensionState.FailedToLoad;
3279             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParameterI4uivEXT, "glNamedProgramLocalParameterI4uivEXT"))
3280                 return GLExtensionState.FailedToLoad;
3281             if(!bindExtFunc(cast(void**)&glNamedProgramLocalParametersI4uivEXT, "glNamedProgramLocalParametersI4uivEXT"))
3282                 return GLExtensionState.FailedToLoad;
3283             if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterIivEXT, "glGetNamedProgramLocalParameterIivEXT"))
3284                 return GLExtensionState.FailedToLoad;
3285             if(!bindExtFunc(cast(void**)&glGetNamedProgramLocalParameterIuivEXT, "glGetNamedProgramLocalParameterIuivEXT"))
3286                 return GLExtensionState.FailedToLoad;
3287             if(!bindExtFunc(cast(void**)&glTextureParameterIivEXT, "glTextureParameterIivEXT"))
3288                 return GLExtensionState.FailedToLoad;
3289             if(!bindExtFunc(cast(void**)&glTextureParameterIuivEXT, "glTextureParameterIuivEXT"))
3290                 return GLExtensionState.FailedToLoad;
3291             if(!bindExtFunc(cast(void**)&glGetTextureParameterIivEXT, "glGetTextureParameterIivEXT"))
3292                 return GLExtensionState.FailedToLoad;
3293             if(!bindExtFunc(cast(void**)&glGetTextureParameterIuivEXT, "glGetTextureParameterIuivEXT"))
3294                 return GLExtensionState.FailedToLoad;
3295             if(!bindExtFunc(cast(void**)&glMultiTexParameterIivEXT, "glMultiTexParameterIivEXT"))
3296                 return GLExtensionState.FailedToLoad;
3297             if(!bindExtFunc(cast(void**)&glMultiTexParameterIuivEXT, "glMultiTexParameterIuivEXT"))
3298                 return GLExtensionState.FailedToLoad;
3299             if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIivEXT, "glGetMultiTexParameterIivEXT"))
3300                 return GLExtensionState.FailedToLoad;
3301             if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIuivEXT, "glGetMultiTexParameterIuivEXT"))
3302                 return GLExtensionState.FailedToLoad;
3303             if(!bindExtFunc(cast(void**)&glProgramUniform1fEXT, "glProgramUniform1fEXT"))
3304                 return GLExtensionState.FailedToLoad;
3305             if(!bindExtFunc(cast(void**)&glProgramUniform2fEXT, "glProgramUniform2fEXT"))
3306                 return GLExtensionState.FailedToLoad;
3307             if(!bindExtFunc(cast(void**)&glProgramUniform3fEXT, "glProgramUniform3fEXT"))
3308                 return GLExtensionState.FailedToLoad;
3309             if(!bindExtFunc(cast(void**)&glProgramUniform4fEXT, "glProgramUniform4fEXT"))
3310                 return GLExtensionState.FailedToLoad;
3311             if(!bindExtFunc(cast(void**)&glProgramUniform1iEXT, "glProgramUniform1iEXT"))
3312                 return GLExtensionState.FailedToLoad;
3313             if(!bindExtFunc(cast(void**)&glProgramUniform2iEXT, "glProgramUniform2iEXT"))
3314                 return GLExtensionState.FailedToLoad;
3315             if(!bindExtFunc(cast(void**)&glProgramUniform3iEXT, "glProgramUniform3iEXT"))
3316                 return GLExtensionState.FailedToLoad;
3317             if(!bindExtFunc(cast(void**)&glProgramUniform4iEXT, "glProgramUniform4iEXT"))
3318                 return GLExtensionState.FailedToLoad;
3319             if(!bindExtFunc(cast(void**)&glProgramUniform1fvEXT, "glProgramUniform1fvEXT"))
3320                 return GLExtensionState.FailedToLoad;
3321             if(!bindExtFunc(cast(void**)&glProgramUniform2fvEXT, "glProgramUniform2fvEXT"))
3322                 return GLExtensionState.FailedToLoad;
3323             if(!bindExtFunc(cast(void**)&glProgramUniform3fvEXT, "glProgramUniform3fvEXT"))
3324                 return GLExtensionState.FailedToLoad;
3325             if(!bindExtFunc(cast(void**)&glProgramUniform4fvEXT, "glProgramUniform4fvEXT"))
3326                 return GLExtensionState.FailedToLoad;
3327             if(!bindExtFunc(cast(void**)&glProgramUniform1ivEXT, "glProgramUniform1ivEXT"))
3328                 return GLExtensionState.FailedToLoad;
3329             if(!bindExtFunc(cast(void**)&glProgramUniform2ivEXT, "glProgramUniform2ivEXT"))
3330                 return GLExtensionState.FailedToLoad;
3331             if(!bindExtFunc(cast(void**)&glProgramUniform3ivEXT, "glProgramUniform3ivEXT"))
3332                 return GLExtensionState.FailedToLoad;
3333             if(!bindExtFunc(cast(void**)&glProgramUniform4ivEXT, "glProgramUniform4ivEXT"))
3334                 return GLExtensionState.FailedToLoad;
3335             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT"))
3336                 return GLExtensionState.FailedToLoad;
3337             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT"))
3338                 return GLExtensionState.FailedToLoad;
3339             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT"))
3340                 return GLExtensionState.FailedToLoad;
3341             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT"))
3342                 return GLExtensionState.FailedToLoad;
3343             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT"))
3344                 return GLExtensionState.FailedToLoad;
3345             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT"))
3346                 return GLExtensionState.FailedToLoad;
3347             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT"))
3348                 return GLExtensionState.FailedToLoad;
3349             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT"))
3350                 return GLExtensionState.FailedToLoad;
3351             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT"))
3352                 return GLExtensionState.FailedToLoad;
3353             if(!bindExtFunc(cast(void**)&glProgramUniform1uiEXT, "glProgramUniform1uiEXT"))
3354                 return GLExtensionState.FailedToLoad;
3355             if(!bindExtFunc(cast(void**)&glProgramUniform2uiEXT, "glProgramUniform2uiEXT"))
3356                 return GLExtensionState.FailedToLoad;
3357             if(!bindExtFunc(cast(void**)&glGetMultiTexParameterIuivEXT, "glGetMultiTexParameterIuivEXT"))
3358                 return GLExtensionState.FailedToLoad;
3359             if(!bindExtFunc(cast(void**)&glProgramUniform1fEXT, "glProgramUniform1fEXT"))
3360                 return GLExtensionState.FailedToLoad;
3361             if(!bindExtFunc(cast(void**)&glProgramUniform2fEXT, "glProgramUniform2fEXT"))
3362                 return GLExtensionState.FailedToLoad;
3363             if(!bindExtFunc(cast(void**)&glProgramUniform3fEXT, "glProgramUniform3fEXT"))
3364                 return GLExtensionState.FailedToLoad;
3365             if(!bindExtFunc(cast(void**)&glProgramUniform4fEXT, "glProgramUniform4fEXT"))
3366                 return GLExtensionState.FailedToLoad;
3367             if(!bindExtFunc(cast(void**)&glProgramUniform1iEXT, "glProgramUniform1iEXT"))
3368                 return GLExtensionState.FailedToLoad;
3369             if(!bindExtFunc(cast(void**)&glProgramUniform2iEXT, "glProgramUniform2iEXT"))
3370                 return GLExtensionState.FailedToLoad;
3371             if(!bindExtFunc(cast(void**)&glProgramUniform3iEXT, "glProgramUniform3iEXT"))
3372                 return GLExtensionState.FailedToLoad;
3373             if(!bindExtFunc(cast(void**)&glProgramUniform4iEXT, "glProgramUniform4iEXT"))
3374                 return GLExtensionState.FailedToLoad;
3375             if(!bindExtFunc(cast(void**)&glProgramUniform1fvEXT, "glProgramUniform1fvEXT"))
3376                 return GLExtensionState.FailedToLoad;
3377             if(!bindExtFunc(cast(void**)&glProgramUniform2fvEXT, "glProgramUniform2fvEXT"))
3378                 return GLExtensionState.FailedToLoad;
3379             if(!bindExtFunc(cast(void**)&glProgramUniform3fvEXT, "glProgramUniform3fvEXT"))
3380                 return GLExtensionState.FailedToLoad;
3381             if(!bindExtFunc(cast(void**)&glProgramUniform4fvEXT, "glProgramUniform4fvEXT"))
3382                 return GLExtensionState.FailedToLoad;
3383             if(!bindExtFunc(cast(void**)&glProgramUniform1ivEXT, "glProgramUniform1ivEXT"))
3384                 return GLExtensionState.FailedToLoad;
3385             if(!bindExtFunc(cast(void**)&glProgramUniform2ivEXT, "glProgramUniform2ivEXT"))
3386                 return GLExtensionState.FailedToLoad;
3387             if(!bindExtFunc(cast(void**)&glProgramUniform3ivEXT, "glProgramUniform3ivEXT"))
3388                 return GLExtensionState.FailedToLoad;
3389             if(!bindExtFunc(cast(void**)&glProgramUniform4ivEXT, "glProgramUniform4ivEXT"))
3390                 return GLExtensionState.FailedToLoad;
3391             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2fvEXT, "glProgramUniformMatrix2fvEXT"))
3392                 return GLExtensionState.FailedToLoad;
3393             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3fvEXT, "glProgramUniformMatrix3fvEXT"))
3394                 return GLExtensionState.FailedToLoad;
3395             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4fvEXT, "glProgramUniformMatrix4fvEXT"))
3396                 return GLExtensionState.FailedToLoad;
3397             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x3fvEXT, "glProgramUniformMatrix2x3fvEXT"))
3398                 return GLExtensionState.FailedToLoad;
3399             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x2fvEXT, "glProgramUniformMatrix3x2fvEXT"))
3400                 return GLExtensionState.FailedToLoad;
3401             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix2x4fvEXT, "glProgramUniformMatrix2x4fvEXT"))
3402                 return GLExtensionState.FailedToLoad;
3403             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x2fvEXT, "glProgramUniformMatrix4x2fvEXT"))
3404                 return GLExtensionState.FailedToLoad;
3405             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix3x4fvEXT, "glProgramUniformMatrix3x4fvEXT"))
3406                 return GLExtensionState.FailedToLoad;
3407             if(!bindExtFunc(cast(void**)&glProgramUniformMatrix4x3fvEXT, "glProgramUniformMatrix4x3fvEXT"))
3408                 return GLExtensionState.FailedToLoad;
3409             if(!bindExtFunc(cast(void**)&glProgramUniform1uiEXT, "glProgramUniform1uiEXT"))
3410                 return GLExtensionState.FailedToLoad;
3411             if(!bindExtFunc(cast(void**)&glProgramUniform2uiEXT, "glProgramUniform2uiEXT"))
3412                 return GLExtensionState.FailedToLoad;
3413             if(!bindExtFunc(cast(void**)&glProgramUniform3uiEXT, "glProgramUniform3uiEXT"))
3414                 return GLExtensionState.FailedToLoad;
3415             if(!bindExtFunc(cast(void**)&glProgramUniform4uiEXT, "glProgramUniform4uiEXT"))
3416                 return GLExtensionState.FailedToLoad;
3417             if(!bindExtFunc(cast(void**)&glProgramUniform1uivEXT, "glProgramUniform1uivEXT"))
3418                 return GLExtensionState.FailedToLoad;
3419             if(!bindExtFunc(cast(void**)&glProgramUniform2uivEXT, "glProgramUniform2uivEXT"))
3420                 return GLExtensionState.FailedToLoad;
3421             if(!bindExtFunc(cast(void**)&glProgramUniform3uivEXT, "glProgramUniform3uivEXT"))
3422                 return GLExtensionState.FailedToLoad;
3423             if(!bindExtFunc(cast(void**)&glProgramUniform4uivEXT, "glProgramUniform4uivEXT"))
3424                 return GLExtensionState.FailedToLoad;
3425             if(!bindExtFunc(cast(void**)&glNamedBufferDataEXT, "glNamedBufferDataEXT"))
3426                 return GLExtensionState.FailedToLoad;
3427             if(!bindExtFunc(cast(void**)&glNamedBufferSubDataEXT, "glNamedBufferSubDataEXT"))
3428                 return GLExtensionState.FailedToLoad;
3429             if(!bindExtFunc(cast(void**)&glMapNamedBufferEXT, "glMapNamedBufferEXT"))
3430                 return GLExtensionState.FailedToLoad;
3431             if(!bindExtFunc(cast(void**)&glUnmapNamedBufferEXT, "glUnmapNamedBufferEXT"))
3432                 return GLExtensionState.FailedToLoad;
3433             if(!bindExtFunc(cast(void**)&glGetNamedBufferParameterivEXT, "glGetNamedBufferParameterivEXT"))
3434                 return GLExtensionState.FailedToLoad;
3435             if(!bindExtFunc(cast(void**)&glGetNamedBufferPointervEXT, "glGetNamedBufferPointervEXT"))
3436                 return GLExtensionState.FailedToLoad;
3437             if(!bindExtFunc(cast(void**)&glGetNamedBufferSubDataEXT, "glGetNamedBufferSubDataEXT"))
3438                 return GLExtensionState.FailedToLoad;
3439             if(!bindExtFunc(cast(void**)&glTextureBufferEXT, "glTextureBufferEXT"))
3440                 return GLExtensionState.FailedToLoad;
3441             if(!bindExtFunc(cast(void**)&glMultiTexBufferEXT, "glMultiTexBufferEXT"))
3442                 return GLExtensionState.FailedToLoad;
3443             if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageEXT, "glNamedRenderbufferStorageEXT"))
3444                 return GLExtensionState.FailedToLoad;
3445             if(!bindExtFunc(cast(void**)&glGetNamedRenderbufferParameterivEXT, "glGetNamedRenderbufferParameterivEXT"))
3446                 return GLExtensionState.FailedToLoad;
3447             if(!bindExtFunc(cast(void**)&glCheckNamedFramebufferStatusEXT, "glCheckNamedFramebufferStatusEXT"))
3448                 return GLExtensionState.FailedToLoad;
3449             if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture1DEXT, "glNamedFramebufferTexture1DEXT"))
3450                 return GLExtensionState.FailedToLoad;
3451             if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture2DEXT, "glNamedFramebufferTexture2DEXT"))
3452                 return GLExtensionState.FailedToLoad;
3453             if(!bindExtFunc(cast(void**)&glNamedFramebufferTexture3DEXT, "glNamedFramebufferTexture3DEXT"))
3454                 return GLExtensionState.FailedToLoad;
3455             if(!bindExtFunc(cast(void**)&glNamedFramebufferRenderbufferEXT, "glNamedFramebufferRenderbufferEXT"))
3456                 return GLExtensionState.FailedToLoad;
3457             if(!bindExtFunc(cast(void**)&glGetNamedFramebufferAttachmentParameterivEXT, "glGetNamedFramebufferAttachmentParameterivEXT"))
3458                 return GLExtensionState.FailedToLoad;
3459             if(!bindExtFunc(cast(void**)&glGenerateTextureMipmapEXT, "glGenerateTextureMipmapEXT"))
3460                 return GLExtensionState.FailedToLoad;
3461             if(!bindExtFunc(cast(void**)&glGenerateMultiTexMipmapEXT, "glGenerateMultiTexMipmapEXT"))
3462                 return GLExtensionState.FailedToLoad;
3463             if(!bindExtFunc(cast(void**)&glFramebufferDrawBufferEXT, "glFramebufferDrawBufferEXT"))
3464                 return GLExtensionState.FailedToLoad;
3465             if(!bindExtFunc(cast(void**)&glFramebufferDrawBuffersEXT, "glFramebufferDrawBuffersEXT"))
3466                 return GLExtensionState.FailedToLoad;
3467             if(!bindExtFunc(cast(void**)&glFramebufferReadBufferEXT, "glFramebufferReadBufferEXT"))
3468                 return GLExtensionState.FailedToLoad;
3469             if(!bindExtFunc(cast(void**)&glGetFramebufferParameterivEXT, "glGetFramebufferParameterivEXT"))
3470                 return GLExtensionState.FailedToLoad;
3471             if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageMultisampleEXT, "glNamedRenderbufferStorageMultisampleEXT"))
3472                 return GLExtensionState.FailedToLoad;
3473             if(!bindExtFunc(cast(void**)&glNamedRenderbufferStorageMultisampleCoverageEXT, "glNamedRenderbufferStorageMultisampleCoverageEXT"))
3474                 return GLExtensionState.FailedToLoad;
3475             if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureEXT, "glNamedFramebufferTextureEXT"))
3476                 return GLExtensionState.FailedToLoad;
3477             if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureLayerEXT, "glNamedFramebufferTextureLayerEXT"))
3478                 return GLExtensionState.FailedToLoad;
3479             if(!bindExtFunc(cast(void**)&glNamedFramebufferTextureFaceEXT, "glNamedFramebufferTextureFaceEXT"))
3480                 return GLExtensionState.FailedToLoad;
3481             if(!bindExtFunc(cast(void**)&glTextureRenderbufferEXT, "glTextureRenderbufferEXT"))
3482                 return GLExtensionState.FailedToLoad;
3483             if(!bindExtFunc(cast(void**)&glMultiTexRenderbufferEXT, "glMultiTexRenderbufferEXT"))
3484                 return GLExtensionState.FailedToLoad;
3485             return GLExtensionState.Loaded;
3486         }
3487 
3488         GLExtensionState load_GL_EXT_vertex_array_bgra()
3489         {
3490             if(!extIsSupported("GL_EXT_vertex_array_bgra"))
3491                 return GLExtensionState.DriverUnsupported;
3492             return GLExtensionState.Loaded;
3493         }
3494 
3495         GLExtensionState load_GL_EXT_texture_swizzle()
3496         {
3497             if(!extIsSupported("GL_EXT_texture_swizzle"))
3498                 return GLExtensionState.DriverUnsupported;
3499             return GLExtensionState.Loaded;
3500         }
3501 
3502         GLExtensionState load_GL_EXT_provoking_vertex()
3503         {
3504             if(!extIsSupported("GL_EXT_provoking_vertex"))
3505                 return GLExtensionState.DriverUnsupported;
3506             if(!bindExtFunc(cast(void**)&glProvokingVertexEXT, "glProvokingVertexEXT"))
3507                 return GLExtensionState.FailedToLoad;
3508             return GLExtensionState.Loaded;
3509         }
3510 
3511         GLExtensionState load_GL_EXT_texture_snorm()
3512         {
3513             if(!extIsSupported("GL_EXT_texture_snorm"))
3514                 return GLExtensionState.DriverUnsupported;
3515             return GLExtensionState.Loaded;
3516         }
3517 
3518         GLExtensionState load_GL_EXT_separate_shader_objects()
3519         {
3520             if(!extIsSupported("GL_EXT_separate_shader_objects"))
3521                 return GLExtensionState.DriverUnsupported;
3522             if(!bindExtFunc(cast(void**)&glUseShaderProgramEXT, "glUseShaderProgramEXT"))
3523                 return GLExtensionState.FailedToLoad;
3524             if(!bindExtFunc(cast(void**)&glActiveProgramEXT, "glActiveProgramEXT"))
3525                 return GLExtensionState.FailedToLoad;
3526             if(!bindExtFunc(cast(void**)&glCreateShaderProgramEXT, "glCreateShaderProgramEXT"))
3527                 return GLExtensionState.FailedToLoad;
3528             return GLExtensionState.Loaded;
3529         }
3530     }
3531 
3532     version(DerelictGL_NV)
3533     {
3534         GLExtensionState load_GL_NV_texgen_reflection()
3535         {
3536             if(!extIsSupported("GL_NV_texgen_reflection"))
3537                 return GLExtensionState.DriverUnsupported;
3538             return GLExtensionState.Loaded;
3539         }
3540 
3541         GLExtensionState load_GL_NV_light_max_exponent()
3542         {
3543             if(!extIsSupported("GL_NV_light_max_exponent"))
3544                 return GLExtensionState.DriverUnsupported;
3545             return GLExtensionState.Loaded;
3546         }
3547 
3548         GLExtensionState load_GL_NV_vertex_array_range()
3549         {
3550             if(!extIsSupported("GL_NV_vertex_array_range"))
3551                 return GLExtensionState.DriverUnsupported;
3552             if(!bindExtFunc(cast(void**)&glFlushVertexArrayRangeNV, "glFlushVertexArrayRangeNV"))
3553                 return GLExtensionState.FailedToLoad;
3554             if(!bindExtFunc(cast(void**)&glVertexArrayRangeNV, "glVertexArrayRangeNV"))
3555                 return GLExtensionState.FailedToLoad;
3556             return GLExtensionState.Loaded;
3557         }
3558 
3559         GLExtensionState load_GL_NV_register_combiners()
3560         {
3561             if(!extIsSupported("GL_NV_register_combiners"))
3562                 return GLExtensionState.DriverUnsupported;
3563             if(!bindExtFunc(cast(void**)&glCombinerParameterfvNV, "glCombinerParameterfvNV"))
3564                 return GLExtensionState.FailedToLoad;
3565             if(!bindExtFunc(cast(void**)&glCombinerParameterfNV, "glCombinerParameterfNV"))
3566                 return GLExtensionState.FailedToLoad;
3567             if(!bindExtFunc(cast(void**)&glCombinerParameterivNV, "glCombinerParameterivNV"))
3568                 return GLExtensionState.FailedToLoad;
3569             if(!bindExtFunc(cast(void**)&glCombinerParameteriNV, "glCombinerParameteriNV"))
3570                 return GLExtensionState.FailedToLoad;
3571             if(!bindExtFunc(cast(void**)&glCombinerInputNV, "glCombinerInputNV"))
3572                 return GLExtensionState.FailedToLoad;
3573             if(!bindExtFunc(cast(void**)&glCombinerOutputNV, "glCombinerOutputNV"))
3574                 return GLExtensionState.FailedToLoad;
3575             if(!bindExtFunc(cast(void**)&glFinalCombinerInputNV, "glFinalCombinerInputNV"))
3576                 return GLExtensionState.FailedToLoad;
3577             if(!bindExtFunc(cast(void**)&glGetCombinerInputParameterfvNV, "glGetCombinerInputParameterfvNV"))
3578                 return GLExtensionState.FailedToLoad;
3579             if(!bindExtFunc(cast(void**)&glGetCombinerInputParameterivNV, "glGetCombinerInputParameterivNV"))
3580                 return GLExtensionState.FailedToLoad;
3581             if(!bindExtFunc(cast(void**)&glGetCombinerOutputParameterfvNV, "glGetCombinerOutputParameterfvNV"))
3582                 return GLExtensionState.FailedToLoad;
3583             if(!bindExtFunc(cast(void**)&glGetCombinerOutputParameterivNV, "glGetCombinerOutputParameterivNV"))
3584                 return GLExtensionState.FailedToLoad;
3585             if(!bindExtFunc(cast(void**)&glGetFinalCombinerInputParameterfvNV, "glGetFinalCombinerInputParameterfvNV"))
3586                 return GLExtensionState.FailedToLoad;
3587             if(!bindExtFunc(cast(void**)&glGetFinalCombinerInputParameterivNV, "glGetFinalCombinerInputParameterivNV"))
3588                 return GLExtensionState.FailedToLoad;
3589             return GLExtensionState.Loaded;
3590         }
3591 
3592         GLExtensionState load_GL_NV_fog_distance()
3593         {
3594             if(!extIsSupported("GL_NV_fog_distance"))
3595                 return GLExtensionState.DriverUnsupported;
3596             return GLExtensionState.Loaded;
3597         }
3598 
3599         GLExtensionState load_GL_NV_texgen_emboss()
3600         {
3601             if(!extIsSupported("GL_NV_texgen_emboss"))
3602                 return GLExtensionState.DriverUnsupported;
3603             return GLExtensionState.Loaded;
3604         }
3605 
3606         GLExtensionState load_GL_NV_blend_square()
3607         {
3608             if(!extIsSupported("GL_NV_blend_square"))
3609                 return GLExtensionState.DriverUnsupported;
3610             return GLExtensionState.Loaded;
3611         }
3612 
3613         GLExtensionState load_GL_NV_texture_env_combine4()
3614         {
3615             if(!extIsSupported("GL_NV_texture_env_combine4"))
3616                 return GLExtensionState.DriverUnsupported;
3617             return GLExtensionState.Loaded;
3618         }
3619 
3620         GLExtensionState load_GL_NV_fence()
3621         {
3622             if(!extIsSupported("GL_NV_fence"))
3623                 return GLExtensionState.DriverUnsupported;
3624             if(!bindExtFunc(cast(void**)&glDeleteFencesNV, "glDeleteFencesNV"))
3625                 return GLExtensionState.FailedToLoad;
3626             if(!bindExtFunc(cast(void**)&glGenFencesNV, "glGenFencesNV"))
3627                 return GLExtensionState.FailedToLoad;
3628             if(!bindExtFunc(cast(void**)&glIsFenceNV, "glIsFenceNV"))
3629                 return GLExtensionState.FailedToLoad;
3630             if(!bindExtFunc(cast(void**)&glTestFenceNV, "glTestFenceNV"))
3631                 return GLExtensionState.FailedToLoad;
3632             if(!bindExtFunc(cast(void**)&glGetFenceivNV, "glGetFenceivNV"))
3633                 return GLExtensionState.FailedToLoad;
3634             if(!bindExtFunc(cast(void**)&glFinishFenceNV, "glFinishFenceNV"))
3635                 return GLExtensionState.FailedToLoad;
3636             if(!bindExtFunc(cast(void**)&glSetFenceNV, "glSetFenceNV"))
3637                 return GLExtensionState.FailedToLoad;
3638             return GLExtensionState.Loaded;
3639         }
3640 
3641         GLExtensionState load_GL_NV_evaluators()
3642         {
3643             if(!extIsSupported("GL_NV_evaluators"))
3644                 return GLExtensionState.DriverUnsupported;
3645             if(!bindExtFunc(cast(void**)&glMapControlPointsNV, "glMapControlPointsNV"))
3646                 return GLExtensionState.FailedToLoad;
3647             if(!bindExtFunc(cast(void**)&glMapParameterivNV, "glMapParameterivNV"))
3648                 return GLExtensionState.FailedToLoad;
3649             if(!bindExtFunc(cast(void**)&glMapParameterfvNV, "glMapParameterfvNV"))
3650                 return GLExtensionState.FailedToLoad;
3651             if(!bindExtFunc(cast(void**)&glGetMapControlPointsNV, "glGetMapControlPointsNV"))
3652                 return GLExtensionState.FailedToLoad;
3653             if(!bindExtFunc(cast(void**)&glGetMapParameterivNV, "glGetMapParameterivNV"))
3654                 return GLExtensionState.FailedToLoad;
3655             if(!bindExtFunc(cast(void**)&glGetMapParameterfvNV, "glGetMapParameterfvNV"))
3656                 return GLExtensionState.FailedToLoad;
3657             if(!bindExtFunc(cast(void**)&glGetMapAttribParameterivNV, "glGetMapAttribParameterivNV"))
3658                 return GLExtensionState.FailedToLoad;
3659             if(!bindExtFunc(cast(void**)&glGetMapAttribParameterfvNV, "glGetMapAttribParameterfvNV"))
3660                 return GLExtensionState.FailedToLoad;
3661             return GLExtensionState.Loaded;
3662         }
3663 
3664         GLExtensionState load_GL_NV_packed_depth_stencil()
3665         {
3666             if(!extIsSupported("GL_NV_packed_depth_stencil"))
3667                 return GLExtensionState.DriverUnsupported;
3668             return GLExtensionState.Loaded;
3669         }
3670 
3671         GLExtensionState load_GL_NV_register_combiners2()
3672         {
3673             if(!extIsSupported("GL_NV_register_combiners2"))
3674                 return GLExtensionState.DriverUnsupported;
3675             if(!bindExtFunc(cast(void**)&glCombinerStageParameterfvNV, "glCombinerStageParameterfvNV"))
3676                 return GLExtensionState.FailedToLoad;
3677             if(!bindExtFunc(cast(void**)&glGetCombinerStageParameterfvNV, "glGetCombinerStageParameterfvNV"))
3678                 return GLExtensionState.FailedToLoad;
3679             return GLExtensionState.Loaded;
3680         }
3681 
3682         GLExtensionState load_GL_NV_texture_compression_vtc()
3683         {
3684             if(!extIsSupported("GL_NV_texture_compression_vtc"))
3685                 return GLExtensionState.DriverUnsupported;
3686             return GLExtensionState.Loaded;
3687         }
3688 
3689         GLExtensionState load_GL_NV_texture_rectangle()
3690         {
3691             if(!extIsSupported("GL_NV_texture_shader"))
3692                 return GLExtensionState.DriverUnsupported;
3693             return GLExtensionState.Loaded;
3694         }
3695 
3696         GLExtensionState load_GL_NV_texture_shader()
3697         {
3698             if(!extIsSupported("GL_NV_texture_shader"))
3699                 return GLExtensionState.DriverUnsupported;
3700             return GLExtensionState.Loaded;
3701         }
3702 
3703         GLExtensionState load_GL_NV_texture_shader2()
3704         {
3705             if(!extIsSupported("GL_NV_texture_shader2"))
3706                 return GLExtensionState.DriverUnsupported;
3707             return GLExtensionState.Loaded;
3708         }
3709 
3710         GLExtensionState load_GL_NV_vertex_array_range2()
3711         {
3712             if(!extIsSupported("GL_NV_vertex_array_range2"))
3713                 return GLExtensionState.DriverUnsupported;
3714             return GLExtensionState.Loaded;
3715         }
3716 
3717         GLExtensionState load_GL_NV_vertex_program()
3718         {
3719             if(!extIsSupported("GL_NV_vertex_program"))
3720                 return GLExtensionState.DriverUnsupported;
3721             if(!bindExtFunc(cast(void**)&glAreProgramsResidentNV, "glAreProgramsResidentNV"))
3722                 return GLExtensionState.FailedToLoad;
3723             if(!bindExtFunc(cast(void**)&glBindProgramNV, "glBindProgramNV"))
3724                 return GLExtensionState.FailedToLoad;
3725             if(!bindExtFunc(cast(void**)&glDeleteProgramsNV, "glDeleteProgramsNV"))
3726                 return GLExtensionState.FailedToLoad;
3727             if(!bindExtFunc(cast(void**)&glExecuteProgramNV, "glExecuteProgramNV"))
3728                 return GLExtensionState.FailedToLoad;
3729             if(!bindExtFunc(cast(void**)&glGenProgramsNV, "glGenProgramsNV"))
3730                 return GLExtensionState.FailedToLoad;
3731             if(!bindExtFunc(cast(void**)&glGetProgramParameterdvNV, "glGetProgramParameterdvNV"))
3732                 return GLExtensionState.FailedToLoad;
3733             if(!bindExtFunc(cast(void**)&glGetProgramParameterfvNV, "glGetProgramParameterfvNV"))
3734                 return GLExtensionState.FailedToLoad;
3735             if(!bindExtFunc(cast(void**)&glGetProgramivNV, "glGetProgramivNV"))
3736                 return GLExtensionState.FailedToLoad;
3737             if(!bindExtFunc(cast(void**)&glGetProgramStringNV, "glGetProgramStringNV"))
3738                 return GLExtensionState.FailedToLoad;
3739             if(!bindExtFunc(cast(void**)&glGetTrackMatrixivNV, "glGetTrackMatrixivNV"))
3740                 return GLExtensionState.FailedToLoad;
3741             if(!bindExtFunc(cast(void**)&glGetVertexAttribdvNV, "glGetVertexAttribdvNV"))
3742                 return GLExtensionState.FailedToLoad;
3743             if(!bindExtFunc(cast(void**)&glGetVertexAttribfvNV, "glGetVertexAttribfvNV"))
3744                 return GLExtensionState.FailedToLoad;
3745             if(!bindExtFunc(cast(void**)&glGetVertexAttribivNV, "glGetVertexAttribivNV"))
3746                 return GLExtensionState.FailedToLoad;
3747             if(!bindExtFunc(cast(void**)&glGetVertexAttribPointervNV, "glGetVertexAttribPointervNV"))
3748                 return GLExtensionState.FailedToLoad;
3749             if(!bindExtFunc(cast(void**)&glIsProgramNV, "glIsProgramNV"))
3750                 return GLExtensionState.FailedToLoad;
3751             if(!bindExtFunc(cast(void**)&glLoadProgramNV, "glLoadProgramNV"))
3752                 return GLExtensionState.FailedToLoad;
3753             if(!bindExtFunc(cast(void**)&glProgramParameter4dNV, "glProgramParameter4dNV"))
3754                 return GLExtensionState.FailedToLoad;
3755             if(!bindExtFunc(cast(void**)&glProgramParameter4dvNV, "glProgramParameter4dvNV"))
3756                 return GLExtensionState.FailedToLoad;
3757             if(!bindExtFunc(cast(void**)&glProgramParameter4fNV, "glProgramParameter4fNV"))
3758                 return GLExtensionState.FailedToLoad;
3759             if(!bindExtFunc(cast(void**)&glProgramParameter4fvNV, "glProgramParameter4fvNV"))
3760                 return GLExtensionState.FailedToLoad;
3761             if(!bindExtFunc(cast(void**)&glProgramParameters4dvNV, "glProgramParameters4dvNV"))
3762                 return GLExtensionState.FailedToLoad;
3763             if(!bindExtFunc(cast(void**)&glProgramParameters4fvNV, "glProgramParameters4fvNV"))
3764                 return GLExtensionState.FailedToLoad;
3765             if(!bindExtFunc(cast(void**)&glRequestResidentProgramsNV, "glRequestResidentProgramsNV"))
3766                 return GLExtensionState.FailedToLoad;
3767             if(!bindExtFunc(cast(void**)&glTrackMatrixNV, "glTrackMatrixNV"))
3768                 return GLExtensionState.FailedToLoad;
3769             if(!bindExtFunc(cast(void**)&glVertexAttribPointerNV, "glVertexAttribPointerNV"))
3770                 return GLExtensionState.FailedToLoad;
3771             if(!bindExtFunc(cast(void**)&glVertexAttrib1dNV, "glVertexAttrib1dNV"))
3772                 return GLExtensionState.FailedToLoad;
3773             if(!bindExtFunc(cast(void**)&glVertexAttrib1dvNV, "glVertexAttrib1dvNV"))
3774                 return GLExtensionState.FailedToLoad;
3775             if(!bindExtFunc(cast(void**)&glVertexAttrib1fNV, "glVertexAttrib1fNV"))
3776                 return GLExtensionState.FailedToLoad;
3777             if(!bindExtFunc(cast(void**)&glVertexAttrib1fvNV, "glVertexAttrib1fvNV"))
3778                 return GLExtensionState.FailedToLoad;
3779             if(!bindExtFunc(cast(void**)&glVertexAttrib1sNV, "glVertexAttrib1sNV"))
3780                 return GLExtensionState.FailedToLoad;
3781             if(!bindExtFunc(cast(void**)&glVertexAttrib1svNV, "glVertexAttrib1svNV"))
3782                 return GLExtensionState.FailedToLoad;
3783             if(!bindExtFunc(cast(void**)&glVertexAttrib2dNV, "glVertexAttrib2dNV"))
3784                 return GLExtensionState.FailedToLoad;
3785             if(!bindExtFunc(cast(void**)&glVertexAttrib2dvNV, "glVertexAttrib2dvNV"))
3786                 return GLExtensionState.FailedToLoad;
3787             if(!bindExtFunc(cast(void**)&glVertexAttrib2fNV, "glVertexAttrib2fNV"))
3788                 return GLExtensionState.FailedToLoad;
3789             if(!bindExtFunc(cast(void**)&glVertexAttrib2fvNV, "glVertexAttrib2fvNV"))
3790                 return GLExtensionState.FailedToLoad;
3791             if(!bindExtFunc(cast(void**)&glVertexAttrib2sNV, "glVertexAttrib2sNV"))
3792                 return GLExtensionState.FailedToLoad;
3793             if(!bindExtFunc(cast(void**)&glVertexAttrib2svNV, "glVertexAttrib2svNV"))
3794                 return GLExtensionState.FailedToLoad;
3795             if(!bindExtFunc(cast(void**)&glVertexAttrib3dNV, "glVertexAttrib3dNV"))
3796                 return GLExtensionState.FailedToLoad;
3797             if(!bindExtFunc(cast(void**)&glVertexAttrib3dvNV, "glVertexAttrib3dvNV"))
3798                 return GLExtensionState.FailedToLoad;
3799             if(!bindExtFunc(cast(void**)&glVertexAttrib3fNV, "glVertexAttrib3fNV"))
3800                 return GLExtensionState.FailedToLoad;
3801             if(!bindExtFunc(cast(void**)&glVertexAttrib3fvNV, "glVertexAttrib3fvNV"))
3802                 return GLExtensionState.FailedToLoad;
3803             if(!bindExtFunc(cast(void**)&glVertexAttrib3sNV, "glVertexAttrib3sNV"))
3804                 return GLExtensionState.FailedToLoad;
3805             if(!bindExtFunc(cast(void**)&glVertexAttrib3svNV, "glVertexAttrib3svNV"))
3806                 return GLExtensionState.FailedToLoad;
3807             if(!bindExtFunc(cast(void**)&glVertexAttrib4dNV, "glVertexAttrib4dNV"))
3808                 return GLExtensionState.FailedToLoad;
3809             if(!bindExtFunc(cast(void**)&glVertexAttrib4dvNV, "glVertexAttrib4dvNV"))
3810                 return GLExtensionState.FailedToLoad;
3811             if(!bindExtFunc(cast(void**)&glVertexAttrib4fNV, "glVertexAttrib4fNV"))
3812                 return GLExtensionState.FailedToLoad;
3813             if(!bindExtFunc(cast(void**)&glVertexAttrib4fvNV, "glVertexAttrib4fvNV"))
3814                 return GLExtensionState.FailedToLoad;
3815             if(!bindExtFunc(cast(void**)&glVertexAttrib4sNV, "glVertexAttrib4sNV"))
3816                 return GLExtensionState.FailedToLoad;
3817             if(!bindExtFunc(cast(void**)&glVertexAttrib4svNV, "glVertexAttrib4svNV"))
3818                 return GLExtensionState.FailedToLoad;
3819             if(!bindExtFunc(cast(void**)&glVertexAttrib4ubNV, "glVertexAttrib4ubNV"))
3820                 return GLExtensionState.FailedToLoad;
3821             if(!bindExtFunc(cast(void**)&glVertexAttrib4ubvNV, "glVertexAttrib4ubvNV"))
3822                 return GLExtensionState.FailedToLoad;
3823             if(!bindExtFunc(cast(void**)&glVertexAttribs1dvNV, "glVertexAttribs1dvNV"))
3824                 return GLExtensionState.FailedToLoad;
3825             if(!bindExtFunc(cast(void**)&glVertexAttribs1fvNV, "glVertexAttribs1fvNV"))
3826                 return GLExtensionState.FailedToLoad;
3827             if(!bindExtFunc(cast(void**)&glVertexAttribs1svNV, "glVertexAttribs1svNV"))
3828                 return GLExtensionState.FailedToLoad;
3829             if(!bindExtFunc(cast(void**)&glVertexAttribs2dvNV, "glVertexAttribs2dvNV"))
3830                 return GLExtensionState.FailedToLoad;
3831             if(!bindExtFunc(cast(void**)&glVertexAttribs2fvNV, "glVertexAttribs2fvNV"))
3832                 return GLExtensionState.FailedToLoad;
3833             if(!bindExtFunc(cast(void**)&glVertexAttribs2svNV, "glVertexAttribs2svNV"))
3834                 return GLExtensionState.FailedToLoad;
3835             if(!bindExtFunc(cast(void**)&glVertexAttribs3dvNV, "glVertexAttribs3dvNV"))
3836                 return GLExtensionState.FailedToLoad;
3837             if(!bindExtFunc(cast(void**)&glVertexAttribs3fvNV, "glVertexAttribs3fvNV"))
3838                 return GLExtensionState.FailedToLoad;
3839             if(!bindExtFunc(cast(void**)&glVertexAttribs3svNV, "glVertexAttribs3svNV"))
3840                 return GLExtensionState.FailedToLoad;
3841             if(!bindExtFunc(cast(void**)&glVertexAttribs4dvNV, "glVertexAttribs4dvNV"))
3842                 return GLExtensionState.FailedToLoad;
3843             if(!bindExtFunc(cast(void**)&glVertexAttribs4fvNV, "glVertexAttribs4fvNV"))
3844                 return GLExtensionState.FailedToLoad;
3845             if(!bindExtFunc(cast(void**)&glVertexAttribs4svNV, "glVertexAttribs4svNV"))
3846                 return GLExtensionState.FailedToLoad;
3847             if(!bindExtFunc(cast(void**)&glVertexAttribs4ubvNV, "glVertexAttribs4ubvNV"))
3848                 return GLExtensionState.FailedToLoad;
3849             return GLExtensionState.Loaded;
3850         }
3851 
3852         GLExtensionState load_GL_NV_copy_depth_to_color()
3853         {
3854             if(!extIsSupported("GL_NV_copy_depth_to_color"))
3855                 return GLExtensionState.DriverUnsupported;
3856             return GLExtensionState.Loaded;
3857         }
3858 
3859         GLExtensionState load_GL_NV_multisample_filter_hint()
3860         {
3861             if(!extIsSupported("GL_NV_multisample_filter_hint"))
3862                 return GLExtensionState.DriverUnsupported;
3863             return GLExtensionState.Loaded;
3864         }
3865 
3866         GLExtensionState load_GL_NV_depth_clamp()
3867         {
3868             if(!extIsSupported("GL_NV_depth_clamp"))
3869                 return GLExtensionState.DriverUnsupported;
3870             return GLExtensionState.Loaded;
3871         }
3872 
3873         GLExtensionState load_GL_NV_occlusion_query()
3874         {
3875             if(!extIsSupported("GL_NV_occlusion_query"))
3876                 return GLExtensionState.DriverUnsupported;
3877             if(!bindExtFunc(cast(void**)&glGenOcclusionQueriesNV, "glGenOcclusionQueriesNV"))
3878                 return GLExtensionState.FailedToLoad;
3879             if(!bindExtFunc(cast(void**)&glDeleteOcclusionQueriesNV, "glDeleteOcclusionQueriesNV"))
3880                 return GLExtensionState.FailedToLoad;
3881             if(!bindExtFunc(cast(void**)&glIsOcclusionQueryNV, "glIsOcclusionQueryNV"))
3882                 return GLExtensionState.FailedToLoad;
3883             if(!bindExtFunc(cast(void**)&glBeginOcclusionQueryNV, "glBeginOcclusionQueryNV"))
3884                 return GLExtensionState.FailedToLoad;
3885             if(!bindExtFunc(cast(void**)&glEndOcclusionQueryNV, "glEndOcclusionQueryNV"))
3886                 return GLExtensionState.FailedToLoad;
3887             if(!bindExtFunc(cast(void**)&glGetOcclusionQueryivNV, "glGetOcclusionQueryivNV"))
3888                 return GLExtensionState.FailedToLoad;
3889             if(!bindExtFunc(cast(void**)&glGetOcclusionQueryuivNV, "glGetOcclusionQueryuivNV"))
3890                 return GLExtensionState.FailedToLoad;
3891             return GLExtensionState.Loaded;
3892         }
3893 
3894         GLExtensionState load_GL_NV_point_sprite()
3895         {
3896             if(!extIsSupported("GL_NV_point_sprite"))
3897                 return GLExtensionState.DriverUnsupported;
3898             if(!bindExtFunc(cast(void**)&glPointParameteriNV, "glPointParameteriNV"))
3899                 return GLExtensionState.FailedToLoad;
3900             if(!bindExtFunc(cast(void**)&glPointParameterivNV, "glPointParameterivNV"))
3901                 return GLExtensionState.FailedToLoad;
3902             return GLExtensionState.Loaded;
3903         }
3904 
3905         GLExtensionState load_GL_NV_texture_shader3()
3906         {
3907             if(!extIsSupported("GL_NV_texture_shader3"))
3908                 return GLExtensionState.DriverUnsupported;
3909             return GLExtensionState.Loaded;
3910         }
3911 
3912         GLExtensionState load_GL_NV_vertex_program1_1()
3913         {
3914             if(!extIsSupported("GL_NV_vertex_program1_1"))
3915                 return GLExtensionState.DriverUnsupported;
3916             return GLExtensionState.Loaded;
3917         }
3918 
3919         GLExtensionState load_GL_NV_float_buffer()
3920         {
3921             if(!extIsSupported("GL_NV_float_buffer"))
3922                 return GLExtensionState.DriverUnsupported;
3923             return GLExtensionState.Loaded;
3924         }
3925 
3926         GLExtensionState load_GL_NV_fragment_program()
3927         {
3928             if(!extIsSupported("GL_NV_fragment_program"))
3929                 return GLExtensionState.DriverUnsupported;
3930             if(!bindExtFunc(cast(void**)&glProgramNamedParameter4fNV, "glProgramNamedParameter4fNV"))
3931                 return GLExtensionState.FailedToLoad;
3932             if(!bindExtFunc(cast(void**)&glProgramNamedParameter4dNV, "glProgramNamedParameter4dNV"))
3933                 return GLExtensionState.FailedToLoad;
3934             if(!bindExtFunc(cast(void**)&glProgramNamedParameter4fvNV, "glProgramNamedParameter4fvNV"))
3935                 return GLExtensionState.FailedToLoad;
3936             if(!bindExtFunc(cast(void**)&glProgramNamedParameter4dvNV, "glProgramNamedParameter4dvNV"))
3937                 return GLExtensionState.FailedToLoad;
3938             if(!bindExtFunc(cast(void**)&glGetProgramNamedParameterfvNV, "glGetProgramNamedParameterfvNV"))
3939                 return GLExtensionState.FailedToLoad;
3940             if(!bindExtFunc(cast(void**)&glGetProgramNamedParameterdvNV, "glGetProgramNamedParameterdvNV"))
3941                 return GLExtensionState.FailedToLoad;
3942             return GLExtensionState.Loaded;
3943         }
3944 
3945         GLExtensionState load_GL_NV_half_float()
3946         {
3947             if(!extIsSupported("GL_NV_half_float"))
3948                 return GLExtensionState.DriverUnsupported;
3949             if(!bindExtFunc(cast(void**)&glVertex2hNV, "glVertex2hNV"))
3950                 return GLExtensionState.FailedToLoad;
3951             if(!bindExtFunc(cast(void**)&glVertex2hvNV, "glVertex2hvNV"))
3952                 return GLExtensionState.FailedToLoad;
3953             if(!bindExtFunc(cast(void**)&glVertex3hNV, "glVertex3hNV"))
3954                 return GLExtensionState.FailedToLoad;
3955             if(!bindExtFunc(cast(void**)&glVertex3hvNV, "glVertex3hvNV"))
3956                 return GLExtensionState.FailedToLoad;
3957             if(!bindExtFunc(cast(void**)&glVertex4hNV, "glVertex4hNV"))
3958                 return GLExtensionState.FailedToLoad;
3959             if(!bindExtFunc(cast(void**)&glVertex4hvNV, "glVertex4hvNV"))
3960                 return GLExtensionState.FailedToLoad;
3961             if(!bindExtFunc(cast(void**)&glNormal3hNV, "glNormal3hNV"))
3962                 return GLExtensionState.FailedToLoad;
3963             if(!bindExtFunc(cast(void**)&glNormal3hvNV, "glNormal3hvNV"))
3964                 return GLExtensionState.FailedToLoad;
3965             if(!bindExtFunc(cast(void**)&glColor3hNV, "glColor3hNV"))
3966                 return GLExtensionState.FailedToLoad;
3967             if(!bindExtFunc(cast(void**)&glColor3hvNV, "glColor3hvNV"))
3968                 return GLExtensionState.FailedToLoad;
3969             if(!bindExtFunc(cast(void**)&glColor4hNV, "glColor4hNV"))
3970                 return GLExtensionState.FailedToLoad;
3971             if(!bindExtFunc(cast(void**)&glColor4hvNV, "glColor4hvNV"))
3972                 return GLExtensionState.FailedToLoad;
3973             if(!bindExtFunc(cast(void**)&glTexCoord1hNV, "glTexCoord1hNV"))
3974                 return GLExtensionState.FailedToLoad;
3975             if(!bindExtFunc(cast(void**)&glTexCoord1hvNV, "glTexCoord1hvNV"))
3976                 return GLExtensionState.FailedToLoad;
3977             if(!bindExtFunc(cast(void**)&glTexCoord2hNV, "glTexCoord2hNV"))
3978                 return GLExtensionState.FailedToLoad;
3979             if(!bindExtFunc(cast(void**)&glTexCoord2hvNV, "glTexCoord2hvNV"))
3980                 return GLExtensionState.FailedToLoad;
3981             if(!bindExtFunc(cast(void**)&glTexCoord3hNV, "glTexCoord3hNV"))
3982                 return GLExtensionState.FailedToLoad;
3983             if(!bindExtFunc(cast(void**)&glTexCoord3hvNV, "glTexCoord3hvNV"))
3984                 return GLExtensionState.FailedToLoad;
3985             if(!bindExtFunc(cast(void**)&glTexCoord4hNV, "glTexCoord4hNV"))
3986                 return GLExtensionState.FailedToLoad;
3987             if(!bindExtFunc(cast(void**)&glTexCoord4hvNV, "glTexCoord4hvNV"))
3988                 return GLExtensionState.FailedToLoad;
3989             if(!bindExtFunc(cast(void**)&glMultiTexCoord1hNV, "glMultiTexCoord1hNV"))
3990                 return GLExtensionState.FailedToLoad;
3991             if(!bindExtFunc(cast(void**)&glMultiTexCoord1hvNV, "glMultiTexCoord1hvNV"))
3992                 return GLExtensionState.FailedToLoad;
3993             if(!bindExtFunc(cast(void**)&glMultiTexCoord2hNV, "glMultiTexCoord2hNV"))
3994                 return GLExtensionState.FailedToLoad;
3995             if(!bindExtFunc(cast(void**)&glMultiTexCoord2hvNV, "glMultiTexCoord2hvNV"))
3996                 return GLExtensionState.FailedToLoad;
3997             if(!bindExtFunc(cast(void**)&glMultiTexCoord3hNV, "glMultiTexCoord3hNV"))
3998                 return GLExtensionState.FailedToLoad;
3999             if(!bindExtFunc(cast(void**)&glMultiTexCoord3hvNV, "glMultiTexCoord3hvNV"))
4000                 return GLExtensionState.FailedToLoad;
4001             if(!bindExtFunc(cast(void**)&glMultiTexCoord4hNV, "glMultiTexCoord4hNV"))
4002                 return GLExtensionState.FailedToLoad;
4003             if(!bindExtFunc(cast(void**)&glMultiTexCoord4hvNV, "glMultiTexCoord4hvNV"))
4004                 return GLExtensionState.FailedToLoad;
4005             if(!bindExtFunc(cast(void**)&glFogCoordhNV, "glFogCoordhNV"))
4006                 return GLExtensionState.FailedToLoad;
4007             if(!bindExtFunc(cast(void**)&glFogCoordhvNV, "glFogCoordhvNV"))
4008                 return GLExtensionState.FailedToLoad;
4009             if(!bindExtFunc(cast(void**)&glSecondaryColor3hNV, "glSecondaryColor3hNV"))
4010                 return GLExtensionState.FailedToLoad;
4011             if(!bindExtFunc(cast(void**)&glSecondaryColor3hvNV, "glSecondaryColor3hvNV"))
4012                 return GLExtensionState.FailedToLoad;
4013 //            if(!bindExtFunc(cast(void**)&glVertexWeighthNV, "glVertexWeighthNV"))
4014 //                return GLExtensionState.FailedToLoad;
4015 //            if(!bindExtFunc(cast(void**)&glVertexWeighthvNV, "glVertexWeighthvNV"))
4016 //                return GLExtensionState.FailedToLoad;
4017             if(!bindExtFunc(cast(void**)&glVertexAttrib1hNV, "glVertexAttrib1hNV"))
4018                 return GLExtensionState.FailedToLoad;
4019             if(!bindExtFunc(cast(void**)&glVertexAttrib1hvNV, "glVertexAttrib1hvNV"))
4020                 return GLExtensionState.FailedToLoad;
4021             if(!bindExtFunc(cast(void**)&glVertexAttrib2hNV, "glVertexAttrib2hNV"))
4022                 return GLExtensionState.FailedToLoad;
4023             if(!bindExtFunc(cast(void**)&glVertexAttrib2hvNV, "glVertexAttrib2hvNV"))
4024                 return GLExtensionState.FailedToLoad;
4025             if(!bindExtFunc(cast(void**)&glVertexAttrib3hNV, "glVertexAttrib3hNV"))
4026                 return GLExtensionState.FailedToLoad;
4027             if(!bindExtFunc(cast(void**)&glVertexAttrib3hvNV, "glVertexAttrib3hvNV"))
4028                 return GLExtensionState.FailedToLoad;
4029             if(!bindExtFunc(cast(void**)&glVertexAttrib4hNV, "glVertexAttrib4hNV"))
4030                 return GLExtensionState.FailedToLoad;
4031             if(!bindExtFunc(cast(void**)&glVertexAttrib4hvNV, "glVertexAttrib4hvNV"))
4032                 return GLExtensionState.FailedToLoad;
4033             if(!bindExtFunc(cast(void**)&glVertexAttribs1hvNV, "glVertexAttribs1hvNV"))
4034                 return GLExtensionState.FailedToLoad;
4035             if(!bindExtFunc(cast(void**)&glVertexAttribs2hvNV, "glVertexAttribs2hvNV"))
4036                 return GLExtensionState.FailedToLoad;
4037             if(!bindExtFunc(cast(void**)&glVertexAttribs3hvNV, "glVertexAttribs3hvNV"))
4038                 return GLExtensionState.FailedToLoad;
4039             if(!bindExtFunc(cast(void**)&glVertexAttribs4hvNV, "glVertexAttribs4hvNV"))
4040                 return GLExtensionState.FailedToLoad;
4041             return GLExtensionState.Loaded;
4042         }
4043 
4044         GLExtensionState load_GL_NV_pixel_data_range()
4045         {
4046             if(!extIsSupported("GL_NV_pixel_data_range"))
4047                 return GLExtensionState.DriverUnsupported;
4048             if(!bindExtFunc(cast(void**)&glPixelDataRangeNV, "glPixelDataRangeNV"))
4049                 return GLExtensionState.FailedToLoad;
4050             if(!bindExtFunc(cast(void**)&glFlushPixelDataRangeNV, "glFlushPixelDataRangeNV"))
4051                 return GLExtensionState.FailedToLoad;
4052             return GLExtensionState.Loaded;
4053         }
4054 
4055         GLExtensionState load_GL_NV_primitive_restart()
4056         {
4057             if(!extIsSupported("GL_NV_primitive_restart"))
4058                 return GLExtensionState.DriverUnsupported;
4059             if(!bindExtFunc(cast(void**)&glPrimitiveRestartNV, "glPrimitiveRestartNV"))
4060                 return GLExtensionState.FailedToLoad;
4061             if(!bindExtFunc(cast(void**)&glPrimitiveRestartIndexNV, "glPrimitiveRestartIndexNV"))
4062                 return GLExtensionState.FailedToLoad;
4063             return GLExtensionState.Loaded;
4064         }
4065 
4066         GLExtensionState load_GL_NV_texture_expand_normal()
4067         {
4068             if(!extIsSupported("GL_NV_texture_expand_normal"))
4069                 return GLExtensionState.DriverUnsupported;
4070             return GLExtensionState.Loaded;
4071         }
4072 
4073         GLExtensionState load_GL_NV_vertex_program2()
4074         {
4075             if(!extIsSupported("GL_NV_vertex_program2"))
4076                 return GLExtensionState.DriverUnsupported;
4077             return GLExtensionState.Loaded;
4078         }
4079 
4080         GLExtensionState load_GL_NV_fragment_program_option()
4081         {
4082             if(!extIsSupported("GL_NV_fragment_program_option"))
4083                 return GLExtensionState.DriverUnsupported;
4084             return GLExtensionState.Loaded;
4085         }
4086 
4087         GLExtensionState load_GL_NV_fragment_program2()
4088         {
4089             if(!extIsSupported("GL_NV_fragment_program2"))
4090                 return GLExtensionState.DriverUnsupported;
4091             return GLExtensionState.Loaded;
4092         }
4093 
4094         GLExtensionState load_GL_NV_vertex_program2_option()
4095         {
4096             if(!extIsSupported("GL_NV_vertex_program2_option"))
4097                 return GLExtensionState.DriverUnsupported;
4098             return GLExtensionState.Loaded;
4099         }
4100 
4101         GLExtensionState load_GL_NV_vertex_program3()
4102         {
4103             if(!extIsSupported("GL_NV_vertex_program3"))
4104                 return GLExtensionState.DriverUnsupported;
4105             return GLExtensionState.Loaded;
4106         }
4107 
4108         GLExtensionState load_GL_NV_gpu_program4()
4109         {
4110             if(!extIsSupported("GL_NV_gpu_program4"))
4111                 return GLExtensionState.DriverUnsupported;
4112             if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4iNV, "glProgramLocalParameterI4iNV"))
4113                 return GLExtensionState.FailedToLoad;
4114             if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4ivNV, "glProgramLocalParameterI4ivNV"))
4115                 return GLExtensionState.FailedToLoad;
4116             if(!bindExtFunc(cast(void**)&glProgramLocalParametersI4ivNV, "glProgramLocalParametersI4ivNV"))
4117                 return GLExtensionState.FailedToLoad;
4118             if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4uiNV, "glProgramLocalParameterI4uiNV"))
4119                 return GLExtensionState.FailedToLoad;
4120             if(!bindExtFunc(cast(void**)&glProgramLocalParameterI4uivNV, "glProgramLocalParameterI4uivNV"))
4121                 return GLExtensionState.FailedToLoad;
4122             if(!bindExtFunc(cast(void**)&glProgramLocalParametersI4uivNV, "glProgramLocalParametersI4uivNV"))
4123                 return GLExtensionState.FailedToLoad;
4124             if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4iNV, "glProgramEnvParameterI4iNV"))
4125                 return GLExtensionState.FailedToLoad;
4126             if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4ivNV, "glProgramEnvParameterI4ivNV"))
4127                 return GLExtensionState.FailedToLoad;
4128             if(!bindExtFunc(cast(void**)&glProgramEnvParametersI4ivNV, "glProgramEnvParametersI4ivNV"))
4129                 return GLExtensionState.FailedToLoad;
4130             if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4uiNV, "glProgramEnvParameterI4uiNV"))
4131                 return GLExtensionState.FailedToLoad;
4132             if(!bindExtFunc(cast(void**)&glProgramEnvParameterI4uivNV, "glProgramEnvParameterI4uivNV"))
4133                 return GLExtensionState.FailedToLoad;
4134             if(!bindExtFunc(cast(void**)&glProgramEnvParametersI4uivNV, "glProgramEnvParametersI4uivNV"))
4135                 return GLExtensionState.FailedToLoad;
4136             if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterIivNV, "glGetProgramLocalParameterIivNV"))
4137                 return GLExtensionState.FailedToLoad;
4138             if(!bindExtFunc(cast(void**)&glGetProgramLocalParameterIuivNV, "glGetProgramLocalParameterIuivNV"))
4139                 return GLExtensionState.FailedToLoad;
4140             if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterIivNV, "glGetProgramEnvParameterIivNV"))
4141                 return GLExtensionState.FailedToLoad;
4142             if(!bindExtFunc(cast(void**)&glGetProgramEnvParameterIuivNV, "glGetProgramEnvParameterIuivNV"))
4143                 return GLExtensionState.FailedToLoad;
4144             return GLExtensionState.Loaded;
4145         }
4146 
4147         GLExtensionState load_GL_NV_geometry_program4()
4148         {
4149             if(!extIsSupported("GL_NV_geometry_program4"))
4150                 return GLExtensionState.DriverUnsupported;
4151             if(!bindExtFunc(cast(void**)&glProgramVertexLimitNV, "glProgramVertexLimitNV"))
4152                 return GLExtensionState.FailedToLoad;
4153             if(!bindExtFunc(cast(void**)&glFramebufferTextureEXT, "glFramebufferTextureEXT"))
4154                 return GLExtensionState.FailedToLoad;
4155             if(!bindExtFunc(cast(void**)&glFramebufferTextureLayerEXT, "glFramebufferTextureLayerEXT"))
4156                 return GLExtensionState.FailedToLoad;
4157             if(!bindExtFunc(cast(void**)&glFramebufferTextureFaceEXT, "glFramebufferTextureFaceEXT"))
4158                 return GLExtensionState.FailedToLoad;
4159             return GLExtensionState.Loaded;
4160         }
4161 
4162         GLExtensionState load_GL_NV_vertex_program4()
4163         {
4164             if(!extIsSupported("GL_NV_vertex_program4"))
4165                 return GLExtensionState.DriverUnsupported;
4166             if(!bindExtFunc(cast(void**)&glVertexAttribI1iEXT, "glVertexAttribI1iEXT"))
4167                 return GLExtensionState.FailedToLoad;
4168             if(!bindExtFunc(cast(void**)&glVertexAttribI2iEXT, "glVertexAttribI2iEXT"))
4169                 return GLExtensionState.FailedToLoad;
4170             if(!bindExtFunc(cast(void**)&glVertexAttribI3iEXT, "glVertexAttribI3iEXT"))
4171                 return GLExtensionState.FailedToLoad;
4172             if(!bindExtFunc(cast(void**)&glVertexAttribI4iEXT, "glVertexAttribI4iEXT"))
4173                 return GLExtensionState.FailedToLoad;
4174             if(!bindExtFunc(cast(void**)&glVertexAttribI1uiEXT, "glVertexAttribI1uiEXT"))
4175                 return GLExtensionState.FailedToLoad;
4176             if(!bindExtFunc(cast(void**)&glVertexAttribI2uiEXT, "glVertexAttribI2uiEXT"))
4177                 return GLExtensionState.FailedToLoad;
4178             if(!bindExtFunc(cast(void**)&glVertexAttribI3uiEXT, "glVertexAttribI3uiEXT"))
4179                 return GLExtensionState.FailedToLoad;
4180             if(!bindExtFunc(cast(void**)&glVertexAttribI4uiEXT, "glVertexAttribI4uiEXT"))
4181                 return GLExtensionState.FailedToLoad;
4182             if(!bindExtFunc(cast(void**)&glVertexAttribI1ivEXT, "glVertexAttribI1ivEXT"))
4183                 return GLExtensionState.FailedToLoad;
4184             if(!bindExtFunc(cast(void**)&glVertexAttribI2ivEXT, "glVertexAttribI2ivEXT"))
4185                 return GLExtensionState.FailedToLoad;
4186             if(!bindExtFunc(cast(void**)&glVertexAttribI3ivEXT, "glVertexAttribI3ivEXT"))
4187                 return GLExtensionState.FailedToLoad;
4188             if(!bindExtFunc(cast(void**)&glVertexAttribI4ivEXT, "glVertexAttribI4ivEXT"))
4189                 return GLExtensionState.FailedToLoad;
4190             if(!bindExtFunc(cast(void**)&glVertexAttribI1uivEXT, "glVertexAttribI1uivEXT"))
4191                 return GLExtensionState.FailedToLoad;
4192             if(!bindExtFunc(cast(void**)&glVertexAttribI2uivEXT, "glVertexAttribI2uivEXT"))
4193                 return GLExtensionState.FailedToLoad;
4194             if(!bindExtFunc(cast(void**)&glVertexAttribI3uivEXT, "glVertexAttribI3uivEXT"))
4195                 return GLExtensionState.FailedToLoad;
4196             if(!bindExtFunc(cast(void**)&glVertexAttribI4uivEXT, "glVertexAttribI4uivEXT"))
4197                 return GLExtensionState.FailedToLoad;
4198             if(!bindExtFunc(cast(void**)&glVertexAttribI4bvEXT, "glVertexAttribI4bvEXT"))
4199                 return GLExtensionState.FailedToLoad;
4200             if(!bindExtFunc(cast(void**)&glVertexAttribI4svEXT, "glVertexAttribI4svEXT"))
4201                 return GLExtensionState.FailedToLoad;
4202             if(!bindExtFunc(cast(void**)&glVertexAttribI4ubvEXT, "glVertexAttribI4ubvEXT"))
4203                 return GLExtensionState.FailedToLoad;
4204             if(!bindExtFunc(cast(void**)&glVertexAttribI4usvEXT, "glVertexAttribI4usvEXT"))
4205                 return GLExtensionState.FailedToLoad;
4206             if(!bindExtFunc(cast(void**)&glVertexAttribIPointerEXT, "glVertexAttribIPointerEXT"))
4207                 return GLExtensionState.FailedToLoad;
4208             if(!bindExtFunc(cast(void**)&glGetVertexAttribIivEXT, "glGetVertexAttribIivEXT"))
4209                 return GLExtensionState.FailedToLoad;
4210             if(!bindExtFunc(cast(void**)&glGetVertexAttribIuivEXT, "glGetVertexAttribIuivEXT"))
4211                 return GLExtensionState.FailedToLoad;
4212             return GLExtensionState.Loaded;
4213         }
4214 
4215         GLExtensionState load_GL_NV_depth_buffer_float()
4216         {
4217             if(!extIsSupported("GL_NV_depth_buffer_float"))
4218                 return GLExtensionState.DriverUnsupported;
4219             if(!bindExtFunc(cast(void**)&glDepthRangedNV, "glDepthRangedNV"))
4220                 return GLExtensionState.FailedToLoad;
4221             if(!bindExtFunc(cast(void**)&glClearDepthdNV, "glClearDepthdNV"))
4222                 return GLExtensionState.FailedToLoad;
4223             if(!bindExtFunc(cast(void**)&glDepthBoundsdNV, "glDepthBoundsdNV"))
4224                 return GLExtensionState.FailedToLoad;
4225             return GLExtensionState.Loaded;
4226         }
4227 
4228         GLExtensionState load_GL_NV_fragment_program4()
4229         {
4230             if(!extIsSupported("GL_NV_fragment_program4"))
4231                 return GLExtensionState.DriverUnsupported;
4232             return GLExtensionState.Loaded;
4233         }
4234 
4235         GLExtensionState load_GL_NV_framebuffer_multisample_coverage()
4236         {
4237             if(!extIsSupported("GL_NV_framebuffer_multisample_coverage"))
4238                 return GLExtensionState.DriverUnsupported;
4239             if(!bindExtFunc(cast(void**)&glRenderbufferStorageMultisampleCoverageNV, "glRenderbufferStorageMultisampleCoverageNV"))
4240                 return GLExtensionState.FailedToLoad;
4241             return GLExtensionState.Loaded;
4242         }
4243 
4244         GLExtensionState load_GL_NV_geometry_shader4()
4245         {
4246             if(!extIsSupported("GL_NV_geometry_shader4"))
4247                 return GLExtensionState.DriverUnsupported;
4248             return GLExtensionState.Loaded;
4249         }
4250 
4251         GLExtensionState load_GL_NV_transform_feedback()
4252         {
4253             if(!extIsSupported("GL_NV_transform_feedback"))
4254                 return GLExtensionState.DriverUnsupported;
4255             if(!bindExtFunc(cast(void**)&glBeginTransformFeedbackNV, "glBeginTransformFeedbackNV"))
4256                 return GLExtensionState.FailedToLoad;
4257             if(!bindExtFunc(cast(void**)&glEndTransformFeedbackNV, "glEndTransformFeedbackNV"))
4258                 return GLExtensionState.FailedToLoad;
4259             if(!bindExtFunc(cast(void**)&glTransformFeedbackAttribsNV, "glTransformFeedbackAttribsNV"))
4260                 return GLExtensionState.FailedToLoad;
4261             if(!bindExtFunc(cast(void**)&glBindBufferRangeNV, "glBindBufferRangeNV"))
4262                 return GLExtensionState.FailedToLoad;
4263             if(!bindExtFunc(cast(void**)&glBindBufferOffsetNV, "glBindBufferOffsetNV"))
4264                 return GLExtensionState.FailedToLoad;
4265             if(!bindExtFunc(cast(void**)&glBindBufferBaseNV, "glBindBufferBaseNV"))
4266                 return GLExtensionState.FailedToLoad;
4267             if(!bindExtFunc(cast(void**)&glTransformFeedbackVaryingsNV, "glTransformFeedbackVaryingsNV"))
4268                 return GLExtensionState.FailedToLoad;
4269             if(!bindExtFunc(cast(void**)&glActiveVaryingNV, "glActiveVaryingNV"))
4270                 return GLExtensionState.FailedToLoad;
4271             if(!bindExtFunc(cast(void**)&glGetVaryingLocationNV, "glGetVaryingLocationNV"))
4272                 return GLExtensionState.FailedToLoad;
4273             if(!bindExtFunc(cast(void**)&glGetActiveVaryingNV, "glGetActiveVaryingNV"))
4274                 return GLExtensionState.FailedToLoad;
4275             if(!bindExtFunc(cast(void**)&glGetTransformFeedbackVaryingNV, "glGetTransformFeedbackVaryingNV"))
4276                 return GLExtensionState.FailedToLoad;
4277             return GLExtensionState.Loaded;
4278         }
4279 
4280         GLExtensionState load_GL_NV_conditional_render()
4281         {
4282             if(!extIsSupported("GL_NV_conditional_render"))
4283                 return GLExtensionState.DriverUnsupported;
4284             if(!bindExtFunc(cast(void**)&glBeginConditionalRenderNV, "glBeginConditionalRenderNV"))
4285                 return GLExtensionState.FailedToLoad;
4286             if(!bindExtFunc(cast(void**)&glEndConditionalRenderNV, "glEndConditionalRenderNV"))
4287                 return GLExtensionState.FailedToLoad;
4288             return GLExtensionState.Loaded;
4289         }
4290 
4291         GLExtensionState load_GL_NV_present_video()
4292         {
4293             if(!extIsSupported("GL_NV_present_video"))
4294                 return GLExtensionState.DriverUnsupported;
4295             if(!bindExtFunc(cast(void**)&glPresentFrameKeyedNV, "glPresentFrameKeyedNV"))
4296                 return GLExtensionState.FailedToLoad;
4297             if(!bindExtFunc(cast(void**)&glPresentFrameDualFillNV, "glPresentFrameDualFillNV"))
4298                 return GLExtensionState.FailedToLoad;
4299             if(!bindExtFunc(cast(void**)&glGetVideoivNV, "glGetVideoivNV"))
4300                 return GLExtensionState.FailedToLoad;
4301             if(!bindExtFunc(cast(void**)&glGetVideouivNV, "glGetVideouivNV"))
4302                 return GLExtensionState.FailedToLoad;
4303             if(!bindExtFunc(cast(void**)&glGetVideoi64vNV, "glGetVideoi64vNV"))
4304                 return GLExtensionState.FailedToLoad;
4305             if(!bindExtFunc(cast(void**)&glGetVideoui64vNV, "glGetVideoui64vNV"))
4306                 return GLExtensionState.FailedToLoad;
4307             return GLExtensionState.Loaded;
4308         }
4309 
4310         GLExtensionState load_GL_NV_explicit_multisample()
4311         {
4312             if(!extIsSupported("GL_NV_explicit_multisample"))
4313                 return GLExtensionState.DriverUnsupported;
4314             if(!bindExtFunc(cast(void**)&glGetMultisamplefvNV, "glGetMultisamplefvNV"))
4315                 return GLExtensionState.FailedToLoad;
4316             if(!bindExtFunc(cast(void**)&glSampleMaskIndexedNV, "glSampleMaskIndexedNV"))
4317                 return GLExtensionState.FailedToLoad;
4318             if(!bindExtFunc(cast(void**)&glTexRenderbufferNV, "glTexRenderbufferNV"))
4319                 return GLExtensionState.FailedToLoad;
4320             return GLExtensionState.Loaded;
4321         }
4322 
4323         GLExtensionState load_GL_NV_transform_feedback2()
4324         {
4325             if(!extIsSupported("GL_NV_transform_feedback2"))
4326                 return GLExtensionState.DriverUnsupported;
4327             if(!bindExtFunc(cast(void**)&glBindTransformFeedbackNV, "glBindTransformFeedbackNV"))
4328                 return GLExtensionState.FailedToLoad;
4329             if(!bindExtFunc(cast(void**)&glDeleteTransformFeedbacksNV, "glDeleteTransformFeedbacksNV"))
4330                 return GLExtensionState.FailedToLoad;
4331             if(!bindExtFunc(cast(void**)&glGenTransformFeedbacksNV, "glGenTransformFeedbacksNV"))
4332                 return GLExtensionState.FailedToLoad;
4333             if(!bindExtFunc(cast(void**)&glIsTransformFeedbackNV, "glIsTransformFeedbackNV"))
4334                 return GLExtensionState.FailedToLoad;
4335             if(!bindExtFunc(cast(void**)&glPauseTransformFeedbackNV, "glPauseTransformFeedbackNV"))
4336                 return GLExtensionState.FailedToLoad;
4337             if(!bindExtFunc(cast(void**)&glResumeTransformFeedbackNV, "glResumeTransformFeedbackNV"))
4338                 return GLExtensionState.FailedToLoad;
4339             if(!bindExtFunc(cast(void**)&glDrawTransformFeedbackNV, "glDrawTransformFeedbackNV"))
4340                 return GLExtensionState.FailedToLoad;
4341             return GLExtensionState.Loaded;
4342         }
4343 
4344         GLExtensionState load_GL_NV_video_capture()
4345         {
4346             if(!extIsSupported("GL_NV_video_capture"))
4347                 return GLExtensionState.DriverUnsupported;
4348             if(!bindExtFunc(cast(void**)&glBeginVideoCaptureNV, "glBeginVideoCaptureNV"))
4349                 return GLExtensionState.FailedToLoad;
4350             if(!bindExtFunc(cast(void**)&glBindVideoCaptureStreamBufferNV, "glBindVideoCaptureStreamBufferNV"))
4351                 return GLExtensionState.FailedToLoad;
4352             if(!bindExtFunc(cast(void**)&glBindVideoCaptureStreamTextureNV, "glBindVideoCaptureStreamTextureNV"))
4353                 return GLExtensionState.FailedToLoad;
4354             if(!bindExtFunc(cast(void**)&glEndVideoCaptureNV, "glEndVideoCaptureNV"))
4355                 return GLExtensionState.FailedToLoad;
4356             if(!bindExtFunc(cast(void**)&glGetVideoCaptureivNV, "glGetVideoCaptureivNV"))
4357                 return GLExtensionState.FailedToLoad;
4358             if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamivNV, "glGetVideoCaptureStreamivNV"))
4359                 return GLExtensionState.FailedToLoad;
4360             if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamfvNV, "glGetVideoCaptureStreamfvNV"))
4361                 return GLExtensionState.FailedToLoad;
4362             if(!bindExtFunc(cast(void**)&glGetVideoCaptureStreamdvNV, "glGetVideoCaptureStreamdvNV"))
4363                 return GLExtensionState.FailedToLoad;
4364             if(!bindExtFunc(cast(void**)&glVideoCaptureNV, "glVideoCaptureNV"))
4365                 return GLExtensionState.FailedToLoad;
4366             if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterivNV, "glVideoCaptureStreamParameterivNV"))
4367                 return GLExtensionState.FailedToLoad;
4368             if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterfvNV, "glVideoCaptureStreamParameterfvNV"))
4369                 return GLExtensionState.FailedToLoad;
4370             if(!bindExtFunc(cast(void**)&glVideoCaptureStreamParameterdvNV, "glVideoCaptureStreamParameterdvNV"))
4371                 return GLExtensionState.FailedToLoad;
4372             return GLExtensionState.Loaded;
4373         }
4374 
4375         GLExtensionState load_GL_NV_copy_image()
4376         {
4377             if(!extIsSupported("GL_NV_copy_image"))
4378                 return GLExtensionState.DriverUnsupported;
4379             if(!bindExtFunc(cast(void**)&glCopyImageSubDataNV, "glCopyImageSubDataNV"))
4380                 return GLExtensionState.FailedToLoad;
4381             return GLExtensionState.Loaded;
4382         }
4383 
4384         GLExtensionState load_GL_NV_parameter_buffer_object2()
4385         {
4386             if(!extIsSupported("GL_NV_parameter_buffer_object2"))
4387                 return GLExtensionState.DriverUnsupported;
4388             return GLExtensionState.Loaded;
4389         }
4390 
4391         GLExtensionState load_GL_NV_shader_buffer_load()
4392         {
4393             if(!extIsSupported("GL_NV_shader_buffer_load"))
4394                 return GLExtensionState.DriverUnsupported;
4395             if(!bindExtFunc(cast(void**)&glMakeBufferResidentNV, "glMakeBufferResidentNV"))
4396                 return GLExtensionState.FailedToLoad;
4397             if(!bindExtFunc(cast(void**)&glMakeBufferNonResidentNV, "glMakeBufferNonResidentNV"))
4398                 return GLExtensionState.FailedToLoad;
4399             if(!bindExtFunc(cast(void**)&glIsBufferResidentNV, "glIsBufferResidentNV"))
4400                 return GLExtensionState.FailedToLoad;
4401             if(!bindExtFunc(cast(void**)&glNamedMakeBufferResidentNV, "glNamedMakeBufferResidentNV"))
4402                 return GLExtensionState.FailedToLoad;
4403             if(!bindExtFunc(cast(void**)&glNamedMakeBufferNonResidentNV, "glNamedMakeBufferNonResidentNV"))
4404                 return GLExtensionState.FailedToLoad;
4405             if(!bindExtFunc(cast(void**)&glIsNamedBufferResidentNV, "glIsNamedBufferResidentNV"))
4406                 return GLExtensionState.FailedToLoad;
4407             if(!bindExtFunc(cast(void**)&glGetBufferParameterui64vNV, "glGetBufferParameterui64vNV"))
4408                 return GLExtensionState.FailedToLoad;
4409             if(!bindExtFunc(cast(void**)&glGetNamedBufferParameterui64vNV, "glGetNamedBufferParameterui64vNV"))
4410                 return GLExtensionState.FailedToLoad;
4411             if(!bindExtFunc(cast(void**)&glGetIntegerui64vNV, "glGetIntegerui64vNV"))
4412                 return GLExtensionState.FailedToLoad;
4413             if(!bindExtFunc(cast(void**)&glUniformui64NV, "glUniformui64NV"))
4414                 return GLExtensionState.FailedToLoad;
4415             if(!bindExtFunc(cast(void**)&glUniformui64vNV, "glUniformui64vNV"))
4416                 return GLExtensionState.FailedToLoad;
4417             if(!bindExtFunc(cast(void**)&glGetUniformui64vNV, "glGetUniformui64vNV"))
4418                 return GLExtensionState.FailedToLoad;
4419             if(!bindExtFunc(cast(void**)&glProgramUniformui64NV, "glProgramUniformui64NV"))
4420                 return GLExtensionState.FailedToLoad;
4421             if(!bindExtFunc(cast(void**)&glProgramUniformui64vNV, "glProgramUniformui64vNV"))
4422                 return GLExtensionState.FailedToLoad;
4423             return GLExtensionState.Loaded;
4424         }
4425 
4426         GLExtensionState load_GL_NV_vertex_buffer_unified_memory()
4427         {
4428             if(!extIsSupported("GL_NV_vertex_buffer_unified_memory"))
4429                 return GLExtensionState.DriverUnsupported;
4430             if(!bindExtFunc(cast(void**)&glBufferAddressRangeNV, "glBufferAddressRangeNV"))
4431                 return GLExtensionState.FailedToLoad;
4432             if(!bindExtFunc(cast(void**)&glVertexFormatNV, "glVertexFormatNV"))
4433                 return GLExtensionState.FailedToLoad;
4434             if(!bindExtFunc(cast(void**)&glNormalFormatNV, "glNormalFormatNV"))
4435                 return GLExtensionState.FailedToLoad;
4436             if(!bindExtFunc(cast(void**)&glColorFormatNV, "glColorFormatNV"))
4437                 return GLExtensionState.FailedToLoad;
4438             if(!bindExtFunc(cast(void**)&glIndexFormatNV, "glIndexFormatNV"))
4439                 return GLExtensionState.FailedToLoad;
4440             if(!bindExtFunc(cast(void**)&glTexCoordFormatNV, "glTexCoordFormatNV"))
4441                 return GLExtensionState.FailedToLoad;
4442             if(!bindExtFunc(cast(void**)&glEdgeFlagFormatNV, "glEdgeFlagFormatNV"))
4443                 return GLExtensionState.FailedToLoad;
4444             if(!bindExtFunc(cast(void**)&glSecondaryColorFormatNV, "glSecondaryColorFormatNV"))
4445                 return GLExtensionState.FailedToLoad;
4446             if(!bindExtFunc(cast(void**)&glFogCoordFormatNV, "glFogCoordFormatNV"))
4447                 return GLExtensionState.FailedToLoad;
4448             if(!bindExtFunc(cast(void**)&glVertexAttribFormatNV, "glVertexAttribFormatNV"))
4449                 return GLExtensionState.FailedToLoad;
4450             if(!bindExtFunc(cast(void**)&glVertexAttribIFormatNV, "glVertexAttribIFormatNV"))
4451                 return GLExtensionState.FailedToLoad;
4452             if(!bindExtFunc(cast(void**)&glGetIntegerui64i_vNV, "glGetIntegerui64i_vNV"))
4453                 return GLExtensionState.FailedToLoad;
4454             return GLExtensionState.Loaded;
4455         }
4456 
4457         GLExtensionState load_GL_NV_texture_barrier()
4458         {
4459             if(!extIsSupported("GL_NV_texture_barrier"))
4460                 return GLExtensionState.DriverUnsupported;
4461             if(!bindExtFunc(cast(void**)&glTextureBarrierNV, "glTextureBarrierNV"))
4462                 return GLExtensionState.FailedToLoad;
4463             return GLExtensionState.Loaded;
4464         }
4465     }
4466 
4467     version(DerelictGL_ATI)
4468     {
4469         GLExtensionState load_GL_ATI_texture_mirror_once()
4470         {
4471             if(!extIsSupported("GL_ATI_texture_mirror_once"))
4472                 return GLExtensionState.DriverUnsupported;
4473             return GLExtensionState.Loaded;
4474         }
4475 
4476         GLExtensionState load_GL_ATI_envmap_bumpmap()
4477         {
4478             if(!extIsSupported("GL_ATI_envmap_bumpmap"))
4479                 return GLExtensionState.DriverUnsupported;
4480             if(!bindExtFunc(cast(void**)&glTexBumpParameterivATI, "glTexBumpParameterivATI"))
4481                 return GLExtensionState.FailedToLoad;
4482             if(!bindExtFunc(cast(void**)&glTexBumpParameterfvATI, "glTexBumpParameterfvATI"))
4483                 return GLExtensionState.FailedToLoad;
4484             if(!bindExtFunc(cast(void**)&glGetTexBumpParameterivATI, "glGetTexBumpParameterivATI"))
4485                 return GLExtensionState.FailedToLoad;
4486             if(!bindExtFunc(cast(void**)&glGetTexBumpParameterfvATI, "glGetTexBumpParameterfvATI"))
4487                 return GLExtensionState.FailedToLoad;
4488             return GLExtensionState.Loaded;
4489         }
4490 
4491         GLExtensionState load_GL_ATI_fragment_shader()
4492         {
4493             if(!extIsSupported("GL_ATI_fragment_shader"))
4494                 return GLExtensionState.DriverUnsupported;
4495             if(!bindExtFunc(cast(void**)&glGenFragmentShadersATI, "glGenFragmentShadersATI"))
4496                 return GLExtensionState.FailedToLoad;
4497             if(!bindExtFunc(cast(void**)&glBindFragmentShaderATI, "glBindFragmentShaderATI"))
4498                 return GLExtensionState.FailedToLoad;
4499             if(!bindExtFunc(cast(void**)&glDeleteFragmentShaderATI, "glDeleteFragmentShaderATI"))
4500                 return GLExtensionState.FailedToLoad;
4501             if(!bindExtFunc(cast(void**)&glBeginFragmentShaderATI, "glBeginFragmentShaderATI"))
4502                 return GLExtensionState.FailedToLoad;
4503                 if(!bindExtFunc(cast(void**)&glEndFragmentShaderATI, "glEndFragmentShaderATI"))
4504                 return GLExtensionState.FailedToLoad;
4505             if(!bindExtFunc(cast(void**)&glPassTexCoordATI, "glPassTexCoordATI"))
4506                 return GLExtensionState.FailedToLoad;
4507             if(!bindExtFunc(cast(void**)&glSampleMapATI, "glSampleMapATI"))
4508                 return GLExtensionState.FailedToLoad;
4509             if(!bindExtFunc(cast(void**)&glColorFragmentOp1ATI, "glColorFragmentOp1ATI"))
4510                 return GLExtensionState.FailedToLoad;
4511                 if(!bindExtFunc(cast(void**)&glColorFragmentOp2ATI, "glColorFragmentOp2ATI"))
4512                 return GLExtensionState.FailedToLoad;
4513             if(!bindExtFunc(cast(void**)&glColorFragmentOp3ATI, "glColorFragmentOp3ATI"))
4514                 return GLExtensionState.FailedToLoad;
4515             if(!bindExtFunc(cast(void**)&glAlphaFragmentOp1ATI, "glAlphaFragmentOp1ATI"))
4516                 return GLExtensionState.FailedToLoad;
4517             if(!bindExtFunc(cast(void**)&glAlphaFragmentOp2ATI, "glAlphaFragmentOp2ATI"))
4518                 return GLExtensionState.FailedToLoad;
4519                 if(!bindExtFunc(cast(void**)&glAlphaFragmentOp3ATI, "glAlphaFragmentOp3ATI"))
4520                 return GLExtensionState.FailedToLoad;
4521             if(!bindExtFunc(cast(void**)&glSetFragmentShaderConstantATI, "glSetFragmentShaderConstantATI"))
4522                 return GLExtensionState.FailedToLoad;
4523             return GLExtensionState.Loaded;
4524         }
4525 
4526         GLExtensionState load_GL_ATI_pn_triangles()
4527         {
4528             if(!extIsSupported("GL_ATI_pn_triangles"))
4529                 return GLExtensionState.DriverUnsupported;
4530             if(!bindExtFunc(cast(void**)&glPNTrianglesiATI, "glPNTrianglesiATI"))
4531                 return GLExtensionState.FailedToLoad;
4532             if(!bindExtFunc(cast(void**)&glPNTrianglesfATI, "glPNTrianglesfATI"))
4533                 return GLExtensionState.FailedToLoad;
4534             return GLExtensionState.Loaded;
4535         }
4536 
4537         GLExtensionState load_GL_ATI_vertex_array_object()
4538         {
4539             if(!extIsSupported("GL_ATI_vertex_array_object"))
4540                 return GLExtensionState.DriverUnsupported;
4541             if(!bindExtFunc(cast(void**)&glNewObjectBufferATI, "glNewObjectBufferATI"))
4542                 return GLExtensionState.FailedToLoad;
4543             if(!bindExtFunc(cast(void**)&glIsObjectBufferATI, "glIsObjectBufferATI"))
4544                 return GLExtensionState.FailedToLoad;
4545             if(!bindExtFunc(cast(void**)&glUpdateObjectBufferATI, "glUpdateObjectBufferATI"))
4546                 return GLExtensionState.FailedToLoad;
4547             if(!bindExtFunc(cast(void**)&glGetObjectBufferfvATI, "glGetObjectBufferfvATI"))
4548                 return GLExtensionState.FailedToLoad;
4549             if(!bindExtFunc(cast(void**)&glGetObjectBufferivATI, "glGetObjectBufferivATI"))
4550                 return GLExtensionState.FailedToLoad;
4551             if(!bindExtFunc(cast(void**)&glFreeObjectBufferATI, "glFreeObjectBufferATI"))
4552                 return GLExtensionState.FailedToLoad;
4553             if(!bindExtFunc(cast(void**)&glArrayObjectATI, "glArrayObjectATI"))
4554                 return GLExtensionState.FailedToLoad;
4555             if(!bindExtFunc(cast(void**)&glGetArrayObjectfvATI, "glGetArrayObjectfvATI"))
4556                 return GLExtensionState.FailedToLoad;
4557             if(!bindExtFunc(cast(void**)&glGetArrayObjectivATI, "glGetArrayObjectivATI"))
4558                 return GLExtensionState.FailedToLoad;
4559             if(!bindExtFunc(cast(void**)&glVariantArrayObjectATI, "glVariantArrayObjectATI"))
4560                 return GLExtensionState.FailedToLoad;
4561             if(!bindExtFunc(cast(void**)&glGetVariantArrayObjectfvATI, "glGetVariantArrayObjectfvATI"))
4562                 return GLExtensionState.FailedToLoad;
4563             if(!bindExtFunc(cast(void**)&glGetVariantArrayObjectivATI, "glGetVariantArrayObjectivATI"))
4564                 return GLExtensionState.FailedToLoad;
4565             return GLExtensionState.Loaded;
4566         }
4567 
4568         GLExtensionState load_GL_ATI_vertex_streams()
4569         {
4570             if(!extIsSupported("GL_ATI_vertex_streams"))
4571                 return GLExtensionState.DriverUnsupported;
4572             if(!bindExtFunc(cast(void**)&glVertexStream1sATI, "glVertexStream1sATI"))
4573                 return GLExtensionState.FailedToLoad;
4574             if(!bindExtFunc(cast(void**)&glVertexStream1svATI, "glVertexStream1svATI"))
4575                 return GLExtensionState.FailedToLoad;
4576             if(!bindExtFunc(cast(void**)&glVertexStream1iATI, "glVertexStream1iATI"))
4577                 return GLExtensionState.FailedToLoad;
4578             if(!bindExtFunc(cast(void**)&glVertexStream1ivATI, "glVertexStream1ivATI"))
4579                 return GLExtensionState.FailedToLoad;
4580             if(!bindExtFunc(cast(void**)&glVertexStream1fATI, "glVertexStream1fATI"))
4581                 return GLExtensionState.FailedToLoad;
4582             if(!bindExtFunc(cast(void**)&glVertexStream1fvATI, "glVertexStream1fvATI"))
4583                 return GLExtensionState.FailedToLoad;
4584             if(!bindExtFunc(cast(void**)&glVertexStream1dATI, "glVertexStream1dATI"))
4585                 return GLExtensionState.FailedToLoad;
4586             if(!bindExtFunc(cast(void**)&glVertexStream1dvATI, "glVertexStream1dvATI"))
4587                 return GLExtensionState.FailedToLoad;
4588             if(!bindExtFunc(cast(void**)&glVertexStream2sATI, "glVertexStream2sATI"))
4589                 return GLExtensionState.FailedToLoad;
4590             if(!bindExtFunc(cast(void**)&glVertexStream2svATI, "glVertexStream2svATI"))
4591                 return GLExtensionState.FailedToLoad;
4592             if(!bindExtFunc(cast(void**)&glVertexStream2iATI, "glVertexStream2iATI"))
4593                 return GLExtensionState.FailedToLoad;
4594             if(!bindExtFunc(cast(void**)&glVertexStream2ivATI, "glVertexStream2ivATI"))
4595                 return GLExtensionState.FailedToLoad;
4596             if(!bindExtFunc(cast(void**)&glVertexStream2fATI, "glVertexStream2fATI"))
4597                 return GLExtensionState.FailedToLoad;
4598             if(!bindExtFunc(cast(void**)&glVertexStream2fvATI, "glVertexStream2fvATI"))
4599                 return GLExtensionState.FailedToLoad;
4600             if(!bindExtFunc(cast(void**)&glVertexStream2dATI, "glVertexStream2dATI"))
4601                 return GLExtensionState.FailedToLoad;
4602             if(!bindExtFunc(cast(void**)&glVertexStream2dvATI, "glVertexStream2dvATI"))
4603                 return GLExtensionState.FailedToLoad;
4604             if(!bindExtFunc(cast(void**)&glVertexStream3sATI, "glVertexStream3sATI"))
4605                 return GLExtensionState.FailedToLoad;
4606             if(!bindExtFunc(cast(void**)&glVertexStream3svATI, "glVertexStream3svATI"))
4607                 return GLExtensionState.FailedToLoad;
4608             if(!bindExtFunc(cast(void**)&glVertexStream3iATI, "glVertexStream3iATI"))
4609                 return GLExtensionState.FailedToLoad;
4610             if(!bindExtFunc(cast(void**)&glVertexStream3ivATI, "glVertexStream3ivATI"))
4611                 return GLExtensionState.FailedToLoad;
4612             if(!bindExtFunc(cast(void**)&glVertexStream3fATI, "glVertexStream3fATI"))
4613                 return GLExtensionState.FailedToLoad;
4614             if(!bindExtFunc(cast(void**)&glVertexStream3fvATI, "glVertexStream3fvATI"))
4615                 return GLExtensionState.FailedToLoad;
4616             if(!bindExtFunc(cast(void**)&glVertexStream3dATI, "glVertexStream3dATI"))
4617                 return GLExtensionState.FailedToLoad;
4618             if(!bindExtFunc(cast(void**)&glVertexStream3dvATI, "glVertexStream3dvATI"))
4619                 return GLExtensionState.FailedToLoad;
4620             if(!bindExtFunc(cast(void**)&glVertexStream4sATI, "glVertexStream4sATI"))
4621                 return GLExtensionState.FailedToLoad;
4622             if(!bindExtFunc(cast(void**)&glVertexStream4svATI, "glVertexStream4svATI"))
4623                 return GLExtensionState.FailedToLoad;
4624             if(!bindExtFunc(cast(void**)&glVertexStream4iATI, "glVertexStream4iATI"))
4625                 return GLExtensionState.FailedToLoad;
4626             if(!bindExtFunc(cast(void**)&glVertexStream4ivATI, "glVertexStream4ivATI"))
4627                 return GLExtensionState.FailedToLoad;
4628             if(!bindExtFunc(cast(void**)&glVertexStream4fATI, "glVertexStream4fATI"))
4629                 return GLExtensionState.FailedToLoad;
4630             if(!bindExtFunc(cast(void**)&glVertexStream4fvATI, "glVertexStream4fvATI"))
4631                 return GLExtensionState.FailedToLoad;
4632             if(!bindExtFunc(cast(void**)&glVertexStream4dATI, "glVertexStream4dATI"))
4633                 return GLExtensionState.FailedToLoad;
4634             if(!bindExtFunc(cast(void**)&glVertexStream4dvATI, "glVertexStream4dvATI"))
4635                 return GLExtensionState.FailedToLoad;
4636             if(!bindExtFunc(cast(void**)&glNormalStream3bATI, "glNormalStream3bATI"))
4637                 return GLExtensionState.FailedToLoad;
4638             if(!bindExtFunc(cast(void**)&glNormalStream3bvATI, "glNormalStream3bvATI"))
4639                 return GLExtensionState.FailedToLoad;
4640             if(!bindExtFunc(cast(void**)&glNormalStream3sATI, "glNormalStream3sATI"))
4641                 return GLExtensionState.FailedToLoad;
4642             if(!bindExtFunc(cast(void**)&glNormalStream3svATI, "glNormalStream3svATI"))
4643                 return GLExtensionState.FailedToLoad;
4644             if(!bindExtFunc(cast(void**)&glNormalStream3iATI, "glNormalStream3iATI"))
4645                 return GLExtensionState.FailedToLoad;
4646             if(!bindExtFunc(cast(void**)&glNormalStream3ivATI, "glNormalStream3ivATI"))
4647                 return GLExtensionState.FailedToLoad;
4648             if(!bindExtFunc(cast(void**)&glNormalStream3fATI, "glNormalStream3fATI"))
4649                 return GLExtensionState.FailedToLoad;
4650             if(!bindExtFunc(cast(void**)&glNormalStream3fvATI, "glNormalStream3fvATI"))
4651                 return GLExtensionState.FailedToLoad;
4652             if(!bindExtFunc(cast(void**)&glNormalStream3dATI, "glNormalStream3dATI"))
4653                 return GLExtensionState.FailedToLoad;
4654             if(!bindExtFunc(cast(void**)&glNormalStream3dvATI, "glNormalStream3dvATI"))
4655                 return GLExtensionState.FailedToLoad;
4656             if(!bindExtFunc(cast(void**)&glClientActiveVertexStreamATI, "glClientActiveVertexStreamATI"))
4657                 return GLExtensionState.FailedToLoad;
4658             if(!bindExtFunc(cast(void**)&glVertexBlendEnviATI, "glVertexBlendEnviATI"))
4659                 return GLExtensionState.FailedToLoad;
4660             if(!bindExtFunc(cast(void**)&glVertexBlendEnvfATI, "glVertexBlendEnvfATI"))
4661                 return GLExtensionState.FailedToLoad;
4662             return GLExtensionState.Loaded;
4663         }
4664 
4665         GLExtensionState load_GL_ATI_element_array()
4666         {
4667             if(!extIsSupported("GL_ATI_element_array"))
4668                 return GLExtensionState.DriverUnsupported;
4669             if(!bindExtFunc(cast(void**)&glElementPointerATI, "glElementPointerATI"))
4670                 return GLExtensionState.FailedToLoad;
4671             if(!bindExtFunc(cast(void**)&glDrawElementArrayATI, "glDrawElementArrayATI"))
4672                 return GLExtensionState.FailedToLoad;
4673             if(!bindExtFunc(cast(void**)&glDrawRangeElementArrayATI, "glDrawRangeElementArrayATI"))
4674                 return GLExtensionState.FailedToLoad;
4675             return GLExtensionState.Loaded;
4676         }
4677 
4678         GLExtensionState load_GL_ATI_text_fragment_shader()
4679         {
4680             if(!extIsSupported("GL_ATI_text_fragment_shader"))
4681                 return GLExtensionState.DriverUnsupported;
4682             return GLExtensionState.Loaded;
4683         }
4684 
4685         GLExtensionState load_GL_ATI_draw_buffers()
4686         {
4687             if(!extIsSupported("GL_ATI_draw_buffers"))
4688                 return GLExtensionState.DriverUnsupported;
4689             if(!bindExtFunc(cast(void**)&glDrawBuffersATI, "glDrawBuffersATI"))
4690                 return GLExtensionState.FailedToLoad;
4691             return GLExtensionState.Loaded;
4692         }
4693 
4694         GLExtensionState load_GL_ATI_pixel_format_float()
4695         {
4696             if(!extIsSupported("GL_ATI_pixel_format_float"))
4697                 return GLExtensionState.DriverUnsupported;
4698             return GLExtensionState.Loaded;
4699         }
4700 
4701         GLExtensionState load_GL_ATI_texture_env_combine3()
4702         {
4703             if(!extIsSupported("GL_ATI_texture_env_combine3"))
4704                 return GLExtensionState.DriverUnsupported;
4705             return GLExtensionState.Loaded;
4706         }
4707 
4708         GLExtensionState load_GL_ATI_texture_float()
4709         {
4710             if(!extIsSupported("GL_ATI_texture_float"))
4711                 return GLExtensionState.DriverUnsupported;
4712             return GLExtensionState.Loaded;
4713         }
4714 
4715         GLExtensionState load_GL_ATI_map_object_buffer()
4716         {
4717             if(!extIsSupported("GL_ATI_map_object_buffer"))
4718                 return GLExtensionState.DriverUnsupported;
4719             if(!bindExtFunc(cast(void**)&glMapBufferATI, "glMapBufferATI"))
4720                 return GLExtensionState.FailedToLoad;
4721             if(!bindExtFunc(cast(void**)&glUnmapBufferATI, "glUnmapBufferATI"))
4722                 return GLExtensionState.FailedToLoad;
4723             return GLExtensionState.Loaded;
4724         }
4725 
4726         GLExtensionState load_GL_ATI_separate_stencil()
4727         {
4728             if(!extIsSupported("GL_ATI_separate_stencil"))
4729                 return GLExtensionState.DriverUnsupported;
4730             if(!bindExtFunc(cast(void**)&glStencilOpSeparateATI, "glStencilOpSeparateATI"))
4731                 return GLExtensionState.FailedToLoad;
4732             if(!bindExtFunc(cast(void**)&glStencilFuncSeparateATI, "glStencilFuncSeparateATI"))
4733                 return GLExtensionState.FailedToLoad;
4734             return GLExtensionState.Loaded;
4735         }
4736 
4737         GLExtensionState load_GL_ATI_vertex_attrib_array_object()
4738         {
4739             if(!extIsSupported("GL_ATI_vertex_attrib_array_object"))
4740                 return GLExtensionState.DriverUnsupported;
4741             if(!bindExtFunc(cast(void**)&glVertexAttribArrayObjectATI, "glVertexAttribArrayObjectATI"))
4742                 return GLExtensionState.FailedToLoad;
4743             if(!bindExtFunc(cast(void**)&glGetVertexAttribArrayObjectfvATI, "glGetVertexAttribArrayObjectfvATI"))
4744                 return GLExtensionState.FailedToLoad;
4745             if(!bindExtFunc(cast(void**)&glGetVertexAttribArrayObjectivATI, "glGetVertexAttribArrayObjectivATI"))
4746                 return GLExtensionState.FailedToLoad;
4747             return GLExtensionState.Loaded;
4748         }
4749 
4750         GLExtensionState load_GL_ATI_meminfo()
4751         {
4752             if(!extIsSupported("GL_ATI_meminfo"))
4753                 return GLExtensionState.DriverUnsupported;
4754             return GLExtensionState.Loaded;
4755         }
4756     }
4757 
4758     version(DerelictGL_AMD)
4759     {
4760         GLExtensionState load_GL_AMD_performance_monitor()
4761         {
4762             if(!extIsSupported("GL_AMD_performance_monitor"))
4763                 return GLExtensionState.DriverUnsupported;
4764             if(!bindExtFunc(cast(void**)&glGetPerfMonitorGroupsAMD, "glGetPerfMonitorGroupsAMD"))
4765                 return GLExtensionState.FailedToLoad;
4766             if(!bindExtFunc(cast(void**)&glGetPerfMonitorCountersAMD, "glGetPerfMonitorCountersAMD"))
4767                 return GLExtensionState.FailedToLoad;
4768             if(!bindExtFunc(cast(void**)&glGetPerfMonitorGroupStringAMD, "glGetPerfMonitorGroupStringAMD"))
4769                 return GLExtensionState.FailedToLoad;
4770             if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterStringAMD, "glGetPerfMonitorCounterStringAMD"))
4771                 return GLExtensionState.FailedToLoad;
4772             if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterInfoAMD, "glGetPerfMonitorCounterInfoAMD"))
4773                 return GLExtensionState.FailedToLoad;
4774             if(!bindExtFunc(cast(void**)&glGenPerfMonitorsAMD, "glGenPerfMonitorsAMD"))
4775                 return GLExtensionState.FailedToLoad;
4776             if(!bindExtFunc(cast(void**)&glDeletePerfMonitorsAMD, "glDeletePerfMonitorsAMD"))
4777                 return GLExtensionState.FailedToLoad;
4778             if(!bindExtFunc(cast(void**)&glSelectPerfMonitorCountersAMD, "glSelectPerfMonitorCountersAMD"))
4779                 return GLExtensionState.FailedToLoad;
4780             if(!bindExtFunc(cast(void**)&glBeginPerfMonitorAMD, "glBeginPerfMonitorAMD"))
4781                 return GLExtensionState.FailedToLoad;
4782             if(!bindExtFunc(cast(void**)&glEndPerfMonitorAMD, "glEndPerfMonitorAMD"))
4783                 return GLExtensionState.FailedToLoad;
4784             if(!bindExtFunc(cast(void**)&glGetPerfMonitorCounterDataAMD, "glGetPerfMonitorCounterDataAMD"))
4785                 return GLExtensionState.FailedToLoad;
4786             return GLExtensionState.Loaded;
4787         }
4788 
4789         GLExtensionState load_GL_AMD_texture_texture4()
4790         {
4791             if(!extIsSupported("GL_AMD_texture_texture4"))
4792                 return GLExtensionState.DriverUnsupported;
4793             return GLExtensionState.Loaded;
4794         }
4795 
4796         GLExtensionState load_GL_AMD_vertex_shader_tesselator()
4797         {
4798             if(!extIsSupported("GL_AMD_vertex_shader_tesselator"))
4799                 return GLExtensionState.DriverUnsupported;
4800             if(!bindExtFunc(cast(void**)&glTessellationFactorAMD, "glTessellationFactorAMD"))
4801                 return GLExtensionState.FailedToLoad;
4802             if(!bindExtFunc(cast(void**)&glTessellationModeAMD, "glTessellationModeAMD"))
4803                 return GLExtensionState.FailedToLoad;
4804             return GLExtensionState.Loaded;
4805         }
4806 
4807         GLExtensionState load_GL_AMD_draw_buffers_blend()
4808         {
4809             if(!extIsSupported("GL_AMD_draw_buffers_blend"))
4810                 return GLExtensionState.DriverUnsupported;
4811             if(!bindExtFunc(cast(void**)&glBlendFuncIndexedAMD, "glBlendFuncIndexedAMD"))
4812                 return GLExtensionState.FailedToLoad;
4813             if(!bindExtFunc(cast(void**)&glBlendFuncSeparateIndexedAMD, "glBlendFuncSeparateIndexedAMD"))
4814                 return GLExtensionState.FailedToLoad;
4815             if(!bindExtFunc(cast(void**)&glBlendEquationIndexedAMD, "glBlendEquationIndexedAMD"))
4816                 return GLExtensionState.FailedToLoad;
4817             if(!bindExtFunc(cast(void**)&glBlendEquationSeparateIndexedAMD, "glBlendEquationSeparateIndexedAMD"))
4818                 return GLExtensionState.FailedToLoad;
4819             return GLExtensionState.Loaded;
4820         }
4821     }
4822 
4823     version(DerelictGL_SGI)
4824     {
4825         GLExtensionState load_GL_SGI_color_matrix()
4826         {
4827             if(!extIsSupported("GL_SGI_color_matrix"))
4828                 return GLExtensionState.DriverUnsupported;
4829             return GLExtensionState.Loaded;
4830         }
4831 
4832         GLExtensionState load_GL_SGI_color_table()
4833         {
4834             if(!extIsSupported("GL_SGI_color_table"))
4835                 return GLExtensionState.DriverUnsupported;
4836             if(!bindExtFunc(cast(void**)&glColorTableSGI, "glColorTableSGI"))
4837                 return GLExtensionState.FailedToLoad;
4838             if(!bindExtFunc(cast(void**)&glColorTableParameterfvSGI, "glColorTableParameterfvSGI"))
4839                 return GLExtensionState.FailedToLoad;
4840             if(!bindExtFunc(cast(void**)&glColorTableParameterivSGI, "glColorTableParameterivSGI"))
4841                 return GLExtensionState.FailedToLoad;
4842             if(!bindExtFunc(cast(void**)&glCopyColorTableSGI, "glCopyColorTableSGI"))
4843                 return GLExtensionState.FailedToLoad;
4844             if(!bindExtFunc(cast(void**)&glGetColorTableSGI, "glGetColorTableSGI"))
4845                 return GLExtensionState.FailedToLoad;
4846             if(!bindExtFunc(cast(void**)&glGetColorTableParameterfvSGI, "glGetColorTableParameterfvSGI"))
4847                 return GLExtensionState.FailedToLoad;
4848             if(!bindExtFunc(cast(void**)&glGetColorTableParameterivSGI, "glGetColorTableParameterivSGI"))
4849                 return GLExtensionState.FailedToLoad;
4850             return GLExtensionState.Loaded;
4851         }
4852 
4853         GLExtensionState load_GL_SGI_texture_color_table()
4854         {
4855             if(!extIsSupported("GL_SGI_texture_color_table"))
4856                 return GLExtensionState.DriverUnsupported;
4857             return GLExtensionState.Loaded;
4858         }
4859     }
4860 
4861     version(DerelictGL_SGIS)
4862     {
4863         GLExtensionState load_GL_SGIS_texture_filter4()
4864         {
4865             if(!extIsSupported("GL_SGIS_texture_filter4"))
4866                 return GLExtensionState.DriverUnsupported;
4867             if(!bindExtFunc(cast(void**)&glGetTexFilterFuncSGIS, "glGetTexFilterFuncSGIS"))
4868                 return GLExtensionState.FailedToLoad;
4869             if(!bindExtFunc(cast(void**)&glTexFilterFuncSGIS, "glTexFilterFuncSGIS"))
4870                 return GLExtensionState.FailedToLoad;
4871             return GLExtensionState.Loaded;
4872         }
4873 
4874         GLExtensionState load_GL_SGIS_pixel_texture()
4875         {
4876             if(!extIsSupported("GL_SGIS_pixel_texture"))
4877                 return GLExtensionState.DriverUnsupported;
4878             if(!bindExtFunc(cast(void**)&glPixelTexGenParameteriSGIS, "glPixelTexGenParameteriSGIS"))
4879                 return GLExtensionState.FailedToLoad;
4880             if(!bindExtFunc(cast(void**)&glPixelTexGenParameterivSGIS, "glPixelTexGenParameterivSGIS"))
4881                 return GLExtensionState.FailedToLoad;
4882             if(!bindExtFunc(cast(void**)&glPixelTexGenParameterfSGIS, "glPixelTexGenParameterfSGIS"))
4883                 return GLExtensionState.FailedToLoad;
4884             if(!bindExtFunc(cast(void**)&glPixelTexGenParameterfvSGIS, "glPixelTexGenParameterfvSGIS"))
4885                 return GLExtensionState.FailedToLoad;
4886             if(!bindExtFunc(cast(void**)&glGetPixelTexGenParameterivSGIS, "glGetPixelTexGenParameterivSGIS"))
4887                 return GLExtensionState.FailedToLoad;
4888             if(!bindExtFunc(cast(void**)&glGetPixelTexGenParameterfvSGIS, "glGetPixelTexGenParameterfvSGIS"))
4889                 return GLExtensionState.FailedToLoad;
4890             return GLExtensionState.Loaded;
4891         }
4892 
4893         GLExtensionState load_GL_SGIS_texture4D()
4894         {
4895             if(!extIsSupported("GL_SGIS_texture4D"))
4896                 return GLExtensionState.DriverUnsupported;
4897             if(!bindExtFunc(cast(void**)&glTexImage4DSGIS, "glTexImage4DSGIS"))
4898                 return GLExtensionState.FailedToLoad;
4899             if(!bindExtFunc(cast(void**)&glTexSubImage4DSGIS, "glTexSubImage4DSGIS"))
4900                 return GLExtensionState.FailedToLoad;
4901             return GLExtensionState.Loaded;
4902         }
4903 
4904         GLExtensionState load_GL_SGIS_detail_texture()
4905         {
4906             if(!extIsSupported("GL_SGIS_detail_texture"))
4907                 return GLExtensionState.DriverUnsupported;
4908             if(!bindExtFunc(cast(void**)&glDetailTexFuncSGIS, "glDetailTexFuncSGIS"))
4909                 return GLExtensionState.FailedToLoad;
4910             if(!bindExtFunc(cast(void**)&glGetDetailTexFuncSGIS, "glGetDetailTexFuncSGIS"))
4911                 return GLExtensionState.FailedToLoad;
4912             return GLExtensionState.Loaded;
4913         }
4914 
4915         GLExtensionState load_GL_SGIS_sharpen_texture()
4916         {
4917             if(!extIsSupported("GL_SGIS_sharpen_texture"))
4918                 return GLExtensionState.DriverUnsupported;
4919             if(!bindExtFunc(cast(void**)&glSharpenTexFuncSGIS, "glSharpenTexFuncSGIS"))
4920                 return GLExtensionState.FailedToLoad;
4921             if(!bindExtFunc(cast(void**)&glGetSharpenTexFuncSGIS, "glGetSharpenTexFuncSGIS"))
4922                 return GLExtensionState.FailedToLoad;
4923             return GLExtensionState.Loaded;
4924         }
4925 
4926         GLExtensionState load_GL_SGIS_texture_lod()
4927         {
4928             if(!extIsSupported("GL_SGIS_texture_lod"))
4929                 return GLExtensionState.DriverUnsupported;
4930             return GLExtensionState.Loaded;
4931         }
4932 
4933         GLExtensionState load_GL_SGIS_multisample()
4934         {
4935             if(!extIsSupported("GL_SGIS_multisample"))
4936                 return GLExtensionState.DriverUnsupported;
4937             if(!bindExtFunc(cast(void**)&glSampleMaskSGIS, "glSampleMaskSGIS"))
4938                 return GLExtensionState.FailedToLoad;
4939             if(!bindExtFunc(cast(void**)&glSamplePatternSGIS, "glSamplePatternSGIS"))
4940                 return GLExtensionState.FailedToLoad;
4941             return GLExtensionState.Loaded;
4942         }
4943 
4944         GLExtensionState load_GL_SGIS_generate_mipmap()
4945         {
4946             if(!extIsSupported("GL_SGIS_generate_mipmap"))
4947                 return GLExtensionState.DriverUnsupported;
4948             return GLExtensionState.Loaded;
4949         }
4950 
4951         GLExtensionState load_GL_SGIS_texture_edge_clamp()
4952         {
4953             if(!extIsSupported("GL_SGIS_texture_edge_clamp"))
4954                 return GLExtensionState.DriverUnsupported;
4955             return GLExtensionState.Loaded;
4956         }
4957 
4958         GLExtensionState load_GL_SGIS_texture_border_clamp()
4959         {
4960             if(!extIsSupported("GL_SGIS_texture_border_clamp"))
4961                 return GLExtensionState.DriverUnsupported;
4962             return GLExtensionState.Loaded;
4963         }
4964 
4965         GLExtensionState load_GL_SGIS_texture_select()
4966         {
4967             if(!extIsSupported("GL_SGIS_texture_select"))
4968                 return GLExtensionState.DriverUnsupported;
4969             return GLExtensionState.Loaded;
4970         }
4971 
4972         GLExtensionState load_GL_SGIS_point_parameters()
4973         {
4974             if(!extIsSupported("GL_SGIS_point_parameters"))
4975                 return GLExtensionState.DriverUnsupported;
4976             if(!bindExtFunc(cast(void**)&glPointParameterfSGIS, "glPointParameterfSGIS"))
4977                 return GLExtensionState.FailedToLoad;
4978             if(!bindExtFunc(cast(void**)&glPointParameterfvSGIS, "glPointParameterfvSGIS"))
4979                 return GLExtensionState.FailedToLoad;
4980             return GLExtensionState.Loaded;
4981         }
4982 
4983         GLExtensionState load_GL_SGIS_fog_function()
4984         {
4985             if(!extIsSupported("GL_SGIS_fog_function"))
4986                 return GLExtensionState.DriverUnsupported;
4987             if(!bindExtFunc(cast(void**)&glFogFuncSGIS, "glFogFuncSGIS"))
4988                 return GLExtensionState.FailedToLoad;
4989             if(!bindExtFunc(cast(void**)&glGetFogFuncSGIS, "glGetFogFuncSGIS"))
4990                 return GLExtensionState.FailedToLoad;
4991             return GLExtensionState.Loaded;
4992         }
4993 
4994         GLExtensionState load_GL_SGIS_point_line_texgen()
4995         {
4996             if(!extIsSupported("GL_SGIS_point_line_texgen"))
4997                 return GLExtensionState.DriverUnsupported;
4998             return GLExtensionState.Loaded;
4999         }
5000 
5001         GLExtensionState load_GL_SGIS_texture_color_mask()
5002         {
5003             if(!extIsSupported("GL_SGIS_texture_color_mask"))
5004                 return GLExtensionState.DriverUnsupported;
5005             if(!bindExtFunc(cast(void**)&glTextureColorMaskSGIS, "glTextureColorMaskSGIS"))
5006                 return GLExtensionState.FailedToLoad;
5007             return GLExtensionState.Loaded;
5008         }
5009     }
5010 
5011     version(DerelictGL_SGIX)
5012     {
5013         GLExtensionState load_GL_SGIX_pixel_texture()
5014         {
5015             if(!extIsSupported("GL_SGIX_pixel_texture"))
5016                 return GLExtensionState.DriverUnsupported;
5017             if(!bindExtFunc(cast(void**)&glPixelTexGenSGIX, "glPixelTexGenSGIX"))
5018                 return GLExtensionState.FailedToLoad;
5019             return GLExtensionState.Loaded;
5020         }
5021 
5022         GLExtensionState load_GL_SGIX_clipmap()
5023         {
5024             if(!extIsSupported("GL_SGIX_clipmap"))
5025                 return GLExtensionState.DriverUnsupported;
5026             return GLExtensionState.Loaded;
5027         }
5028 
5029         GLExtensionState load_GL_SGIX_shadow()
5030         {
5031             if(!extIsSupported("GL_SGIX_shadow"))
5032                 return GLExtensionState.DriverUnsupported;
5033             return GLExtensionState.Loaded;
5034         }
5035 
5036         GLExtensionState load_GL_SGIX_interlace()
5037         {
5038             if(!extIsSupported("GL_SGIX_interlace"))
5039                 return GLExtensionState.DriverUnsupported;
5040             return GLExtensionState.Loaded;
5041         }
5042 
5043         GLExtensionState load_GL_SGIX_pixel_tiles()
5044         {
5045             if(!extIsSupported("GL_SGIX_pixel_tiles"))
5046                 return GLExtensionState.DriverUnsupported;
5047             return GLExtensionState.Loaded;
5048         }
5049 
5050 
5051         GLExtensionState load_GL_SGIX_sprite()
5052         {
5053             if(!extIsSupported("GL_SGIX_sprite"))
5054                 return GLExtensionState.DriverUnsupported;
5055             if(!bindExtFunc(cast(void**)&glSpriteParameterfSGIX, "glSpriteParameterfSGIX"))
5056                 return GLExtensionState.FailedToLoad;
5057             if(!bindExtFunc(cast(void**)&glSpriteParameterfvSGIX, "glSpriteParameterfvSGIX"))
5058                 return GLExtensionState.FailedToLoad;
5059             if(!bindExtFunc(cast(void**)&glSpriteParameteriSGIX, "glSpriteParameteriSGIX"))
5060                 return GLExtensionState.FailedToLoad;
5061             if(!bindExtFunc(cast(void**)&glSpriteParameterivSGIX, "glSpriteParameterivSGIX"))
5062                 return GLExtensionState.FailedToLoad;
5063             return GLExtensionState.Loaded;
5064         }
5065 
5066         GLExtensionState load_GL_SGIX_texture_multi_buffer()
5067         {
5068             if(!extIsSupported("GL_SGIX_texture_multi_buffer"))
5069                 return GLExtensionState.DriverUnsupported;
5070             return GLExtensionState.Loaded;
5071         }
5072 
5073         GLExtensionState load_GL_SGIX_instruments()
5074         {
5075             if(!extIsSupported("GL_SGIX_instruments"))
5076                 return GLExtensionState.DriverUnsupported;
5077             if(!bindExtFunc(cast(void**)&glGetInstrumentsSGIX, "glGetInstrumentsSGIX"))
5078                 return GLExtensionState.FailedToLoad;
5079             if(!bindExtFunc(cast(void**)&glInstrumentsBufferSGIX, "glInstrumentsBufferSGIX"))
5080                 return GLExtensionState.FailedToLoad;
5081             if(!bindExtFunc(cast(void**)&glPollInstrumentsSGIX, "glPollInstrumentsSGIX"))
5082                 return GLExtensionState.FailedToLoad;
5083             if(!bindExtFunc(cast(void**)&glReadInstrumentsSGIX, "glReadInstrumentsSGIX"))
5084                 return GLExtensionState.FailedToLoad;
5085             if(!bindExtFunc(cast(void**)&glStartInstrumentsSGIX, "glStartInstrumentsSGIX"))
5086                 return GLExtensionState.FailedToLoad;
5087             if(!bindExtFunc(cast(void**)&glStopInstrumentsSGIX, "glStopInstrumentsSGIX"))
5088                 return GLExtensionState.FailedToLoad;
5089             return GLExtensionState.Loaded;
5090         }
5091 
5092         GLExtensionState load_GL_SGIX_texture_scale_bias()
5093         {
5094             if(!extIsSupported("GL_SGIX_texture_scale_bias"))
5095                 return GLExtensionState.DriverUnsupported;
5096             return GLExtensionState.Loaded;
5097         }
5098 
5099         GLExtensionState load_GL_SGIX_framezoom()
5100         {
5101             if(!extIsSupported("GL_SGIX_framezoom"))
5102                 return GLExtensionState.DriverUnsupported;
5103             if(!bindExtFunc(cast(void**)&glFrameZoomSGIX, "glFrameZoomSGIX"))
5104                 return GLExtensionState.FailedToLoad;
5105             return GLExtensionState.Loaded;
5106         }
5107 
5108         GLExtensionState load_GL_SGIX_tag_sample_buffer()
5109         {
5110             if(!extIsSupported("GL_SGIX_tag_sample_buffer"))
5111                 return GLExtensionState.DriverUnsupported;
5112             if(!bindExtFunc(cast(void**)&glTagSampleBufferSGIX, "glTagSampleBufferSGIX"))
5113                 return GLExtensionState.FailedToLoad;
5114             return GLExtensionState.Loaded;
5115         }
5116 
5117         GLExtensionState load_GL_SGIX_polynomial_ffd()
5118         {
5119             if(!extIsSupported("GL_SGIX_polynomial_ffd"))
5120                 return GLExtensionState.DriverUnsupported;
5121             if(!bindExtFunc(cast(void**)&glDeformationMap3dSGIX, "glDeformationMap3dSGIX"))
5122                 return GLExtensionState.FailedToLoad;
5123             if(!bindExtFunc(cast(void**)&glDeformationMap3fSGIX, "glDeformationMap3fSGIX"))
5124                 return GLExtensionState.FailedToLoad;
5125             if(!bindExtFunc(cast(void**)&glDeformSGIX, "glDeformSGIX"))
5126                 return GLExtensionState.FailedToLoad;
5127             if(!bindExtFunc(cast(void**)&glLoadIdentityDeformationMapSGIX, "glLoadIdentityDeformationMapSGIX"))
5128                 return GLExtensionState.FailedToLoad;
5129             return GLExtensionState.Loaded;
5130         }
5131 
5132         GLExtensionState load_GL_SGIX_reference_plane()
5133         {
5134             if(!extIsSupported("GL_SGIX_reference_plane"))
5135                 return GLExtensionState.DriverUnsupported;
5136             if(!bindExtFunc(cast(void**)&glReferencePlaneSGIX, "glReferencePlaneSGIX"))
5137                 return GLExtensionState.FailedToLoad;
5138             return GLExtensionState.Loaded;
5139         }
5140 
5141         GLExtensionState load_GL_SGIX_flush_raster()
5142         {
5143             if(!extIsSupported("GL_SGIX_flush_raster"))
5144                 return GLExtensionState.DriverUnsupported;
5145             if(!bindExtFunc(cast(void**)&glFLushRasterSGIX, "glFLushRasterSGIX"))
5146                 return GLExtensionState.FailedToLoad;
5147             return GLExtensionState.Loaded;
5148         }
5149 
5150         GLExtensionState load_GL_SGIX_depth_texture()
5151         {
5152             if(!extIsSupported("GL_SGIX_depth_texture"))
5153                 return GLExtensionState.DriverUnsupported;
5154             return GLExtensionState.Loaded;
5155         }
5156 
5157         GLExtensionState load_GL_SGIX_fog_offset()
5158         {
5159             if(!extIsSupported("GL_SGIX_fog_offset"))
5160                 return GLExtensionState.DriverUnsupported;
5161             return GLExtensionState.Loaded;
5162         }
5163 
5164         GLExtensionState load_GL_SGIX_texture_add_env()
5165         {
5166             if(!extIsSupported("GL_SGIX_texture_add_env"))
5167                 return GLExtensionState.DriverUnsupported;
5168             return GLExtensionState.Loaded;
5169         }
5170 
5171         GLExtensionState load_GL_SGIX_list_priority()
5172         {
5173             if(!extIsSupported("GL_SGIX_list_priority"))
5174                 return GLExtensionState.DriverUnsupported;
5175             if(!bindExtFunc(cast(void**)&glGetListParameterfvSGIX, "glGetListParameterfvSGIX"))
5176                 return GLExtensionState.FailedToLoad;
5177             if(!bindExtFunc(cast(void**)&glGetListParameterivSGIX, "glGetListParameterivSGIX"))
5178                 return GLExtensionState.FailedToLoad;
5179             if(!bindExtFunc(cast(void**)&glListParameterfSGIX, "glListParameterfSGIX"))
5180                 return GLExtensionState.FailedToLoad;
5181             if(!bindExtFunc(cast(void**)&glListParameterfvSGIX, "glListParameterfvSGIX"))
5182                 return GLExtensionState.FailedToLoad;
5183             if(!bindExtFunc(cast(void**)&glListParameteriSGIX, "glListParameteriSGIX"))
5184                 return GLExtensionState.FailedToLoad;
5185             if(!bindExtFunc(cast(void**)&glListParameterivSGIX, "glListParameterivSGIX"))
5186                 return GLExtensionState.FailedToLoad;
5187             return GLExtensionState.Loaded;
5188         }
5189 
5190         GLExtensionState load_GL_SGIX_ir_instrument1()
5191         {
5192             if(!extIsSupported("GL_SGIX_ir_instrument1"))
5193                 return GLExtensionState.DriverUnsupported;
5194             return GLExtensionState.Loaded;
5195         }
5196 
5197         GLExtensionState load_GL_SGIX_calligraphic_fragment()
5198         {
5199             if(!extIsSupported("GL_SGIX_calligraphic_fragment"))
5200                 return GLExtensionState.DriverUnsupported;
5201             return GLExtensionState.Loaded;
5202         }
5203 
5204         GLExtensionState load_GL_SGIX_texture_lod_bias()
5205         {
5206             if(!extIsSupported("GL_SGIX_texture_lod_bias"))
5207                 return GLExtensionState.DriverUnsupported;
5208             return GLExtensionState.Loaded;
5209         }
5210 
5211         GLExtensionState load_GL_SGIX_shadow_ambient()
5212         {
5213             if(!extIsSupported("GL_SGIX_shadow_ambient"))
5214                 return GLExtensionState.DriverUnsupported;
5215             return GLExtensionState.Loaded;
5216         }
5217 
5218         GLExtensionState load_GL_SGIX_ycrcb()
5219         {
5220             if(!extIsSupported("GL_SGIX_ycrcb"))
5221                 return GLExtensionState.DriverUnsupported;
5222             return GLExtensionState.Loaded;
5223         }
5224 
5225         GLExtensionState load_GL_SGIX_fragment_lighting()
5226         {
5227             if(!extIsSupported("GL_SGIX_fragment_lighting"))
5228                 return GLExtensionState.DriverUnsupported;
5229             if(!bindExtFunc(cast(void**)&glFragmentColorMaterialSGIX, "glFragmentColorMaterialSGIX"))
5230                 return GLExtensionState.FailedToLoad;
5231             if(!bindExtFunc(cast(void**)&glFragmentLightfSGIX, "glFragmentLightfSGIX"))
5232                 return GLExtensionState.FailedToLoad;
5233             if(!bindExtFunc(cast(void**)&glFragmentLightfvSGIX, "glFragmentLightfvSGIX"))
5234                 return GLExtensionState.FailedToLoad;
5235             if(!bindExtFunc(cast(void**)&glFragmentLightiSGIX, "glFragmentLightiSGIX"))
5236                 return GLExtensionState.FailedToLoad;
5237             if(!bindExtFunc(cast(void**)&glFragmentLightivSGIX, "glFragmentLightivSGIX"))
5238                 return GLExtensionState.FailedToLoad;
5239             if(!bindExtFunc(cast(void**)&glFragmentLightModelfSGIX, "glFragmentLightModelfSGIX"))
5240                 return GLExtensionState.FailedToLoad;
5241             if(!bindExtFunc(cast(void**)&glFragmentLightModelfvSGIX, "glFragmentLightModelfvSGIX"))
5242                 return GLExtensionState.FailedToLoad;
5243             if(!bindExtFunc(cast(void**)&glFragmentLightModeliSGIX, "glFragmentLightModeliSGIX"))
5244                 return GLExtensionState.FailedToLoad;
5245             if(!bindExtFunc(cast(void**)&glFragmentLightModelivSGIX, "glFragmentLightModelivSGIX"))
5246                 return GLExtensionState.FailedToLoad;
5247             if(!bindExtFunc(cast(void**)&glFragmentMaterialfSGIX, "glFragmentMaterialfSGIX"))
5248                 return GLExtensionState.FailedToLoad;
5249             if(!bindExtFunc(cast(void**)&glFragmentMaterialfvSGIX, "glFragmentMaterialfvSGIX"))
5250                 return GLExtensionState.FailedToLoad;
5251             if(!bindExtFunc(cast(void**)&glFragmentMaterialiSGIX, "glFragmentMaterialiSGIX"))
5252                 return GLExtensionState.FailedToLoad;
5253             if(!bindExtFunc(cast(void**)&glFragmentMaterialivSGIX, "glFragmentMaterialivSGIX"))
5254                 return GLExtensionState.FailedToLoad;
5255             if(!bindExtFunc(cast(void**)&glGetFragmentLightfvSGIX, "glGetFragmentLightfvSGIX"))
5256                 return GLExtensionState.FailedToLoad;
5257             if(!bindExtFunc(cast(void**)&glGetFragmentLightivSGIX, "glGetFragmentLightivSGIX"))
5258                 return GLExtensionState.FailedToLoad;
5259             if(!bindExtFunc(cast(void**)&glGetFragmentMaterialfvSGIX, "glGetFragmentMaterialfvSGIX"))
5260                 return GLExtensionState.FailedToLoad;
5261             if(!bindExtFunc(cast(void**)&glGetFragmentMaterialivSGIX, "glGetFragmentMaterialivSGIX"))
5262                 return GLExtensionState.FailedToLoad;
5263             if(!bindExtFunc(cast(void**)&glLightEnviSGIX, "glLightEnviSGIX"))
5264                 return GLExtensionState.FailedToLoad;
5265             return GLExtensionState.Loaded;
5266         }
5267 
5268         GLExtensionState load_GL_SGIX_blend_alpha_minmax()
5269         {
5270             if(!extIsSupported("GL_SGIX_blend_alpha_minmax"))
5271                 return GLExtensionState.DriverUnsupported;
5272             return GLExtensionState.Loaded;
5273         }
5274 
5275         GLExtensionState load_GL_SGIX_impact_pixel_texture()
5276         {
5277             if(!extIsSupported("GL_SGIX_impact_pixel_texture"))
5278                 return GLExtensionState.DriverUnsupported;
5279             return GLExtensionState.Loaded;
5280         }
5281 
5282         GLExtensionState load_GL_SGIX_async()
5283         {
5284             if(!extIsSupported("GL_SGIX_async"))
5285                 return GLExtensionState.DriverUnsupported;
5286             if(!bindExtFunc(cast(void**)&glAsyncMarkerSGIX, "glAsyncMarkerSGIX"))
5287                 return GLExtensionState.FailedToLoad;
5288             if(!bindExtFunc(cast(void**)&glFinishAsyncSGIX, "glFinishAsyncSGIX"))
5289                 return GLExtensionState.FailedToLoad;
5290             if(!bindExtFunc(cast(void**)&glPollAsyncSGIX, "glPollAsyncSGIX"))
5291                 return GLExtensionState.FailedToLoad;
5292             if(!bindExtFunc(cast(void**)&glGenAsyncMarkersSGIX, "glGenAsyncMarkersSGIX"))
5293                 return GLExtensionState.FailedToLoad;
5294             if(!bindExtFunc(cast(void**)&glDeleteAsyncMarkersSGIX, "glDeleteAsyncMarkersSGIX"))
5295                 return GLExtensionState.FailedToLoad;
5296             if(!bindExtFunc(cast(void**)&glIsAsyncMarkerSGIX, "glIsAsyncMarkerSGIX"))
5297                 return GLExtensionState.FailedToLoad;
5298             return GLExtensionState.Loaded;
5299         }
5300 
5301         GLExtensionState load_GL_SGIX_async_pixel()
5302         {
5303             if(!extIsSupported("GL_SGIX_async_pixel"))
5304                 return GLExtensionState.DriverUnsupported;
5305             return GLExtensionState.Loaded;
5306         }
5307 
5308         GLExtensionState load_GL_SGIX_async_histogram()
5309         {
5310             if(!extIsSupported("GL_SGIX_async_histogram"))
5311                 return GLExtensionState.DriverUnsupported;
5312             return GLExtensionState.Loaded;
5313         }
5314 
5315         GLExtensionState load_GL_SGIX_fog_scale()
5316         {
5317             if(!extIsSupported("GL_SGIX_fog_scale"))
5318                 return GLExtensionState.DriverUnsupported;
5319             return GLExtensionState.Loaded;
5320         }
5321 
5322         GLExtensionState load_GL_SGIX_subsample()
5323         {
5324             if(!extIsSupported("GL_SGIX_subsample"))
5325                 return GLExtensionState.DriverUnsupported;
5326             return GLExtensionState.Loaded;
5327         }
5328 
5329         GLExtensionState load_GL_SGIX_ycrcb_subsample()
5330         {
5331             if(!extIsSupported("GL_SGIX_ycrcb_subsample"))
5332                 return GLExtensionState.DriverUnsupported;
5333             return GLExtensionState.Loaded;
5334         }
5335 
5336         GLExtensionState load_GL_SGIX_ycrcba()
5337         {
5338             if(!extIsSupported("GL_SGIX_ycrcba"))
5339                 return GLExtensionState.DriverUnsupported;
5340             return GLExtensionState.Loaded;
5341         }
5342 
5343         GLExtensionState load_GL_SGIX_depth_pass_instrument()
5344         {
5345             if(!extIsSupported("GL_SGIX_depth_pass_instrument"))
5346                 return GLExtensionState.DriverUnsupported;
5347             return GLExtensionState.Loaded;
5348         }
5349 
5350         GLExtensionState load_GL_SGIX_vertex_preclip()
5351         {
5352             if(!extIsSupported("GL_SGIX_vertex_preclip"))
5353                 return GLExtensionState.DriverUnsupported;
5354             return GLExtensionState.Loaded;
5355         }
5356 
5357         GLExtensionState load_GL_SGIX_convolution_accuracy()
5358         {
5359             if(!extIsSupported("GL_SGIX_convolution_accuracy"))
5360                 return GLExtensionState.DriverUnsupported;
5361             return GLExtensionState.Loaded;
5362         }
5363 
5364         GLExtensionState load_GL_SGIX_resample()
5365         {
5366             if(!extIsSupported("GL_SGIX_resample"))
5367                 return GLExtensionState.DriverUnsupported;
5368             return GLExtensionState.Loaded;
5369         }
5370 
5371         GLExtensionState load_GL_SGIX_texture_coordinate_clamp()
5372         {
5373             if(!extIsSupported("GL_SGIX_texture_coordinate_clamp"))
5374                 return GLExtensionState.DriverUnsupported;
5375             return GLExtensionState.Loaded;
5376         }
5377 
5378         GLExtensionState load_GL_SGIX_scalebias_hint()
5379         {
5380             if(!extIsSupported("GL_SGIX_scalebias_hint"))
5381                 return GLExtensionState.DriverUnsupported;
5382             return GLExtensionState.Loaded;
5383         }
5384     }
5385 
5386     version(DerelictGL_HP)
5387     {
5388         GLExtensionState load_GL_HP_image_transform()
5389         {
5390             if(!extIsSupported("GL_HP_image_transform"))
5391                 return GLExtensionState.DriverUnsupported;
5392             if(!bindExtFunc(cast(void**)&glImageTransformParameteriHP, "glImageTransformParameteriHP"))
5393                 return GLExtensionState.FailedToLoad;
5394             if(!bindExtFunc(cast(void**)&glImageTransformParameterfHP, "glImageTransformParameterfHP"))
5395                 return GLExtensionState.FailedToLoad;
5396             if(!bindExtFunc(cast(void**)&glImageTransformParameterivHP, "glImageTransformParameterivHP"))
5397                 return GLExtensionState.FailedToLoad;
5398             if(!bindExtFunc(cast(void**)&glImageTransformParameterfvHP, "glImageTransformParameterfvHP"))
5399                 return GLExtensionState.FailedToLoad;
5400             if(!bindExtFunc(cast(void**)&glGetImageTransformParameterivHP, "glGetImageTransformParameterivHP"))
5401                 return GLExtensionState.FailedToLoad;
5402             if(!bindExtFunc(cast(void**)&glGetImageTransformParameterfvHP, "glGetImageTransformParameterfvHP"))
5403                 return GLExtensionState.FailedToLoad;
5404             return GLExtensionState.Loaded;
5405         }
5406 
5407         GLExtensionState load_GL_HP_convolution_border_modes()
5408         {
5409             if(!extIsSupported("GL_HP_convolution_border_modes"))
5410                 return GLExtensionState.DriverUnsupported;
5411             return GLExtensionState.Loaded;
5412         }
5413 
5414         GLExtensionState load_GL_HP_texture_lighting()
5415         {
5416             if(!extIsSupported("GL_HP_texture_lighting"))
5417                 return GLExtensionState.DriverUnsupported;
5418             return GLExtensionState.Loaded;
5419         }
5420 
5421         GLExtensionState load_GL_HP_occlusion_test()
5422         {
5423             if(!extIsSupported("GL_HP_occlusion_test"))
5424                 return GLExtensionState.DriverUnsupported;
5425             return GLExtensionState.Loaded;
5426         }
5427     }
5428 
5429     version(DerelictGL_PGI)
5430     {
5431         GLExtensionState load_GL_PGI_vertex_hints()
5432         {
5433             if(!extIsSupported("GL_PGI_vertex_hints"))
5434                 return GLExtensionState.DriverUnsupported;
5435             return GLExtensionState.Loaded;
5436         }
5437 
5438         GLExtensionState load_GL_PGI_misc_hints()
5439         {
5440             if(!extIsSupported("GL_PGI_misc_hints"))
5441                 return GLExtensionState.DriverUnsupported;
5442             if(!bindExtFunc(cast(void**)&glHintPGI, "glHintPGI"))
5443                 return GLExtensionState.FailedToLoad;
5444             return GLExtensionState.Loaded;
5445         }
5446     }
5447 
5448     version(DerelictGL_IBM)
5449     {
5450         GLExtensionState load_GL_IBM_rasterpos_clip()
5451         {
5452             if(!extIsSupported("GL_IBM_rasterpos_clip"))
5453                 return GLExtensionState.DriverUnsupported;
5454             return GLExtensionState.Loaded;
5455         }
5456 
5457         GLExtensionState load_GL_IBM_cull_vertex()
5458         {
5459             if(!extIsSupported("GL_IBM_cull_vertex"))
5460                 return GLExtensionState.DriverUnsupported;
5461             return GLExtensionState.Loaded;
5462         }
5463 
5464         GLExtensionState load_GL_IBM_multimode_draw_arrays()
5465         {
5466             if(!extIsSupported("GL_IBM_multimode_draw_arrays"))
5467                 return GLExtensionState.DriverUnsupported;
5468             if(!bindExtFunc(cast(void**)&glMultiModeDrawArraysIBM, "glMultiModeDrawArraysIBM"))
5469                 return GLExtensionState.FailedToLoad;
5470             if(!bindExtFunc(cast(void**)&glMultiModeDrawElementsIBM, "glMultiModeDrawElementsIBM"))
5471                 return GLExtensionState.FailedToLoad;
5472             return GLExtensionState.Loaded;
5473         }
5474 
5475         GLExtensionState load_GL_IBM_vertex_array_lists()
5476         {
5477             if(!extIsSupported("GL_IBM_vertex_array_lists"))
5478                 return GLExtensionState.DriverUnsupported;
5479             if(!bindExtFunc(cast(void**)&glColorPointerListIBM, "glColorPointerListIBM"))
5480                 return GLExtensionState.FailedToLoad;
5481             if(!bindExtFunc(cast(void**)&glSecondaryColorPointerListIBM, "glSecondaryColorPointerListIBM"))
5482                 return GLExtensionState.FailedToLoad;
5483             if(!bindExtFunc(cast(void**)&glEdgeFlagPointerListIBM, "glEdgeFlagPointerListIBM"))
5484                 return GLExtensionState.FailedToLoad;
5485             if(!bindExtFunc(cast(void**)&glFogCoordPointerListIBM, "glFogCoordPointerListIBM"))
5486                 return GLExtensionState.FailedToLoad;
5487             if(!bindExtFunc(cast(void**)&glIndexPointerListIBM, "glIndexPointerListIBM"))
5488                 return GLExtensionState.FailedToLoad;
5489             if(!bindExtFunc(cast(void**)&glNormalPointerListIBM, "glNormalPointerListIBM"))
5490                 return GLExtensionState.FailedToLoad;
5491             if(!bindExtFunc(cast(void**)&glTexCoordPointerListIBM, "glTexCoordPointerListIBM"))
5492                 return GLExtensionState.FailedToLoad;
5493             if(!bindExtFunc(cast(void**)&glVertexPointerListIBM, "glVertexPointerListIBM"))
5494                 return GLExtensionState.FailedToLoad;
5495             return GLExtensionState.Loaded;
5496         }
5497 
5498         GLExtensionState load_GL_IBM_texture_mirrored_repeat()
5499         {
5500             if(!extIsSupported("GL_IBM_texture_mirrored_repeat"))
5501                 return GLExtensionState.DriverUnsupported;
5502             return GLExtensionState.Loaded;
5503         }
5504     }
5505 
5506     version(DerelictGL_WIN)
5507     {
5508         GLExtensionState load_GL_WIN_phong_shading()
5509         {
5510             if(!extIsSupported("GL_WIN_phong_shading"))
5511                 return GLExtensionState.DriverUnsupported;
5512             return GLExtensionState.Loaded;
5513         }
5514 
5515         GLExtensionState load_GL_WIN_specular_fog()
5516         {
5517             if(!extIsSupported("GL_WIN_specular_fog"))
5518                 return GLExtensionState.DriverUnsupported;
5519             return GLExtensionState.Loaded;
5520         }
5521     }
5522 
5523     version(DerelictGL_INTEL)
5524     {
5525         GLExtensionState load_GL_INTEL_parallel_arrays()
5526         {
5527             if(!extIsSupported("GL_INTEL_parallel_arrays"))
5528                 return GLExtensionState.DriverUnsupported;
5529             if(!bindExtFunc(cast(void**)&glVertexPointervINTEL, "glVertexPointervINTEL"))
5530                 return GLExtensionState.FailedToLoad;
5531             if(!bindExtFunc(cast(void**)&glNormalPointervINTEL, "glNormalPointervINTEL"))
5532                 return GLExtensionState.FailedToLoad;
5533             if(!bindExtFunc(cast(void**)&glColorPointervINTEL, "glColorPointervINTEL"))
5534                 return GLExtensionState.FailedToLoad;
5535             if(!bindExtFunc(cast(void**)&glTexCoordPointervINTEL, "glTexCoordPointervINTEL"))
5536                 return GLExtensionState.FailedToLoad;
5537             return GLExtensionState.Loaded;
5538         }
5539     }
5540 
5541     version(DerelictGL_REND)
5542     {
5543         GLExtensionState load_GL_REND_screen_coordinates()
5544         {
5545             if(!extIsSupported("GL_REND_screen_coordinates"))
5546                 return GLExtensionState.DriverUnsupported;
5547             return GLExtensionState.Loaded;
5548         }
5549     }
5550 
5551     version(DerelictGL_APPLE)
5552     {
5553         GLExtensionState load_GL_APPLE_specular_vector()
5554         {
5555             if(!extIsSupported("GL_APPLE_specular_vector"))
5556                 return GLExtensionState.DriverUnsupported;
5557             return GLExtensionState.Loaded;
5558         }
5559 
5560         GLExtensionState load_GL_APPLE_transform_hint()
5561         {
5562             if(!extIsSupported("GL_APPLE_transform_hint"))
5563                 return GLExtensionState.DriverUnsupported;
5564             return GLExtensionState.Loaded;
5565         }
5566 
5567         GLExtensionState load_GL_APPLE_client_storage()
5568         {
5569             if(!extIsSupported("GL_APPLE_client_storage"))
5570                 return GLExtensionState.DriverUnsupported;
5571             return GLExtensionState.Loaded;
5572         }
5573 
5574         GLExtensionState load_GL_APPLE_element_array()
5575         {
5576             if(!extIsSupported("GL_APPLE_element_array"))
5577                 return GLExtensionState.DriverUnsupported;
5578             if(!bindExtFunc(cast(void**)&glElementPointerAPPLE, "glElementPointerAPPLE"))
5579                 return GLExtensionState.FailedToLoad;
5580             if(!bindExtFunc(cast(void**)&glDrawElementArrayAPPLE, "glDrawElementArrayAPPLE"))
5581                 return GLExtensionState.FailedToLoad;
5582             if(!bindExtFunc(cast(void**)&glDrawRangeElementArrayAPPLE, "glDrawRangeElementArrayAPPLE"))
5583                 return GLExtensionState.FailedToLoad;
5584             if(!bindExtFunc(cast(void**)&glMultiDrawElementArrayAPPLE, "glMultiDrawElementArrayAPPLE"))
5585                 return GLExtensionState.FailedToLoad;
5586             if(!bindExtFunc(cast(void**)&glMultiDrawRangeElementArrayAPPLE, "glMultiDrawRangeElementArrayAPPLE"))
5587                 return GLExtensionState.FailedToLoad;
5588             return GLExtensionState.Loaded;
5589         }
5590 
5591         GLExtensionState load_GL_APPLE_fence()
5592         {
5593             if(!extIsSupported("GL_APPLE_fence"))
5594                 return GLExtensionState.DriverUnsupported;
5595             if(!bindExtFunc(cast(void**)&glGenFencesAPPLE, "glGenFencesAPPLE"))
5596                 return GLExtensionState.FailedToLoad;
5597             if(!bindExtFunc(cast(void**)&glDeleteFencesAPPLE, "glDeleteFencesAPPLE"))
5598                 return GLExtensionState.FailedToLoad;
5599             if(!bindExtFunc(cast(void**)&glSetFenceAPPLE, "glSetFenceAPPLE"))
5600                 return GLExtensionState.FailedToLoad;
5601             if(!bindExtFunc(cast(void**)&glIsFenceAPPLE, "glIsFenceAPPLE"))
5602                 return GLExtensionState.FailedToLoad;
5603             if(!bindExtFunc(cast(void**)&glTestFenceAPPLE, "glTestFenceAPPLE"))
5604                 return GLExtensionState.FailedToLoad;
5605             if(!bindExtFunc(cast(void**)&glFinishFenceAPPLE, "glFinishFenceAPPLE"))
5606                 return GLExtensionState.FailedToLoad;
5607             if(!bindExtFunc(cast(void**)&glTestObjectAPPLE, "glTestObjectAPPLE"))
5608                 return GLExtensionState.FailedToLoad;
5609             if(!bindExtFunc(cast(void**)&glFinishObjectAPPLE, "glFinishObjectAPPLE"))
5610                 return GLExtensionState.FailedToLoad;
5611             return GLExtensionState.Loaded;
5612         }
5613 
5614         GLExtensionState load_GL_APPLE_vertex_array_object()
5615         {
5616             if(!extIsSupported("GL_APPLE_vertex_array_object"))
5617                 return GLExtensionState.DriverUnsupported;
5618             if(!bindExtFunc(cast(void**)&glBindVertexArrayAPPLE, "glBindVertexArrayAPPLE"))
5619                 return GLExtensionState.FailedToLoad;
5620             if(!bindExtFunc(cast(void**)&glDeleteVertexArraysAPPLE, "glDeleteVertexArraysAPPLE"))
5621                 return GLExtensionState.FailedToLoad;
5622             if(!bindExtFunc(cast(void**)&glGenVertexArraysAPPLE, "glGenVertexArraysAPPLE"))
5623                 return GLExtensionState.FailedToLoad;
5624             if(!bindExtFunc(cast(void**)&glIsVertexArrayAPPLE, "glIsVertexArrayAPPLE"))
5625                 return GLExtensionState.FailedToLoad;
5626             return GLExtensionState.Loaded;
5627         }
5628 
5629         GLExtensionState load_GL_APPLE_vertex_array_range()
5630         {
5631             if(!extIsSupported("GL_APPLE_vertex_array_range"))
5632                 return GLExtensionState.DriverUnsupported;
5633             if(!bindExtFunc(cast(void**)&glVertexArrayRangeAPPLE, "glVertexArrayRangeAPPLE"))
5634                 return GLExtensionState.FailedToLoad;
5635             if(!bindExtFunc(cast(void**)&glFlushVertexArrayRangeAPPLE, "glFlushVertexArrayRangeAPPLE"))
5636                 return GLExtensionState.FailedToLoad;
5637             if(!bindExtFunc(cast(void**)&glVertexArrayParameteriAPPLE, "glVertexArrayParameteriAPPLE"))
5638                 return GLExtensionState.FailedToLoad;
5639             return GLExtensionState.Loaded;
5640         }
5641 
5642         GLExtensionState load_GL_APPLE_ycbcr_422()
5643         {
5644             if(!extIsSupported("GL_APPLE_ycbcr_422"))
5645                 return GLExtensionState.DriverUnsupported;
5646             return GLExtensionState.Loaded;
5647         }
5648 
5649         GLExtensionState load_GL_APPLE_flush_buffer_range()
5650         {
5651             if(!extIsSupported("GL_APPLE_flush_buffer_range"))
5652                 return GLExtensionState.DriverUnsupported;
5653             if(!bindExtFunc(cast(void**)&glBufferParameteriAPPLE, "glBufferParameteriAPPLE"))
5654                 return GLExtensionState.FailedToLoad;
5655             if(!bindExtFunc(cast(void**)&glFlushMappedBufferRangeAPPLE, "glFlushMappedBufferRangeAPPLE"))
5656                 return GLExtensionState.FailedToLoad;
5657             return GLExtensionState.Loaded;
5658         }
5659 
5660         GLExtensionState load_GL_APPLE_texture_range()
5661         {
5662             if(!extIsSupported("GL_APPLE_texture_range"))
5663                 return GLExtensionState.DriverUnsupported;
5664             if(!bindExtFunc(cast(void**)&glTextureRangeAPPLE, "glTextureRangeAPPLE"))
5665                 return GLExtensionState.FailedToLoad;
5666             if(!bindExtFunc(cast(void**)&glGetTexParameterPointervAPPLE, "glGetTexParameterPointervAPPLE"))
5667                 return GLExtensionState.FailedToLoad;
5668             return GLExtensionState.Loaded;
5669         }
5670 
5671         GLExtensionState load_GL_APPLE_float_pixels()
5672         {
5673             if(!extIsSupported("GL_APPLE_float_pixels"))
5674                 return GLExtensionState.DriverUnsupported;
5675             return GLExtensionState.Loaded;
5676         }
5677 
5678         GLExtensionState load_GL_APPLE_vertex_program_evaluators()
5679         {
5680             if(!extIsSupported("GL_APPLE_vertex_program_evaluators"))
5681                 return GLExtensionState.DriverUnsupported;
5682             if(!bindExtFunc(cast(void**)&glEnableVertexAttribAPPLE, "glEnableVertexAttribAPPLE"))
5683                 return GLExtensionState.FailedToLoad;
5684             if(!bindExtFunc(cast(void**)&glDisableVertexAttribAPPLE, "glDisableVertexAttribAPPLE"))
5685                 return GLExtensionState.FailedToLoad;
5686             if(!bindExtFunc(cast(void**)&glIsVertexAttribAPPLE, "glIsVertexAttribAPPLE"))
5687                 return GLExtensionState.FailedToLoad;
5688             if(!bindExtFunc(cast(void**)&glMapVertexAttrib1dAPPLE, "glMapVertexAttrib1dAPPLE"))
5689                 return GLExtensionState.FailedToLoad;
5690             if(!bindExtFunc(cast(void**)&glMapVertexAttrib1fAPPLE, "glMapVertexAttrib1fAPPLE"))
5691                 return GLExtensionState.FailedToLoad;
5692             if(!bindExtFunc(cast(void**)&glMapVertexAttrib2dAPPLE, "glMapVertexAttrib2dAPPLE"))
5693                 return GLExtensionState.FailedToLoad;
5694             if(!bindExtFunc(cast(void**)&glMapVertexAttrib2fAPPLE, "glMapVertexAttrib2fAPPLE"))
5695                 return GLExtensionState.FailedToLoad;
5696             return GLExtensionState.Loaded;
5697         }
5698 
5699         GLExtensionState load_GL_APPLE_aux_depth_stencil()
5700         {
5701             if(!extIsSupported("GL_APPLE_aux_depth_stencil"))
5702                 return GLExtensionState.DriverUnsupported;
5703             return GLExtensionState.Loaded;
5704         }
5705 
5706         GLExtensionState load_GL_APPLE_object_purgeable()
5707         {
5708             if(!extIsSupported("GL_APPLE_object_purgeable"))
5709                 return GLExtensionState.DriverUnsupported;
5710             if(!bindExtFunc(cast(void**)&glObjectPurgeableAPPLE, "glObjectPurgeableAPPLE"))
5711                 return GLExtensionState.FailedToLoad;
5712             if(!bindExtFunc(cast(void**)&glObjectUnpurgeableAPPLE, "glObjectUnpurgeableAPPLE"))
5713                 return GLExtensionState.FailedToLoad;
5714             if(!bindExtFunc(cast(void**)&glGetObjectParameterivAPPLE, "glGetObjectParameterivAPPLE"))
5715                 return GLExtensionState.FailedToLoad;
5716             return GLExtensionState.Loaded;
5717         }
5718 
5719         GLExtensionState load_GL_APPLE_row_bytes()
5720         {
5721             if(!extIsSupported("GL_APPLE_row_bytes"))
5722                 return GLExtensionState.DriverUnsupported;
5723             return GLExtensionState.Loaded;
5724         }
5725 
5726         GLExtensionState load_GL_APPLE_rgb_422()
5727         {
5728             if(!extIsSupported("GL_APPLE_rgb_422"))
5729                 return GLExtensionState.DriverUnsupported;
5730             return GLExtensionState.Loaded;
5731         }
5732     }
5733 
5734     version(DerelictGL_SUNX)
5735     {
5736         GLExtensionState load_GL_SUNX_constant_data()
5737         {
5738             if(!extIsSupported("GL_SUNX_constant_data"))
5739                 return GLExtensionState.DriverUnsupported;
5740             if(!bindExtFunc(cast(void**)&glFinishTextureSUNX, "glFinishTextureSUNX"))
5741                 return GLExtensionState.FailedToLoad;
5742             return GLExtensionState.Loaded;
5743         }
5744     }
5745 
5746     version(DerelictGL_SUN)
5747     {
5748         GLExtensionState load_GL_SUN_global_alpha()
5749         {
5750             if(!extIsSupported("GL_SUN_global_alpha"))
5751                 return GLExtensionState.DriverUnsupported;
5752             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorbSUN, "glGlobalAlphaFactorbSUN"))
5753                 return GLExtensionState.FailedToLoad;
5754             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorsSUN, "glGlobalAlphaFactorsSUN"))
5755                 return GLExtensionState.FailedToLoad;
5756             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactoriSUN, "glGlobalAlphaFactoriSUN"))
5757                 return GLExtensionState.FailedToLoad;
5758             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorfSUN, "glGlobalAlphaFactorfSUN"))
5759                 return GLExtensionState.FailedToLoad;
5760             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactordSUN, "glGlobalAlphaFactordSUN"))
5761                 return GLExtensionState.FailedToLoad;
5762             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorubSUN, "glGlobalAlphaFactorubSUN"))
5763                 return GLExtensionState.FailedToLoad;
5764             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactorusSUN, "glGlobalAlphaFactorusSUN"))
5765                 return GLExtensionState.FailedToLoad;
5766             if(!bindExtFunc(cast(void**)&glGlobalAlphaFactoruiSUN, "glGlobalAlphaFactoruiSUN"))
5767                 return GLExtensionState.FailedToLoad;
5768             return GLExtensionState.Loaded;
5769         }
5770 
5771         GLExtensionState load_GL_SUN_triangle_list()
5772         {
5773             if(!extIsSupported("GL_SUN_triangle_list"))
5774                 return GLExtensionState.DriverUnsupported;
5775             if(!bindExtFunc(cast(void**)&glReplacementCodeuiSUN, "glReplacementCodeuiSUN"))
5776                 return GLExtensionState.FailedToLoad;
5777             if(!bindExtFunc(cast(void**)&glReplacementCodeusSUN, "glReplacementCodeusSUN"))
5778                 return GLExtensionState.FailedToLoad;
5779             if(!bindExtFunc(cast(void**)&glReplacementCodeubSUN, "glReplacementCodeubSUN"))
5780                 return GLExtensionState.FailedToLoad;
5781             if(!bindExtFunc(cast(void**)&glReplacementCodeuivSUN, "glReplacementCodeuivSUN"))
5782                 return GLExtensionState.FailedToLoad;
5783             if(!bindExtFunc(cast(void**)&glReplacementCodeusvSUN, "glReplacementCodeusvSUN"))
5784                 return GLExtensionState.FailedToLoad;
5785             if(!bindExtFunc(cast(void**)&glReplacementCodeubvSUN, "glReplacementCodeubvSUN"))
5786                 return GLExtensionState.FailedToLoad;
5787             if(!bindExtFunc(cast(void**)&glReplacementCodePointerSUN, "glReplacementCodePointerSUN"))
5788                 return GLExtensionState.FailedToLoad;
5789             return GLExtensionState.Loaded;
5790         }
5791 
5792         GLExtensionState load_GL_SUN_vertex()
5793         {
5794             if(!extIsSupported("GL_SUN_vertex"))
5795                 return GLExtensionState.DriverUnsupported;
5796             if(!bindExtFunc(cast(void**)&glColor4ubVertex2fSUN, "glColor4ubVertex2fSUN"))
5797                 return GLExtensionState.FailedToLoad;
5798             if(!bindExtFunc(cast(void**)&glColor4ubVertex2fvSUN, "glColor4ubVertex2fvSUN"))
5799                 return GLExtensionState.FailedToLoad;
5800             if(!bindExtFunc(cast(void**)&glColor4ubVertex3fSUN, "glColor4ubVertex3fSUN"))
5801                 return GLExtensionState.FailedToLoad;
5802             if(!bindExtFunc(cast(void**)&glColor4ubVertex3fvSUN, "glColor4ubVertex3fvSUN"))
5803                 return GLExtensionState.FailedToLoad;
5804             if(!bindExtFunc(cast(void**)&glColor3fVertex3fSUN, "glColor3fVertex3fSUN"))
5805                 return GLExtensionState.FailedToLoad;
5806             if(!bindExtFunc(cast(void**)&glColor3fVertex3fvSUN, "glColor3fVertex3fvSUN"))
5807                 return GLExtensionState.FailedToLoad;
5808             if(!bindExtFunc(cast(void**)&glNormal3fVertex3fSUN, "glNormal3fVertex3fSUN"))
5809                 return GLExtensionState.FailedToLoad;
5810             if(!bindExtFunc(cast(void**)&glNormal3fVertex3fvSUN, "glNormal3fVertex3fvSUN"))
5811                 return GLExtensionState.FailedToLoad;
5812             if(!bindExtFunc(cast(void**)&glColor4fNormal3fVertex3fSUN, "glColor4fNormal3fVertex3fSUN"))
5813                 return GLExtensionState.FailedToLoad;
5814             if(!bindExtFunc(cast(void**)&glColor4fNormal3fVertex3fvSUN, "glColor4fNormal3fVertex3fvSUN"))
5815                 return GLExtensionState.FailedToLoad;
5816             if(!bindExtFunc(cast(void**)&glTexCoord2fVertex3fSUN, "glTexCoord2fVertex3fSUN"))
5817                 return GLExtensionState.FailedToLoad;
5818             if(!bindExtFunc(cast(void**)&glTexCoord2fVertex3fvSUN, "glTexCoord2fVertex3fvSUN"))
5819                 return GLExtensionState.FailedToLoad;
5820             if(!bindExtFunc(cast(void**)&glTexCoord4fVertex4fSUN, "glTexCoord4fVertex4fSUN"))
5821                 return GLExtensionState.FailedToLoad;
5822             if(!bindExtFunc(cast(void**)&glTexCoord4fVertex4fvSUN, "glTexCoord4fVertex4fvSUN"))
5823                 return GLExtensionState.FailedToLoad;
5824             if(!bindExtFunc(cast(void**)&glTexCoord2fColor4ubVertex3fSUN, "glTexCoord2fColor4ubVertex3fSUN"))
5825                 return GLExtensionState.FailedToLoad;
5826             if(!bindExtFunc(cast(void**)&glTexCoord2fColor4ubVertex3fvSUN, "glTexCoord2fColor4ubVertex3fvSUN"))
5827                 return GLExtensionState.FailedToLoad;
5828             if(!bindExtFunc(cast(void**)&glTexCoord2fColor3fVertex3fSUN, "glTexCoord2fColor3fVertex3fSUN"))
5829                 return GLExtensionState.FailedToLoad;
5830             if(!bindExtFunc(cast(void**)&glTexCoord2fColor3fVertex3fvSUN, "glTexCoord2fColor3fVertex3fvSUN"))
5831                 return GLExtensionState.FailedToLoad;
5832             if(!bindExtFunc(cast(void**)&glTexCoord2fNormal3fVertex3fSUN, "glTexCoord2fNormal3fVertex3fSUN"))
5833                 return GLExtensionState.FailedToLoad;
5834             if(!bindExtFunc(cast(void**)&glTexCoord2fNormal3fVertex3fvSUN, "glTexCoord2fNormal3fVertex3fvSUN"))
5835                 return GLExtensionState.FailedToLoad;
5836             if(!bindExtFunc(cast(void**)&glTexCoord2fColor4fNormal3fVertex3fSUN, "glTexCoord2fColor4fNormal3fVertex3fSUN"))
5837                 return GLExtensionState.FailedToLoad;
5838             if(!bindExtFunc(cast(void**)&glTexCoord2fColor4fNormal3fVertex3fvSUN, "glTexCoord2fColor4fNormal3fVertex3fvSUN"))
5839                 return GLExtensionState.FailedToLoad;
5840             if(!bindExtFunc(cast(void**)&glTexCoord4fColor4fNormal3fVertex4fSUN, "glTexCoord4fColor4fNormal3fVertex4fSUN"))
5841                 return GLExtensionState.FailedToLoad;
5842             if(!bindExtFunc(cast(void**)&glTexCoord4fColor4fNormal3fVertex4fvSUN, "glTexCoord4fColor4fNormal3fVertex4fvSUN"))
5843                 return GLExtensionState.FailedToLoad;
5844             if(!bindExtFunc(cast(void**)&glReplacementCodeuiVertex3fSUN, "glReplacementCodeuiVertex3fSUN"))
5845                 return GLExtensionState.FailedToLoad;
5846             if(!bindExtFunc(cast(void**)&glReplacementCodeuiVertex3fvSUN, "glReplacementCodeuiVertex3fvSUN"))
5847                 return GLExtensionState.FailedToLoad;
5848             if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4ubVertex3fSUN, "glReplacementCodeuiColor4ubVertex3fSUN"))
5849                 return GLExtensionState.FailedToLoad;
5850             if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4ubVertex3fvSUN, "glReplacementCodeuiColor4ubVertex3fvSUN"))
5851                 return GLExtensionState.FailedToLoad;
5852             if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor3fVertex3fSUN, "glReplacementCodeuiColor3fVertex3fSUN"))
5853                 return GLExtensionState.FailedToLoad;
5854             if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor3fVertex3fvSUN, "glReplacementCodeuiColor3fVertex3fvSUN"))
5855                 return GLExtensionState.FailedToLoad;
5856             if(!bindExtFunc(cast(void**)&glReplacementCodeuiNormal3fVertex3fSUN, "glReplacementCodeuiNormal3fVertex3fSUN"))
5857                 return GLExtensionState.FailedToLoad;
5858             if(!bindExtFunc(cast(void**)&glReplacementCodeuiNormal3fVertex3fvSUN, "glReplacementCodeuiNormal3fVertex3fvSUN"))
5859                 return GLExtensionState.FailedToLoad;
5860             if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4fNormal3fVertex3fSUN, "glReplacementCodeuiColor4fNormal3fVertex3fSUN"))
5861                 return GLExtensionState.FailedToLoad;
5862             if(!bindExtFunc(cast(void**)&glReplacementCodeuiColor4fNormal3fVertex3fvSUN, "glReplacementCodeuiColor4fNormal3fVertex3fvSUN"))
5863                 return GLExtensionState.FailedToLoad;
5864             if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fVertex3fSUN, "glReplacementCodeuiTexCoord2fVertex3fSUN"))
5865                 return GLExtensionState.FailedToLoad;
5866             if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fVertex3fvSUN, "glReplacementCodeuiTexCoord2fVertex3fvSUN"))
5867                 return GLExtensionState.FailedToLoad;
5868             if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN, "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN"))
5869                 return GLExtensionState.FailedToLoad;
5870             if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN, "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN"))
5871                 return GLExtensionState.FailedToLoad;
5872             if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN"))
5873                 return GLExtensionState.FailedToLoad;
5874             if(!bindExtFunc(cast(void**)&glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN, "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN"))
5875                 return GLExtensionState.FailedToLoad;
5876             return GLExtensionState.Loaded;
5877         }
5878 
5879         GLExtensionState load_GL_SUN_convolution_border_modes()
5880         {
5881             if(!extIsSupported("GL_SUN_convolution_border_modes"))
5882                 return GLExtensionState.DriverUnsupported;
5883             return GLExtensionState.Loaded;
5884         }
5885 
5886         GLExtensionState load_GL_SUN_mesh_array()
5887         {
5888             if(!extIsSupported("GL_SUN_mesh_array"))
5889                 return GLExtensionState.DriverUnsupported;
5890             if(!bindExtFunc(cast(void**)&glDrawMeshArraysSUN, "glDrawMeshArraysSUN"))
5891                 return GLExtensionState.FailedToLoad;
5892             return GLExtensionState.Loaded;
5893         }
5894 
5895         GLExtensionState load_GL_SUN_slice_accum()
5896         {
5897             if(!extIsSupported("GL_SUN_slice_accum"))
5898                 return GLExtensionState.DriverUnsupported;
5899             return GLExtensionState.Loaded;
5900         }
5901     }
5902 
5903     version(DerelictGL_INGR)
5904     {
5905         GLExtensionState load_GL_INGR_color_clamp()
5906         {
5907             if(!extIsSupported("GL_INGR_color_clamp"))
5908                 return GLExtensionState.DriverUnsupported;
5909             return GLExtensionState.Loaded;
5910         }
5911 
5912         GLExtensionState load_GL_INGR_interlace_read()
5913         {
5914             if(!extIsSupported("GL_INGR_interlace_read"))
5915                 return GLExtensionState.DriverUnsupported;
5916             return GLExtensionState.Loaded;
5917         }
5918     }
5919 
5920     version(DerelictGL_MESA)
5921     {
5922         GLExtensionState load_GL_MESA_resize_buffers()
5923         {
5924             if(!extIsSupported("GL_MESA_resize_buffers"))
5925                 return GLExtensionState.DriverUnsupported;
5926             if(!bindExtFunc(cast(void**)&glResizeBuffersMESA, "glResizeBuffersMESA"))
5927                 return GLExtensionState.FailedToLoad;
5928             return GLExtensionState.Loaded;
5929         }
5930 
5931         GLExtensionState load_GL_MESA_window_pos()
5932         {
5933             if(!extIsSupported("GL_MESA_window_pos"))
5934                 return GLExtensionState.DriverUnsupported;
5935             if(!bindExtFunc(cast(void**)&glWindowPos2dMESA, "glWindowPos2dMESA"))
5936                 return GLExtensionState.FailedToLoad;
5937             if(!bindExtFunc(cast(void**)&glWindowPos2dvMESA, "glWindowPos2dvMESA"))
5938                 return GLExtensionState.FailedToLoad;
5939             if(!bindExtFunc(cast(void**)&glWindowPos2fMESA, "glWindowPos2fMESA"))
5940                 return GLExtensionState.FailedToLoad;
5941             if(!bindExtFunc(cast(void**)&glWindowPos2fvMESA, "glWindowPos2fvMESA"))
5942                 return GLExtensionState.FailedToLoad;
5943             if(!bindExtFunc(cast(void**)&glWindowPos2iMESA, "glWindowPos2iMESA"))
5944                 return GLExtensionState.FailedToLoad;
5945             if(!bindExtFunc(cast(void**)&glWindowPos2ivMESA, "glWindowPos2ivMESA"))
5946                 return GLExtensionState.FailedToLoad;
5947             if(!bindExtFunc(cast(void**)&glWindowPos2sMESA, "glWindowPos2sMESA"))
5948                 return GLExtensionState.FailedToLoad;
5949             if(!bindExtFunc(cast(void**)&glWindowPos2svMESA, "glWindowPos2svMESA"))
5950                 return GLExtensionState.FailedToLoad;
5951             if(!bindExtFunc(cast(void**)&glWindowPos3dMESA, "glWindowPos3dMESA"))
5952                 return GLExtensionState.FailedToLoad;
5953             if(!bindExtFunc(cast(void**)&glWindowPos3dvMESA, "glWindowPos3dvMESA"))
5954                 return GLExtensionState.FailedToLoad;
5955             if(!bindExtFunc(cast(void**)&glWindowPos3fMESA, "glWindowPos3fMESA"))
5956                 return GLExtensionState.FailedToLoad;
5957             if(!bindExtFunc(cast(void**)&glWindowPos3fvMESA, "glWindowPos3fvMESA"))
5958                 return GLExtensionState.FailedToLoad;
5959             if(!bindExtFunc(cast(void**)&glWindowPos3iMESA, "glWindowPos3iMESA"))
5960                 return GLExtensionState.FailedToLoad;
5961             if(!bindExtFunc(cast(void**)&glWindowPos3ivMESA, "glWindowPos3ivMESA"))
5962                 return GLExtensionState.FailedToLoad;
5963             if(!bindExtFunc(cast(void**)&glWindowPos3sMESA, "glWindowPos3sMESA"))
5964                 return GLExtensionState.FailedToLoad;
5965             if(!bindExtFunc(cast(void**)&glWindowPos3svMESA, "glWindowPos3svMESA"))
5966                 return GLExtensionState.FailedToLoad;
5967             if(!bindExtFunc(cast(void**)&glWindowPos4dMESA, "glWindowPos4dMESA"))
5968                 return GLExtensionState.FailedToLoad;
5969             if(!bindExtFunc(cast(void**)&glWindowPos4dvMESA, "glWindowPos4dvMESA"))
5970                 return GLExtensionState.FailedToLoad;
5971             if(!bindExtFunc(cast(void**)&glWindowPos4fMESA, "glWindowPos4fMESA"))
5972                 return GLExtensionState.FailedToLoad;
5973             if(!bindExtFunc(cast(void**)&glWindowPos4fvMESA, "glWindowPos4fvMESA"))
5974                 return GLExtensionState.FailedToLoad;
5975             if(!bindExtFunc(cast(void**)&glWindowPos4iMESA, "glWindowPos4iMESA"))
5976                 return GLExtensionState.FailedToLoad;
5977             if(!bindExtFunc(cast(void**)&glWindowPos4ivMESA, "glWindowPos4ivMESA"))
5978                 return GLExtensionState.FailedToLoad;
5979             if(!bindExtFunc(cast(void**)&glWindowPos4sMESA, "glWindowPos4sMESA"))
5980                 return GLExtensionState.FailedToLoad;
5981             if(!bindExtFunc(cast(void**)&glWindowPos4svMESA, "glWindowPos4svMESA"))
5982                 return GLExtensionState.FailedToLoad;
5983             return GLExtensionState.Loaded;
5984         }
5985 
5986         GLExtensionState load_GL_MESA_pack_invert()
5987         {
5988             if(!extIsSupported("GL_MESA_pack_invert"))
5989                 return GLExtensionState.DriverUnsupported;
5990             return GLExtensionState.Loaded;
5991         }
5992 
5993         GLExtensionState load_GL_MESA_ycbcr_texture()
5994         {
5995             if(!extIsSupported("GL_MESA_ycbcr_texture"))
5996                 return GLExtensionState.DriverUnsupported;
5997             return GLExtensionState.Loaded;
5998         }
5999     }
6000 
6001     version(DerelictGL_3DFX)
6002     {
6003         GLExtensionState load_GL_3DFX_texture_compression_FXT1()
6004         {
6005             if(!extIsSupported("GL_3DFX_texture_compression_FXT1"))
6006                 return GLExtensionState.DriverUnsupported;
6007             return GLExtensionState.Loaded;
6008         }
6009 
6010         GLExtensionState load_GL_3DFX_multisample()
6011         {
6012             if(!extIsSupported("GL_3DFX_multisample"))
6013                 return GLExtensionState.DriverUnsupported;
6014             return GLExtensionState.Loaded;
6015         }
6016 
6017         GLExtensionState load_GL_3DFX_tbuffer()
6018         {
6019             if(!extIsSupported("GL_3DFX_tbuffer"))
6020                 return GLExtensionState.DriverUnsupported;
6021             if(!bindExtFunc(cast(void**)&glTbufferMask3DFX, "glTbufferMask3DFX"))
6022                 return GLExtensionState.FailedToLoad;
6023             return GLExtensionState.Loaded;
6024         }
6025     }
6026 
6027     version(DerelictGL_OML)
6028     {
6029         GLExtensionState load_GL_OML_interlace()
6030         {
6031             if(!extIsSupported("GL_OML_interlace"))
6032                 return GLExtensionState.DriverUnsupported;
6033             return GLExtensionState.Loaded;
6034         }
6035 
6036         GLExtensionState load_GL_OML_subsample()
6037         {
6038             if(!extIsSupported("GL_OML_subsample"))
6039                 return GLExtensionState.DriverUnsupported;
6040             return GLExtensionState.Loaded;
6041         }
6042 
6043         GLExtensionState load_GL_OML_resample()
6044         {
6045             if(!extIsSupported("GL_OML_resample"))
6046                 return GLExtensionState.DriverUnsupported;
6047             return GLExtensionState.Loaded;
6048         }
6049     }
6050 
6051     version(DerelictGL_S3)
6052     {
6053         GLExtensionState load_GL_S3_s3tc()
6054         {
6055             if(!extIsSupported("GL_S3_s3tc"))
6056                 return GLExtensionState.DriverUnsupported;
6057             return GLExtensionState.Loaded;
6058         }
6059     }
6060 
6061     version(DerelictGL_OES)
6062     {
6063         GLExtensionState load_GL_OES_read_format()
6064         {
6065             if(!extIsSupported("GL_OES_read_format"))
6066                 return GLExtensionState.DriverUnsupported;
6067             return GLExtensionState.Loaded;
6068         }
6069     }
6070 
6071     version(DerelictGL_GREMEDY)
6072     {
6073         GLExtensionState load_GL_GREMEDY_string_marker()
6074         {
6075             if(!extIsSupported("GL_GREMEDY_string_marker"))
6076                 return GLExtensionState.DriverUnsupported;
6077             if(!bindExtFunc(cast(void**)&glStringMarkerGREMEDY, "glStringMarkerGREMEDY"))
6078                 return GLExtensionState.FailedToLoad;
6079             return GLExtensionState.Loaded;
6080         }
6081 
6082         GLExtensionState load_GL_GREMEDY_frame_terminator()
6083         {
6084             if(!extIsSupported("GL_GREMEDY_frame_terminator"))
6085                 return GLExtensionState.DriverUnsupported;
6086             if(!bindExtFunc(cast(void**)&glFrameTerminatorGREMEDY, "glFrameTerminatorGREMEDY"))
6087                 return GLExtensionState.FailedToLoad;
6088             return GLExtensionState.Loaded;
6089         }
6090     }
6091 
6092     version(DerelictGL_MESAX)
6093     {
6094         GLExtensionState load_GL_MESAX_texture_stack()
6095         {
6096             if(!extIsSupported("GL_MESAX_texture_stack"))
6097                 return GLExtensionState.DriverUnsupported;
6098             return GLExtensionState.Loaded;
6099         }
6100     }
6101 
6102     version(Windows)
6103     {
6104         // These two functions should always be compiled in.
6105         GLExtensionState load_WGL_ARB_extensions_string()
6106         {
6107             // don't bother checking for support, as it probably won't even be reported by the driver
6108             if(!bindExtFunc(cast(void**)&wglGetExtensionsStringARB, "wglGetExtensionsStringARB"))
6109                 return GLExtensionState.FailedToLoad;
6110             return GLExtensionState.Loaded;
6111         }
6112 
6113         GLExtensionState load_WGL_EXT_extensions_string()
6114         {
6115             if(!extIsSupported("WGL_EXT_extensions_string"))
6116                 return GLExtensionState.DriverUnsupported;
6117             if(!bindExtFunc(cast(void**)&wglGetExtensionsStringEXT, "wglGetExtensionsStringEXT"))
6118                 return GLExtensionState.FailedToLoad;
6119             return GLExtensionState.Loaded;
6120         }
6121 
6122         version(DerelictGL_ARB)
6123         {
6124             GLExtensionState load_WGL_ARB_buffer_region()
6125             {
6126                 if(!extIsSupported("WGL_ARB_buffer_region"))
6127                     return GLExtensionState.DriverUnsupported;
6128                 if(!bindExtFunc(cast(void**)&wglCreateBufferRegionARB, "wglCreateBufferRegionARB"))
6129                     return GLExtensionState.FailedToLoad;
6130                 if(!bindExtFunc(cast(void**)&wglDeleteBufferRegionARB, "wglDeleteBufferRegionARB"))
6131                     return GLExtensionState.FailedToLoad;
6132                 if(!bindExtFunc(cast(void**)&wglSaveBufferRegionARB, "wglSaveBufferRegionARB"))
6133                     return GLExtensionState.FailedToLoad;
6134                 if(!bindExtFunc(cast(void**)&wglRestoreBufferRegionARB, "wglRestoreBufferRegionARB"))
6135                     return GLExtensionState.FailedToLoad;
6136                 return GLExtensionState.Loaded;
6137             }
6138 
6139             GLExtensionState load_WGL_ARB_multisample()
6140             {
6141                 if(!extIsSupported("WGL_ARB_multisample"))
6142                     return GLExtensionState.DriverUnsupported;
6143                 return GLExtensionState.Loaded;
6144             }
6145 
6146             GLExtensionState load_WGL_ARB_pixel_format()
6147             {
6148                 if(!extIsSupported("WGL_ARB_pixel_format"))
6149                     return GLExtensionState.DriverUnsupported;
6150                 if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribivARB, "wglGetPixelFormatAttribivARB"))
6151                     return GLExtensionState.FailedToLoad;
6152                 if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribfvARB, "wglGetPixelFormatAttribfvARB"))
6153                     return GLExtensionState.FailedToLoad;
6154                 if(!bindExtFunc(cast(void**)&wglChoosePixelFormatARB, "wglChoosePixelFormatARB"))
6155                     return GLExtensionState.FailedToLoad;
6156                 return GLExtensionState.Loaded;
6157             }
6158 
6159             GLExtensionState load_WGL_ARB_make_current_read()
6160             {
6161                 if(!extIsSupported("WGL_ARB_make_current_read"))
6162                     return GLExtensionState.DriverUnsupported;
6163                 if(!bindExtFunc(cast(void**)&wglMakeContextCurrentARB, "wglMakeContextCurrentARB"))
6164                     return GLExtensionState.FailedToLoad;
6165                 if(!bindExtFunc(cast(void**)&wglGetCurrentReadDCARB, "wglGetCurrentReadDCARB"))
6166                     return GLExtensionState.FailedToLoad;
6167                 return GLExtensionState.Loaded;
6168             }
6169 
6170             GLExtensionState load_WGL_ARB_pbuffer()
6171             {
6172                 if(!extIsSupported("WGL_ARB_pbuffer"))
6173                     return GLExtensionState.DriverUnsupported;
6174                 if(!bindExtFunc(cast(void**)&wglCreatePbufferARB, "wglCreatePbufferARB"))
6175                     return GLExtensionState.FailedToLoad;
6176                 if(!bindExtFunc(cast(void**)&wglGetPbufferDCARB, "wglGetPbufferDCARB"))
6177                     return GLExtensionState.FailedToLoad;
6178                 if(!bindExtFunc(cast(void**)&wglReleasePbufferDCARB, "wglReleasePbufferDCARB"))
6179                     return GLExtensionState.FailedToLoad;
6180                 if(!bindExtFunc(cast(void**)&wglDestroyPbufferARB, "wglDestroyPbufferARB"))
6181                     return GLExtensionState.FailedToLoad;
6182                 if(!bindExtFunc(cast(void**)&wglQueryPbufferARB, "wglQueryPbufferARB"))
6183                     return GLExtensionState.FailedToLoad;
6184                 return GLExtensionState.Loaded;
6185             }
6186 
6187             GLExtensionState load_WGL_ARB_render_texture()
6188             {
6189                 if(!extIsSupported("WGL_ARB_render_texture"))
6190                     return GLExtensionState.DriverUnsupported;
6191                 if(!bindExtFunc(cast(void**)&wglBindTexImageARB, "wglBindTexImageARB"))
6192                     return GLExtensionState.FailedToLoad;
6193                 if(!bindExtFunc(cast(void**)&wglReleaseTexImageARB, "wglReleaseTexImageARB"))
6194                     return GLExtensionState.FailedToLoad;
6195                 if(!bindExtFunc(cast(void**)&wglSetPbufferAttribARB, "wglSetPbufferAttribARB"))
6196                     return GLExtensionState.FailedToLoad;
6197                 return GLExtensionState.Loaded;
6198             }
6199 
6200             GLExtensionState load_WGL_ARB_pixel_format_float()
6201             {
6202                 if(!extIsSupported("WGL_ARB_pixel_format_float"))
6203                     return GLExtensionState.DriverUnsupported;
6204                 return GLExtensionState.Loaded;
6205             }
6206 
6207             GLExtensionState load_WGL_ARB_create_context()
6208             {
6209                 if(!extIsSupported("WGL_ARB_create_context"))
6210                     return GLExtensionState.DriverUnsupported;
6211                 if(!bindExtFunc(cast(void**)&wglCreateContextAttribsARB, "wglCreateContextAttribsARB"))
6212                     return GLExtensionState.FailedToLoad;
6213                 return GLExtensionState.Loaded;
6214             }
6215 
6216             GLExtensionState load_WGL_ARB_framebuffer_sRGB()
6217             {
6218                 if(!extIsSupported("WGL_ARB_framebuffer_sRGB"))
6219                     return GLExtensionState.DriverUnsupported;
6220                 return GLExtensionState.Loaded;
6221             }
6222 
6223             GLExtensionState load_WGL_ARB_create_context_profile()
6224             {
6225                 if(!extIsSupported("WGL_ARB_create_context_profile"))
6226                     return GLExtensionState.DriverUnsupported;
6227                 return GLExtensionState.Loaded;
6228             }
6229         }
6230 
6231         version(DerelictGL_EXT)
6232         {
6233             GLExtensionState load_WGL_EXT_depth_float()
6234             {
6235                 if(!extIsSupported("WGL_EXT_depth_float"))
6236                     return GLExtensionState.DriverUnsupported;
6237                 return GLExtensionState.Loaded;
6238             }
6239 
6240             GLExtensionState load_WGL_EXT_display_color_table()
6241             {
6242                 if(!extIsSupported("WGL_EXT_display_color_table"))
6243                     return GLExtensionState.DriverUnsupported;
6244                 if(!bindExtFunc(cast(void**)&wglBindDisplayColorTableEXT, "wglBindDisplayColorTableEXT"))
6245                     return GLExtensionState.FailedToLoad;
6246                 if(!bindExtFunc(cast(void**)&wglCreateDisplayColorTableEXT, "wglCreateDisplayColorTableEXT"))
6247                     return GLExtensionState.FailedToLoad;
6248                 if(!bindExtFunc(cast(void**)&wglDestroyDisplayColorTableEXT, "wglDestroyDisplayColorTableEXT"))
6249                     return GLExtensionState.FailedToLoad;
6250                 if(!bindExtFunc(cast(void**)&wglLoadDisplayColorTableEXT, "wglLoadDisplayColorTableEXT"))
6251                     return GLExtensionState.FailedToLoad;
6252                 return GLExtensionState.Loaded;
6253             }
6254 
6255             GLExtensionState load_WGL_EXT_framebuffer_sRGB()
6256             {
6257                 if(!extIsSupported("WGL_EXT_framebuffer_sRGB"))
6258                     return GLExtensionState.DriverUnsupported;
6259                 return GLExtensionState.Loaded;
6260             }
6261 
6262             GLExtensionState load_WGL_EXT_make_current_read()
6263             {
6264                 if(!extIsSupported("WGL_EXT_make_current_read"))
6265                     return GLExtensionState.DriverUnsupported;
6266                 if(!bindExtFunc(cast(void**)&wglMakeContextCurrentEXT, "wglMakeContextCurrentEXT"))
6267                     return GLExtensionState.FailedToLoad;
6268                 if(!bindExtFunc(cast(void**)&wglGetCurrentReadDCEXT, "wglGetCurrentReadDCEXT"))
6269                     return GLExtensionState.FailedToLoad;
6270                 return GLExtensionState.Loaded;
6271             }
6272 
6273             GLExtensionState load_WGL_EXT_multisample()
6274             {
6275                 if(!extIsSupported("WGL_EXT_multisample"))
6276                     return GLExtensionState.DriverUnsupported;
6277                 return GLExtensionState.Loaded;
6278             }
6279 
6280             GLExtensionState load_WGL_EXT_pbuffer()
6281             {
6282                 if(!extIsSupported("WGL_EXT_pbuffer"))
6283                     return GLExtensionState.DriverUnsupported;
6284                 if(!bindExtFunc(cast(void**)&wglCreatePbufferEXT, "wglCreatePbufferEXT"))
6285                     return GLExtensionState.FailedToLoad;
6286                 if(!bindExtFunc(cast(void**)&wglDestroyPbufferEXT, "wglDestroyPbufferEXT"))
6287                     return GLExtensionState.FailedToLoad;
6288                 if(!bindExtFunc(cast(void**)&wglGetPbufferDCEXT, "wglGetPbufferDCEXT"))
6289                     return GLExtensionState.FailedToLoad;
6290                 if(!bindExtFunc(cast(void**)&wglQueryPbufferEXT, "wglQueryPbufferEXT"))
6291                     return GLExtensionState.FailedToLoad;
6292                 if(!bindExtFunc(cast(void**)&wglReleasePbufferDCEXT, "wglReleasePbufferDCEXT"))
6293                     return GLExtensionState.FailedToLoad;
6294                 return GLExtensionState.Loaded;
6295             }
6296 
6297             GLExtensionState load_WGL_EXT_pixel_format()
6298             {
6299                 if(!extIsSupported("WGL_EXT_pixel_format"))
6300                     return GLExtensionState.DriverUnsupported;
6301                 if(!bindExtFunc(cast(void**)&wglChoosePixelFormatEXT, "wglChoosePixelFormatEXT"))
6302                     return GLExtensionState.FailedToLoad;
6303                 if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribfvEXT, "wglGetPixelFormatAttribfvEXT"))
6304                     return GLExtensionState.FailedToLoad;
6305                 if(!bindExtFunc(cast(void**)&wglGetPixelFormatAttribivEXT, "wglGetPixelFormatAttribivEXT"))
6306                     return GLExtensionState.FailedToLoad;
6307                 return GLExtensionState.Loaded;
6308             }
6309 
6310             GLExtensionState load_WGL_EXT_pixel_format_packed_float()
6311             {
6312                 if(!extIsSupported("WGL_EXT_pixel_format_packed_float"))
6313                     return GLExtensionState.DriverUnsupported;
6314                 return GLExtensionState.Loaded;
6315             }
6316 
6317             GLExtensionState load_WGL_EXT_swap_control()
6318             {
6319                 if(!extIsSupported("WGL_EXT_swap_control"))
6320                     return GLExtensionState.DriverUnsupported;
6321                 if(!bindExtFunc(cast(void**)&wglGetSwapIntervalEXT, "wglGetSwapIntervalEXT"))
6322                     return GLExtensionState.FailedToLoad;
6323                 if(!bindExtFunc(cast(void**)&wglSwapIntervalEXT, "wglSwapIntervalEXT"))
6324                     return GLExtensionState.FailedToLoad;
6325                 return GLExtensionState.Loaded;
6326             }
6327         }
6328 
6329         version(DerelictGL_NV)
6330         {
6331             GLExtensionState load_WGL_NV_copy_image()
6332             {
6333                 if(!extIsSupported("WGL_NV_copy_image"))
6334                     return GLExtensionState.DriverUnsupported;
6335                 if(!bindExtFunc(cast(void**)&wglCopyImageSubDataNV, "wglCopyImageSubDataNV"))
6336                     return GLExtensionState.FailedToLoad;
6337                 return GLExtensionState.Loaded;
6338             }
6339 
6340             GLExtensionState load_WGL_NV_float_buffer()
6341             {
6342                 if(!extIsSupported("WGL_NV_float_buffer"))
6343                     return GLExtensionState.DriverUnsupported;
6344                 return GLExtensionState.Loaded;
6345             }
6346 
6347             GLExtensionState load_WGL_NV_gpu_affinity()
6348             {
6349                 if(!extIsSupported("WGL_NV_gpu_affinity"))
6350                     return GLExtensionState.DriverUnsupported;
6351                 if(!bindExtFunc(cast(void**)&wglCreateAffinityDCNV, "wglCreateAffinityDCNV"))
6352                     return GLExtensionState.FailedToLoad;
6353                 if(!bindExtFunc(cast(void**)&wglDeleteDCNV, "wglDeleteDCNV"))
6354                     return GLExtensionState.FailedToLoad;
6355                 if(!bindExtFunc(cast(void**)&wglEnumGpuDevicesNV, "wglEnumGpuDevicesNV"))
6356                     return GLExtensionState.FailedToLoad;
6357                 if(!bindExtFunc(cast(void**)&wglEnumGpusFromAffinityDCNV, "wglEnumGpusFromAffinityDCNV"))
6358                     return GLExtensionState.FailedToLoad;
6359                 if(!bindExtFunc(cast(void**)&wglEnumGpusNV, "wglEnumGpusNV"))
6360                     return GLExtensionState.FailedToLoad;
6361                 return GLExtensionState.Loaded;
6362             }
6363 
6364             GLExtensionState load_WGL_NV_multisample_coverage()
6365             {
6366                 if(!extIsSupported("WGL_NV_multisample_coverage"))
6367                     return GLExtensionState.DriverUnsupported;
6368                 return GLExtensionState.Loaded;
6369             }
6370 
6371             GLExtensionState load_WGL_NV_present_video()
6372             {
6373                 if(!extIsSupported("WGL_NV_present_video"))
6374                     return GLExtensionState.DriverUnsupported;
6375                 if(!bindExtFunc(cast(void**)&wglBindVideoDeviceNV, "wglBindVideoDeviceNV"))
6376                     return GLExtensionState.FailedToLoad;
6377                 if(!bindExtFunc(cast(void**)&wglEnumerateVideoDevicesNV, "wglEnumerateVideoDevicesNV"))
6378                     return GLExtensionState.FailedToLoad;
6379                 if(!bindExtFunc(cast(void**)&wglQueryCurrentContextNV, "wglQueryCurrentContextNV"))
6380                     return GLExtensionState.FailedToLoad;
6381                 return GLExtensionState.Loaded;
6382             }
6383 
6384             GLExtensionState load_WGL_NV_render_depth_texture()
6385             {
6386                 if(!extIsSupported("WGL_NV_render_depth_texture"))
6387                     return GLExtensionState.DriverUnsupported;
6388                 return GLExtensionState.Loaded;
6389             }
6390 
6391             GLExtensionState load_WGL_NV_render_texture_rectangle()
6392             {
6393                 if(!extIsSupported("WGL_NV_render_texture_rectangle"))
6394                     return GLExtensionState.DriverUnsupported;
6395                 return GLExtensionState.Loaded;
6396             }
6397 
6398             GLExtensionState load_WGL_NV_swap_group()
6399             {
6400                 if(!extIsSupported("WGL_NV_swap_group"))
6401                     return GLExtensionState.DriverUnsupported;
6402                 if(!bindExtFunc(cast(void**)&wglBindSwapBarrierNV, "wglBindSwapBarrierNV"))
6403                     return GLExtensionState.FailedToLoad;
6404                 if(!bindExtFunc(cast(void**)&wglJoinSwapGroupNV, "wglJoinSwapGroupNV"))
6405                     return GLExtensionState.FailedToLoad;
6406                 if(!bindExtFunc(cast(void**)&wglQueryFrameCountNV, "wglQueryFrameCountNV"))
6407                     return GLExtensionState.FailedToLoad;
6408                 if(!bindExtFunc(cast(void**)&wglQueryMaxSwapGroupsNV, "wglQueryMaxSwapGroupsNV"))
6409                     return GLExtensionState.FailedToLoad;
6410                 if(!bindExtFunc(cast(void**)&wglQuerySwapGroupNV, "wglQuerySwapGroupNV"))
6411                     return GLExtensionState.FailedToLoad;
6412                 if(!bindExtFunc(cast(void**)&wglResetFrameCountNV, "wglResetFrameCountNV"))
6413                     return GLExtensionState.FailedToLoad;
6414                 return GLExtensionState.Loaded;
6415             }
6416 
6417             GLExtensionState load_WGL_NV_vertex_array_range()
6418             {
6419                 if(!extIsSupported("WGL_NV_vertex_array_range"))
6420                     return GLExtensionState.DriverUnsupported;
6421                 if(!bindExtFunc(cast(void**)&wglAllocateMemoryNV, "wglAllocateMemoryNV"))
6422                     return GLExtensionState.FailedToLoad;
6423                 if(!bindExtFunc(cast(void**)&wglFreeMemoryNV, "wglFreeMemoryNV"))
6424                     return GLExtensionState.FailedToLoad;
6425                 return GLExtensionState.Loaded;
6426             }
6427 
6428             GLExtensionState load_WGL_NV_video_output()
6429             {
6430                 if(!extIsSupported("WGL_NV_video_output"))
6431                     return GLExtensionState.DriverUnsupported;
6432                 if(!bindExtFunc(cast(void**)&wglBindVideoImageNV, "wglBindVideoImageNV"))
6433                     return GLExtensionState.FailedToLoad;
6434                 if(!bindExtFunc(cast(void**)&wglGetVideoDeviceNV, "wglGetVideoDeviceNV"))
6435                     return GLExtensionState.FailedToLoad;
6436                 if(!bindExtFunc(cast(void**)&wglGetVideoInfoNV, "wglGetVideoInfoNV"))
6437                     return GLExtensionState.FailedToLoad;
6438                 if(!bindExtFunc(cast(void**)&wglReleaseVideoDeviceNV, "wglReleaseVideoDeviceNV"))
6439                     return GLExtensionState.FailedToLoad;
6440                 if(!bindExtFunc(cast(void**)&wglReleaseVideoImageNV, "wglReleaseVideoImageNV"))
6441                     return GLExtensionState.FailedToLoad;
6442                 if(!bindExtFunc(cast(void**)&wglSendPbufferToVideoNV, "wglSendPbufferToVideoNV"))
6443                     return GLExtensionState.FailedToLoad;
6444                 return GLExtensionState.Loaded;
6445             }
6446         }
6447 
6448         version(DerelictGL_ATI)
6449         {
6450             GLExtensionState load_WGL_ATI_pixel_format_float()
6451             {
6452                 if(!extIsSupported("WGL_ATI_pixel_format_float"))
6453                     return GLExtensionState.DriverUnsupported;
6454                 return GLExtensionState.Loaded;
6455             }
6456 
6457             GLExtensionState load_WGL_ATI_render_texture_rectangle()
6458             {
6459                 if(!extIsSupported("WGL_ATI_render_texture_rectangle"))
6460                     return GLExtensionState.DriverUnsupported;
6461                 return GLExtensionState.Loaded;
6462             }
6463         }
6464 
6465         version(DerelictGL_AMD)
6466         {
6467             GLExtensionState load_WGL_AMD_gpu_association()
6468             {
6469                 if(!extIsSupported("WGL_AMD_gpu_association"))
6470                     return GLExtensionState.DriverUnsupported;
6471                 if(!bindExtFunc(cast(void**)&wglBlitContextFramebufferAMD, "wglBlitContextFramebufferAMD"))
6472                     return GLExtensionState.FailedToLoad;
6473                 if(!bindExtFunc(cast(void**)&wglCreateAssociatedContextAMD, "wglCreateAssociatedContextAMD"))
6474                     return GLExtensionState.FailedToLoad;
6475                 if(!bindExtFunc(cast(void**)&wglCreateAssociatedContextAttribsAMD, "wglCreateAssociatedContextAttribsAMD"))
6476                     return GLExtensionState.FailedToLoad;
6477                 if(!bindExtFunc(cast(void**)&wglDeleteAssociatedContextAMD, "wglDeleteAssociatedContextAMD"))
6478                     return GLExtensionState.FailedToLoad;
6479                 if(!bindExtFunc(cast(void**)&wglGetContextGPUIDAMD, "wglGetContextGPUIDAMD"))
6480                     return GLExtensionState.FailedToLoad;
6481                 if(!bindExtFunc(cast(void**)&wglGetCurrentAssociatedContextAMD, "wglGetCurrentAssociatedContextAMD"))
6482                     return GLExtensionState.FailedToLoad;
6483                 if(!bindExtFunc(cast(void**)&wglGetGPUIDsAMD, "wglGetGPUIDsAMD"))
6484                     return GLExtensionState.FailedToLoad;
6485                 if(!bindExtFunc(cast(void**)&wglGetGPUInfoAMD, "wglGetGPUInfoAMD"))
6486                     return GLExtensionState.FailedToLoad;
6487                 if(!bindExtFunc(cast(void**)&wglMakeAssociatedContextCurrentAMD, "wglMakeAssociatedContextCurrentAMD"))
6488                     return GLExtensionState.FailedToLoad;
6489                 return GLExtensionState.Loaded;
6490             }
6491         }
6492 
6493         version(DerelictGL_I3D)
6494         {
6495             GLExtensionState load_WGL_I3D_digital_video_control()
6496             {
6497                 if(!extIsSupported("WGL_I3D_digital_video_control"))
6498                     return GLExtensionState.DriverUnsupported;
6499                 if(!bindExtFunc(cast(void**)&wglGetDigitalVideoParametersI3D, "wglGetDigitalVideoParametersI3D"))
6500                     return GLExtensionState.FailedToLoad;
6501                 if(!bindExtFunc(cast(void**)&wglSetDigitalVideoParametersI3D, "wglSetDigitalVideoParametersI3D"))
6502                     return GLExtensionState.FailedToLoad;
6503                 return GLExtensionState.Loaded;
6504             }
6505 
6506             GLExtensionState load_WGL_I3D_gamma()
6507             {
6508                 if(!extIsSupported("WGL_I3D_gamma"))
6509                     return GLExtensionState.DriverUnsupported;
6510                 if(!bindExtFunc(cast(void**)&wglGetGammaTableI3D, "wglGetGammaTableI3D"))
6511                     return GLExtensionState.FailedToLoad;
6512                 if(!bindExtFunc(cast(void**)&wglGetGammaTableParametersI3D, "wglGetGammaTableParametersI3D"))
6513                     return GLExtensionState.FailedToLoad;
6514                 if(!bindExtFunc(cast(void**)&wglSetGammaTableI3D, "wglSetGammaTableI3D"))
6515                     return GLExtensionState.FailedToLoad;
6516                 if(!bindExtFunc(cast(void**)&wglSetGammaTableParametersI3D, "wglSetGammaTableParametersI3D"))
6517                     return GLExtensionState.FailedToLoad;
6518                 return GLExtensionState.Loaded;
6519             }
6520 
6521             GLExtensionState load_WGL_I3D_genlock()
6522             {
6523                 if(!extIsSupported("WGL_I3D_genlock"))
6524                     return GLExtensionState.DriverUnsupported;
6525                 if(!bindExtFunc(cast(void**)&wglDisableGenlockI3D, "wglDisableGenlockI3D"))
6526                     return GLExtensionState.FailedToLoad;
6527                 if(!bindExtFunc(cast(void**)&wglEnableGenlockI3D, "wglEnableGenlockI3D"))
6528                     return GLExtensionState.FailedToLoad;
6529                 if(!bindExtFunc(cast(void**)&wglGenlockSampleRateI3D, "wglGenlockSampleRateI3D"))
6530                     return GLExtensionState.FailedToLoad;
6531                 if(!bindExtFunc(cast(void**)&wglGenlockSourceDelayI3D, "wglGenlockSourceDelayI3D"))
6532                     return GLExtensionState.FailedToLoad;
6533                 if(!bindExtFunc(cast(void**)&wglGenlockSourceEdgeI3D, "wglGenlockSourceEdgeI3D"))
6534                     return GLExtensionState.FailedToLoad;
6535                 if(!bindExtFunc(cast(void**)&wglGenlockSourceI3D, "wglGenlockSourceI3D"))
6536                     return GLExtensionState.FailedToLoad;
6537                 if(!bindExtFunc(cast(void**)&wglGetGenlockSampleRateI3D, "wglGetGenlockSampleRateI3D"))
6538                     return GLExtensionState.FailedToLoad;
6539                 if(!bindExtFunc(cast(void**)&wglGetGenlockSourceDelayI3D, "wglGetGenlockSourceDelayI3D"))
6540                     return GLExtensionState.FailedToLoad;
6541                 if(!bindExtFunc(cast(void**)&wglGetGenlockSourceEdgeI3D, "wglGetGenlockSourceEdgeI3D"))
6542                     return GLExtensionState.FailedToLoad;
6543                 if(!bindExtFunc(cast(void**)&wglGetGenlockSourceI3D, "wglGetGenlockSourceI3D"))
6544                     return GLExtensionState.FailedToLoad;
6545                 if(!bindExtFunc(cast(void**)&wglIsEnabledGenlockI3D, "wglIsEnabledGenlockI3D"))
6546                     return GLExtensionState.FailedToLoad;
6547                 if(!bindExtFunc(cast(void**)&wglQueryGenlockMaxSourceDelayI3D, "wglQueryGenlockMaxSourceDelayI3D"))
6548                     return GLExtensionState.FailedToLoad;
6549                 return GLExtensionState.Loaded;
6550             }
6551 
6552             GLExtensionState load_WGL_I3D_image_buffer()
6553             {
6554                 if(!extIsSupported("WGL_I3D_image_buffer"))
6555                     return GLExtensionState.DriverUnsupported;
6556                 if(!bindExtFunc(cast(void**)&wglAssociateImageBufferEventsI3D, "wglAssociateImageBufferEventsI3D"))
6557                     return GLExtensionState.FailedToLoad;
6558                 if(!bindExtFunc(cast(void**)&wglCreateImageBufferI3D, "wglCreateImageBufferI3D"))
6559                     return GLExtensionState.FailedToLoad;
6560                 if(!bindExtFunc(cast(void**)&wglDestroyImageBufferI3D, "wglDestroyImageBufferI3D"))
6561                     return GLExtensionState.FailedToLoad;
6562                 if(!bindExtFunc(cast(void**)&wglReleaseImageBufferEventsI3D, "wglReleaseImageBufferEventsI3D"))
6563                     return GLExtensionState.FailedToLoad;
6564                 return GLExtensionState.Loaded;
6565             }
6566 
6567             GLExtensionState load_WGL_I3D_swap_frame_lock()
6568             {
6569                 if(!extIsSupported("WGL_I3D_swap_frame_lock"))
6570                     return GLExtensionState.DriverUnsupported;
6571                 if(!bindExtFunc(cast(void**)&wglDisableFrameLockI3D, "wglDisableFrameLockI3D"))
6572                     return GLExtensionState.FailedToLoad;
6573                 if(!bindExtFunc(cast(void**)&wglEnableFrameLockI3D, "wglEnableFrameLockI3D"))
6574                     return GLExtensionState.FailedToLoad;
6575                 if(!bindExtFunc(cast(void**)&wglIsEnabledFrameLockI3D, "wglIsEnabledFrameLockI3D"))
6576                     return GLExtensionState.FailedToLoad;
6577                 if(!bindExtFunc(cast(void**)&wglQueryFrameLockMasterI3D, "wglQueryFrameLockMasterI3D"))
6578                     return GLExtensionState.FailedToLoad;
6579                 return GLExtensionState.Loaded;
6580             }
6581 
6582             GLExtensionState load_WGL_I3D_swap_frame_usage()
6583             {
6584                 if(!extIsSupported("WGL_I3D_swap_frame_usage"))
6585                     return GLExtensionState.DriverUnsupported;
6586                 if(!bindExtFunc(cast(void**)&wglBeginFrameTrackingI3D, "wglBeginFrameTrackingI3D"))
6587                     return GLExtensionState.FailedToLoad;
6588                 if(!bindExtFunc(cast(void**)&wglEndFrameTrackingI3D, "wglEndFrameTrackingI3D"))
6589                     return GLExtensionState.FailedToLoad;
6590                 if(!bindExtFunc(cast(void**)&wglGetFrameUsageI3D, "wglGetFrameUsageI3D"))
6591                     return GLExtensionState.FailedToLoad;
6592                 if(!bindExtFunc(cast(void**)&wglQueryFrameTrackingI3D, "wglQueryFrameTrackingI3D"))
6593                     return GLExtensionState.FailedToLoad;
6594                 return GLExtensionState.Loaded;
6595             }
6596         }
6597 
6598         version(DerelictGL_OML)
6599         {
6600             GLExtensionState load_WGL_OML_sync_control()
6601             {
6602                 if(!extIsSupported("WGL_OML_sync_control"))
6603                     return GLExtensionState.DriverUnsupported;
6604                 if(!bindExtFunc(cast(void**)&wglGetMscRateOML, "wglGetMscRateOML"))
6605                     return GLExtensionState.FailedToLoad;
6606                 if(!bindExtFunc(cast(void**)&wglGetSyncValuesOML, "wglGetSyncValuesOML"))
6607                     return GLExtensionState.FailedToLoad;
6608                 if(!bindExtFunc(cast(void**)&wglSwapBuffersMscOML, "wglSwapBuffersMscOML"))
6609                     return GLExtensionState.FailedToLoad;
6610                 if(!bindExtFunc(cast(void**)&wglSwapLayerBuffersMscOML, "wglSwapLayerBuffersMscOML"))
6611                     return GLExtensionState.FailedToLoad;
6612                 if(!bindExtFunc(cast(void**)&wglWaitForMscOML, "wglWaitForMscOML"))
6613                     return GLExtensionState.FailedToLoad;
6614                 if(!bindExtFunc(cast(void**)&wglWaitForSbcOML, "wglWaitForSbcOML"))
6615                     return GLExtensionState.FailedToLoad;
6616                 return GLExtensionState.Loaded;
6617             }
6618         }
6619 
6620         version(DerelictGL_3DFX)
6621         {
6622             GLExtensionState load_WGL_3DFX_multisample()
6623             {
6624                 if(!extIsSupported("WGL_3DFX_multisample"))
6625                     return GLExtensionState.DriverUnsupported;
6626                 return GLExtensionState.Loaded;
6627             }
6628         }
6629 
6630         version(DerelictGL_3DL)
6631         {
6632             GLExtensionState load_WGL_3DL_stereo_control()
6633             {
6634                 if(!extIsSupported("WGL_3DL_stereo_control"))
6635                     return GLExtensionState.DriverUnsupported;
6636                 if(!bindExtFunc(cast(void**)&wglSetStereoEmitterState3DL, "wglSetStereoEmitterState3DL"))
6637                     return GLExtensionState.FailedToLoad;
6638                 return GLExtensionState.Loaded;
6639             }
6640         }
6641     }
6642 }