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