added glewGetExtension and updated documentation

git-svn-id: https://glew.svn.sourceforge.net/svnroot/glew/trunk/glew@6 783a27ee-832a-0410-bc00-9f386506c6dd
This commit is contained in:
ikits 2002-12-15 07:36:45 +00:00
parent d265d66188
commit 59a9ddb867
6 changed files with 217 additions and 203 deletions

View File

@ -264,7 +264,14 @@ see if OpenGL 1.3 is supported you can use the following:
</pre></blockquote>
In general, you can check if <tt>glew.{extension_name}</tt> or
<tt>glew.GL_{version}</tt> is set or not.
<tt>glew.GL_{version}</tt> is set or not. For extensions
<tt>glewGetExtension</tt> provides a slower alternative:
<blockquote><pre>if (GL_TRUE == glewGetExtension("GL_ARB_fragment_program"))
{
/* Looks like ARB_fragment_program is supported. */
}
</pre></blockquote>
<p>
@ -372,7 +379,7 @@ tutorial.
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td align="left">
<i>Last update: 12-12-02</i></td>
<i>Last update: 12-14-02</i></td>
</tr>
</table>
</td>

View File

@ -31,8 +31,8 @@
** Copyright (C) 2002, Lev Povalahev
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without modification,
** are permitted provided that the following conditions are met:
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
**
** * Redistributions of source code must retain the above copyright notice,
** this list of conditions and the following disclaimer.
@ -42,15 +42,16 @@
** * The name of the author may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
** INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
** OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
*/
@ -4554,6 +4555,7 @@ struct GLEW
extern GLEW_EXPORT struct GLEW glew;
extern GLEW_EXPORT GLboolean glewExperimental;
extern GLEW_EXPORT GLint glewInit ();
extern GLEW_EXPORT GLboolean glewGetExtension (const char* name);
extern GLEW_EXPORT const char* glewGetErrorString (GLint error);
#ifdef __cplusplus

View File

@ -786,6 +786,7 @@ struct GLXEW
};
extern struct GLXEW glxew;
extern GLboolean glxewGetExtension (const char* name);
#ifdef __cplusplus
}

View File

@ -31,26 +31,27 @@
** Copyright (C) 2002, Lev Povalahev
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without modification,
** are permitted provided that the following conditions are met:
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
**
** * Redistributions of source code must retain the above copyright notice,
** this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright notice,
** this list of conditions and the following disclaimer in the documentation
** and/or other materials provided with the distribution.
** * The name of the authors may be used to endorse or promote products
** * The name of the author may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
** INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
** OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
*/
@ -745,6 +746,7 @@ struct WGLEW
};
extern GLEW_EXPORT struct WGLEW wglew;
extern GLEW_EXPORT GLboolean wglewGetExtension (const char* name);
#ifdef __cplusplus
}

View File

