mirror of
https://github.com/Perlmint/glew-cmake.git
synced 2024-11-26 08:31:56 +00:00
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:
parent
d265d66188
commit
59a9ddb867
@ -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>
|
||||
|
@ -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,14 +42,15 @@
|
||||
** * 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)
|
||||
** 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
|
||||
|
@ -786,6 +786,7 @@ struct GLXEW
|
||||
};
|
||||
|
||||
extern struct GLXEW glxew;
|
||||
extern GLboolean glxewGetExtension (const char* name);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -31,25 +31,26 @@
|
||||
** 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)
|
||||
** 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
|
||||
}
|
||||
|
333
src/glew.c
333
src/glew.c
@ -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,14 +61,15 @@
|
||||
** * 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)
|
||||
** 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;
|
||||
|
@ -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,14 +61,15 @@
|
||||
** * 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)
|
||||
** 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.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user