@ -50,8 +50,8 @@
** Copyright (C) 2002, Lev Povalahev
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without modification,
** are permitted provided that the following conditions are met:
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
**
** * Redistributions of source code must retain the above copyright notice,
** this list of conditions and the following disclaimer.
@ -61,15 +61,16 @@
** * The name of the author may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
** INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
** OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
*/
@ -2622,7 +2623,7 @@ void* _glewMemSet (void *s, char c, int n)
* other extension names. Could use strtok() but the constant
* string returned by glGetString might be in read-only memory.
*/
static GLboolean _glewGetExt (const char *name)
GLboolean glewGetExtension (const char *name)
{
char *p, *end;
int len = _glewStrLen(name);
@ -2686,369 +2687,369 @@ static GLint _glewInit ()
#endif
/* load extensions */
#ifdef GL_ARB_depth_texture
glew.ARB_depth_texture = _glewGetExt("GL_ARB_depth_texture");
glew.ARB_depth_texture = glewGetExtension("GL_ARB_depth_texture");
#endif
#ifdef GL_ARB_fragment_program
glew.ARB_fragment_program = _glewGetExt("GL_ARB_fragment_program");
glew.ARB_fragment_program = glewGetExtension("GL_ARB_fragment_program");
#endif
#ifdef GL_ARB_imaging
glew.ARB_imaging = _glewGetExt("GL_ARB_imaging");
glew.ARB_imaging = glewGetExtension("GL_ARB_imaging");
if (glewExperimental || glew.ARB_imaging) glew.ARB_imaging = !_glewInit_ARB_imaging();
#endif
#ifdef GL_ARB_matrix_palette
glew.ARB_matrix_palette = _glewGetExt("GL_ARB_matrix_palette");
glew.ARB_matrix_palette = glewGetExtension("GL_ARB_matrix_palette");
if (glewExperimental || glew.ARB_matrix_palette) glew.ARB_matrix_palette = !_glewInit_ARB_matrix_palette();
#endif
#ifdef GL_ARB_multisample
glew.ARB_multisample = _glewGetExt("GL_ARB_multisample");
glew.ARB_multisample = glewGetExtension("GL_ARB_multisample");
if (glewExperimental || glew.ARB_multisample) glew.ARB_multisample = !_glewInit_ARB_multisample();
#endif
#ifdef GL_ARB_multitexture
glew.ARB_multitexture = _glewGetExt("GL_ARB_multitexture");
glew.ARB_multitexture = glewGetExtension("GL_ARB_multitexture");
if (glewExperimental || glew.ARB_multitexture) glew.ARB_multitexture = !_glewInit_ARB_multitexture();
#endif
#ifdef GL_ARB_point_parameters
glew.ARB_point_parameters = _glewGetExt("GL_ARB_point_parameters");
glew.ARB_point_parameters = glewGetExtension("GL_ARB_point_parameters");
if (glewExperimental || glew.ARB_point_parameters) glew.ARB_point_parameters = !_glewInit_ARB_point_parameters();
#endif
#ifdef GL_ARB_shadow
glew.ARB_shadow = _glewGetExt("GL_ARB_shadow");
glew.ARB_shadow = glewGetExtension("GL_ARB_shadow");
#endif
#ifdef GL_ARB_shadow_ambient
glew.ARB_shadow_ambient = _glewGetExt("GL_ARB_shadow_ambient");
glew.ARB_shadow_ambient = glewGetExtension("GL_ARB_shadow_ambient");
#endif
#ifdef GL_ARB_texture_border_clamp
glew.ARB_texture_border_clamp = _glewGetExt("GL_ARB_texture_border_clamp");
glew.ARB_texture_border_clamp = glewGetExtension("GL_ARB_texture_border_clamp");
#endif
#ifdef GL_ARB_texture_compression
glew.ARB_texture_compression = _glewGetExt("GL_ARB_texture_compression");
glew.ARB_texture_compression = glewGetExtension("GL_ARB_texture_compression");
if (glewExperimental || glew.ARB_texture_compression) glew.ARB_texture_compression = !_glewInit_ARB_texture_compression();
#endif
#ifdef GL_ARB_texture_cube_map
glew.ARB_texture_cube_map = _glewGetExt("GL_ARB_texture_cube_map");
glew.ARB_texture_cube_map = glewGetExtension("GL_ARB_texture_cube_map");
#endif
#ifdef GL_ARB_texture_env_add
glew.ARB_texture_env_add = _glewGetExt("GL_ARB_texture_env_add");
glew.ARB_texture_env_add = glewGetExtension("GL_ARB_texture_env_add");
#endif
#ifdef GL_ARB_texture_env_combine
glew.ARB_texture_env_combine = _glewGetExt("GL_ARB_texture_env_combine");
glew.ARB_texture_env_combine = glewGetExtension("GL_ARB_texture_env_combine");
#endif
#ifdef GL_ARB_texture_env_crossbar
glew.ARB_texture_env_crossbar = _glewGetExt("GL_ARB_texture_env_crossbar");
glew.ARB_texture_env_crossbar = glewGetExtension("GL_ARB_texture_env_crossbar");
#endif
#ifdef GL_ARB_texture_env_dot3
glew.ARB_texture_env_dot3 = _glewGetExt("GL_ARB_texture_env_dot3");
glew.ARB_texture_env_dot3 = glewGetExtension("GL_ARB_texture_env_dot3");
#endif
#ifdef GL_ARB_texture_mirrored_repeat
glew.ARB_texture_mirrored_repeat = _glewGetExt("GL_ARB_texture_mirrored_repeat");
glew.ARB_texture_mirrored_repeat = glewGetExtension("GL_ARB_texture_mirrored_repeat");
#endif
#ifdef GL_ARB_transpose_matrix
glew.ARB_transpose_matrix = _glewGetExt("GL_ARB_transpose_matrix");
glew.ARB_transpose_matrix = glewGetExtension("GL_ARB_transpose_matrix");
if (glewExperimental || glew.ARB_transpose_matrix) glew.ARB_transpose_matrix = !_glewInit_ARB_transpose_matrix();
#endif
#ifdef GL_ARB_vertex_blend
glew.ARB_vertex_blend = _glewGetExt("GL_ARB_vertex_blend");
glew.ARB_vertex_blend = glewGetExtension("GL_ARB_vertex_blend");
if (glewExperimental || glew.ARB_vertex_blend) glew.ARB_vertex_blend = !_glewInit_ARB_vertex_blend();
#endif
#ifdef GL_ARB_vertex_program
glew.ARB_vertex_program = _glewGetExt("GL_ARB_vertex_program");
glew.ARB_vertex_program = glewGetExtension("GL_ARB_vertex_program");
if (glewExperimental || glew.ARB_vertex_program) glew.ARB_vertex_program = !_glewInit_ARB_vertex_program();
#endif
#ifdef GL_ARB_window_pos
glew.ARB_window_pos = _glewGetExt("GL_ARB_window_pos");
glew.ARB_window_pos = glewGetExtension("GL_ARB_window_pos");
if (glewExperimental || glew.ARB_window_pos) glew.ARB_window_pos = !_glewInit_ARB_window_pos();
#endif
#ifdef GL_EXT_abgr
glew.EXT_abgr = _glewGetExt("GL_EXT_abgr");
glew.EXT_abgr = glewGetExtension("GL_EXT_abgr");
#endif
#ifdef GL_EXT_bgra
glew.EXT_bgra = _glewGetExt("GL_EXT_bgra");
glew.EXT_bgra = glewGetExtension("GL_EXT_bgra");
#endif
#ifdef GL_EXT_blend_color
glew.EXT_blend_color = _glewGetExt("GL_EXT_blend_color");
glew.EXT_blend_color = glewGetExtension("GL_EXT_blend_color");
if (glewExperimental || glew.EXT_blend_color) glew.EXT_blend_color = !_glewInit_EXT_blend_color();
#endif
#ifdef GL_EXT_blend_function_separate
glew.EXT_blend_func_separate = _glewGetExt("GL_EXT_blend_function_separate");
glew.EXT_blend_func_separate = glewGetExtension("GL_EXT_blend_function_separate");
if (glewExperimental || glew.EXT_blend_func_separate) glew.EXT_blend_func_separate = !_glewInit_EXT_blend_function_separate();
#endif
#ifdef GL_EXT_blend_minmax
glew.EXT_blend_minmax = _glewGetExt("GL_EXT_blend_minmax");
glew.EXT_blend_minmax = glewGetExtension("GL_EXT_blend_minmax");
if (glewExperimental || glew.EXT_blend_minmax) glew.EXT_blend_minmax = !_glewInit_EXT_blend_minmax();
#endif
#ifdef GL_EXT_blend_subtract
glew.EXT_blend_subtract = _glewGetExt("GL_EXT_blend_subtract");
glew.EXT_blend_subtract = glewGetExtension("GL_EXT_blend_subtract");
#endif
#ifdef GL_EXT_clip_volume_hint
glew.EXT_compiled_vertex_array = _glewGetExt("GL_EXT_clip_volume_hint");
glew.EXT_compiled_vertex_array = glewGetExtension("GL_EXT_clip_volume_hint");
#endif
#ifdef GL_EXT_compiled_vertex_array
glew.EXT_compiled_vertex_array = _glewGetExt("GL_EXT_compiled_vertex_array");
glew.EXT_compiled_vertex_array = glewGetExtension("GL_EXT_compiled_vertex_array");
if (glewExperimental || glew.EXT_compiled_vertex_array) glew.EXT_compiled_vertex_array = !_glewInit_EXT_compiled_vertex_array();
#endif
#ifdef GL_EXT_cull_vertex
glew.EXT_cull_vertex = _glewGetExt("GL_EXT_cull_vertex");
glew.EXT_cull_vertex = glewGetExtension("GL_EXT_cull_vertex");
if (glewExperimental || glew.EXT_cull_vertex) glew.EXT_cull_vertex = !_glewInit_EXT_cull_vertex();
#endif
#ifdef GL_EXT_draw_range_elements
glew.EXT_draw_range_elements = _glewGetExt("GL_EXT_draw_range_elements");
glew.EXT_draw_range_elements = glewGetExtension("GL_EXT_draw_range_elements");
if (glewExperimental || glew.EXT_draw_range_elements) glew.EXT_draw_range_elements = !_glewInit_EXT_draw_range_elements();
#endif
#ifdef GL_EXT_fog_coord
glew.EXT_fog_coord = _glewGetExt("GL_EXT_fog_coord");
glew.EXT_fog_coord = glewGetExtension("GL_EXT_fog_coord");
if (glewExperimental || glew.EXT_fog_coord) glew.EXT_fog_coord = !_glewInit_EXT_fog_coord();
#endif
#ifdef GL_EXT_multi_draw_arrays
glew.EXT_multi_draw_arrays = _glewGetExt("GL_EXT_multi_draw_arrays");
glew.EXT_multi_draw_arrays = glewGetExtension("GL_EXT_multi_draw_arrays");
if (glewExperimental || glew.EXT_multi_draw_arrays) glew.EXT_multi_draw_arrays = !_glewInit_EXT_multi_draw_arrays();
#endif
#ifdef GL_EXT_packed_pixels
glew.EXT_packed_pixels = _glewGetExt("GL_EXT_packed_pixels");
glew.EXT_packed_pixels = glewGetExtension("GL_EXT_packed_pixels");
#endif
#ifdef GL_EXT_point_parameters
glew.EXT_point_parameters = _glewGetExt("GL_EXT_point_parameters");
glew.EXT_point_parameters = glewGetExtension("GL_EXT_point_parameters");
if (glewExperimental || glew.EXT_point_parameters) glew.EXT_point_parameters = !_glewInit_EXT_point_parameters();
#endif
#ifdef GL_EXT_secondary_color
glew.EXT_secondary_color = _glewGetExt("GL_EXT_secondary_color");
glew.EXT_secondary_color = glewGetExtension("GL_EXT_secondary_color");
if (glewExperimental || glew.EXT_secondary_color) glew.EXT_secondary_color = !_glewInit_EXT_secondary_color();
#endif
#ifdef GL_EXT_separate_specular_color
glew.EXT_separate_specular_color = _glewGetExt("GL_EXT_separate_specular_color");
glew.EXT_separate_specular_color = glewGetExtension("GL_EXT_separate_specular_color");
#endif
#ifdef GL_EXT_shadow_funcs
glew.EXT_shadow_funcs = _glewGetExt("GL_EXT_shadow_funcs");
glew.EXT_shadow_funcs = glewGetExtension("GL_EXT_shadow_funcs");
#endif
#ifdef GL_EXT_stencil_two_side
glew.EXT_stencil_two_side = _glewGetExt("GL_EXT_stencil_two_side");
glew.EXT_stencil_two_side = glewGetExtension("GL_EXT_stencil_two_side");
if (glewExperimental || glew.EXT_stencil_two_side) glew.EXT_stencil_two_side = !_glewInit_EXT_stencil_two_side();
#endif
#ifdef GL_EXT_stencil_wrap
glew.EXT_stencil_wrap = _glewGetExt("GL_EXT_stencil_wrap");
glew.EXT_stencil_wrap = glewGetExtension("GL_EXT_stencil_wrap");
#endif
#ifdef GL_EXT_texture_compression_s3tc
glew.EXT_texture_compression_s3tc = _glewGetExt("GL_EXT_texture_compression_s3tc");
glew.EXT_texture_compression_s3tc = glewGetExtension("GL_EXT_texture_compression_s3tc");
#endif
#ifdef GL_EXT_texture_env_combine
glew.EXT_texture_filter_anisotropic = _glewGetExt("GL_EXT_texture_filter_anisotropic");
glew.EXT_texture_filter_anisotropic = glewGetExtension("GL_EXT_texture_filter_anisotropic");
#endif
#ifdef GL_EXT_texture_filter_anisotropic
glew.EXT_texture_filter_anisotropic = _glewGetExt("GL_EXT_texture_filter_anisotropic");
glew.EXT_texture_filter_anisotropic = glewGetExtension("GL_EXT_texture_filter_anisotropic");
#endif
#ifdef GL_EXT_texture_lod_bias
glew.EXT_texture_lod_bias = _glewGetExt("GL_EXT_texture_lod_bias");
glew.EXT_texture_lod_bias = glewGetExtension("GL_EXT_texture_lod_bias");
#endif
#ifdef GL_EXT_texture_rectangle
glew.EXT_texture_rectangle = _glewGetExt("GL_EXT_texture_rectangle");
glew.EXT_texture_rectangle = glewGetExtension("GL_EXT_texture_rectangle");
#endif
#ifdef GL_EXT_vertex_shader
glew.EXT_vertex_shader = _glewGetExt("GL_EXT_vertex_shader");
glew.EXT_vertex_shader = glewGetExtension("GL_EXT_vertex_shader");
if (glewExperimental || glew.EXT_vertex_shader) glew.EXT_vertex_shader = !_glewInit_EXT_vertex_shader();
#endif
#ifdef GL_EXT_vertex_weighting
glew.EXT_vertex_weighting = _glewGetExt("GL_EXT_vertex_weighting");
glew.EXT_vertex_weighting = glewGetExtension("GL_EXT_vertex_weighting");
if (glewExperimental || glew.EXT_vertex_weighting) glew.EXT_vertex_weighting = !_glewInit_EXT_vertex_weighting();
#endif
#ifdef GL_SGIS_generate_mipmap
glew.SGIS_generate_mipmap = _glewGetExt("GL_SGIS_generate_mipmap");
glew.SGIS_generate_mipmap = glewGetExtension("GL_SGIS_generate_mipmap");
#endif
#ifdef GL_SGIS_texture_lod
glew.SGIS_texture_lod = _glewGetExt("GL_SGIS_texture_lod");
glew.SGIS_texture_lod = glewGetExtension("GL_SGIS_texture_lod");
#endif
#ifdef GL_SGIX_depth_texture
glew.SGIX_depth_texture = _glewGetExt("GL_SGIX_depth_texture");
glew.SGIX_depth_texture = glewGetExtension("GL_SGIX_depth_texture");
#endif
#ifdef GL_SGIX_shadow
glew.SGIX_shadow = _glewGetExt("GL_SGIX_shadow");
glew.SGIX_shadow = glewGetExtension("GL_SGIX_shadow");
#endif
#ifdef GL_HP_occlusion_test
glew.HP_occlusion_test = _glewGetExt("GL_HP_occlusion_test");
glew.HP_occlusion_test = glewGetExtension("GL_HP_occlusion_test");
#endif
#ifdef GL_S3_s3tc
glew.S3_s3tc = _glewGetExt("GL_S3_s3tc");
glew.S3_s3tc = glewGetExtension("GL_S3_s3tc");
#endif
#ifdef GL_WIN_swap_hint
glew.WIN_swap_hint = _glewGetExt("GL_WIN_swap_hint");
glew.WIN_swap_hint = glewGetExtension("GL_WIN_swap_hint");
if (glewExperimental || glew.WIN_swap_hint) glew.WIN_swap_hint = !_glewInit_WIN_swap_hint();
#endif
#ifdef GL_ATI_draw_buffers
glew.ATI_draw_buffers = _glewGetExt("GL_ATI_draw_buffers");
glew.ATI_draw_buffers = glewGetExtension("GL_ATI_draw_buffers");
if (glewExperimental || glew.ATI_draw_buffers) glew.ATI_draw_buffers = !_glewInit_ATI_draw_buffers();
#endif
#ifdef GL_ATI_element_array
glew.ATI_element_array = _glewGetExt("GL_ATI_element_array");
glew.ATI_element_array = glewGetExtension("GL_ATI_element_array");
if (glewExperimental || glew.ATI_element_array) glew.ATI_element_array = !_glewInit_ATI_element_array();
#endif
#ifdef GL_ATI_envmap_bumpmap
glew.ATI_envmap_bumpmap = _glewGetExt("GL_ATI_envmap_bumpmap");
glew.ATI_envmap_bumpmap = glewGetExtension("GL_ATI_envmap_bumpmap");
if (glewExperimental || glew.ATI_envmap_bumpmap) glew.ATI_envmap_bumpmap = !_glewInit_ATI_envmap_bumpmap();
#endif
#ifdef GL_ATI_fragment_shader
glew.ATI_fragment_shader = _glewGetExt("GL_ATI_fragment_shader");
glew.ATI_fragment_shader = glewGetExtension("GL_ATI_fragment_shader");
if (glewExperimental || glew.ATI_fragment_shader) glew.ATI_fragment_shader = !_glewInit_ATI_fragment_shader();
#endif
#ifdef GL_ATI_map_object_buffer
glew.ATI_map_object_buffer = _glewGetExt("GL_ATI_map_object_buffer");
glew.ATI_map_object_buffer = glewGetExtension("GL_ATI_map_object_buffer");
if (glewExperimental || glew.ATI_map_object_buffer) glew.ATI_map_object_buffer = !_glewInit_ATI_map_object_buffer();
#endif
#ifdef GL_ATI_mapped_texture
glew.ATI_mapped_texture = _glewGetExt("GL_ATI_mapped_texture");
glew.ATI_mapped_texture = glewGetExtension("GL_ATI_mapped_texture");
if (glewExperimental || glew.ATI_mapped_texture) glew.ATI_mapped_texture = !_glewInit_ATI_mapped_texture();
#endif
#ifdef GL_ATI_pn_triangles
glew.ATI_pn_triangles = _glewGetExt("GL_ATI_pn_triangles");
glew.ATI_pn_triangles = glewGetExtension("GL_ATI_pn_triangles");
if (glewExperimental || glew.ATI_pn_triangles) glew.ATI_pn_triangles = !_glewInit_ATI_pn_triangles();
#endif
#ifdef GL_ATI_point_cull_mode
glew.ATI_point_cull_mode = _glewGetExt("GL_ATI_point_cull_mode");
glew.ATI_point_cull_mode = glewGetExtension("GL_ATI_point_cull_mode");
#endif
#ifdef GL_ATI_separate_stencil
glew.ATI_separate_stencil = _glewGetExt("GL_ATI_separate_stencil");
glew.ATI_separate_stencil = glewGetExtension("GL_ATI_separate_stencil");
if (glewExperimental || glew.ATI_separate_stencil) glew.ATI_separate_stencil = !_glewInit_ATI_separate_stencil();
#endif
#ifdef GL_ATI_text_fragment_shader
glew.ATI_texture_float = _glewGetExt("GL_ATI_texture_float");
glew.ATI_texture_float = glewGetExtension("GL_ATI_texture_float");
#endif
#ifdef GL_ATI_texture_float
glew.ATI_texture_float = _glewGetExt("GL_ATI_texture_float");
glew.ATI_texture_float = glewGetExtension("GL_ATI_texture_float");
#endif
#ifdef GL_ATI_texture_mirror_once
glew.ATI_texture_mirror_once = _glewGetExt("GL_ATI_texture_mirror_once");
glew.ATI_texture_mirror_once = glewGetExtension("GL_ATI_texture_mirror_once");
#endif
#ifdef GL_ATI_timestamp
glew.ATI_timestamp = _glewGetExt("GL_ATI_timestamp");
glew.ATI_timestamp = glewGetExtension("GL_ATI_timestamp");
if (glewExperimental || glew.ATI_timestamp) glew.ATI_timestamp = !_glewInit_ATI_timestamp();
#endif
#ifdef GL_ATI_vertex_array_object
glew.ATI_vertex_array_object = _glewGetExt("GL_ATI_vertex_array_object");
glew.ATI_vertex_array_object = glewGetExtension("GL_ATI_vertex_array_object");
if (glewExperimental || glew.ATI_vertex_array_object) glew.ATI_vertex_array_object = !_glewInit_ATI_vertex_array_object();
#endif
#ifdef GL_ATI_vertex_attrib_array_object
glew.ATI_vertex_attrib_array_object = _glewGetExt("GL_ATI_vertex_attrib_array_object");
glew.ATI_vertex_attrib_array_object = glewGetExtension("GL_ATI_vertex_attrib_array_object");
if (glewExperimental || glew.ATI_vertex_attrib_array_object) glew.ATI_vertex_attrib_array_object = !_glewInit_ATI_vertex_attrib_array_object();
#endif
#ifdef GL_ATI_vertex_streams
glew.ATI_vertex_streams = _glewGetExt("GL_ATI_vertex_streams");
glew.ATI_vertex_streams = glewGetExtension("GL_ATI_vertex_streams");
if (glewExperimental || glew.ATI_vertex_streams) glew.ATI_vertex_streams = !_glewInit_ATI_vertex_streams();
#endif
#ifdef GL_ATIX_point_sprites
glew.ATIX_point_sprites = _glewGetExt("GL_ATIX_point_sprites");
glew.ATIX_point_sprites = glewGetExtension("GL_ATIX_point_sprites");
#endif
#ifdef GL_ATIX_texture_env_combine3
glew.ATIX_texture_env_combine3 = _glewGetExt("GL_ATIX_texture_env_combine3");
glew.ATIX_texture_env_combine3 = glewGetExtension("GL_ATIX_texture_env_combine3");
#endif
#ifdef GL_ATIX_texture_env_route
glew.ATIX_texture_env_route = _glewGetExt("GL_ATIX_texture_env_route");
glew.ATIX_texture_env_route = glewGetExtension("GL_ATIX_texture_env_route");
#endif
#ifdef GL_ATIX_vertex_shader_output_point_size
glew.ATIX_vertex_shader_output_point_size = _glewGetExt("GL_ATIX_vertex_shader_output_point_size");
glew.ATIX_vertex_shader_output_point_size = glewGetExtension("GL_ATIX_vertex_shader_output_point_size");
#endif
#ifdef GL_NV_blend_square
glew.NV_blend_square = _glewGetExt("GL_NV_blend_square");
glew.NV_blend_square = glewGetExtension("GL_NV_blend_square");
#endif
#ifdef GL_NV_copy_depth_to_color
glew.NV_copy_depth_to_color = _glewGetExt("GL_NV_copy_depth_to_color");
glew.NV_copy_depth_to_color = glewGetExtension("GL_NV_copy_depth_to_color");
#endif
#ifdef GL_NV_depth_clamp
glew.NV_depth_clamp = _glewGetExt("GL_NV_depth_clamp");
glew.NV_depth_clamp = glewGetExtension("GL_NV_depth_clamp");
#endif
#ifdef GL_NV_element_array
glew.NV_element_array = _glewGetExt("GL_NV_element_array");
glew.NV_element_array = glewGetExtension("GL_NV_element_array");
if (glewExperimental || glew.NV_element_array) glew.NV_element_array = !_glewInit_NV_element_array();
#endif
#ifdef GL_NV_evaluators
glew.NV_evaluators = _glewGetExt("GL_NV_evaluators");
glew.NV_evaluators = glewGetExtension("GL_NV_evaluators");
if (glewExperimental || glew.NV_evaluators) glew.NV_evaluators = !_glewInit_NV_evaluators();
#endif
#ifdef GL_NV_fence
glew.NV_fence = _glewGetExt("GL_NV_fence");
glew.NV_fence = glewGetExtension("GL_NV_fence");
if (glewExperimental || glew.NV_fence) glew.NV_fence = !_glewInit_NV_fence();
#endif
#ifdef GL_NV_float_buffer
glew.NV_float_buffer = _glewGetExt("GL_NV_float_buffer");
glew.NV_float_buffer = glewGetExtension("GL_NV_float_buffer");
#endif
#ifdef GL_NV_fog_distance
glew.NV_fog_distance = _glewGetExt("GL_NV_fog_distance");
glew.NV_fog_distance = glewGetExtension("GL_NV_fog_distance");
#endif
#ifdef GL_NV_fragment_program
glew.NV_fragment_program = _glewGetExt("GL_NV_fragment_program");
glew.NV_fragment_program = glewGetExtension("GL_NV_fragment_program");
if (glewExperimental || glew.NV_fragment_program) glew.NV_fragment_program = !_glewInit_NV_fragment_program();
#endif
#ifdef GL_NV_light_max_exponent
glew.NV_light_max_exponent = _glewGetExt("GL_NV_light_max_exponent");
glew.NV_light_max_exponent = glewGetExtension("GL_NV_light_max_exponent");
#endif
#ifdef GL_NV_multisample_filter_hint
glew.NV_multisample_filter_hint = _glewGetExt("GL_NV_multisample_filter_hint");
glew.NV_multisample_filter_hint = glewGetExtension("GL_NV_multisample_filter_hint");
#endif
#ifdef GL_NV_occlusion_query
glew.NV_occlusion_query = _glewGetExt("GL_NV_occlusion_query");
glew.NV_occlusion_query = glewGetExtension("GL_NV_occlusion_query");
if (glewExperimental || glew.NV_occlusion_query) glew.NV_occlusion_query = !_glewInit_NV_occlusion_query();
#endif
#ifdef GL_NV_packed_depth_stencil
glew.NV_packed_depth_stencil = _glewGetExt("GL_NV_packed_depth_stencil");
glew.NV_packed_depth_stencil = glewGetExtension("GL_NV_packed_depth_stencil");
#endif
#ifdef GL_NV_pixel_data_range
glew.NV_pixel_data_range = _glewGetExt("GL_NV_pixel_data_range");
glew.NV_pixel_data_range = glewGetExtension("GL_NV_pixel_data_range");
if (glewExperimental || glew.NV_pixel_data_range) glew.NV_pixel_data_range = !_glewInit_NV_pixel_data_range();
#endif
#ifdef GL_NV_point_sprite
glew.NV_point_sprite = _glewGetExt("GL_NV_point_sprite");
glew.NV_point_sprite = glewGetExtension("GL_NV_point_sprite");
if (glewExperimental || glew.NV_point_sprite) glew.NV_point_sprite = !_glewInit_NV_point_sprite();
#endif
#ifdef GL_NV_primitive_restart
glew.NV_primitive_restart = _glewGetExt("GL_NV_");
glew.NV_primitive_restart = glewGetExtension("GL_NV_");
if (glewExperimental || glew.NV_primitive_restart) glew.NV_primitive_restart = !_glewInit_NV_primitive_restart();
#endif
#ifdef GL_NV_register_combiners
glew.NV_register_combiners = _glewGetExt("GL_NV_register_combiners");
glew.NV_register_combiners = glewGetExtension("GL_NV_register_combiners");
if (glewExperimental || glew.NV_register_combiners) glew.NV_register_combiners = !_glewInit_NV_register_combiners();
#endif
#ifdef GL_NV_register_combiners2
glew.NV_register_combiners2 = _glewGetExt("GL_NV_register_combiners2");
glew.NV_register_combiners2 = glewGetExtension("GL_NV_register_combiners2");
if (glewExperimental || glew.NV_register_combiners2) glew.NV_register_combiners2 = !_glewInit_NV_register_combiners2();
#endif
#ifdef GL_NV_texgen_reflection
glew.NV_texgen_reflection = _glewGetExt("GL_NV_texgen_reflection");
glew.NV_texgen_reflection = glewGetExtension("GL_NV_texgen_reflection");
#endif
#ifdef GL_NV_texture_compression_vtc
glew.NV_texture_compression_vtc = _glewGetExt("GL_NV_texture_compression_vtc");
glew.NV_texture_compression_vtc = glewGetExtension("GL_NV_texture_compression_vtc");
#endif
#ifdef GL_NV_texture_env_combine4
glew.NV_texture_env_combine4 = _glewGetExt("GL_NV_texture_env_combine4");
glew.NV_texture_env_combine4 = glewGetExtension("GL_NV_texture_env_combine4");
#endif
#ifdef GL_NV_texture_rectangle
glew.NV_texture_rectangle = _glewGetExt("GL_NV_texture_rectangle");
glew.NV_texture_rectangle = glewGetExtension("GL_NV_texture_rectangle");
#endif
#ifdef GL_NV_texture_shader
glew.NV_texture_shader = _glewGetExt("GL_NV_texture_shader");
glew.NV_texture_shader = glewGetExtension("GL_NV_texture_shader");
#endif
#ifdef GL_NV_texture_shader2
glew.NV_texture_shader2 = _glewGetExt("GL_NV_texture_shader2");
glew.NV_texture_shader2 = glewGetExtension("GL_NV_texture_shader2");
#endif
#ifdef GL_NV_texture_shader3
glew.NV_texture_shader3 = _glewGetExt("GL_NV_texture_shader3");
glew.NV_texture_shader3 = glewGetExtension("GL_NV_texture_shader3");
#endif
#ifdef GL_NV_vertex_array_range
glew.NV_vertex_array_range = _glewGetExt("GL_NV_vertex_array_range");
glew.NV_vertex_array_range = glewGetExtension("GL_NV_vertex_array_range");
if (glewExperimental || glew.NV_vertex_array_range) glew.NV_vertex_array_range = !_glewInit_NV_vertex_array_range();
#endif
#ifdef GL_NV_vertex_array_range2
glew.NV_vertex_array_range2 = _glewGetExt("GL_NV_vertex_array_range2");
glew.NV_vertex_array_range2 = glewGetExtension("GL_NV_vertex_array_range2");
#endif
#ifdef GL_NV_vertex_program
glew.NV_vertex_program = _glewGetExt("GL_NV_vertex_program");
glew.NV_vertex_program = glewGetExtension("GL_NV_vertex_program");
if (glewExperimental || glew.NV_vertex_array_range) glew.NV_vertex_array_range = !_glewInit_NV_vertex_program();
#endif
#ifdef GL_NV_vertex_program1_1
glew.NV_vertex_program1_1 = _glewGetExt("GL_NV_vertex_program1_1");
glew.NV_vertex_program1_1 = glewGetExtension("GL_NV_vertex_program1_1");
#endif
#ifdef GL_NV_vertex_program2
glew.NV_vertex_program2 = _glewGetExt("GL_NV_vertex_program2");
glew.NV_vertex_program2 = glewGetExtension("GL_NV_vertex_program2");
#endif
return GLEW_OK;
}
@ -3057,7 +3058,7 @@ static GLint _glewInit ()
#ifdef _WIN32
static GLboolean _wglewGetExt (const char *name)
GLboolean wglewGetExtension (const char *name)
{
char *p, *end;
int len = _glewStrLen(name);
@ -3092,101 +3093,101 @@ static GLint _wglewInit ()
wglew.EXT_extensions_string == 0) return GLEW_ERROR_NO_EXTENSIONS_STRING;
/* initialize extensions */
#ifdef WGL_ARB_buffer_region
wglew.ARB_buffer_region = _wglewGetExt("WGL_ARB_buffer_region");
wglew.ARB_buffer_region = wglewGetExtension("WGL_ARB_buffer_region");
if (glewExperimental || wglew.ARB_buffer_region) wglew.ARB_buffer_region = !_wglewInit_ARB_buffer_region();
#endif
#ifdef WGL_ARB_make_current_read
wglew.ARB_make_current_read = _wglewGetExt("WGL_ARB_make_current_read");
wglew.ARB_make_current_read = wglewGetExtension("WGL_ARB_make_current_read");
if (glewExperimental || wglew.ARB_make_current_read) wglew.ARB_make_current_read = !_wglewInit_ARB_make_current_read();
#endif
#ifdef WGL_ARB_multisample
wglew.ARB_multisample = _wglewGetExt("WGL_ARB_multisample");
wglew.ARB_multisample = wglewGetExtension("WGL_ARB_multisample");
#endif
#ifdef WGL_ARB_pbuffer
wglew.ARB_pbuffer = _wglewGetExt("WGL_ARB_pbuffer");
wglew.ARB_pbuffer = wglewGetExtension("WGL_ARB_pbuffer");
if (glewExperimental || wglew.ARB_pbuffer) wglew.ARB_pbuffer = !_wglewInit_ARB_pbuffer();
#endif
#ifdef WGL_ARB_pixel_format
wglew.ARB_pixel_format = _wglewGetExt("WGL_ARB_pixel_format");
wglew.ARB_pixel_format = wglewGetExtension("WGL_ARB_pixel_format");
if (glewExperimental || wglew.ARB_pixel_format) wglew.ARB_pixel_format = !_wglewInit_ARB_pixel_format();
#endif
#ifdef WGL_ARB_render_texture
wglew.ARB_render_texture = _wglewGetExt("WGL_ARB_render_texture");
wglew.ARB_render_texture = wglewGetExtension("WGL_ARB_render_texture");
if (glewExperimental || wglew.ARB_render_texture) wglew.ARB_render_texture = !_wglewInit_ARB_render_texture();
#endif
#ifdef WGL_EXT_depth_float
wglew.EXT_depth_float = _wglewGetExt("WGL_EXT_depth_float");
wglew.EXT_depth_float = wglewGetExtension("WGL_EXT_depth_float");
#endif
#ifdef WGL_EXT_display_color_table
wglew.EXT_display_color_table = _wglewGetExt("WGL_EXT_display_color_table");
wglew.EXT_display_color_table = wglewGetExtension("WGL_EXT_display_color_table");
if (glewExperimental || wglew.EXT_display_color_table) wglew.EXT_display_color_table = !_wglewInit_EXT_display_color_table();
#endif
#ifdef WGL_EXT_make_current_read
wglew.EXT_make_current_read = _wglewGetExt("WGL_EXT_make_current_read");
wglew.EXT_make_current_read = wglewGetExtension("WGL_EXT_make_current_read");
if (glewExperimental || wglew.EXT_make_current_read) wglew.EXT_make_current_read = !_wglewInit_EXT_make_current_read();
#endif
#ifdef WGL_EXT_multisample
wglew.EXT_multisample = _wglewGetExt("WGL_EXT_multisample");
wglew.EXT_multisample = wglewGetExtension("WGL_EXT_multisample");
#endif
#ifdef WGL_EXT_pixel_format
wglew.EXT_pixel_format = _wglewGetExt("WGL_EXT_pixel_format");
wglew.EXT_pixel_format = wglewGetExtension("WGL_EXT_pixel_format");
if (glewExperimental || wglew.EXT_pixel_format) wglew.EXT_pixel_format = !_wglewInit_EXT_pixel_format();
#endif
#ifdef WGL_EXT_pbuffer
wglew.EXT_pbuffer = _wglewGetExt("WGL_EXT_pbuffer");
wglew.EXT_pbuffer = wglewGetExtension("WGL_EXT_pbuffer");
if (glewExperimental || wglew.EXT_pbuffer) wglew.EXT_pbuffer = !_wglewInit_EXT_pbuffer();
#endif
#ifdef WGL_EXT_swap_control
wglew.EXT_swap_control = _wglewGetExt("WGL_EXT_swap_control");
wglew.EXT_swap_control = wglewGetExtension("WGL_EXT_swap_control");
if (glewExperimental || wglew.EXT_swap_control) wglew.EXT_swap_control = !_wglewInit_EXT_swap_control();
#endif
#ifdef WGL_I3D_digital_video_control
wglew.I3D_digital_video_control = _wglewGetExt("WGL_I3D_digital_video_control");
wglew.I3D_digital_video_control = wglewGetExtension("WGL_I3D_digital_video_control");
if (glewExperimental || wglew.I3D_digital_video_control) wglew.I3D_digital_video_control = !_wglewInit_I3D_digital_video_control();
#endif
#ifdef WGL_I3D_gamma
wglew.I3D_gamma = _wglewGetExt("WGL_I3D_gamma");
wglew.I3D_gamma = wglewGetExtension("WGL_I3D_gamma");
if (glewExperimental || wglew.I3D_gamma) wglew.I3D_gamma = !_wglewInit_I3D_gamma();
#endif
#ifdef WGL_I3D_genlock
wglew.I3D_genlock = _wglewGetExt("WGL_I3D_genlock");
wglew.I3D_genlock = wglewGetExtension("WGL_I3D_genlock");
if (glewExperimental || wglew.I3D_genlock) wglew.I3D_genlock = !_wglewInit_I3D_genlock();
#endif
#ifdef WGL_I3D_image_buffer
wglew.I3D_image_buffer = _wglewGetExt("WGL_I3D_image_buffer");
wglew.I3D_image_buffer = wglewGetExtension("WGL_I3D_image_buffer");
if (glewExperimental || wglew.I3D_image_buffer) wglew.I3D_image_buffer = !_wglewInit_I3D_image_buffer();
#endif
#ifdef WGL_I3D_swap_frame_lock
wglew.I3D_swap_frame_lock = _wglewGetExt("WGL_I3D_swap_frame_lock");
wglew.I3D_swap_frame_lock = wglewGetExtension("WGL_I3D_swap_frame_lock");
if (glewExperimental || wglew.I3D_swap_frame_lock) wglew.I3D_swap_frame_lock = !_wglewInit_I3D_swap_frame_lock();
#endif
#ifdef WGL_I3D_swap_frame_usage
wglew.I3D_swap_frame_usage = _wglewGetExt("WGL_I3D_swap_frame_usage");
wglew.I3D_swap_frame_usage = wglewGetExtension("WGL_I3D_swap_frame_usage");
if (glewExperimental || wglew.I3D_swap_frame_usage) wglew.I3D_swap_frame_usage = !_wglewInit_I3D_swap_frame_usage();
#endif
#ifdef WGL_OML_sync_control
wglew.OML_sync_control = _wglewGetExt("WGL_OML_sync_control");
wglew.OML_sync_control = wglewGetExtension("WGL_OML_sync_control");
if (glewExperimental || wglew.OML_sync_control) wglew.OML_sync_control = !_wglewInit_OML_sync_control();
#endif
#ifdef WGL_ATI_pixel_format_float
wglew.ATI_pixel_format_float = _wglewGetExt("WGL_ATI_pixel_format_float");
wglew.ATI_pixel_format_float = wglewGetExtension("WGL_ATI_pixel_format_float");
#endif
#ifdef WGL_NV_float_buffer
wglew.NV_float_buffer = _wglewGetExt("WGL_NV_float_buffer");
wglew.NV_float_buffer = wglewGetExtension("WGL_NV_float_buffer");
#endif
#ifdef WGL_NV_render_depth_texture
wglew.NV_render_depth_texture = _wglewGetExt("WGL_NV_render_depth_texture");
wglew.NV_render_depth_texture = wglewGetExtension("WGL_NV_render_depth_texture");
#endif
#ifdef WGL_NV_render_texture_rectangle
wglew.NV_render_texture_rectangle = _wglewGetExt("WGL_NV_render_texture_rectangle");
wglew.NV_render_texture_rectangle = wglewGetExtension("WGL_NV_render_texture_rectangle");
#endif
#ifdef WGL_NV_vertex_array_range
wglew.NV_vertex_array_range = _wglewGetExt("WGL_NV_vertex_array_range");
wglew.NV_vertex_array_range = wglewGetExtension("WGL_NV_vertex_array_range");
if (glewExperimental || wglew.NV_vertex_array_range) wglew.NV_vertex_array_range = !_wglewInit_NV_vertex_array_range();
#endif
return GLEW_OK;
@ -3194,7 +3195,7 @@ static GLint _wglewInit ()
#else /* _UNIX */
static GLboolean _glxewGetExt (const char *name)
GLboolean glxewGetExtension (const char *name)
{
char *p, *end;
int len = _glewStrLen(name);
@ -3241,101 +3242,101 @@ static GLint _glxewInit ()
#endif
/* initialize extensions */
#ifdef GLX_ARB_multisample
glxew.ARB_multisample = _glxewGetExt("GLX_ARB_multisample");
glxew.ARB_multisample = glxewGetExtension("GLX_ARB_multisample");
#endif
#ifdef GLX_EXT_visual_info
glxew.EXT_visual_info = _glxewGetExt("GLX_EXT_visual_info");
glxew.EXT_visual_info = glxewGetExtension("GLX_EXT_visual_info");
#endif
#ifdef GLX_EXT_visual_rating
glxew.EXT_visual_rating = _glxewGetExt("GLX_EXT_visual_rating");
glxew.EXT_visual_rating = glxewGetExtension("GLX_EXT_visual_rating");
#endif
#ifdef GLX_EXT_import_context
glxew.EXT_import_context = _glxewGetExt("GLX_EXT_import_context");
glxew.EXT_import_context = glxewGetExtension("GLX_EXT_import_context");
if (glewExperimental || glxew.EXT_import_context) glxew.EXT_import_context = !_glxewInit_EXT_import_context();
#endif
#ifdef GLX_MESA_copy_sub_buffer
glxew.MESA_copy_sub_buffer = _glxewGetExt("GLX_MESA_copy_sub_buffer");
glxew.MESA_copy_sub_buffer = glxewGetExtension("GLX_MESA_copy_sub_buffer");
if (glewExperimental || glxew.MESA_copy_sub_buffer) glxew.MESA_copy_sub_buffer = !_glxewInit_MESA_copy_sub_buffer();
#endif
#ifdef GLX_MESA_pixmap_colormap
glxew.MESA_pixmap_colormap = _glxewGetExt("GLX_MESA_pixmap_colormap");
glxew.MESA_pixmap_colormap = glxewGetExtension("GLX_MESA_pixmap_colormap");
if (glewExperimental || glxew.MESA_pixmap_colormap) glxew.MESA_pixmap_colormap = !_glxewInit_MESA_pixmap_colormap();
#endif
#ifdef GLX_MESA_release_buffers
glxew.MESA_release_buffers = _glxewGetExt("GLX_MESA_release_buffers");
glxew.MESA_release_buffers = glxewGetExtension("GLX_MESA_release_buffers");
if (glewExperimental || glxew.MESA_release_buffers) glxew.MESA_release_buffers = !_glxewInit_MESA_release_buffers();
#endif
#ifdef GLX_MESA_set_3dfx_mode
glxew.MESA_set_3dfx_mode = _glxewGetExt("GLX_MESA_set_3dfx_mode");
glxew.MESA_set_3dfx_mode = glxewGetExtension("GLX_MESA_set_3dfx_mode");
if (glewExperimental || glxew.MESA_set_3dfx_mode) glxew.MESA_set_3dfx_mode = !_glxewInit_MESA_set_3dfx_mode();
#endif
#ifdef GLX_NV_vertex_array_range
glxew.NV_vertex_array_range = _glxewGetExt("GLX_NV_vertex_array_range");
glxew.NV_vertex_array_range = glxewGetExtension("GLX_NV_vertex_array_range");
if (glewExperimental || glxew.NV_vertex_array_range) glxew.NV_vertex_array_range = !_glxewInit_NV_vertex_array_range();
#endif
#ifdef GLX_OML_swap_method
glxew.OML_swap_method = _glxewGetExt("GLX_OML_swap_method");
glxew.OML_swap_method = glxewGetExtension("GLX_OML_swap_method");
#endif
#ifdef GLX_OML_sync_control
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
glxew.OML_sync_control = _glxewGetExt("GLX_OML_sync_control");
glxew.OML_sync_control = glxewGetExtension("GLX_OML_sync_control");
if (glewExperimental || glxew.OML_sync_control) glxew.OML_sync_control = !_glxewInit_OML_sync_control();
#endif /* __STDC_VERSION__ */
#endif
#ifdef GLX_SGI_cushion
glxew.SGI_cushion = _glxewGetExt("GLX_SGI_cushion");
glxew.SGI_cushion = glxewGetExtension("GLX_SGI_cushion");
if (glewExperimental || glxew.SGI_cushion) glxew.SGI_cushion = !_glxewInit_SGI_cushion();
#endif
#ifdef GLX_SGI_make_current_read
glxew.SGI_make_current_read = _glxewGetExt("GLX_SGI_make_current_read");
glxew.SGI_make_current_read = glxewGetExtension("GLX_SGI_make_current_read");
if (glewExperimental || glxew.SGI_make_current_read) glxew.SGI_make_current_read = !_glxewInit_SGI_make_current_read();
#endif
#ifdef GLX_SGI_swap_control
glxew.SGI_swap_control = _glxewGetExt("GLX_SGI_swap_control");
glxew.SGI_swap_control = glxewGetExtension("GLX_SGI_swap_control");
if (glewExperimental || glxew.SGI_swap_control) glxew.SGI_swap_control = !_glxewInit_SGI_swap_control();
#endif
#ifdef GLX_SGI_video_sync
glxew.SGI_video_sync = _glxewGetExt("GLX_SGI_video_sync");
glxew.SGI_video_sync = glxewGetExtension("GLX_SGI_video_sync");
if (glewExperimental || glxew.SGI_video_sync) glxew.SGI_video_sync = !_glxewInit_SGI_video_sync();
#endif
#ifdef GLX_SGIS_blended_overlay
glxew.SGIS_blended_overlay = _glxewGetExt("GLX_SGIS_blended_overlay");
glxew.SGIS_blended_overlay = glxewGetExtension("GLX_SGIS_blended_overlay");
#endif
#ifdef GLX_SGIS_multisample
glxew.SGIS_multisample = _glxewGetExt("GLX_SGIS_multisample");
glxew.SGIS_multisample = glxewGetExtension("GLX_SGIS_multisample");
#endif
#ifdef GLX_SGIS_shared_multisample
glxew.SGIS_shared_multisample = _glxewGetExt("GLX_SGIS_shared_multisample");
glxew.SGIS_shared_multisample = glxewGetExtension("GLX_SGIS_shared_multisample");
#endif
#ifdef GLX_SGIX_fbconfig
glxew.SGIX_fbconfig = _glxewGetExt("GLX_SGIX_fbconfig");
glxew.SGIX_fbconfig = glxewGetExtension("GLX_SGIX_fbconfig");
if (glewExperimental || glxew.SGIX_fbconfig) glxew.SGIX_fbconfig = !_glxewInit_SGIX_fbconfig();
#endif
#ifdef GLX_SGIX_pbuffer
glxew.SGIX_pbuffer = _glxewGetExt("GLX_SGIX_pbuffer");
glxew.SGIX_pbuffer = glxewGetExtension("GLX_SGIX_pbuffer");
if (glewExperimental || glxew.SGIX_pbuffer) glxew.SGIX_pbuffer = !_glxewInit_SGIX_pbuffer();
#endif
#ifdef GLX_SGIX_swap_barrier
glxew.SGIX_swap_barrier = _glxewGetExt("GLX_SGIX_swap_barrier");
glxew.SGIX_swap_barrier = glxewGetExtension("GLX_SGIX_swap_barrier");
if (glewExperimental || glxew.SGIX_swap_barrier) glxew.SGIX_swap_barrier = !_glxewInit_SGIX_swap_barrier();
#endif
#ifdef GLX_SGIX_swap_group
glxew.SGIX_swap_group = _glxewGetExt("GLX_SGIX_swap_group");
glxew.SGIX_swap_group = glxewGetExtension("GLX_SGIX_swap_group");
if (glewExperimental || glxew.SGIX_swap_group) glxew.SGIX_swap_group = !_glxewInit_SGIX_swap_group();
#endif
#ifdef GLX_SGIX_visual_select_group
glxew.SGIX_visual_select_group = _glxewGetExt("GLX_SGIX_visual_select_group");
glxew.SGIX_visual_select_group = glxewGetExtension("GLX_SGIX_visual_select_group");
#endif
#ifdef GLX_SUN_get_transparent_index
glxew.SUN_get_transparent_index = _glxewGetExt("GLX_SUN_get_transparent_index");
glxew.SUN_get_transparent_index = glxewGetExtension("GLX_SUN_get_transparent_index");
if (glewExperimental || glxew.SUN_get_transparent_index) glxew.SUN_get_transparent_index = !_glxewInit_SUN_get_transparent_index();
#endif
return GLEW_OK;

View File

@ -50,8 +50,8 @@
** Copyright (C) 2002, Lev Povalahev
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without modification,
** are permitted provided that the following conditions are met:
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
**
** * Redistributions of source code must retain the above copyright notice,
** this list of conditions and the following disclaimer.
@ -61,15 +61,16 @@
** * The name of the author may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
** IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
** INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
** OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
*/