| /* NOTE: Do not edit this file, it is generated by a script: |
| Export.py --api gl 4.2 --api wgl 4.0 --api glx 4.0 --api cgl 1.4 --api egl 1.0 --outdir . |
| */ |
| |
| /* |
| Copyright (c) 2011-2013 NVIDIA Corporation |
| Copyright (c) 2011-2013 Cass Everitt |
| Copyright (c) 2012-2013 Scott Nations |
| Copyright (c) 2012 Mathias Schott |
| Copyright (c) 2012-2013 Nigel Stewart |
| Copyright (c) 2012-2013 Google Inc. |
| All rights reserved. |
| |
| 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. |
| |
| 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 HOLDER 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. |
| */ |
| |
| /* |
| Intended formatting conventions: |
| $ astyle --style=allman --indent=spaces=2 --indent-switches |
| */ |
| |
| #include "pch.h" /* For MS precompiled header support */ |
| |
| #include "RegalUtil.h" |
| |
| REGAL_GLOBAL_BEGIN |
| |
| #include <GL/Regal.h> |
| |
| #include <string> |
| #include <set> |
| using namespace std; |
| |
| #include <boost/print/string_list.hpp> |
| using namespace boost::print; |
| |
| #include "RegalToken.h" |
| #include "RegalContext.h" |
| #include "RegalContextInfo.h" |
| #include "RegalIff.h" // For REGAL_MAX_VERTEX_ATTRIBS |
| |
| REGAL_GLOBAL_END |
| |
| REGAL_NAMESPACE_BEGIN |
| |
| using namespace ::REGAL_NAMESPACE_INTERNAL::Logging; |
| using namespace ::REGAL_NAMESPACE_INTERNAL::Token; |
| |
| ContextInfo::ContextInfo() |
| : |
| compat(false), |
| core(false), |
| es1(false), |
| es2(false), |
| webgl(false), |
| gl_version_major(-1), |
| gl_version_minor(-1), |
| gl_version_1_0(false), |
| gl_version_1_1(false), |
| gl_version_1_2(false), |
| gl_version_1_3(false), |
| gl_version_1_4(false), |
| gl_version_1_5(false), |
| gl_version_2_0(false), |
| gl_version_2_1(false), |
| gl_version_3_0(false), |
| gl_version_3_1(false), |
| gl_version_3_2(false), |
| gl_version_3_3(false), |
| gl_version_4_0(false), |
| gl_version_4_1(false), |
| gl_version_4_2(false), |
| gles_version_major(-1), |
| gles_version_minor(-1), |
| glsl_version_major(-1), |
| glsl_version_minor(-1), |
| glx_version_major(-1), |
| glx_version_minor(-1), |
| glx_version_1_0(false), |
| glx_version_1_1(false), |
| glx_version_1_2(false), |
| glx_version_1_3(false), |
| glx_version_1_4(false), |
| egl_version_major(-1), |
| egl_version_minor(-1), |
| egl_version_1_0(false), |
| egl_version_1_1(false), |
| egl_version_1_2(false), |
| gl_3dfx_multisample(false), |
| gl_3dfx_tbuffer(false), |
| gl_3dfx_texture_compression_fxt1(false), |
| gl_amd_blend_minmax_factor(false), |
| gl_amd_compressed_3dc_texture(false), |
| gl_amd_compressed_atc_texture(false), |
| gl_amd_debug_output(false), |
| gl_amd_depth_clamp_separate(false), |
| gl_amd_draw_buffers_blend(false), |
| gl_amd_interleaved_elements(false), |
| gl_amd_multi_draw_indirect(false), |
| gl_amd_name_gen_delete(false), |
| gl_amd_performance_monitor(false), |
| gl_amd_pinned_memory(false), |
| gl_amd_program_binary_z400(false), |
| gl_amd_query_buffer_object(false), |
| gl_amd_sample_positions(false), |
| gl_amd_seamless_cubemap_per_texture(false), |
| gl_amd_sparse_texture(false), |
| gl_amd_stencil_operation_extended(false), |
| gl_amd_vertex_shader_tessellator(false), |
| gl_angle_framebuffer_blit(false), |
| gl_angle_framebuffer_multisample(false), |
| gl_angle_instanced_arrays(false), |
| gl_angle_pack_reverse_row_order(false), |
| gl_angle_program_binary(false), |
| gl_angle_texture_compression_dxt1(false), |
| gl_angle_texture_compression_dxt3(false), |
| gl_angle_texture_compression_dxt5(false), |
| gl_angle_texture_usage(false), |
| gl_angle_timer_query(false), |
| gl_angle_translated_shader_source(false), |
| gl_apple_aux_depth_stencil(false), |
| gl_apple_client_storage(false), |
| gl_apple_copy_texture_levels(false), |
| gl_apple_element_array(false), |
| gl_apple_fence(false), |
| gl_apple_float_pixels(false), |
| gl_apple_flush_buffer_range(false), |
| gl_apple_flush_render(false), |
| gl_apple_framebuffer_multisample(false), |
| gl_apple_object_purgeable(false), |
| gl_apple_pixel_buffer(false), |
| gl_apple_rgb_422(false), |
| gl_apple_row_bytes(false), |
| gl_apple_specular_vector(false), |
| gl_apple_sync(false), |
| gl_apple_texture_max_level(false), |
| gl_apple_texture_range(false), |
| gl_apple_transform_hint(false), |
| gl_apple_vertex_array_object(false), |
| gl_apple_vertex_array_range(false), |
| gl_apple_vertex_program_evaluators(false), |
| gl_apple_ycbcr_422(false), |
| gl_arb_es2_compatibility(false), |
| gl_arb_es3_compatibility(false), |
| gl_arb_base_instance(false), |
| gl_arb_bindless_texture(false), |
| gl_arb_blend_func_extended(false), |
| gl_arb_buffer_storage(false), |
| gl_arb_cl_event(false), |
| gl_arb_clear_buffer_object(false), |
| gl_arb_clear_texture(false), |
| gl_arb_color_buffer_float(false), |
| gl_arb_compressed_texture_pixel_storage(false), |
| gl_arb_compute_shader(false), |
| gl_arb_compute_variable_group_size(false), |
| gl_arb_copy_buffer(false), |
| gl_arb_copy_image(false), |
| gl_arb_debug_output(false), |
| gl_arb_depth_buffer_float(false), |
| gl_arb_depth_clamp(false), |
| gl_arb_depth_texture(false), |
| gl_arb_draw_buffers(false), |
| gl_arb_draw_buffers_blend(false), |
| gl_arb_draw_elements_base_vertex(false), |
| gl_arb_draw_indirect(false), |
| gl_arb_draw_instanced(false), |
| gl_arb_enhanced_layouts(false), |
| gl_arb_explicit_uniform_location(false), |
| gl_arb_fragment_program(false), |
| gl_arb_fragment_shader(false), |
| gl_arb_framebuffer_no_attachments(false), |
| gl_arb_framebuffer_object(false), |
| gl_arb_framebuffer_srgb(false), |
| gl_arb_geometry_shader4(false), |
| gl_arb_get_program_binary(false), |
| gl_arb_gpu_shader5(false), |
| gl_arb_gpu_shader_fp64(false), |
| gl_arb_half_float_pixel(false), |
| gl_arb_half_float_vertex(false), |
| gl_arb_imaging(false), |
| gl_arb_indirect_parameters(false), |
| gl_arb_instanced_arrays(false), |
| gl_arb_internalformat_query(false), |
| gl_arb_internalformat_query2(false), |
| gl_arb_invalidate_subdata(false), |
| gl_arb_map_buffer_alignment(false), |
| gl_arb_map_buffer_range(false), |
| gl_arb_matrix_palette(false), |
| gl_arb_multi_bind(false), |
| gl_arb_multi_draw_indirect(false), |
| gl_arb_multisample(false), |
| gl_arb_multitexture(false), |
| gl_arb_occlusion_query(false), |
| gl_arb_occlusion_query2(false), |
| gl_arb_pixel_buffer_object(false), |
| gl_arb_point_parameters(false), |
| gl_arb_point_sprite(false), |
| gl_arb_program_interface_query(false), |
| gl_arb_provoking_vertex(false), |
| gl_arb_query_buffer_object(false), |
| gl_arb_robustness(false), |
| gl_arb_sample_shading(false), |
| gl_arb_sampler_objects(false), |
| gl_arb_seamless_cube_map(false), |
| gl_arb_separate_shader_objects(false), |
| gl_arb_shader_atomic_counters(false), |
| gl_arb_shader_image_load_store(false), |
| gl_arb_shader_objects(false), |
| gl_arb_shader_storage_buffer_object(false), |
| gl_arb_shader_subroutine(false), |
| gl_arb_shading_language_100(false), |
| gl_arb_shading_language_include(false), |
| gl_arb_shadow(false), |
| gl_arb_shadow_ambient(false), |
| gl_arb_sparse_texture(false), |
| gl_arb_stencil_texturing(false), |
| gl_arb_sync(false), |
| gl_arb_tessellation_shader(false), |
| gl_arb_texture_border_clamp(false), |
| gl_arb_texture_buffer_object(false), |
| gl_arb_texture_buffer_range(false), |
| gl_arb_texture_compression(false), |
| gl_arb_texture_compression_bptc(false), |
| gl_arb_texture_compression_rgtc(false), |
| gl_arb_texture_cube_map(false), |
| gl_arb_texture_cube_map_array(false), |
| gl_arb_texture_env_combine(false), |
| gl_arb_texture_env_dot3(false), |
| gl_arb_texture_float(false), |
| gl_arb_texture_gather(false), |
| gl_arb_texture_mirror_clamp_to_edge(false), |
| gl_arb_texture_mirrored_repeat(false), |
| gl_arb_texture_multisample(false), |
| gl_arb_texture_rectangle(false), |
| gl_arb_texture_rg(false), |
| gl_arb_texture_rgb10_a2ui(false), |
| gl_arb_texture_storage(false), |
| gl_arb_texture_storage_multisample(false), |
| gl_arb_texture_swizzle(false), |
| gl_arb_texture_view(false), |
| gl_arb_timer_query(false), |
| gl_arb_transform_feedback2(false), |
| gl_arb_transform_feedback3(false), |
| gl_arb_transform_feedback_instanced(false), |
| gl_arb_transpose_matrix(false), |
| gl_arb_uniform_buffer_object(false), |
| gl_arb_vertex_array_object(false), |
| gl_arb_vertex_attrib_64bit(false), |
| gl_arb_vertex_attrib_binding(false), |
| gl_arb_vertex_blend(false), |
| gl_arb_vertex_buffer_object(false), |
| gl_arb_vertex_program(false), |
| gl_arb_vertex_shader(false), |
| gl_arb_vertex_type_2_10_10_10_rev(false), |
| gl_arb_viewport_array(false), |
| gl_arb_window_pos(false), |
| gl_arm_mali_program_binary(false), |
| gl_arm_mali_shader_binary(false), |
| gl_ati_draw_buffers(false), |
| gl_ati_element_array(false), |
| gl_ati_envmap_bumpmap(false), |
| gl_ati_fragment_shader(false), |
| gl_ati_map_object_buffer(false), |
| gl_ati_meminfo(false), |
| gl_ati_pn_triangles(false), |
| gl_ati_separate_stencil(false), |
| gl_ati_text_fragment_shader(false), |
| gl_ati_texture_compression_3dc(false), |
| gl_ati_texture_env_combine3(false), |
| gl_ati_texture_float(false), |
| gl_ati_texture_mirror_once(false), |
| gl_ati_vertex_array_object(false), |
| gl_ati_vertex_attrib_array_object(false), |
| gl_ati_vertex_streams(false), |
| gl_dmp_shader_binary(false), |
| gl_ext_422_pixels(false), |
| gl_ext_cg_shader(false), |
| gl_ext_abgr(false), |
| gl_ext_bgra(false), |
| gl_ext_bindable_uniform(false), |
| gl_ext_blend_color(false), |
| gl_ext_blend_equation_separate(false), |
| gl_ext_blend_func_separate(false), |
| gl_ext_blend_minmax(false), |
| gl_ext_blend_subtract(false), |
| gl_ext_clip_volume_hint(false), |
| gl_ext_cmyka(false), |
| gl_ext_color_buffer_half_float(false), |
| gl_ext_color_subtable(false), |
| gl_ext_compiled_vertex_array(false), |
| gl_ext_convolution(false), |
| gl_ext_coordinate_frame(false), |
| gl_ext_copy_texture(false), |
| gl_ext_cull_vertex(false), |
| gl_ext_debug_label(false), |
| gl_ext_debug_marker(false), |
| gl_ext_depth_bounds_test(false), |
| gl_ext_direct_state_access(false), |
| gl_ext_discard_framebuffer(false), |
| gl_ext_disjoint_timer_query(false), |
| gl_ext_draw_buffers2(false), |
| gl_ext_draw_instanced(false), |
| gl_ext_draw_range_elements(false), |
| gl_ext_fog_coord(false), |
| gl_ext_fragment_lighting(false), |
| gl_ext_framebuffer_blit(false), |
| gl_ext_framebuffer_multisample(false), |
| gl_ext_framebuffer_multisample_blit_scaled(false), |
| gl_ext_framebuffer_object(false), |
| gl_ext_framebuffer_srgb(false), |
| gl_ext_geometry_shader4(false), |
| gl_ext_gpu_program_parameters(false), |
| gl_ext_gpu_shader4(false), |
| gl_ext_histogram(false), |
| gl_ext_index_func(false), |
| gl_ext_index_material(false), |
| gl_ext_light_texture(false), |
| gl_ext_map_buffer_range(false), |
| gl_ext_multi_draw_arrays(false), |
| gl_ext_multisample(false), |
| gl_ext_multisampled_render_to_texture(false), |
| gl_ext_multiview_draw_buffers(false), |
| gl_ext_occlusion_query_boolean(false), |
| gl_ext_packed_depth_stencil(false), |
| gl_ext_packed_float(false), |
| gl_ext_packed_pixels(false), |
| gl_ext_paletted_texture(false), |
| gl_ext_pixel_buffer_object(false), |
| gl_ext_pixel_transform(false), |
| gl_ext_point_parameters(false), |
| gl_ext_polygon_offset(false), |
| gl_ext_provoking_vertex(false), |
| gl_ext_read_format_bgra(false), |
| gl_ext_rescale_normal(false), |
| gl_ext_robustness(false), |
| gl_ext_srgb(false), |
| gl_ext_scene_marker(false), |
| gl_ext_secondary_color(false), |
| gl_ext_separate_shader_objects(false), |
| gl_ext_separate_specular_color(false), |
| gl_ext_shader_framebuffer_fetch(false), |
| gl_ext_shader_image_load_store(false), |
| gl_ext_shadow_samplers(false), |
| gl_ext_shared_texture_palette(false), |
| gl_ext_stencil_clear_tag(false), |
| gl_ext_stencil_two_side(false), |
| gl_ext_stencil_wrap(false), |
| gl_ext_subtexture(false), |
| gl_ext_texture(false), |
| gl_ext_texture3d(false), |
| gl_ext_texture_array(false), |
| gl_ext_texture_buffer_object(false), |
| gl_ext_texture_compression_latc(false), |
| gl_ext_texture_compression_rgtc(false), |
| gl_ext_texture_compression_s3tc(false), |
| gl_ext_texture_cube_map(false), |
| gl_ext_texture_edge_clamp(false), |
| gl_ext_texture_env_combine(false), |
| gl_ext_texture_env_dot3(false), |
| gl_ext_texture_filter_anisotropic(false), |
| gl_ext_texture_format_bgra8888(false), |
| gl_ext_texture_integer(false), |
| gl_ext_texture_lod_bias(false), |
| gl_ext_texture_mirror_clamp(false), |
| gl_ext_texture_object(false), |
| gl_ext_texture_perturb_normal(false), |
| gl_ext_texture_rectangle(false), |
| gl_ext_texture_rg(false), |
| gl_ext_texture_srgb(false), |
| gl_ext_texture_srgb_decode(false), |
| gl_ext_texture_shared_exponent(false), |
| gl_ext_texture_snorm(false), |
| gl_ext_texture_storage(false), |
| gl_ext_texture_swizzle(false), |
| gl_ext_texture_type_2_10_10_10_rev(false), |
| gl_ext_timer_query(false), |
| gl_ext_transform_feedback(false), |
| gl_ext_unpack_subimage(false), |
| gl_ext_vertex_array(false), |
| gl_ext_vertex_attrib_64bit(false), |
| gl_ext_vertex_shader(false), |
| gl_ext_vertex_weighting(false), |
| gl_ext_x11_sync_object(false), |
| gl_fj_shader_binary_gccso(false), |
| gl_gremedy_frame_terminator(false), |
| gl_gremedy_string_marker(false), |
| gl_hp_image_transform(false), |
| gl_hp_occlusion_test(false), |
| gl_ibm_cull_vertex(false), |
| gl_ibm_multimode_draw_arrays(false), |
| gl_ibm_rasterpos_clip(false), |
| gl_ibm_static_data(false), |
| gl_ibm_texture_mirrored_repeat(false), |
| gl_ibm_vertex_array_lists(false), |
| gl_img_multisampled_render_to_texture(false), |
| gl_img_program_binary(false), |
| gl_img_read_format(false), |
| gl_img_shader_binary(false), |
| gl_img_texture_compression_pvrtc(false), |
| gl_img_texture_compression_pvrtc2(false), |
| gl_img_texture_env_enhanced_fixed_function(false), |
| gl_img_user_clip_plane(false), |
| gl_ingr_blend_func_separate(false), |
| gl_ingr_color_clamp(false), |
| gl_ingr_interlace_read(false), |
| gl_intel_map_texture(false), |
| gl_intel_parallel_arrays(false), |
| gl_intel_texture_scissor(false), |
| gl_khr_debug(false), |
| gl_khr_texture_compression_astc_ldr(false), |
| gl_ktx_buffer_region(false), |
| gl_mesax_texture_stack(false), |
| gl_mesa_pack_invert(false), |
| gl_mesa_resize_buffers(false), |
| gl_mesa_window_pos(false), |
| gl_mesa_ycbcr_texture(false), |
| gl_nvx_conditional_render(false), |
| gl_nvx_gpu_memory_info(false), |
| gl_nv_3dvision_settings(false), |
| gl_nv_bgr(false), |
| gl_nv_bindless_texture(false), |
| gl_nv_blend_square(false), |
| gl_nv_compute_program5(false), |
| gl_nv_conditional_render(false), |
| gl_nv_copy_depth_to_color(false), |
| gl_nv_copy_image(false), |
| gl_nv_coverage_sample(false), |
| gl_nv_deep_texture3d(false), |
| gl_nv_depth_buffer_float(false), |
| gl_nv_depth_clamp(false), |
| gl_nv_depth_nonlinear(false), |
| gl_nv_depth_range_unclamped(false), |
| gl_nv_draw_buffers(false), |
| gl_nv_draw_texture(false), |
| gl_nv_evaluators(false), |
| gl_nv_explicit_multisample(false), |
| gl_nv_fbo_color_attachments(false), |
| gl_nv_fence(false), |
| gl_nv_float_buffer(false), |
| gl_nv_fog_distance(false), |
| gl_nv_fragment_program(false), |
| gl_nv_fragment_program2(false), |
| gl_nv_framebuffer_blit(false), |
| gl_nv_framebuffer_multisample(false), |
| gl_nv_framebuffer_multisample_coverage(false), |
| gl_nv_geometry_program4(false), |
| gl_nv_gpu_program4(false), |
| gl_nv_gpu_program5(false), |
| gl_nv_gpu_shader5(false), |
| gl_nv_half_float(false), |
| gl_nv_instanced_arrays(false), |
| gl_nv_light_max_exponent(false), |
| gl_nv_multisample_coverage(false), |
| gl_nv_multisample_filter_hint(false), |
| gl_nv_occlusion_query(false), |
| gl_nv_pack_subimage(false), |
| gl_nv_packed_depth_stencil(false), |
| gl_nv_packed_float_linear(false), |
| gl_nv_parameter_buffer_object(false), |
| gl_nv_path_rendering(false), |
| gl_nv_pixel_buffer_object(false), |
| gl_nv_pixel_data_range(false), |
| gl_nv_platform_binary(false), |
| gl_nv_point_sprite(false), |
| gl_nv_present_video(false), |
| gl_nv_primitive_restart(false), |
| gl_nv_read_buffer(false), |
| gl_nv_read_buffer_front(false), |
| gl_nv_register_combiners(false), |
| gl_nv_register_combiners2(false), |
| gl_nv_srgb_formats(false), |
| gl_nv_shader_buffer_load(false), |
| gl_nv_shadow_samplers_array(false), |
| gl_nv_shadow_samplers_cube(false), |
| gl_nv_tessellation_program5(false), |
| gl_nv_texgen_emboss(false), |
| gl_nv_texgen_reflection(false), |
| gl_nv_texture_array(false), |
| gl_nv_texture_barrier(false), |
| gl_nv_texture_border_clamp(false), |
| gl_nv_texture_compression_latc(false), |
| gl_nv_texture_compression_s3tc(false), |
| gl_nv_texture_env_combine4(false), |
| gl_nv_texture_expand_normal(false), |
| gl_nv_texture_multisample(false), |
| gl_nv_texture_rectangle(false), |
| gl_nv_texture_shader(false), |
| gl_nv_texture_shader2(false), |
| gl_nv_texture_shader3(false), |
| gl_nv_transform_feedback(false), |
| gl_nv_transform_feedback2(false), |
| gl_nv_vdpau_interop(false), |
| gl_nv_vertex_array_range(false), |
| gl_nv_vertex_array_range2(false), |
| gl_nv_vertex_attrib_integer_64bit(false), |
| gl_nv_vertex_buffer_unified_memory(false), |
| gl_nv_vertex_program(false), |
| gl_nv_vertex_program2_option(false), |
| gl_nv_vertex_program3(false), |
| gl_nv_vertex_program4(false), |
| gl_nv_video_capture(false), |
| gl_oes_blend_equation_separate(false), |
| gl_oes_blend_func_separate(false), |
| gl_oes_blend_subtract(false), |
| gl_oes_compressed_etc1_rgb8_texture(false), |
| gl_oes_compressed_paletted_texture(false), |
| gl_oes_depth_texture(false), |
| gl_oes_draw_texture(false), |
| gl_oes_element_index_uint(false), |
| gl_oes_fbo_render_mipmap(false), |
| gl_oes_framebuffer_object(false), |
| gl_oes_get_program_binary(false), |
| gl_oes_mapbuffer(false), |
| gl_oes_matrix_get(false), |
| gl_oes_matrix_palette(false), |
| gl_oes_packed_depth_stencil(false), |
| gl_oes_point_size_array(false), |
| gl_oes_point_sprite(false), |
| gl_oes_read_format(false), |
| gl_oes_required_internalformat(false), |
| gl_oes_rgb8_rgba8(false), |
| gl_oes_single_precision(false), |
| gl_oes_standard_derivatives(false), |
| gl_oes_stencil1(false), |
| gl_oes_stencil4(false), |
| gl_oes_stencil8(false), |
| gl_oes_surfaceless_context(false), |
| gl_oes_texture_3d(false), |
| gl_oes_texture_cube_map(false), |
| gl_oes_texture_mirrored_repeat(false), |
| gl_oes_vertex_array_object(false), |
| gl_oes_vertex_half_float(false), |
| gl_oes_vertex_type_10_10_10_2(false), |
| gl_oml_interlace(false), |
| gl_oml_resample(false), |
| gl_oml_subsample(false), |
| gl_pgi_misc_hints(false), |
| gl_pgi_vertex_hints(false), |
| gl_qcom_alpha_test(false), |
| gl_qcom_binning_control(false), |
| gl_qcom_driver_control(false), |
| gl_qcom_extended_get(false), |
| gl_qcom_extended_get2(false), |
| gl_qcom_perfmon_global_mode(false), |
| gl_qcom_tiled_rendering(false), |
| gl_qcom_writeonly_rendering(false), |
| gl_regal_es1_0_compatibility(false), |
| gl_regal_es1_1_compatibility(false), |
| gl_regal_enable(false), |
| gl_regal_error_string(false), |
| gl_regal_extension_query(false), |
| gl_regal_log(false), |
| gl_rend_screen_coordinates(false), |
| gl_s3_s3tc(false), |
| gl_sgis_color_range(false), |
| gl_sgis_detail_texture(false), |
| gl_sgis_fog_function(false), |
| gl_sgis_generate_mipmap(false), |
| gl_sgis_multisample(false), |
| gl_sgis_pixel_texture(false), |
| gl_sgis_point_line_texgen(false), |
| gl_sgis_point_parameters(false), |
| gl_sgis_sharpen_texture(false), |
| gl_sgis_texture4d(false), |
| gl_sgis_texture_border_clamp(false), |
| gl_sgis_texture_color_mask(false), |
| gl_sgis_texture_edge_clamp(false), |
| gl_sgis_texture_filter4(false), |
| gl_sgis_texture_lod(false), |
| gl_sgix_async(false), |
| gl_sgix_async_histogram(false), |
| gl_sgix_async_pixel(false), |
| gl_sgix_blend_alpha_minmax(false), |
| gl_sgix_convolution_accuracy(false), |
| gl_sgix_depth_texture(false), |
| gl_sgix_flush_raster(false), |
| gl_sgix_fog_offset(false), |
| gl_sgix_fog_texture(false), |
| gl_sgix_fragment_lighting(false), |
| gl_sgix_fragment_specular_lighting(false), |
| gl_sgix_framezoom(false), |
| gl_sgix_igloo_interface(false), |
| gl_sgix_instruments(false), |
| gl_sgix_interlace(false), |
| gl_sgix_list_priority(false), |
| gl_sgix_pixel_texture(false), |
| gl_sgix_polynomial_ffd(false), |
| gl_sgix_reference_plane(false), |
| gl_sgix_resample(false), |
| gl_sgix_shadow(false), |
| gl_sgix_shadow_ambient(false), |
| gl_sgix_sprite(false), |
| gl_sgix_tag_sample_buffer(false), |
| gl_sgix_texture_coordinate_clamp(false), |
| gl_sgix_texture_multi_buffer(false), |
| gl_sgix_texture_range(false), |
| gl_sgix_texture_scale_bias(false), |
| gl_sgix_vertex_preclip_hint(false), |
| gl_sgix_ycrcb(false), |
| gl_sgi_color_matrix(false), |
| gl_sgi_color_table(false), |
| gl_sgi_texture_color_table(false), |
| gl_sunx_constant_data(false), |
| gl_sun_convolution_border_modes(false), |
| gl_sun_global_alpha(false), |
| gl_sun_mesh_array(false), |
| gl_sun_read_video_pixels(false), |
| gl_sun_slice_accum(false), |
| gl_sun_triangle_list(false), |
| gl_sun_vertex(false), |
| gl_viv_shader_binary(false), |
| gl_win_phong_shading(false), |
| gl_win_specular_fog(false), |
| gl_win_swap_hint(false), |
| regal_arb_draw_buffers(false), |
| regal_arb_multitexture(false), |
| regal_arb_texture_cube_map(false), |
| regal_arb_texture_env_combine(false), |
| regal_arb_texture_env_dot3(false), |
| regal_arb_texture_storage(false), |
| regal_ati_draw_buffers(false), |
| regal_ext_blend_color(false), |
| regal_ext_blend_subtract(false), |
| regal_ext_direct_state_access(false), |
| regal_ext_framebuffer_blit(false), |
| regal_ext_framebuffer_object(false), |
| regal_ext_texture_cube_map(false), |
| regal_ext_texture_edge_clamp(false), |
| regal_ext_texture_env_combine(false), |
| regal_ext_texture_env_dot3(false), |
| regal_ibm_texture_mirrored_repeat(false), |
| regal_nv_blend_square(false), |
| #if REGAL_SYS_WGL |
| wgl_3dl_stereo_control(false), |
| wgl_amd_gpu_association(false), |
| wgl_arb_buffer_region(false), |
| wgl_arb_create_context(false), |
| wgl_arb_create_context_profile(false), |
| wgl_arb_create_context_robustness(false), |
| wgl_arb_extensions_string(false), |
| wgl_arb_framebuffer_srgb(false), |
| wgl_arb_make_current_read(false), |
| wgl_arb_multisample(false), |
| wgl_arb_pbuffer(false), |
| wgl_arb_pixel_format(false), |
| wgl_arb_pixel_format_float(false), |
| wgl_arb_render_texture(false), |
| wgl_arb_robustness_share_group_isolation(false), |
| wgl_ati_pixel_format_float(false), |
| wgl_ati_render_texture_rectangle(false), |
| wgl_ext_create_context_es2_profile(false), |
| wgl_ext_create_context_es_profile(false), |
| wgl_ext_depth_float(false), |
| wgl_ext_display_color_table(false), |
| wgl_ext_extensions_string(false), |
| wgl_ext_framebuffer_srgb(false), |
| wgl_ext_make_current_read(false), |
| wgl_ext_multisample(false), |
| wgl_ext_pbuffer(false), |
| wgl_ext_pixel_format(false), |
| wgl_ext_pixel_format_packed_float(false), |
| wgl_ext_swap_control(false), |
| wgl_gdi(false), |
| wgl_i3d_digital_video_control(false), |
| wgl_i3d_gamma(false), |
| wgl_i3d_genlock(false), |
| wgl_i3d_image_buffer(false), |
| wgl_i3d_swap_frame_lock(false), |
| wgl_i3d_swap_frame_usage(false), |
| wgl_nv_dx_interop(false), |
| wgl_nv_copy_image(false), |
| wgl_nv_float_buffer(false), |
| wgl_nv_gpu_affinity(false), |
| wgl_nv_multisample_coverage(false), |
| wgl_nv_present_video(false), |
| wgl_nv_render_depth_texture(false), |
| wgl_nv_render_texture_rectangle(false), |
| wgl_nv_swap_group(false), |
| wgl_nv_vertex_array_range(false), |
| wgl_nv_video_capture(false), |
| wgl_nv_video_output(false), |
| wgl_oml_sync_control(false), |
| #endif |
| #if REGAL_SYS_GLX |
| glx_3dfx_multisample(false), |
| glx_amd_gpu_association(false), |
| glx_arb_create_context(false), |
| glx_arb_create_context_profile(false), |
| glx_arb_create_context_robustness(false), |
| glx_arb_fbconfig_float(false), |
| glx_arb_framebuffer_srgb(false), |
| glx_arb_get_proc_address(false), |
| glx_arb_multisample(false), |
| glx_arb_robustness_share_group_isolation(false), |
| glx_arb_vertex_buffer_object(false), |
| glx_ati_pixel_format_float(false), |
| glx_ati_render_texture(false), |
| glx_ext_create_context_es2_profile(false), |
| glx_ext_create_context_es_profile(false), |
| glx_ext_fbconfig_packed_float(false), |
| glx_ext_framebuffer_srgb(false), |
| glx_ext_import_context(false), |
| glx_ext_swap_control(false), |
| glx_ext_swap_control_tear(false), |
| glx_ext_texture_from_pixmap(false), |
| glx_ext_visual_info(false), |
| glx_ext_visual_rating(false), |
| glx_intel_swap_event(false), |
| glx_mesa_agp_offset(false), |
| glx_mesa_copy_sub_buffer(false), |
| glx_mesa_pixmap_colormap(false), |
| glx_mesa_release_buffers(false), |
| glx_mesa_set_3dfx_mode(false), |
| glx_mesa_swap_control(false), |
| glx_nv_copy_image(false), |
| glx_nv_float_buffer(false), |
| glx_nv_multisample_coverage(false), |
| glx_nv_present_video(false), |
| glx_nv_swap_group(false), |
| glx_nv_vertex_array_range(false), |
| glx_nv_video_capture(false), |
| glx_nv_video_output(false), |
| glx_oml_swap_method(false), |
| glx_oml_sync_control(false), |
| glx_sgis_blended_overlay(false), |
| glx_sgis_color_range(false), |
| glx_sgis_multisample(false), |
| glx_sgis_shared_multisample(false), |
| glx_sgix_fbconfig(false), |
| glx_sgix_hyperpipe(false), |
| glx_sgix_pbuffer(false), |
| glx_sgix_swap_barrier(false), |
| glx_sgix_swap_group(false), |
| glx_sgix_video_resize(false), |
| glx_sgix_visual_select_group(false), |
| glx_sgi_cushion(false), |
| glx_sgi_make_current_read(false), |
| glx_sgi_swap_control(false), |
| glx_sgi_video_sync(false), |
| glx_sun_get_transparent_index(false), |
| glx_sun_video_resize(false), |
| #endif |
| #if REGAL_SYS_EGL |
| egl_angle_query_surface_pointer(false), |
| egl_angle_surface_d3d_texture_2d_share_handle(false), |
| egl_ext_create_context_robustness(false), |
| egl_ext_multiview_window(false), |
| egl_hi_colorformats(false), |
| egl_img_context_priority(false), |
| egl_khr_config_attribs(false), |
| egl_khr_create_context(false), |
| egl_khr_fence_sync(false), |
| egl_khr_gl_texture_cubemap_image(false), |
| egl_khr_image_base(false), |
| egl_khr_image_pixmap(false), |
| egl_khr_lock_surface(false), |
| egl_khr_lock_surface2(false), |
| egl_khr_reusable_sync(false), |
| egl_khr_stream(false), |
| egl_khr_stream_consumer_gltexture(false), |
| egl_khr_stream_cross_process_fd(false), |
| egl_khr_stream_fifo(false), |
| egl_khr_stream_producer_eglsurface(false), |
| egl_khr_vg_parent_image(false), |
| egl_khr_wait_sync(false), |
| egl_mesa_drm_image(false), |
| egl_nv_coverage_sample(false), |
| egl_nv_coverage_sample_resolve(false), |
| egl_nv_post_sub_buffer(false), |
| egl_nv_sync(false), |
| egl_nv_system_time(false), |
| #endif |
| |
| maxVertexAttribs(0), |
| maxVaryings(0) |
| { |
| Internal("ContextInfo::ContextInfo","()"); |
| } |
| |
| ContextInfo::~ContextInfo() |
| { |
| Internal("ContextInfo::~ContextInfo","()"); |
| } |
| |
| inline string getString(const RegalContext &context, const GLenum e) |
| { |
| Internal("getString ",toString(e)); |
| RegalAssert(context.dispatcher.driver.glGetString); |
| const GLubyte *str = context.dispatcher.driver.glGetString(e); |
| return str ? string(reinterpret_cast<const char *>(str)) : string(); |
| } |
| |
| void |
| ContextInfo::init(const RegalContext &context) |
| { |
| // OpenGL Version. |
| |
| vendor = getString(context, GL_VENDOR); |
| renderer = getString(context, GL_RENDERER); |
| version = getString(context, GL_VERSION); |
| |
| Info("OpenGL vendor : ",vendor); |
| Info("OpenGL renderer : ",renderer); |
| Info("OpenGL version : ",version); |
| |
| gl_version_major = 0; |
| gl_version_minor = 0; |
| |
| gles_version_major = 0; |
| gles_version_minor = 0; |
| |
| // Detect GL context version |
| |
| #if REGAL_SYS_ES1 |
| es1 = starts_with(version, "OpenGL ES-CM"); |
| if (es1) |
| { |
| sscanf(version.c_str(), "OpenGL ES-CM %d.%d", &gles_version_major, &gles_version_minor); |
| } |
| else |
| #endif |
| { |
| #if REGAL_SYS_ES2 |
| es2 = starts_with(version,"OpenGL ES "); |
| if (es2) |
| { |
| sscanf(version.c_str(), "OpenGL ES %d.%d", &gles_version_major, &gles_version_minor); |
| } |
| else |
| #endif |
| { |
| sscanf(version.c_str(), "%d.%d", &gl_version_major, &gl_version_minor); |
| } |
| } |
| |
| // We could get either form of the OpenGL ES string, so confirm version |
| |
| #if REGAL_SYS_ES1 || REGAL_SYS_ES2 |
| if (!es1 && (gles_version_major == 1)) |
| { |
| es1 = GL_TRUE; |
| es2 = GL_FALSE; |
| } |
| else if (!es2 && (gles_version_major == 2)) |
| { |
| es1 = GL_FALSE; |
| es2 = GL_TRUE; |
| } |
| #endif |
| |
| #if REGAL_SYS_EMSCRIPTEN |
| webgl = starts_with(version, "WebGL"); |
| #endif |
| |
| // For Mesa3D EGL/ES 2.0 on desktop Linux the version string doesn't start with |
| // "OpenGL ES" Is that a Mesa3D bug? Perhaps... |
| |
| #if REGAL_SYS_ES2 && REGAL_SYS_EGL && !REGAL_SYS_ANDROID && !REGAL_SYS_EMSCRIPTEN |
| if (Regal::Config::sysEGL) |
| { |
| es1 = false; |
| es2 = true; |
| webgl = false; |
| gles_version_major = 2; |
| gles_version_minor = 0; |
| } |
| #endif |
| |
| #if REGAL_SYS_ES2 && REGAL_SYS_EGL && REGAL_SYS_EMSCRIPTEN |
| { |
| es1 = false; |
| es2 = true; |
| webgl = true; |
| gles_version_major = 2; |
| gles_version_minor = 0; |
| } |
| #endif |
| |
| // Detect core context |
| |
| if (!es1 && !es2 && gl_version_major>=3) |
| { |
| GLint flags = 0; |
| RegalAssert(context.dispatcher.driver.glGetIntegerv); |
| context.dispatcher.driver.glGetIntegerv(GL_CONTEXT_PROFILE_MASK, &flags); |
| core = flags & GL_CONTEXT_CORE_PROFILE_BIT ? GL_TRUE : GL_FALSE; |
| } |
| |
| compat = !core && !es1 && !es2 && !webgl; |
| |
| if (REGAL_FORCE_CORE_PROFILE || Config::forceCoreProfile) |
| { |
| compat = false; |
| core = true; |
| es1 = false; |
| es2 = false; |
| } |
| |
| #if REGAL_SYS_ES1 |
| if (REGAL_FORCE_ES1_PROFILE || Config::forceES1Profile) |
| { |
| compat = false; |
| core = false; |
| es1 = true; |
| es2 = false; |
| } |
| #endif |
| |
| #if REGAL_SYS_ES2 |
| if (REGAL_FORCE_ES2_PROFILE || Config::forceES2Profile) |
| { |
| compat = false; |
| core = false; |
| es1 = false; |
| es2 = true; |
| } |
| #endif |
| |
| // Detect driver extensions |
| |
| string_list<string> driverExtensions; |
| |
| if (core) |
| { |
| RegalAssert(context.dispatcher.driver.glGetStringi); |
| RegalAssert(context.dispatcher.driver.glGetIntegerv); |
| |
| GLint n = 0; |
| context.dispatcher.driver.glGetIntegerv(GL_NUM_EXTENSIONS, &n); |
| |
| for (GLint i=0; i<n; ++i) |
| driverExtensions.push_back(reinterpret_cast<const char *>(context.dispatcher.driver.glGetStringi(GL_EXTENSIONS,i))); |
| extensions = driverExtensions.join(" "); |
| } |
| else |
| { |
| extensions = getString(context, GL_EXTENSIONS); |
| driverExtensions.split(extensions,' '); |
| } |
| |
| regalExtensionsSet.insert(driverExtensions.begin(),driverExtensions.end()); |
| |
| Info("OpenGL extensions: ",extensions); |
| |
| // TODO - filter out extensions Regal doesn't support? |
| |
| #ifdef REGAL_GL_VENDOR |
| regalVendor = REGAL_EQUOTE(REGAL_GL_VENDOR); |
| #else |
| regalVendor = vendor; |
| #endif |
| |
| #ifdef REGAL_GL_RENDERER |
| regalRenderer = REGAL_EQUOTE(REGAL_GL_RENDERER); |
| #else |
| regalRenderer = renderer; |
| #endif |
| |
| #ifdef REGAL_GL_VERSION |
| regalVersion = REGAL_EQUOTE(REGAL_GL_VERSION); |
| #else |
| regalVersion = version; |
| #endif |
| |
| #ifdef REGAL_GL_EXTENSIONS |
| { |
| string_list<string> extList; |
| extList.split(REGAL_EQUOTE(REGAL_GL_EXTENSIONS),' '); |
| regalExtensionsSet.clear(); |
| regalExtensionsSet.insert(extList.begin(),extList.end()); |
| } |
| #else |
| static const char *ourExtensions[9] = { |
| "GL_REGAL_log", |
| "GL_REGAL_enable", |
| "GL_REGAL_error_string", |
| "GL_REGAL_extension_query", |
| "GL_REGAL_ES1_0_compatibility", |
| "GL_REGAL_ES1_1_compatibility", |
| "GL_EXT_debug_marker", |
| "GL_GREMEDY_string_marker", |
| "GL_GREMEDY_frame_terminator" |
| }; |
| regalExtensionsSet.insert(&ourExtensions[0],&ourExtensions[9]); |
| #endif |
| |
| #ifndef REGAL_NO_GETENV |
| { |
| getEnv("REGAL_GL_VENDOR", regalVendor); |
| getEnv("REGAL_GL_RENDERER", regalRenderer); |
| getEnv("REGAL_GL_VERSION", regalVersion); |
| |
| const char *extensionsEnv = getEnv("REGAL_GL_EXTENSIONS"); |
| if (extensionsEnv) |
| { |
| string_list<string> extList; |
| extList.split(extensionsEnv,' '); |
| regalExtensionsSet.clear(); |
| regalExtensionsSet.insert(extList.begin(),extList.end()); |
| } |
| } |
| #endif |
| |
| // Form Regal extension string from the set |
| |
| regalExtensions = ::boost::print::detail::join(regalExtensionsSet,string(" ")); |
| |
| Info("Regal vendor : ",regalVendor); |
| Info("Regal renderer : ",regalRenderer); |
| Info("Regal version : ",regalVersion); |
| Info("Regal extensions : ",regalExtensions); |
| |
| if (!es1 && !es2) |
| { |
| gl_version_4_2 = gl_version_major > 4 || (gl_version_major == 4 && gl_version_minor >= 2); |
| gl_version_4_1 = gl_version_4_2 || (gl_version_major == 4 && gl_version_minor == 1); |
| gl_version_4_0 = gl_version_4_1 || gl_version_major == 4; |
| gl_version_3_3 = gl_version_4_0 || (gl_version_major == 3 && gl_version_minor == 3); |
| gl_version_3_2 = gl_version_3_3 || (gl_version_major == 3 && gl_version_minor == 2); |
| gl_version_3_1 = gl_version_3_2 || (gl_version_major == 3 && gl_version_minor == 1); |
| gl_version_3_0 = gl_version_3_1 || gl_version_major == 3; |
| gl_version_2_1 = gl_version_3_0 || (gl_version_major == 2 && gl_version_minor == 1); |
| gl_version_2_0 = gl_version_2_1 || gl_version_major == 2; |
| gl_version_1_5 = gl_version_2_0 || (gl_version_major == 1 && gl_version_minor == 5); |
| gl_version_1_4 = gl_version_1_5 || (gl_version_major == 1 && gl_version_minor == 4); |
| gl_version_1_3 = gl_version_1_4 || (gl_version_major == 1 && gl_version_minor == 3); |
| gl_version_1_2 = gl_version_1_3 || (gl_version_major == 1 && gl_version_minor == 2); |
| gl_version_1_1 = gl_version_1_2 || (gl_version_major == 1 && gl_version_minor == 1); |
| gl_version_1_0 = gl_version_1_1 || gl_version_major == 1; |
| } |
| |
| glx_version_1_4 = glx_version_major > 1 || (glx_version_major == 1 && glx_version_minor >= 4); |
| glx_version_1_3 = glx_version_1_4 || (glx_version_major == 1 && glx_version_minor == 3); |
| glx_version_1_2 = glx_version_1_3 || (glx_version_major == 1 && glx_version_minor == 2); |
| glx_version_1_1 = glx_version_1_2 || (glx_version_major == 1 && glx_version_minor == 1); |
| glx_version_1_0 = glx_version_1_1 || glx_version_major == 1; |
| |
| egl_version_1_2 = egl_version_major > 1 || (egl_version_major == 1 && egl_version_minor >= 2); |
| egl_version_1_1 = egl_version_1_2 || (egl_version_major == 1 && egl_version_minor == 1); |
| egl_version_1_0 = egl_version_1_1 || egl_version_major == 1; |
| |
| // Driver extensions, etc detected by Regal |
| |
| set<string> e; |
| e.insert(driverExtensions.begin(),driverExtensions.end()); |
| |
| gl_3dfx_multisample = e.find("GL_3DFX_multisample")!=e.end(); |
| gl_3dfx_tbuffer = e.find("GL_3DFX_tbuffer")!=e.end(); |
| gl_3dfx_texture_compression_fxt1 = e.find("GL_3DFX_texture_compression_FXT1")!=e.end(); |
| gl_amd_blend_minmax_factor = e.find("GL_AMD_blend_minmax_factor")!=e.end(); |
| gl_amd_compressed_3dc_texture = e.find("GL_AMD_compressed_3DC_texture")!=e.end(); |
| gl_amd_compressed_atc_texture = e.find("GL_AMD_compressed_ATC_texture")!=e.end(); |
| gl_amd_debug_output = e.find("GL_AMD_debug_output")!=e.end(); |
| gl_amd_depth_clamp_separate = e.find("GL_AMD_depth_clamp_separate")!=e.end(); |
| gl_amd_draw_buffers_blend = e.find("GL_AMD_draw_buffers_blend")!=e.end(); |
| gl_amd_interleaved_elements = e.find("GL_AMD_interleaved_elements")!=e.end(); |
| gl_amd_multi_draw_indirect = e.find("GL_AMD_multi_draw_indirect")!=e.end(); |
| gl_amd_name_gen_delete = e.find("GL_AMD_name_gen_delete")!=e.end(); |
| gl_amd_performance_monitor = e.find("GL_AMD_performance_monitor")!=e.end(); |
| gl_amd_pinned_memory = e.find("GL_AMD_pinned_memory")!=e.end(); |
| gl_amd_program_binary_z400 = e.find("GL_AMD_program_binary_Z400")!=e.end(); |
| gl_amd_query_buffer_object = e.find("GL_AMD_query_buffer_object")!=e.end(); |
| gl_amd_sample_positions = e.find("GL_AMD_sample_positions")!=e.end(); |
| gl_amd_seamless_cubemap_per_texture = e.find("GL_AMD_seamless_cubemap_per_texture")!=e.end(); |
| gl_amd_sparse_texture = e.find("GL_AMD_sparse_texture")!=e.end(); |
| gl_amd_stencil_operation_extended = e.find("GL_AMD_stencil_operation_extended")!=e.end(); |
| gl_amd_vertex_shader_tessellator = e.find("GL_AMD_vertex_shader_tessellator")!=e.end(); |
| gl_angle_framebuffer_blit = e.find("GL_ANGLE_framebuffer_blit")!=e.end(); |
| gl_angle_framebuffer_multisample = e.find("GL_ANGLE_framebuffer_multisample")!=e.end(); |
| gl_angle_instanced_arrays = e.find("GL_ANGLE_instanced_arrays")!=e.end(); |
| gl_angle_pack_reverse_row_order = e.find("GL_ANGLE_pack_reverse_row_order")!=e.end(); |
| gl_angle_program_binary = e.find("GL_ANGLE_program_binary")!=e.end(); |
| gl_angle_texture_compression_dxt1 = e.find("GL_ANGLE_texture_compression_dxt1")!=e.end(); |
| gl_angle_texture_compression_dxt3 = e.find("GL_ANGLE_texture_compression_dxt3")!=e.end(); |
| gl_angle_texture_compression_dxt5 = e.find("GL_ANGLE_texture_compression_dxt5")!=e.end(); |
| gl_angle_texture_usage = e.find("GL_ANGLE_texture_usage")!=e.end(); |
| gl_angle_timer_query = e.find("GL_ANGLE_timer_query")!=e.end(); |
| gl_angle_translated_shader_source = e.find("GL_ANGLE_translated_shader_source")!=e.end(); |
| gl_apple_aux_depth_stencil = e.find("GL_APPLE_aux_depth_stencil")!=e.end(); |
| gl_apple_client_storage = e.find("GL_APPLE_client_storage")!=e.end(); |
| gl_apple_copy_texture_levels = e.find("GL_APPLE_copy_texture_levels")!=e.end(); |
| gl_apple_element_array = e.find("GL_APPLE_element_array")!=e.end(); |
| gl_apple_fence = e.find("GL_APPLE_fence")!=e.end(); |
| gl_apple_float_pixels = e.find("GL_APPLE_float_pixels")!=e.end(); |
| gl_apple_flush_buffer_range = e.find("GL_APPLE_flush_buffer_range")!=e.end(); |
| gl_apple_flush_render = e.find("GL_APPLE_flush_render")!=e.end(); |
| gl_apple_framebuffer_multisample = e.find("GL_APPLE_framebuffer_multisample")!=e.end(); |
| gl_apple_object_purgeable = e.find("GL_APPLE_object_purgeable")!=e.end(); |
| gl_apple_pixel_buffer = e.find("GL_APPLE_pixel_buffer")!=e.end(); |
| gl_apple_rgb_422 = e.find("GL_APPLE_rgb_422")!=e.end(); |
| gl_apple_row_bytes = e.find("GL_APPLE_row_bytes")!=e.end(); |
| gl_apple_specular_vector = e.find("GL_APPLE_specular_vector")!=e.end(); |
| gl_apple_sync = e.find("GL_APPLE_sync")!=e.end(); |
| gl_apple_texture_max_level = e.find("GL_APPLE_texture_max_level")!=e.end(); |
| gl_apple_texture_range = e.find("GL_APPLE_texture_range")!=e.end(); |
| gl_apple_transform_hint = e.find("GL_APPLE_transform_hint")!=e.end(); |
| gl_apple_vertex_array_object = e.find("GL_APPLE_vertex_array_object")!=e.end(); |
| gl_apple_vertex_array_range = e.find("GL_APPLE_vertex_array_range")!=e.end(); |
| gl_apple_vertex_program_evaluators = e.find("GL_APPLE_vertex_program_evaluators")!=e.end(); |
| gl_apple_ycbcr_422 = e.find("GL_APPLE_ycbcr_422")!=e.end(); |
| gl_arb_es2_compatibility = e.find("GL_ARB_ES2_compatibility")!=e.end(); |
| gl_arb_es3_compatibility = e.find("GL_ARB_ES3_compatibility")!=e.end(); |
| gl_arb_base_instance = e.find("GL_ARB_base_instance")!=e.end(); |
| gl_arb_bindless_texture = e.find("GL_ARB_bindless_texture")!=e.end(); |
| gl_arb_blend_func_extended = e.find("GL_ARB_blend_func_extended")!=e.end(); |
| gl_arb_buffer_storage = e.find("GL_ARB_buffer_storage")!=e.end(); |
| gl_arb_cl_event = e.find("GL_ARB_cl_event")!=e.end(); |
| gl_arb_clear_buffer_object = e.find("GL_ARB_clear_buffer_object")!=e.end(); |
| gl_arb_clear_texture = e.find("GL_ARB_clear_texture")!=e.end(); |
| gl_arb_color_buffer_float = e.find("GL_ARB_color_buffer_float")!=e.end(); |
| gl_arb_compressed_texture_pixel_storage = e.find("GL_ARB_compressed_texture_pixel_storage")!=e.end(); |
| gl_arb_compute_shader = e.find("GL_ARB_compute_shader")!=e.end(); |
| gl_arb_compute_variable_group_size = e.find("GL_ARB_compute_variable_group_size")!=e.end(); |
| gl_arb_copy_buffer = e.find("GL_ARB_copy_buffer")!=e.end(); |
| gl_arb_copy_image = e.find("GL_ARB_copy_image")!=e.end(); |
| gl_arb_debug_output = e.find("GL_ARB_debug_output")!=e.end(); |
| gl_arb_depth_buffer_float = e.find("GL_ARB_depth_buffer_float")!=e.end(); |
| gl_arb_depth_clamp = e.find("GL_ARB_depth_clamp")!=e.end(); |
| gl_arb_depth_texture = e.find("GL_ARB_depth_texture")!=e.end(); |
| gl_arb_draw_buffers = e.find("GL_ARB_draw_buffers")!=e.end(); |
| gl_arb_draw_buffers_blend = e.find("GL_ARB_draw_buffers_blend")!=e.end(); |
| gl_arb_draw_elements_base_vertex = e.find("GL_ARB_draw_elements_base_vertex")!=e.end(); |
| gl_arb_draw_indirect = e.find("GL_ARB_draw_indirect")!=e.end(); |
| gl_arb_draw_instanced = e.find("GL_ARB_draw_instanced")!=e.end(); |
| gl_arb_enhanced_layouts = e.find("GL_ARB_enhanced_layouts")!=e.end(); |
| gl_arb_explicit_uniform_location = e.find("GL_ARB_explicit_uniform_location")!=e.end(); |
| gl_arb_fragment_program = e.find("GL_ARB_fragment_program")!=e.end(); |
| gl_arb_fragment_shader = e.find("GL_ARB_fragment_shader")!=e.end(); |
| gl_arb_framebuffer_no_attachments = e.find("GL_ARB_framebuffer_no_attachments")!=e.end(); |
| gl_arb_framebuffer_object = e.find("GL_ARB_framebuffer_object")!=e.end(); |
| gl_arb_framebuffer_srgb = e.find("GL_ARB_framebuffer_sRGB")!=e.end(); |
| gl_arb_geometry_shader4 = e.find("GL_ARB_geometry_shader4")!=e.end(); |
| gl_arb_get_program_binary = e.find("GL_ARB_get_program_binary")!=e.end(); |
| gl_arb_gpu_shader5 = e.find("GL_ARB_gpu_shader5")!=e.end(); |
| gl_arb_gpu_shader_fp64 = e.find("GL_ARB_gpu_shader_fp64")!=e.end(); |
| gl_arb_half_float_pixel = e.find("GL_ARB_half_float_pixel")!=e.end(); |
| gl_arb_half_float_vertex = e.find("GL_ARB_half_float_vertex")!=e.end(); |
| gl_arb_imaging = e.find("GL_ARB_imaging")!=e.end(); |
| gl_arb_indirect_parameters = e.find("GL_ARB_indirect_parameters")!=e.end(); |
| gl_arb_instanced_arrays = e.find("GL_ARB_instanced_arrays")!=e.end(); |
| gl_arb_internalformat_query = e.find("GL_ARB_internalformat_query")!=e.end(); |
| gl_arb_internalformat_query2 = e.find("GL_ARB_internalformat_query2")!=e.end(); |
| gl_arb_invalidate_subdata = e.find("GL_ARB_invalidate_subdata")!=e.end(); |
| gl_arb_map_buffer_alignment = e.find("GL_ARB_map_buffer_alignment")!=e.end(); |
| gl_arb_map_buffer_range = e.find("GL_ARB_map_buffer_range")!=e.end(); |
| gl_arb_matrix_palette = e.find("GL_ARB_matrix_palette")!=e.end(); |
| gl_arb_multi_bind = e.find("GL_ARB_multi_bind")!=e.end(); |
| gl_arb_multi_draw_indirect = e.find("GL_ARB_multi_draw_indirect")!=e.end(); |
| gl_arb_multisample = e.find("GL_ARB_multisample")!=e.end(); |
| gl_arb_multitexture = e.find("GL_ARB_multitexture")!=e.end(); |
| gl_arb_occlusion_query = e.find("GL_ARB_occlusion_query")!=e.end(); |
| gl_arb_occlusion_query2 = e.find("GL_ARB_occlusion_query2")!=e.end(); |
| gl_arb_pixel_buffer_object = e.find("GL_ARB_pixel_buffer_object")!=e.end(); |
| gl_arb_point_parameters = e.find("GL_ARB_point_parameters")!=e.end(); |
| gl_arb_point_sprite = e.find("GL_ARB_point_sprite")!=e.end(); |
| gl_arb_program_interface_query = e.find("GL_ARB_program_interface_query")!=e.end(); |
| gl_arb_provoking_vertex = e.find("GL_ARB_provoking_vertex")!=e.end(); |
| gl_arb_query_buffer_object = e.find("GL_ARB_query_buffer_object")!=e.end(); |
| gl_arb_robustness = e.find("GL_ARB_robustness")!=e.end(); |
| gl_arb_sample_shading = e.find("GL_ARB_sample_shading")!=e.end(); |
| gl_arb_sampler_objects = e.find("GL_ARB_sampler_objects")!=e.end(); |
| gl_arb_seamless_cube_map = e.find("GL_ARB_seamless_cube_map")!=e.end(); |
| gl_arb_separate_shader_objects = e.find("GL_ARB_separate_shader_objects")!=e.end(); |
| gl_arb_shader_atomic_counters = e.find("GL_ARB_shader_atomic_counters")!=e.end(); |
| gl_arb_shader_image_load_store = e.find("GL_ARB_shader_image_load_store")!=e.end(); |
| gl_arb_shader_objects = e.find("GL_ARB_shader_objects")!=e.end(); |
| gl_arb_shader_storage_buffer_object = e.find("GL_ARB_shader_storage_buffer_object")!=e.end(); |
| gl_arb_shader_subroutine = e.find("GL_ARB_shader_subroutine")!=e.end(); |
| gl_arb_shading_language_100 = e.find("GL_ARB_shading_language_100")!=e.end(); |
| gl_arb_shading_language_include = e.find("GL_ARB_shading_language_include")!=e.end(); |
| gl_arb_shadow = e.find("GL_ARB_shadow")!=e.end(); |
| gl_arb_shadow_ambient = e.find("GL_ARB_shadow_ambient")!=e.end(); |
| gl_arb_sparse_texture = e.find("GL_ARB_sparse_texture")!=e.end(); |
| gl_arb_stencil_texturing = e.find("GL_ARB_stencil_texturing")!=e.end(); |
| gl_arb_sync = e.find("GL_ARB_sync")!=e.end(); |
| gl_arb_tessellation_shader = e.find("GL_ARB_tessellation_shader")!=e.end(); |
| gl_arb_texture_border_clamp = e.find("GL_ARB_texture_border_clamp")!=e.end(); |
| gl_arb_texture_buffer_object = e.find("GL_ARB_texture_buffer_object")!=e.end(); |
| gl_arb_texture_buffer_range = e.find("GL_ARB_texture_buffer_range")!=e.end(); |
| gl_arb_texture_compression = e.find("GL_ARB_texture_compression")!=e.end(); |
| gl_arb_texture_compression_bptc = e.find("GL_ARB_texture_compression_bptc")!=e.end(); |
| gl_arb_texture_compression_rgtc = e.find("GL_ARB_texture_compression_rgtc")!=e.end(); |
| gl_arb_texture_cube_map = e.find("GL_ARB_texture_cube_map")!=e.end(); |
| gl_arb_texture_cube_map_array = e.find("GL_ARB_texture_cube_map_array")!=e.end(); |
| gl_arb_texture_env_combine = e.find("GL_ARB_texture_env_combine")!=e.end(); |
| gl_arb_texture_env_dot3 = e.find("GL_ARB_texture_env_dot3")!=e.end(); |
| gl_arb_texture_float = e.find("GL_ARB_texture_float")!=e.end(); |
| gl_arb_texture_gather = e.find("GL_ARB_texture_gather")!=e.end(); |
| gl_arb_texture_mirror_clamp_to_edge = e.find("GL_ARB_texture_mirror_clamp_to_edge")!=e.end(); |
| gl_arb_texture_mirrored_repeat = e.find("GL_ARB_texture_mirrored_repeat")!=e.end(); |
| gl_arb_texture_multisample = e.find("GL_ARB_texture_multisample")!=e.end(); |
| gl_arb_texture_rectangle = e.find("GL_ARB_texture_rectangle")!=e.end(); |
| gl_arb_texture_rg = e.find("GL_ARB_texture_rg")!=e.end(); |
| gl_arb_texture_rgb10_a2ui = e.find("GL_ARB_texture_rgb10_a2ui")!=e.end(); |
| gl_arb_texture_storage = e.find("GL_ARB_texture_storage")!=e.end(); |
| gl_arb_texture_storage_multisample = e.find("GL_ARB_texture_storage_multisample")!=e.end(); |
| gl_arb_texture_swizzle = e.find("GL_ARB_texture_swizzle")!=e.end(); |
| gl_arb_texture_view = e.find("GL_ARB_texture_view")!=e.end(); |
| gl_arb_timer_query = e.find("GL_ARB_timer_query")!=e.end(); |
| gl_arb_transform_feedback2 = e.find("GL_ARB_transform_feedback2")!=e.end(); |
| gl_arb_transform_feedback3 = e.find("GL_ARB_transform_feedback3")!=e.end(); |
| gl_arb_transform_feedback_instanced = e.find("GL_ARB_transform_feedback_instanced")!=e.end(); |
| gl_arb_transpose_matrix = e.find("GL_ARB_transpose_matrix")!=e.end(); |
| gl_arb_uniform_buffer_object = e.find("GL_ARB_uniform_buffer_object")!=e.end(); |
| gl_arb_vertex_array_object = e.find("GL_ARB_vertex_array_object")!=e.end(); |
| gl_arb_vertex_attrib_64bit = e.find("GL_ARB_vertex_attrib_64bit")!=e.end(); |
| gl_arb_vertex_attrib_binding = e.find("GL_ARB_vertex_attrib_binding")!=e.end(); |
| gl_arb_vertex_blend = e.find("GL_ARB_vertex_blend")!=e.end(); |
| gl_arb_vertex_buffer_object = e.find("GL_ARB_vertex_buffer_object")!=e.end(); |
| gl_arb_vertex_program = e.find("GL_ARB_vertex_program")!=e.end(); |
| gl_arb_vertex_shader = e.find("GL_ARB_vertex_shader")!=e.end(); |
| gl_arb_vertex_type_2_10_10_10_rev = e.find("GL_ARB_vertex_type_2_10_10_10_rev")!=e.end(); |
| gl_arb_viewport_array = e.find("GL_ARB_viewport_array")!=e.end(); |
| gl_arb_window_pos = e.find("GL_ARB_window_pos")!=e.end(); |
| gl_arm_mali_program_binary = e.find("GL_ARM_mali_program_binary")!=e.end(); |
| gl_arm_mali_shader_binary = e.find("GL_ARM_mali_shader_binary")!=e.end(); |
| gl_ati_draw_buffers = e.find("GL_ATI_draw_buffers")!=e.end(); |
| gl_ati_element_array = e.find("GL_ATI_element_array")!=e.end(); |
| gl_ati_envmap_bumpmap = e.find("GL_ATI_envmap_bumpmap")!=e.end(); |
| gl_ati_fragment_shader = e.find("GL_ATI_fragment_shader")!=e.end(); |
| gl_ati_map_object_buffer = e.find("GL_ATI_map_object_buffer")!=e.end(); |
| gl_ati_meminfo = e.find("GL_ATI_meminfo")!=e.end(); |
| gl_ati_pn_triangles = e.find("GL_ATI_pn_triangles")!=e.end(); |
| gl_ati_separate_stencil = e.find("GL_ATI_separate_stencil")!=e.end(); |
| gl_ati_text_fragment_shader = e.find("GL_ATI_text_fragment_shader")!=e.end(); |
| gl_ati_texture_compression_3dc = e.find("GL_ATI_texture_compression_3dc")!=e.end(); |
| gl_ati_texture_env_combine3 = e.find("GL_ATI_texture_env_combine3")!=e.end(); |
| gl_ati_texture_float = e.find("GL_ATI_texture_float")!=e.end(); |
| gl_ati_texture_mirror_once = e.find("GL_ATI_texture_mirror_once")!=e.end(); |
| gl_ati_vertex_array_object = e.find("GL_ATI_vertex_array_object")!=e.end(); |
| gl_ati_vertex_attrib_array_object = e.find("GL_ATI_vertex_attrib_array_object")!=e.end(); |
| gl_ati_vertex_streams = e.find("GL_ATI_vertex_streams")!=e.end(); |
| gl_dmp_shader_binary = e.find("GL_DMP_shader_binary")!=e.end(); |
| gl_ext_422_pixels = e.find("GL_EXT_422_pixels")!=e.end(); |
| gl_ext_cg_shader = e.find("GL_EXT_Cg_shader")!=e.end(); |
| gl_ext_abgr = e.find("GL_EXT_abgr")!=e.end(); |
| gl_ext_bgra = e.find("GL_EXT_bgra")!=e.end(); |
| gl_ext_bindable_uniform = e.find("GL_EXT_bindable_uniform")!=e.end(); |
| gl_ext_blend_color = e.find("GL_EXT_blend_color")!=e.end(); |
| gl_ext_blend_equation_separate = e.find("GL_EXT_blend_equation_separate")!=e.end(); |
| gl_ext_blend_func_separate = e.find("GL_EXT_blend_func_separate")!=e.end(); |
| gl_ext_blend_minmax = e.find("GL_EXT_blend_minmax")!=e.end(); |
| gl_ext_blend_subtract = e.find("GL_EXT_blend_subtract")!=e.end(); |
| gl_ext_clip_volume_hint = e.find("GL_EXT_clip_volume_hint")!=e.end(); |
| gl_ext_cmyka = e.find("GL_EXT_cmyka")!=e.end(); |
| gl_ext_color_buffer_half_float = e.find("GL_EXT_color_buffer_half_float")!=e.end(); |
| gl_ext_color_subtable = e.find("GL_EXT_color_subtable")!=e.end(); |
| gl_ext_compiled_vertex_array = e.find("GL_EXT_compiled_vertex_array")!=e.end(); |
| gl_ext_convolution = e.find("GL_EXT_convolution")!=e.end(); |
| gl_ext_coordinate_frame = e.find("GL_EXT_coordinate_frame")!=e.end(); |
| gl_ext_copy_texture = e.find("GL_EXT_copy_texture")!=e.end(); |
| gl_ext_cull_vertex = e.find("GL_EXT_cull_vertex")!=e.end(); |
| gl_ext_debug_label = e.find("GL_EXT_debug_label")!=e.end(); |
| gl_ext_debug_marker = e.find("GL_EXT_debug_marker")!=e.end(); |
| gl_ext_depth_bounds_test = e.find("GL_EXT_depth_bounds_test")!=e.end(); |
| gl_ext_direct_state_access = e.find("GL_EXT_direct_state_access")!=e.end(); |
| gl_ext_discard_framebuffer = e.find("GL_EXT_discard_framebuffer")!=e.end(); |
| gl_ext_disjoint_timer_query = e.find("GL_EXT_disjoint_timer_query")!=e.end(); |
| gl_ext_draw_buffers2 = e.find("GL_EXT_draw_buffers2")!=e.end(); |
| gl_ext_draw_instanced = e.find("GL_EXT_draw_instanced")!=e.end(); |
| gl_ext_draw_range_elements = e.find("GL_EXT_draw_range_elements")!=e.end(); |
| gl_ext_fog_coord = e.find("GL_EXT_fog_coord")!=e.end(); |
| gl_ext_fragment_lighting = e.find("GL_EXT_fragment_lighting")!=e.end(); |
| gl_ext_framebuffer_blit = e.find("GL_EXT_framebuffer_blit")!=e.end(); |
| gl_ext_framebuffer_multisample = e.find("GL_EXT_framebuffer_multisample")!=e.end(); |
| gl_ext_framebuffer_multisample_blit_scaled = e.find("GL_EXT_framebuffer_multisample_blit_scaled")!=e.end(); |
| gl_ext_framebuffer_object = e.find("GL_EXT_framebuffer_object")!=e.end(); |
| gl_ext_framebuffer_srgb = e.find("GL_EXT_framebuffer_sRGB")!=e.end(); |
| gl_ext_geometry_shader4 = e.find("GL_EXT_geometry_shader4")!=e.end(); |
| gl_ext_gpu_program_parameters = e.find("GL_EXT_gpu_program_parameters")!=e.end(); |
| gl_ext_gpu_shader4 = e.find("GL_EXT_gpu_shader4")!=e.end(); |
| gl_ext_histogram = e.find("GL_EXT_histogram")!=e.end(); |
| gl_ext_index_func = e.find("GL_EXT_index_func")!=e.end(); |
| gl_ext_index_material = e.find("GL_EXT_index_material")!=e.end(); |
| gl_ext_light_texture = e.find("GL_EXT_light_texture")!=e.end(); |
| gl_ext_map_buffer_range = e.find("GL_EXT_map_buffer_range")!=e.end(); |
| gl_ext_multi_draw_arrays = e.find("GL_EXT_multi_draw_arrays")!=e.end(); |
| gl_ext_multisample = e.find("GL_EXT_multisample")!=e.end(); |
| gl_ext_multisampled_render_to_texture = e.find("GL_EXT_multisampled_render_to_texture")!=e.end(); |
| gl_ext_multiview_draw_buffers = e.find("GL_EXT_multiview_draw_buffers")!=e.end(); |
| gl_ext_occlusion_query_boolean = e.find("GL_EXT_occlusion_query_boolean")!=e.end(); |
| gl_ext_packed_depth_stencil = e.find("GL_EXT_packed_depth_stencil")!=e.end(); |
| gl_ext_packed_float = e.find("GL_EXT_packed_float")!=e.end(); |
| gl_ext_packed_pixels = e.find("GL_EXT_packed_pixels")!=e.end(); |
| gl_ext_paletted_texture = e.find("GL_EXT_paletted_texture")!=e.end(); |
| gl_ext_pixel_buffer_object = e.find("GL_EXT_pixel_buffer_object")!=e.end(); |
| gl_ext_pixel_transform = e.find("GL_EXT_pixel_transform")!=e.end(); |
| gl_ext_point_parameters = e.find("GL_EXT_point_parameters")!=e.end(); |
| gl_ext_polygon_offset = e.find("GL_EXT_polygon_offset")!=e.end(); |
| gl_ext_provoking_vertex = e.find("GL_EXT_provoking_vertex")!=e.end(); |
| gl_ext_read_format_bgra = e.find("GL_EXT_read_format_bgra")!=e.end(); |
| gl_ext_rescale_normal = e.find("GL_EXT_rescale_normal")!=e.end(); |
| gl_ext_robustness = e.find("GL_EXT_robustness")!=e.end(); |
| gl_ext_srgb = e.find("GL_EXT_sRGB")!=e.end(); |
| gl_ext_scene_marker = e.find("GL_EXT_scene_marker")!=e.end(); |
| gl_ext_secondary_color = e.find("GL_EXT_secondary_color")!=e.end(); |
| gl_ext_separate_shader_objects = e.find("GL_EXT_separate_shader_objects")!=e.end(); |
| gl_ext_separate_specular_color = e.find("GL_EXT_separate_specular_color")!=e.end(); |
| gl_ext_shader_framebuffer_fetch = e.find("GL_EXT_shader_framebuffer_fetch")!=e.end(); |
| gl_ext_shader_image_load_store = e.find("GL_EXT_shader_image_load_store")!=e.end(); |
| gl_ext_shadow_samplers = e.find("GL_EXT_shadow_samplers")!=e.end(); |
| gl_ext_shared_texture_palette = e.find("GL_EXT_shared_texture_palette")!=e.end(); |
| gl_ext_stencil_clear_tag = e.find("GL_EXT_stencil_clear_tag")!=e.end(); |
| gl_ext_stencil_two_side = e.find("GL_EXT_stencil_two_side")!=e.end(); |
| gl_ext_stencil_wrap = e.find("GL_EXT_stencil_wrap")!=e.end(); |
| gl_ext_subtexture = e.find("GL_EXT_subtexture")!=e.end(); |
| gl_ext_texture = e.find("GL_EXT_texture")!=e.end(); |
| gl_ext_texture3d = e.find("GL_EXT_texture3D")!=e.end(); |
| gl_ext_texture_array = e.find("GL_EXT_texture_array")!=e.end(); |
| gl_ext_texture_buffer_object = e.find("GL_EXT_texture_buffer_object")!=e.end(); |
| gl_ext_texture_compression_latc = e.find("GL_EXT_texture_compression_latc")!=e.end(); |
| gl_ext_texture_compression_rgtc = e.find("GL_EXT_texture_compression_rgtc")!=e.end(); |
| gl_ext_texture_compression_s3tc = e.find("GL_EXT_texture_compression_s3tc")!=e.end(); |
| gl_ext_texture_cube_map = e.find("GL_EXT_texture_cube_map")!=e.end(); |
| gl_ext_texture_edge_clamp = e.find("GL_EXT_texture_edge_clamp")!=e.end(); |
| gl_ext_texture_env_combine = e.find("GL_EXT_texture_env_combine")!=e.end(); |
| gl_ext_texture_env_dot3 = e.find("GL_EXT_texture_env_dot3")!=e.end(); |
| gl_ext_texture_filter_anisotropic = e.find("GL_EXT_texture_filter_anisotropic")!=e.end(); |
| gl_ext_texture_format_bgra8888 = e.find("GL_EXT_texture_format_BGRA8888")!=e.end(); |
| gl_ext_texture_integer = e.find("GL_EXT_texture_integer")!=e.end(); |
| gl_ext_texture_lod_bias = e.find("GL_EXT_texture_lod_bias")!=e.end(); |
| gl_ext_texture_mirror_clamp = e.find("GL_EXT_texture_mirror_clamp")!=e.end(); |
| gl_ext_texture_object = e.find("GL_EXT_texture_object")!=e.end(); |
| gl_ext_texture_perturb_normal = e.find("GL_EXT_texture_perturb_normal")!=e.end(); |
| gl_ext_texture_rectangle = e.find("GL_EXT_texture_rectangle")!=e.end(); |
| gl_ext_texture_rg = e.find("GL_EXT_texture_rg")!=e.end(); |
| gl_ext_texture_srgb = e.find("GL_EXT_texture_sRGB")!=e.end(); |
| gl_ext_texture_srgb_decode = e.find("GL_EXT_texture_sRGB_decode")!=e.end(); |
| gl_ext_texture_shared_exponent = e.find("GL_EXT_texture_shared_exponent")!=e.end(); |
| gl_ext_texture_snorm = e.find("GL_EXT_texture_snorm")!=e.end(); |
| gl_ext_texture_storage = e.find("GL_EXT_texture_storage")!=e.end(); |
| gl_ext_texture_swizzle = e.find("GL_EXT_texture_swizzle")!=e.end(); |
| gl_ext_texture_type_2_10_10_10_rev = e.find("GL_EXT_texture_type_2_10_10_10_REV")!=e.end(); |
| gl_ext_timer_query = e.find("GL_EXT_timer_query")!=e.end(); |
| gl_ext_transform_feedback = e.find("GL_EXT_transform_feedback")!=e.end(); |
| gl_ext_unpack_subimage = e.find("GL_EXT_unpack_subimage")!=e.end(); |
| gl_ext_vertex_array = e.find("GL_EXT_vertex_array")!=e.end(); |
| gl_ext_vertex_attrib_64bit = e.find("GL_EXT_vertex_attrib_64bit")!=e.end(); |
| gl_ext_vertex_shader = e.find("GL_EXT_vertex_shader")!=e.end(); |
| gl_ext_vertex_weighting = e.find("GL_EXT_vertex_weighting")!=e.end(); |
| gl_ext_x11_sync_object = e.find("GL_EXT_x11_sync_object")!=e.end(); |
| gl_fj_shader_binary_gccso = e.find("GL_FJ_shader_binary_GCCSO")!=e.end(); |
| gl_gremedy_frame_terminator = e.find("GL_GREMEDY_frame_terminator")!=e.end(); |
| gl_gremedy_string_marker = e.find("GL_GREMEDY_string_marker")!=e.end(); |
| gl_hp_image_transform = e.find("GL_HP_image_transform")!=e.end(); |
| gl_hp_occlusion_test = e.find("GL_HP_occlusion_test")!=e.end(); |
| gl_ibm_cull_vertex = e.find("GL_IBM_cull_vertex")!=e.end(); |
| gl_ibm_multimode_draw_arrays = e.find("GL_IBM_multimode_draw_arrays")!=e.end(); |
| gl_ibm_rasterpos_clip = e.find("GL_IBM_rasterpos_clip")!=e.end(); |
| gl_ibm_static_data = e.find("GL_IBM_static_data")!=e.end(); |
| gl_ibm_texture_mirrored_repeat = e.find("GL_IBM_texture_mirrored_repeat")!=e.end(); |
| gl_ibm_vertex_array_lists = e.find("GL_IBM_vertex_array_lists")!=e.end(); |
| gl_img_multisampled_render_to_texture = e.find("GL_IMG_multisampled_render_to_texture")!=e.end(); |
| gl_img_program_binary = e.find("GL_IMG_program_binary")!=e.end(); |
| gl_img_read_format = e.find("GL_IMG_read_format")!=e.end(); |
| gl_img_shader_binary = e.find("GL_IMG_shader_binary")!=e.end(); |
| gl_img_texture_compression_pvrtc = e.find("GL_IMG_texture_compression_pvrtc")!=e.end(); |
| gl_img_texture_compression_pvrtc2 = e.find("GL_IMG_texture_compression_pvrtc2")!=e.end(); |
| gl_img_texture_env_enhanced_fixed_function = e.find("GL_IMG_texture_env_enhanced_fixed_function")!=e.end(); |
| gl_img_user_clip_plane = e.find("GL_IMG_user_clip_plane")!=e.end(); |
| gl_ingr_blend_func_separate = e.find("GL_INGR_blend_func_separate")!=e.end(); |
| gl_ingr_color_clamp = e.find("GL_INGR_color_clamp")!=e.end(); |
| gl_ingr_interlace_read = e.find("GL_INGR_interlace_read")!=e.end(); |
| gl_intel_map_texture = e.find("GL_INTEL_map_texture")!=e.end(); |
| gl_intel_parallel_arrays = e.find("GL_INTEL_parallel_arrays")!=e.end(); |
| gl_intel_texture_scissor = e.find("GL_INTEL_texture_scissor")!=e.end(); |
| gl_khr_debug = e.find("GL_KHR_debug")!=e.end(); |
| gl_khr_texture_compression_astc_ldr = e.find("GL_KHR_texture_compression_astc_ldr")!=e.end(); |
| gl_ktx_buffer_region = e.find("GL_KTX_buffer_region")!=e.end(); |
| gl_mesax_texture_stack = e.find("GL_MESAX_texture_stack")!=e.end(); |
| gl_mesa_pack_invert = e.find("GL_MESA_pack_invert")!=e.end(); |
| gl_mesa_resize_buffers = e.find("GL_MESA_resize_buffers")!=e.end(); |
| gl_mesa_window_pos = e.find("GL_MESA_window_pos")!=e.end(); |
| gl_mesa_ycbcr_texture = e.find("GL_MESA_ycbcr_texture")!=e.end(); |
| gl_nvx_conditional_render = e.find("GL_NVX_conditional_render")!=e.end(); |
| gl_nvx_gpu_memory_info = e.find("GL_NVX_gpu_memory_info")!=e.end(); |
| gl_nv_3dvision_settings = e.find("GL_NV_3dvision_settings")!=e.end(); |
| gl_nv_bgr = e.find("GL_NV_bgr")!=e.end(); |
| gl_nv_bindless_texture = e.find("GL_NV_bindless_texture")!=e.end(); |
| gl_nv_blend_square = e.find("GL_NV_blend_square")!=e.end(); |
| gl_nv_compute_program5 = e.find("GL_NV_compute_program5")!=e.end(); |
| gl_nv_conditional_render = e.find("GL_NV_conditional_render")!=e.end(); |
| gl_nv_copy_depth_to_color = e.find("GL_NV_copy_depth_to_color")!=e.end(); |
| gl_nv_copy_image = e.find("GL_NV_copy_image")!=e.end(); |
| gl_nv_coverage_sample = e.find("GL_NV_coverage_sample")!=e.end(); |
| gl_nv_deep_texture3d = e.find("GL_NV_deep_texture3D")!=e.end(); |
| gl_nv_depth_buffer_float = e.find("GL_NV_depth_buffer_float")!=e.end(); |
| gl_nv_depth_clamp = e.find("GL_NV_depth_clamp")!=e.end(); |
| gl_nv_depth_nonlinear = e.find("GL_NV_depth_nonlinear")!=e.end(); |
| gl_nv_depth_range_unclamped = e.find("GL_NV_depth_range_unclamped")!=e.end(); |
| gl_nv_draw_buffers = e.find("GL_NV_draw_buffers")!=e.end(); |
| gl_nv_draw_texture = e.find("GL_NV_draw_texture")!=e.end(); |
| gl_nv_evaluators = e.find("GL_NV_evaluators")!=e.end(); |
| gl_nv_explicit_multisample = e.find("GL_NV_explicit_multisample")!=e.end(); |
| gl_nv_fbo_color_attachments = e.find("GL_NV_fbo_color_attachments")!=e.end(); |
| gl_nv_fence = e.find("GL_NV_fence")!=e.end(); |
| gl_nv_float_buffer = e.find("GL_NV_float_buffer")!=e.end(); |
| gl_nv_fog_distance = e.find("GL_NV_fog_distance")!=e.end(); |
| gl_nv_fragment_program = e.find("GL_NV_fragment_program")!=e.end(); |
| gl_nv_fragment_program2 = e.find("GL_NV_fragment_program2")!=e.end(); |
| gl_nv_framebuffer_blit = e.find("GL_NV_framebuffer_blit")!=e.end(); |
| gl_nv_framebuffer_multisample = e.find("GL_NV_framebuffer_multisample")!=e.end(); |
| gl_nv_framebuffer_multisample_coverage = e.find("GL_NV_framebuffer_multisample_coverage")!=e.end(); |
| gl_nv_geometry_program4 = e.find("GL_NV_geometry_program4")!=e.end(); |
| gl_nv_gpu_program4 = e.find("GL_NV_gpu_program4")!=e.end(); |
| gl_nv_gpu_program5 = e.find("GL_NV_gpu_program5")!=e.end(); |
| gl_nv_gpu_shader5 = e.find("GL_NV_gpu_shader5")!=e.end(); |
| gl_nv_half_float = e.find("GL_NV_half_float")!=e.end(); |
| gl_nv_instanced_arrays = e.find("GL_NV_instanced_arrays")!=e.end(); |
| gl_nv_light_max_exponent = e.find("GL_NV_light_max_exponent")!=e.end(); |
| gl_nv_multisample_coverage = e.find("GL_NV_multisample_coverage")!=e.end(); |
| gl_nv_multisample_filter_hint = e.find("GL_NV_multisample_filter_hint")!=e.end(); |
| gl_nv_occlusion_query = e.find("GL_NV_occlusion_query")!=e.end(); |
| gl_nv_pack_subimage = e.find("GL_NV_pack_subimage")!=e.end(); |
| gl_nv_packed_depth_stencil = e.find("GL_NV_packed_depth_stencil")!=e.end(); |
| gl_nv_packed_float_linear = e.find("GL_NV_packed_float_linear")!=e.end(); |
| gl_nv_parameter_buffer_object = e.find("GL_NV_parameter_buffer_object")!=e.end(); |
| gl_nv_path_rendering = e.find("GL_NV_path_rendering")!=e.end(); |
| gl_nv_pixel_buffer_object = e.find("GL_NV_pixel_buffer_object")!=e.end(); |
| gl_nv_pixel_data_range = e.find("GL_NV_pixel_data_range")!=e.end(); |
| gl_nv_platform_binary = e.find("GL_NV_platform_binary")!=e.end(); |
| gl_nv_point_sprite = e.find("GL_NV_point_sprite")!=e.end(); |
| gl_nv_present_video = e.find("GL_NV_present_video")!=e.end(); |
| gl_nv_primitive_restart = e.find("GL_NV_primitive_restart")!=e.end(); |
| gl_nv_read_buffer = e.find("GL_NV_read_buffer")!=e.end(); |
| gl_nv_read_buffer_front = e.find("GL_NV_read_buffer_front")!=e.end(); |
| gl_nv_register_combiners = e.find("GL_NV_register_combiners")!=e.end(); |
| gl_nv_register_combiners2 = e.find("GL_NV_register_combiners2")!=e.end(); |
| gl_nv_srgb_formats = e.find("GL_NV_sRGB_formats")!=e.end(); |
| gl_nv_shader_buffer_load = e.find("GL_NV_shader_buffer_load")!=e.end(); |
| gl_nv_shadow_samplers_array = e.find("GL_NV_shadow_samplers_array")!=e.end(); |
| gl_nv_shadow_samplers_cube = e.find("GL_NV_shadow_samplers_cube")!=e.end(); |
| gl_nv_tessellation_program5 = e.find("GL_NV_tessellation_program5")!=e.end(); |
| gl_nv_texgen_emboss = e.find("GL_NV_texgen_emboss")!=e.end(); |
| gl_nv_texgen_reflection = e.find("GL_NV_texgen_reflection")!=e.end(); |
| gl_nv_texture_array = e.find("GL_NV_texture_array")!=e.end(); |
| gl_nv_texture_barrier = e.find("GL_NV_texture_barrier")!=e.end(); |
| gl_nv_texture_border_clamp = e.find("GL_NV_texture_border_clamp")!=e.end(); |
| gl_nv_texture_compression_latc = e.find("GL_NV_texture_compression_latc")!=e.end(); |
| gl_nv_texture_compression_s3tc = e.find("GL_NV_texture_compression_s3tc")!=e.end(); |
| gl_nv_texture_env_combine4 = e.find("GL_NV_texture_env_combine4")!=e.end(); |
| gl_nv_texture_expand_normal = e.find("GL_NV_texture_expand_normal")!=e.end(); |
| gl_nv_texture_multisample = e.find("GL_NV_texture_multisample")!=e.end(); |
| gl_nv_texture_rectangle = e.find("GL_NV_texture_rectangle")!=e.end(); |
| gl_nv_texture_shader = e.find("GL_NV_texture_shader")!=e.end(); |
| gl_nv_texture_shader2 = e.find("GL_NV_texture_shader2")!=e.end(); |
| gl_nv_texture_shader3 = e.find("GL_NV_texture_shader3")!=e.end(); |
| gl_nv_transform_feedback = e.find("GL_NV_transform_feedback")!=e.end(); |
| gl_nv_transform_feedback2 = e.find("GL_NV_transform_feedback2")!=e.end(); |
| gl_nv_vdpau_interop = e.find("GL_NV_vdpau_interop")!=e.end(); |
| gl_nv_vertex_array_range = e.find("GL_NV_vertex_array_range")!=e.end(); |
| gl_nv_vertex_array_range2 = e.find("GL_NV_vertex_array_range2")!=e.end(); |
| gl_nv_vertex_attrib_integer_64bit = e.find("GL_NV_vertex_attrib_integer_64bit")!=e.end(); |
| gl_nv_vertex_buffer_unified_memory = e.find("GL_NV_vertex_buffer_unified_memory")!=e.end(); |
| gl_nv_vertex_program = e.find("GL_NV_vertex_program")!=e.end(); |
| gl_nv_vertex_program2_option = e.find("GL_NV_vertex_program2_option")!=e.end(); |
| gl_nv_vertex_program3 = e.find("GL_NV_vertex_program3")!=e.end(); |
| gl_nv_vertex_program4 = e.find("GL_NV_vertex_program4")!=e.end(); |
| gl_nv_video_capture = e.find("GL_NV_video_capture")!=e.end(); |
| gl_oes_blend_equation_separate = e.find("GL_OES_blend_equation_separate")!=e.end(); |
| gl_oes_blend_func_separate = e.find("GL_OES_blend_func_separate")!=e.end(); |
| gl_oes_blend_subtract = e.find("GL_OES_blend_subtract")!=e.end(); |
| gl_oes_compressed_etc1_rgb8_texture = e.find("GL_OES_compressed_ETC1_RGB8_texture")!=e.end(); |
| gl_oes_compressed_paletted_texture = e.find("GL_OES_compressed_paletted_texture")!=e.end(); |
| gl_oes_depth_texture = e.find("GL_OES_depth_texture")!=e.end(); |
| gl_oes_draw_texture = e.find("GL_OES_draw_texture")!=e.end(); |
| gl_oes_element_index_uint = e.find("GL_OES_element_index_uint")!=e.end(); |
| gl_oes_fbo_render_mipmap = e.find("GL_OES_fbo_render_mipmap")!=e.end(); |
| gl_oes_framebuffer_object = e.find("GL_OES_framebuffer_object")!=e.end(); |
| gl_oes_get_program_binary = e.find("GL_OES_get_program_binary")!=e.end(); |
| gl_oes_mapbuffer = e.find("GL_OES_mapbuffer")!=e.end(); |
| gl_oes_matrix_get = e.find("GL_OES_matrix_get")!=e.end(); |
| gl_oes_matrix_palette = e.find("GL_OES_matrix_palette")!=e.end(); |
| gl_oes_packed_depth_stencil = e.find("GL_OES_packed_depth_stencil")!=e.end(); |
| gl_oes_point_size_array = e.find("GL_OES_point_size_array")!=e.end(); |
| gl_oes_point_sprite = e.find("GL_OES_point_sprite")!=e.end(); |
| gl_oes_read_format = e.find("GL_OES_read_format")!=e.end(); |
| gl_oes_required_internalformat = e.find("GL_OES_required_internalformat")!=e.end(); |
| gl_oes_rgb8_rgba8 = e.find("GL_OES_rgb8_rgba8")!=e.end(); |
| gl_oes_single_precision = e.find("GL_OES_single_precision")!=e.end(); |
| gl_oes_standard_derivatives = e.find("GL_OES_standard_derivatives")!=e.end(); |
| gl_oes_stencil1 = e.find("GL_OES_stencil1")!=e.end(); |
| gl_oes_stencil4 = e.find("GL_OES_stencil4")!=e.end(); |
| gl_oes_stencil8 = e.find("GL_OES_stencil8")!=e.end(); |
| gl_oes_surfaceless_context = e.find("GL_OES_surfaceless_context")!=e.end(); |
| gl_oes_texture_3d = e.find("GL_OES_texture_3D")!=e.end(); |
| gl_oes_texture_cube_map = e.find("GL_OES_texture_cube_map")!=e.end(); |
| gl_oes_texture_mirrored_repeat = e.find("GL_OES_texture_mirrored_repeat")!=e.end(); |
| gl_oes_vertex_array_object = e.find("GL_OES_vertex_array_object")!=e.end(); |
| gl_oes_vertex_half_float = e.find("GL_OES_vertex_half_float")!=e.end(); |
| gl_oes_vertex_type_10_10_10_2 = e.find("GL_OES_vertex_type_10_10_10_2")!=e.end(); |
| gl_oml_interlace = e.find("GL_OML_interlace")!=e.end(); |
| gl_oml_resample = e.find("GL_OML_resample")!=e.end(); |
| gl_oml_subsample = e.find("GL_OML_subsample")!=e.end(); |
| gl_pgi_misc_hints = e.find("GL_PGI_misc_hints")!=e.end(); |
| gl_pgi_vertex_hints = e.find("GL_PGI_vertex_hints")!=e.end(); |
| gl_qcom_alpha_test = e.find("GL_QCOM_alpha_test")!=e.end(); |
| gl_qcom_binning_control = e.find("GL_QCOM_binning_control")!=e.end(); |
| gl_qcom_driver_control = e.find("GL_QCOM_driver_control")!=e.end(); |
| gl_qcom_extended_get = e.find("GL_QCOM_extended_get")!=e.end(); |
| gl_qcom_extended_get2 = e.find("GL_QCOM_extended_get2")!=e.end(); |
| gl_qcom_perfmon_global_mode = e.find("GL_QCOM_perfmon_global_mode")!=e.end(); |
| gl_qcom_tiled_rendering = e.find("GL_QCOM_tiled_rendering")!=e.end(); |
| gl_qcom_writeonly_rendering = e.find("GL_QCOM_writeonly_rendering")!=e.end(); |
| gl_regal_es1_0_compatibility = e.find("GL_REGAL_ES1_0_compatibility")!=e.end(); |
| gl_regal_es1_1_compatibility = e.find("GL_REGAL_ES1_1_compatibility")!=e.end(); |
| gl_regal_enable = e.find("GL_REGAL_enable")!=e.end(); |
| gl_regal_error_string = e.find("GL_REGAL_error_string")!=e.end(); |
| gl_regal_extension_query = e.find("GL_REGAL_extension_query")!=e.end(); |
| gl_regal_log = e.find("GL_REGAL_log")!=e.end(); |
| gl_rend_screen_coordinates = e.find("GL_REND_screen_coordinates")!=e.end(); |
| gl_s3_s3tc = e.find("GL_S3_s3tc")!=e.end(); |
| gl_sgis_color_range = e.find("GL_SGIS_color_range")!=e.end(); |
| gl_sgis_detail_texture = e.find("GL_SGIS_detail_texture")!=e.end(); |
| gl_sgis_fog_function = e.find("GL_SGIS_fog_function")!=e.end(); |
| gl_sgis_generate_mipmap = e.find("GL_SGIS_generate_mipmap")!=e.end(); |
| gl_sgis_multisample = e.find("GL_SGIS_multisample")!=e.end(); |
| gl_sgis_pixel_texture = e.find("GL_SGIS_pixel_texture")!=e.end(); |
| gl_sgis_point_line_texgen = e.find("GL_SGIS_point_line_texgen")!=e.end(); |
| gl_sgis_point_parameters = e.find("GL_SGIS_point_parameters")!=e.end(); |
| gl_sgis_sharpen_texture = e.find("GL_SGIS_sharpen_texture")!=e.end(); |
| gl_sgis_texture4d = e.find("GL_SGIS_texture4D")!=e.end(); |
| gl_sgis_texture_border_clamp = e.find("GL_SGIS_texture_border_clamp")!=e.end(); |
| gl_sgis_texture_color_mask = e.find("GL_SGIS_texture_color_mask")!=e.end(); |
| gl_sgis_texture_edge_clamp = e.find("GL_SGIS_texture_edge_clamp")!=e.end(); |
| gl_sgis_texture_filter4 = e.find("GL_SGIS_texture_filter4")!=e.end(); |
| gl_sgis_texture_lod = e.find("GL_SGIS_texture_lod")!=e.end(); |
| gl_sgix_async = e.find("GL_SGIX_async")!=e.end(); |
| gl_sgix_async_histogram = e.find("GL_SGIX_async_histogram")!=e.end(); |
| gl_sgix_async_pixel = e.find("GL_SGIX_async_pixel")!=e.end(); |
| gl_sgix_blend_alpha_minmax = e.find("GL_SGIX_blend_alpha_minmax")!=e.end(); |
| gl_sgix_convolution_accuracy = e.find("GL_SGIX_convolution_accuracy")!=e.end(); |
| gl_sgix_depth_texture = e.find("GL_SGIX_depth_texture")!=e.end(); |
| gl_sgix_flush_raster = e.find("GL_SGIX_flush_raster")!=e.end(); |
| gl_sgix_fog_offset = e.find("GL_SGIX_fog_offset")!=e.end(); |
| gl_sgix_fog_texture = e.find("GL_SGIX_fog_texture")!=e.end(); |
| gl_sgix_fragment_lighting = e.find("GL_SGIX_fragment_lighting")!=e.end(); |
| gl_sgix_fragment_specular_lighting = e.find("GL_SGIX_fragment_specular_lighting")!=e.end(); |
| gl_sgix_framezoom = e.find("GL_SGIX_framezoom")!=e.end(); |
| gl_sgix_igloo_interface = e.find("GL_SGIX_igloo_interface")!=e.end(); |
| gl_sgix_instruments = e.find("GL_SGIX_instruments")!=e.end(); |
| gl_sgix_interlace = e.find("GL_SGIX_interlace")!=e.end(); |
| gl_sgix_list_priority = e.find("GL_SGIX_list_priority")!=e.end(); |
| gl_sgix_pixel_texture = e.find("GL_SGIX_pixel_texture")!=e.end(); |
| gl_sgix_polynomial_ffd = e.find("GL_SGIX_polynomial_ffd")!=e.end(); |
| gl_sgix_reference_plane = e.find("GL_SGIX_reference_plane")!=e.end(); |
| gl_sgix_resample = e.find("GL_SGIX_resample")!=e.end(); |
| gl_sgix_shadow = e.find("GL_SGIX_shadow")!=e.end(); |
| gl_sgix_shadow_ambient = e.find("GL_SGIX_shadow_ambient")!=e.end(); |
| gl_sgix_sprite = e.find("GL_SGIX_sprite")!=e.end(); |
| gl_sgix_tag_sample_buffer = e.find("GL_SGIX_tag_sample_buffer")!=e.end(); |
| gl_sgix_texture_coordinate_clamp = e.find("GL_SGIX_texture_coordinate_clamp")!=e.end(); |
| gl_sgix_texture_multi_buffer = e.find("GL_SGIX_texture_multi_buffer")!=e.end(); |
| gl_sgix_texture_range = e.find("GL_SGIX_texture_range")!=e.end(); |
| gl_sgix_texture_scale_bias = e.find("GL_SGIX_texture_scale_bias")!=e.end(); |
| gl_sgix_vertex_preclip_hint = e.find("GL_SGIX_vertex_preclip_hint")!=e.end(); |
| gl_sgix_ycrcb = e.find("GL_SGIX_ycrcb")!=e.end(); |
| gl_sgi_color_matrix = e.find("GL_SGI_color_matrix")!=e.end(); |
| gl_sgi_color_table = e.find("GL_SGI_color_table")!=e.end(); |
| gl_sgi_texture_color_table = e.find("GL_SGI_texture_color_table")!=e.end(); |
| gl_sunx_constant_data = e.find("GL_SUNX_constant_data")!=e.end(); |
| gl_sun_convolution_border_modes = e.find("GL_SUN_convolution_border_modes")!=e.end(); |
| gl_sun_global_alpha = e.find("GL_SUN_global_alpha")!=e.end(); |
| gl_sun_mesh_array = e.find("GL_SUN_mesh_array")!=e.end(); |
| gl_sun_read_video_pixels = e.find("GL_SUN_read_video_pixels")!=e.end(); |
| gl_sun_slice_accum = e.find("GL_SUN_slice_accum")!=e.end(); |
| gl_sun_triangle_list = e.find("GL_SUN_triangle_list")!=e.end(); |
| gl_sun_vertex = e.find("GL_SUN_vertex")!=e.end(); |
| gl_viv_shader_binary = e.find("GL_VIV_shader_binary")!=e.end(); |
| gl_win_phong_shading = e.find("GL_WIN_phong_shading")!=e.end(); |
| gl_win_specular_fog = e.find("GL_WIN_specular_fog")!=e.end(); |
| gl_win_swap_hint = e.find("GL_WIN_swap_hint")!=e.end(); |
| |
| #if REGAL_SYS_WGL |
| wgl_3dl_stereo_control = e.find("WGL_3DL_stereo_control")!=e.end(); |
| wgl_amd_gpu_association = e.find("WGL_AMD_gpu_association")!=e.end(); |
| wgl_arb_buffer_region = e.find("WGL_ARB_buffer_region")!=e.end(); |
| wgl_arb_create_context = e.find("WGL_ARB_create_context")!=e.end(); |
| wgl_arb_create_context_profile = e.find("WGL_ARB_create_context_profile")!=e.end(); |
| wgl_arb_create_context_robustness = e.find("WGL_ARB_create_context_robustness")!=e.end(); |
| wgl_arb_extensions_string = e.find("WGL_ARB_extensions_string")!=e.end(); |
| wgl_arb_framebuffer_srgb = e.find("WGL_ARB_framebuffer_sRGB")!=e.end(); |
| wgl_arb_make_current_read = e.find("WGL_ARB_make_current_read")!=e.end(); |
| wgl_arb_multisample = e.find("WGL_ARB_multisample")!=e.end(); |
| wgl_arb_pbuffer = e.find("WGL_ARB_pbuffer")!=e.end(); |
| wgl_arb_pixel_format = e.find("WGL_ARB_pixel_format")!=e.end(); |
| wgl_arb_pixel_format_float = e.find("WGL_ARB_pixel_format_float")!=e.end(); |
| wgl_arb_render_texture = e.find("WGL_ARB_render_texture")!=e.end(); |
| wgl_arb_robustness_share_group_isolation = e.find("WGL_ARB_robustness_share_group_isolation")!=e.end(); |
| wgl_ati_pixel_format_float = e.find("WGL_ATI_pixel_format_float")!=e.end(); |
| wgl_ati_render_texture_rectangle = e.find("WGL_ATI_render_texture_rectangle")!=e.end(); |
| wgl_ext_create_context_es2_profile = e.find("WGL_EXT_create_context_es2_profile")!=e.end(); |
| wgl_ext_create_context_es_profile = e.find("WGL_EXT_create_context_es_profile")!=e.end(); |
| wgl_ext_depth_float = e.find("WGL_EXT_depth_float")!=e.end(); |
| wgl_ext_display_color_table = e.find("WGL_EXT_display_color_table")!=e.end(); |
| wgl_ext_extensions_string = e.find("WGL_EXT_extensions_string")!=e.end(); |
| wgl_ext_framebuffer_srgb = e.find("WGL_EXT_framebuffer_sRGB")!=e.end(); |
| wgl_ext_make_current_read = e.find("WGL_EXT_make_current_read")!=e.end(); |
| wgl_ext_multisample = e.find("WGL_EXT_multisample")!=e.end(); |
| wgl_ext_pbuffer = e.find("WGL_EXT_pbuffer")!=e.end(); |
| wgl_ext_pixel_format = e.find("WGL_EXT_pixel_format")!=e.end(); |
| wgl_ext_pixel_format_packed_float = e.find("WGL_EXT_pixel_format_packed_float")!=e.end(); |
| wgl_ext_swap_control = e.find("WGL_EXT_swap_control")!=e.end(); |
| wgl_gdi = e.find("WGL_GDI")!=e.end(); |
| wgl_i3d_digital_video_control = e.find("WGL_I3D_digital_video_control")!=e.end(); |
| wgl_i3d_gamma = e.find("WGL_I3D_gamma")!=e.end(); |
| wgl_i3d_genlock = e.find("WGL_I3D_genlock")!=e.end(); |
| wgl_i3d_image_buffer = e.find("WGL_I3D_image_buffer")!=e.end(); |
| wgl_i3d_swap_frame_lock = e.find("WGL_I3D_swap_frame_lock")!=e.end(); |
| wgl_i3d_swap_frame_usage = e.find("WGL_I3D_swap_frame_usage")!=e.end(); |
| wgl_nv_dx_interop = e.find("WGL_NV_DX_interop")!=e.end(); |
| wgl_nv_copy_image = e.find("WGL_NV_copy_image")!=e.end(); |
| wgl_nv_float_buffer = e.find("WGL_NV_float_buffer")!=e.end(); |
| wgl_nv_gpu_affinity = e.find("WGL_NV_gpu_affinity")!=e.end(); |
| wgl_nv_multisample_coverage = e.find("WGL_NV_multisample_coverage")!=e.end(); |
| wgl_nv_present_video = e.find("WGL_NV_present_video")!=e.end(); |
| wgl_nv_render_depth_texture = e.find("WGL_NV_render_depth_texture")!=e.end(); |
| wgl_nv_render_texture_rectangle = e.find("WGL_NV_render_texture_rectangle")!=e.end(); |
| wgl_nv_swap_group = e.find("WGL_NV_swap_group")!=e.end(); |
| wgl_nv_vertex_array_range = e.find("WGL_NV_vertex_array_range")!=e.end(); |
| wgl_nv_video_capture = e.find("WGL_NV_video_capture")!=e.end(); |
| wgl_nv_video_output = e.find("WGL_NV_video_output")!=e.end(); |
| wgl_oml_sync_control = e.find("WGL_OML_sync_control")!=e.end(); |
| #endif |
| |
| #if REGAL_SYS_GLX |
| glx_3dfx_multisample = e.find("GLX_3DFX_multisample")!=e.end(); |
| glx_amd_gpu_association = e.find("GLX_AMD_gpu_association")!=e.end(); |
| glx_arb_create_context = e.find("GLX_ARB_create_context")!=e.end(); |
| glx_arb_create_context_profile = e.find("GLX_ARB_create_context_profile")!=e.end(); |
| glx_arb_create_context_robustness = e.find("GLX_ARB_create_context_robustness")!=e.end(); |
| glx_arb_fbconfig_float = e.find("GLX_ARB_fbconfig_float")!=e.end(); |
| glx_arb_framebuffer_srgb = e.find("GLX_ARB_framebuffer_sRGB")!=e.end(); |
| glx_arb_get_proc_address = e.find("GLX_ARB_get_proc_address")!=e.end(); |
| glx_arb_multisample = e.find("GLX_ARB_multisample")!=e.end(); |
| glx_arb_robustness_share_group_isolation = e.find("GLX_ARB_robustness_share_group_isolation")!=e.end(); |
| glx_arb_vertex_buffer_object = e.find("GLX_ARB_vertex_buffer_object")!=e.end(); |
| glx_ati_pixel_format_float = e.find("GLX_ATI_pixel_format_float")!=e.end(); |
| glx_ati_render_texture = e.find("GLX_ATI_render_texture")!=e.end(); |
| glx_ext_create_context_es2_profile = e.find("GLX_EXT_create_context_es2_profile")!=e.end(); |
| glx_ext_create_context_es_profile = e.find("GLX_EXT_create_context_es_profile")!=e.end(); |
| glx_ext_fbconfig_packed_float = e.find("GLX_EXT_fbconfig_packed_float")!=e.end(); |
| glx_ext_framebuffer_srgb = e.find("GLX_EXT_framebuffer_sRGB")!=e.end(); |
| glx_ext_import_context = e.find("GLX_EXT_import_context")!=e.end(); |
| glx_ext_swap_control = e.find("GLX_EXT_swap_control")!=e.end(); |
| glx_ext_swap_control_tear = e.find("GLX_EXT_swap_control_tear")!=e.end(); |
| glx_ext_texture_from_pixmap = e.find("GLX_EXT_texture_from_pixmap")!=e.end(); |
| glx_ext_visual_info = e.find("GLX_EXT_visual_info")!=e.end(); |
| glx_ext_visual_rating = e.find("GLX_EXT_visual_rating")!=e.end(); |
| glx_intel_swap_event = e.find("GLX_INTEL_swap_event")!=e.end(); |
| glx_mesa_agp_offset = e.find("GLX_MESA_agp_offset")!=e.end(); |
| glx_mesa_copy_sub_buffer = e.find("GLX_MESA_copy_sub_buffer")!=e.end(); |
| glx_mesa_pixmap_colormap = e.find("GLX_MESA_pixmap_colormap")!=e.end(); |
| glx_mesa_release_buffers = e.find("GLX_MESA_release_buffers")!=e.end(); |
| glx_mesa_set_3dfx_mode = e.find("GLX_MESA_set_3dfx_mode")!=e.end(); |
| glx_mesa_swap_control = e.find("GLX_MESA_swap_control")!=e.end(); |
| glx_nv_copy_image = e.find("GLX_NV_copy_image")!=e.end(); |
| glx_nv_float_buffer = e.find("GLX_NV_float_buffer")!=e.end(); |
| glx_nv_multisample_coverage = e.find("GLX_NV_multisample_coverage")!=e.end(); |
| glx_nv_present_video = e.find("GLX_NV_present_video")!=e.end(); |
| glx_nv_swap_group = e.find("GLX_NV_swap_group")!=e.end(); |
| glx_nv_vertex_array_range = e.find("GLX_NV_vertex_array_range")!=e.end(); |
| glx_nv_video_capture = e.find("GLX_NV_video_capture")!=e.end(); |
| glx_nv_video_output = e.find("GLX_NV_video_output")!=e.end(); |
| glx_oml_swap_method = e.find("GLX_OML_swap_method")!=e.end(); |
| glx_oml_sync_control = e.find("GLX_OML_sync_control")!=e.end(); |
| glx_sgis_blended_overlay = e.find("GLX_SGIS_blended_overlay")!=e.end(); |
| glx_sgis_color_range = e.find("GLX_SGIS_color_range")!=e.end(); |
| glx_sgis_multisample = e.find("GLX_SGIS_multisample")!=e.end(); |
| glx_sgis_shared_multisample = e.find("GLX_SGIS_shared_multisample")!=e.end(); |
| glx_sgix_fbconfig = e.find("GLX_SGIX_fbconfig")!=e.end(); |
| glx_sgix_hyperpipe = e.find("GLX_SGIX_hyperpipe")!=e.end(); |
| glx_sgix_pbuffer = e.find("GLX_SGIX_pbuffer")!=e.end(); |
| glx_sgix_swap_barrier = e.find("GLX_SGIX_swap_barrier")!=e.end(); |
| glx_sgix_swap_group = e.find("GLX_SGIX_swap_group")!=e.end(); |
| glx_sgix_video_resize = e.find("GLX_SGIX_video_resize")!=e.end(); |
| glx_sgix_visual_select_group = e.find("GLX_SGIX_visual_select_group")!=e.end(); |
| glx_sgi_cushion = e.find("GLX_SGI_cushion")!=e.end(); |
| glx_sgi_make_current_read = e.find("GLX_SGI_make_current_read")!=e.end(); |
| glx_sgi_swap_control = e.find("GLX_SGI_swap_control")!=e.end(); |
| glx_sgi_video_sync = e.find("GLX_SGI_video_sync")!=e.end(); |
| glx_sun_get_transparent_index = e.find("GLX_SUN_get_transparent_index")!=e.end(); |
| glx_sun_video_resize = e.find("GLX_SUN_video_resize")!=e.end(); |
| #endif |
| |
| #if REGAL_SYS_EGL |
| egl_angle_query_surface_pointer = e.find("EGL_ANGLE_query_surface_pointer")!=e.end(); |
| egl_angle_surface_d3d_texture_2d_share_handle = e.find("EGL_ANGLE_surface_d3d_texture_2d_share_handle")!=e.end(); |
| egl_ext_create_context_robustness = e.find("EGL_EXT_create_context_robustness")!=e.end(); |
| egl_ext_multiview_window = e.find("EGL_EXT_multiview_window")!=e.end(); |
| egl_hi_colorformats = e.find("EGL_HI_colorformats")!=e.end(); |
| egl_img_context_priority = e.find("EGL_IMG_context_priority")!=e.end(); |
| egl_khr_config_attribs = e.find("EGL_KHR_config_attribs")!=e.end(); |
| egl_khr_create_context = e.find("EGL_KHR_create_context")!=e.end(); |
| egl_khr_fence_sync = e.find("EGL_KHR_fence_sync")!=e.end(); |
| egl_khr_gl_texture_cubemap_image = e.find("EGL_KHR_gl_texture_cubemap_image")!=e.end(); |
| egl_khr_image_base = e.find("EGL_KHR_image_base")!=e.end(); |
| egl_khr_image_pixmap = e.find("EGL_KHR_image_pixmap")!=e.end(); |
| egl_khr_lock_surface = e.find("EGL_KHR_lock_surface")!=e.end(); |
| egl_khr_lock_surface2 = e.find("EGL_KHR_lock_surface2")!=e.end(); |
| egl_khr_reusable_sync = e.find("EGL_KHR_reusable_sync")!=e.end(); |
| egl_khr_stream = e.find("EGL_KHR_stream")!=e.end(); |
| egl_khr_stream_consumer_gltexture = e.find("EGL_KHR_stream_consumer_gltexture")!=e.end(); |
| egl_khr_stream_cross_process_fd = e.find("EGL_KHR_stream_cross_process_fd")!=e.end(); |
| egl_khr_stream_fifo = e.find("EGL_KHR_stream_fifo")!=e.end(); |
| egl_khr_stream_producer_eglsurface = e.find("EGL_KHR_stream_producer_eglsurface")!=e.end(); |
| egl_khr_vg_parent_image = e.find("EGL_KHR_vg_parent_image")!=e.end(); |
| egl_khr_wait_sync = e.find("EGL_KHR_wait_sync")!=e.end(); |
| egl_mesa_drm_image = e.find("EGL_MESA_drm_image")!=e.end(); |
| egl_nv_coverage_sample = e.find("EGL_NV_coverage_sample")!=e.end(); |
| egl_nv_coverage_sample_resolve = e.find("EGL_NV_coverage_sample_resolve")!=e.end(); |
| egl_nv_post_sub_buffer = e.find("EGL_NV_post_sub_buffer")!=e.end(); |
| egl_nv_sync = e.find("EGL_NV_sync")!=e.end(); |
| egl_nv_system_time = e.find("EGL_NV_system_time")!=e.end(); |
| #endif |
| |
| RegalAssert(context.dispatcher.driver.glGetIntegerv); |
| if (es1) |
| { |
| maxVertexAttribs = 8; |
| maxVaryings = 0; |
| } |
| else |
| { |
| context.dispatcher.driver.glGetIntegerv( GL_MAX_VERTEX_ATTRIBS, reinterpret_cast<GLint *>(&maxVertexAttribs)); |
| context.dispatcher.driver.glGetIntegerv( es2 ? GL_MAX_VARYING_VECTORS : GL_MAX_VARYING_FLOATS, reinterpret_cast<GLint *>(&maxVaryings)); |
| } |
| |
| Info("OpenGL v attribs : ",maxVertexAttribs); |
| Info("OpenGL varyings : ",maxVaryings); |
| |
| if (maxVertexAttribs > REGAL_EMU_IFF_VERTEX_ATTRIBS) |
| maxVertexAttribs = REGAL_EMU_IFF_VERTEX_ATTRIBS; |
| |
| // Qualcomm fails with float4 attribs with 256 byte stride, so artificially limit to 8 attribs (n*16 is used |
| // as the stride in RegalIFF). WebGL (and Pepper) explicitly disallows stride > 255 as well. |
| |
| if (vendor == "Qualcomm" || vendor == "Chromium" || webgl) |
| maxVertexAttribs = 8; |
| |
| Info("Regal v attribs : ",maxVertexAttribs); |
| } |
| |
| bool |
| ContextInfo::getExtension(const char *ext) const |
| { |
| Internal("ContextInfo::getExtension ",boost::print::quote(ext,'"')); |
| |
| if (!strcmp(ext,"GL_3DFX_multisample")) return gl_3dfx_multisample; |
| if (!strcmp(ext,"GL_3DFX_tbuffer")) return gl_3dfx_tbuffer; |
| if (!strcmp(ext,"GL_3DFX_texture_compression_FXT1")) return gl_3dfx_texture_compression_fxt1; |
| if (!strcmp(ext,"GL_AMD_blend_minmax_factor")) return gl_amd_blend_minmax_factor; |
| if (!strcmp(ext,"GL_AMD_compressed_3DC_texture")) return gl_amd_compressed_3dc_texture; |
| if (!strcmp(ext,"GL_AMD_compressed_ATC_texture")) return gl_amd_compressed_atc_texture; |
| if (!strcmp(ext,"GL_AMD_debug_output")) return gl_amd_debug_output; |
| if (!strcmp(ext,"GL_AMD_depth_clamp_separate")) return gl_amd_depth_clamp_separate; |
| if (!strcmp(ext,"GL_AMD_draw_buffers_blend")) return gl_amd_draw_buffers_blend; |
| if (!strcmp(ext,"GL_AMD_interleaved_elements")) return gl_amd_interleaved_elements; |
| if (!strcmp(ext,"GL_AMD_multi_draw_indirect")) return gl_amd_multi_draw_indirect; |
| if (!strcmp(ext,"GL_AMD_name_gen_delete")) return gl_amd_name_gen_delete; |
| if (!strcmp(ext,"GL_AMD_performance_monitor")) return gl_amd_performance_monitor; |
| if (!strcmp(ext,"GL_AMD_pinned_memory")) return gl_amd_pinned_memory; |
| if (!strcmp(ext,"GL_AMD_program_binary_Z400")) return gl_amd_program_binary_z400; |
| if (!strcmp(ext,"GL_AMD_query_buffer_object")) return gl_amd_query_buffer_object; |
| if (!strcmp(ext,"GL_AMD_sample_positions")) return gl_amd_sample_positions; |
| if (!strcmp(ext,"GL_AMD_seamless_cubemap_per_texture")) return gl_amd_seamless_cubemap_per_texture; |
| if (!strcmp(ext,"GL_AMD_sparse_texture")) return gl_amd_sparse_texture; |
| if (!strcmp(ext,"GL_AMD_stencil_operation_extended")) return gl_amd_stencil_operation_extended; |
| if (!strcmp(ext,"GL_AMD_vertex_shader_tessellator")) return gl_amd_vertex_shader_tessellator; |
| if (!strcmp(ext,"GL_ANGLE_framebuffer_blit")) return gl_angle_framebuffer_blit; |
| if (!strcmp(ext,"GL_ANGLE_framebuffer_multisample")) return gl_angle_framebuffer_multisample; |
| if (!strcmp(ext,"GL_ANGLE_instanced_arrays")) return gl_angle_instanced_arrays; |
| if (!strcmp(ext,"GL_ANGLE_pack_reverse_row_order")) return gl_angle_pack_reverse_row_order; |
| if (!strcmp(ext,"GL_ANGLE_program_binary")) return gl_angle_program_binary; |
| if (!strcmp(ext,"GL_ANGLE_texture_compression_dxt1")) return gl_angle_texture_compression_dxt1; |
| if (!strcmp(ext,"GL_ANGLE_texture_compression_dxt3")) return gl_angle_texture_compression_dxt3; |
| if (!strcmp(ext,"GL_ANGLE_texture_compression_dxt5")) return gl_angle_texture_compression_dxt5; |
| if (!strcmp(ext,"GL_ANGLE_texture_usage")) return gl_angle_texture_usage; |
| if (!strcmp(ext,"GL_ANGLE_timer_query")) return gl_angle_timer_query; |
| if (!strcmp(ext,"GL_ANGLE_translated_shader_source")) return gl_angle_translated_shader_source; |
| if (!strcmp(ext,"GL_APPLE_aux_depth_stencil")) return gl_apple_aux_depth_stencil; |
| if (!strcmp(ext,"GL_APPLE_client_storage")) return gl_apple_client_storage; |
| if (!strcmp(ext,"GL_APPLE_copy_texture_levels")) return gl_apple_copy_texture_levels; |
| if (!strcmp(ext,"GL_APPLE_element_array")) return gl_apple_element_array; |
| if (!strcmp(ext,"GL_APPLE_fence")) return gl_apple_fence; |
| if (!strcmp(ext,"GL_APPLE_float_pixels")) return gl_apple_float_pixels; |
| if (!strcmp(ext,"GL_APPLE_flush_buffer_range")) return gl_apple_flush_buffer_range; |
| if (!strcmp(ext,"GL_APPLE_flush_render")) return gl_apple_flush_render; |
| if (!strcmp(ext,"GL_APPLE_framebuffer_multisample")) return gl_apple_framebuffer_multisample; |
| if (!strcmp(ext,"GL_APPLE_object_purgeable")) return gl_apple_object_purgeable; |
| if (!strcmp(ext,"GL_APPLE_pixel_buffer")) return gl_apple_pixel_buffer; |
| if (!strcmp(ext,"GL_APPLE_rgb_422")) return gl_apple_rgb_422; |
| if (!strcmp(ext,"GL_APPLE_row_bytes")) return gl_apple_row_bytes; |
| if (!strcmp(ext,"GL_APPLE_specular_vector")) return gl_apple_specular_vector; |
| if (!strcmp(ext,"GL_APPLE_sync")) return gl_apple_sync; |
| if (!strcmp(ext,"GL_APPLE_texture_max_level")) return gl_apple_texture_max_level; |
| if (!strcmp(ext,"GL_APPLE_texture_range")) return gl_apple_texture_range; |
| if (!strcmp(ext,"GL_APPLE_transform_hint")) return gl_apple_transform_hint; |
| if (!strcmp(ext,"GL_APPLE_vertex_array_object")) return gl_apple_vertex_array_object; |
| if (!strcmp(ext,"GL_APPLE_vertex_array_range")) return gl_apple_vertex_array_range; |
| if (!strcmp(ext,"GL_APPLE_vertex_program_evaluators")) return gl_apple_vertex_program_evaluators; |
| if (!strcmp(ext,"GL_APPLE_ycbcr_422")) return gl_apple_ycbcr_422; |
| if (!strcmp(ext,"GL_ARB_ES2_compatibility")) return gl_arb_es2_compatibility; |
| if (!strcmp(ext,"GL_ARB_ES3_compatibility")) return gl_arb_es3_compatibility; |
| if (!strcmp(ext,"GL_ARB_base_instance")) return gl_arb_base_instance; |
| if (!strcmp(ext,"GL_ARB_bindless_texture")) return gl_arb_bindless_texture; |
| if (!strcmp(ext,"GL_ARB_blend_func_extended")) return gl_arb_blend_func_extended; |
| if (!strcmp(ext,"GL_ARB_buffer_storage")) return gl_arb_buffer_storage; |
| if (!strcmp(ext,"GL_ARB_cl_event")) return gl_arb_cl_event; |
| if (!strcmp(ext,"GL_ARB_clear_buffer_object")) return gl_arb_clear_buffer_object; |
| if (!strcmp(ext,"GL_ARB_clear_texture")) return gl_arb_clear_texture; |
| if (!strcmp(ext,"GL_ARB_color_buffer_float")) return gl_arb_color_buffer_float; |
| if (!strcmp(ext,"GL_ARB_compressed_texture_pixel_storage")) return gl_arb_compressed_texture_pixel_storage; |
| if (!strcmp(ext,"GL_ARB_compute_shader")) return gl_arb_compute_shader; |
| if (!strcmp(ext,"GL_ARB_compute_variable_group_size")) return gl_arb_compute_variable_group_size; |
| if (!strcmp(ext,"GL_ARB_copy_buffer")) return gl_arb_copy_buffer; |
| if (!strcmp(ext,"GL_ARB_copy_image")) return gl_arb_copy_image; |
| if (!strcmp(ext,"GL_ARB_debug_output")) return gl_arb_debug_output; |
| if (!strcmp(ext,"GL_ARB_depth_buffer_float")) return gl_arb_depth_buffer_float; |
| if (!strcmp(ext,"GL_ARB_depth_clamp")) return gl_arb_depth_clamp; |
| if (!strcmp(ext,"GL_ARB_depth_texture")) return gl_arb_depth_texture; |
| if (!strcmp(ext,"GL_ARB_draw_buffers")) return regal_arb_draw_buffers || gl_arb_draw_buffers; |
| if (!strcmp(ext,"GL_ARB_draw_buffers_blend")) return gl_arb_draw_buffers_blend; |
| if (!strcmp(ext,"GL_ARB_draw_elements_base_vertex")) return gl_arb_draw_elements_base_vertex; |
| if (!strcmp(ext,"GL_ARB_draw_indirect")) return gl_arb_draw_indirect; |
| if (!strcmp(ext,"GL_ARB_draw_instanced")) return gl_arb_draw_instanced; |
| if (!strcmp(ext,"GL_ARB_enhanced_layouts")) return gl_arb_enhanced_layouts; |
| if (!strcmp(ext,"GL_ARB_explicit_uniform_location")) return gl_arb_explicit_uniform_location; |
| if (!strcmp(ext,"GL_ARB_fragment_program")) return gl_arb_fragment_program; |
| if (!strcmp(ext,"GL_ARB_fragment_shader")) return gl_arb_fragment_shader; |
| if (!strcmp(ext,"GL_ARB_framebuffer_no_attachments")) return gl_arb_framebuffer_no_attachments; |
| if (!strcmp(ext,"GL_ARB_framebuffer_object")) return gl_arb_framebuffer_object; |
| if (!strcmp(ext,"GL_ARB_framebuffer_sRGB")) return gl_arb_framebuffer_srgb; |
| if (!strcmp(ext,"GL_ARB_geometry_shader4")) return gl_arb_geometry_shader4; |
| if (!strcmp(ext,"GL_ARB_get_program_binary")) return gl_arb_get_program_binary; |
| if (!strcmp(ext,"GL_ARB_gpu_shader5")) return gl_arb_gpu_shader5; |
| if (!strcmp(ext,"GL_ARB_gpu_shader_fp64")) return gl_arb_gpu_shader_fp64; |
| if (!strcmp(ext,"GL_ARB_half_float_pixel")) return gl_arb_half_float_pixel; |
| if (!strcmp(ext,"GL_ARB_half_float_vertex")) return gl_arb_half_float_vertex; |
| if (!strcmp(ext,"GL_ARB_imaging")) return gl_arb_imaging; |
| if (!strcmp(ext,"GL_ARB_indirect_parameters")) return gl_arb_indirect_parameters; |
| if (!strcmp(ext,"GL_ARB_instanced_arrays")) return gl_arb_instanced_arrays; |
| if (!strcmp(ext,"GL_ARB_internalformat_query")) return gl_arb_internalformat_query; |
| if (!strcmp(ext,"GL_ARB_internalformat_query2")) return gl_arb_internalformat_query2; |
| if (!strcmp(ext,"GL_ARB_invalidate_subdata")) return gl_arb_invalidate_subdata; |
| if (!strcmp(ext,"GL_ARB_map_buffer_alignment")) return gl_arb_map_buffer_alignment; |
| if (!strcmp(ext,"GL_ARB_map_buffer_range")) return gl_arb_map_buffer_range; |
| if (!strcmp(ext,"GL_ARB_matrix_palette")) return gl_arb_matrix_palette; |
| if (!strcmp(ext,"GL_ARB_multi_bind")) return gl_arb_multi_bind; |
| if (!strcmp(ext,"GL_ARB_multi_draw_indirect")) return gl_arb_multi_draw_indirect; |
| if (!strcmp(ext,"GL_ARB_multisample")) return gl_arb_multisample; |
| if (!strcmp(ext,"GL_ARB_multitexture")) return regal_arb_multitexture || gl_arb_multitexture; |
| if (!strcmp(ext,"GL_ARB_occlusion_query")) return gl_arb_occlusion_query; |
| if (!strcmp(ext,"GL_ARB_occlusion_query2")) return gl_arb_occlusion_query2; |
| if (!strcmp(ext,"GL_ARB_pixel_buffer_object")) return gl_arb_pixel_buffer_object; |
| if (!strcmp(ext,"GL_ARB_point_parameters")) return gl_arb_point_parameters; |
| if (!strcmp(ext,"GL_ARB_point_sprite")) return gl_arb_point_sprite; |
| if (!strcmp(ext,"GL_ARB_program_interface_query")) return gl_arb_program_interface_query; |
| if (!strcmp(ext,"GL_ARB_provoking_vertex")) return gl_arb_provoking_vertex; |
| if (!strcmp(ext,"GL_ARB_query_buffer_object")) return gl_arb_query_buffer_object; |
| if (!strcmp(ext,"GL_ARB_robustness")) return gl_arb_robustness; |
| if (!strcmp(ext,"GL_ARB_sample_shading")) return gl_arb_sample_shading; |
| if (!strcmp(ext,"GL_ARB_sampler_objects")) return gl_arb_sampler_objects; |
| if (!strcmp(ext,"GL_ARB_seamless_cube_map")) return gl_arb_seamless_cube_map; |
| if (!strcmp(ext,"GL_ARB_separate_shader_objects")) return gl_arb_separate_shader_objects; |
| if (!strcmp(ext,"GL_ARB_shader_atomic_counters")) return gl_arb_shader_atomic_counters; |
| if (!strcmp(ext,"GL_ARB_shader_image_load_store")) return gl_arb_shader_image_load_store; |
| if (!strcmp(ext,"GL_ARB_shader_objects")) return gl_arb_shader_objects; |
| if (!strcmp(ext,"GL_ARB_shader_storage_buffer_object")) return gl_arb_shader_storage_buffer_object; |
| if (!strcmp(ext,"GL_ARB_shader_subroutine")) return gl_arb_shader_subroutine; |
| if (!strcmp(ext,"GL_ARB_shading_language_100")) return gl_arb_shading_language_100; |
| if (!strcmp(ext,"GL_ARB_shading_language_include")) return gl_arb_shading_language_include; |
| if (!strcmp(ext,"GL_ARB_shadow")) return gl_arb_shadow; |
| if (!strcmp(ext,"GL_ARB_shadow_ambient")) return gl_arb_shadow_ambient; |
| if (!strcmp(ext,"GL_ARB_sparse_texture")) return gl_arb_sparse_texture; |
| if (!strcmp(ext,"GL_ARB_stencil_texturing")) return gl_arb_stencil_texturing; |
| if (!strcmp(ext,"GL_ARB_sync")) return gl_arb_sync; |
| if (!strcmp(ext,"GL_ARB_tessellation_shader")) return gl_arb_tessellation_shader; |
| if (!strcmp(ext,"GL_ARB_texture_border_clamp")) return gl_arb_texture_border_clamp; |
| if (!strcmp(ext,"GL_ARB_texture_buffer_object")) return gl_arb_texture_buffer_object; |
| if (!strcmp(ext,"GL_ARB_texture_buffer_range")) return gl_arb_texture_buffer_range; |
| if (!strcmp(ext,"GL_ARB_texture_compression")) return gl_arb_texture_compression; |
| if (!strcmp(ext,"GL_ARB_texture_compression_bptc")) return gl_arb_texture_compression_bptc; |
| if (!strcmp(ext,"GL_ARB_texture_compression_rgtc")) return gl_arb_texture_compression_rgtc; |
| if (!strcmp(ext,"GL_ARB_texture_cube_map")) return regal_arb_texture_cube_map || gl_arb_texture_cube_map; |
| if (!strcmp(ext,"GL_ARB_texture_cube_map_array")) return gl_arb_texture_cube_map_array; |
| if (!strcmp(ext,"GL_ARB_texture_env_combine")) return regal_arb_texture_env_combine || gl_arb_texture_env_combine; |
| if (!strcmp(ext,"GL_ARB_texture_env_dot3")) return regal_arb_texture_env_dot3 || gl_arb_texture_env_dot3; |
| if (!strcmp(ext,"GL_ARB_texture_float")) return gl_arb_texture_float; |
| if (!strcmp(ext,"GL_ARB_texture_gather")) return gl_arb_texture_gather; |
| if (!strcmp(ext,"GL_ARB_texture_mirror_clamp_to_edge")) return gl_arb_texture_mirror_clamp_to_edge; |
| if (!strcmp(ext,"GL_ARB_texture_mirrored_repeat")) return gl_arb_texture_mirrored_repeat; |
| if (!strcmp(ext,"GL_ARB_texture_multisample")) return gl_arb_texture_multisample; |
| if (!strcmp(ext,"GL_ARB_texture_rectangle")) return gl_arb_texture_rectangle; |
| if (!strcmp(ext,"GL_ARB_texture_rg")) return gl_arb_texture_rg; |
| if (!strcmp(ext,"GL_ARB_texture_rgb10_a2ui")) return gl_arb_texture_rgb10_a2ui; |
| if (!strcmp(ext,"GL_ARB_texture_storage")) return regal_arb_texture_storage || gl_arb_texture_storage; |
| if (!strcmp(ext,"GL_ARB_texture_storage_multisample")) return gl_arb_texture_storage_multisample; |
| if (!strcmp(ext,"GL_ARB_texture_swizzle")) return gl_arb_texture_swizzle; |
| if (!strcmp(ext,"GL_ARB_texture_view")) return gl_arb_texture_view; |
| if (!strcmp(ext,"GL_ARB_timer_query")) return gl_arb_timer_query; |
| if (!strcmp(ext,"GL_ARB_transform_feedback2")) return gl_arb_transform_feedback2; |
| if (!strcmp(ext,"GL_ARB_transform_feedback3")) return gl_arb_transform_feedback3; |
| if (!strcmp(ext,"GL_ARB_transform_feedback_instanced")) return gl_arb_transform_feedback_instanced; |
| if (!strcmp(ext,"GL_ARB_transpose_matrix")) return gl_arb_transpose_matrix; |
| if (!strcmp(ext,"GL_ARB_uniform_buffer_object")) return gl_arb_uniform_buffer_object; |
| if (!strcmp(ext,"GL_ARB_vertex_array_object")) return gl_arb_vertex_array_object; |
| if (!strcmp(ext,"GL_ARB_vertex_attrib_64bit")) return gl_arb_vertex_attrib_64bit; |
| if (!strcmp(ext,"GL_ARB_vertex_attrib_binding")) return gl_arb_vertex_attrib_binding; |
| if (!strcmp(ext,"GL_ARB_vertex_blend")) return gl_arb_vertex_blend; |
| if (!strcmp(ext,"GL_ARB_vertex_buffer_object")) return gl_arb_vertex_buffer_object; |
| if (!strcmp(ext,"GL_ARB_vertex_program")) return gl_arb_vertex_program; |
| if (!strcmp(ext,"GL_ARB_vertex_shader")) return gl_arb_vertex_shader; |
| if (!strcmp(ext,"GL_ARB_vertex_type_2_10_10_10_rev")) return gl_arb_vertex_type_2_10_10_10_rev; |
| if (!strcmp(ext,"GL_ARB_viewport_array")) return gl_arb_viewport_array; |
| if (!strcmp(ext,"GL_ARB_window_pos")) return gl_arb_window_pos; |
| if (!strcmp(ext,"GL_ARM_mali_program_binary")) return gl_arm_mali_program_binary; |
| if (!strcmp(ext,"GL_ARM_mali_shader_binary")) return gl_arm_mali_shader_binary; |
| if (!strcmp(ext,"GL_ATI_draw_buffers")) return regal_ati_draw_buffers || gl_ati_draw_buffers; |
| if (!strcmp(ext,"GL_ATI_element_array")) return gl_ati_element_array; |
| if (!strcmp(ext,"GL_ATI_envmap_bumpmap")) return gl_ati_envmap_bumpmap; |
| if (!strcmp(ext,"GL_ATI_fragment_shader")) return gl_ati_fragment_shader; |
| if (!strcmp(ext,"GL_ATI_map_object_buffer")) return gl_ati_map_object_buffer; |
| if (!strcmp(ext,"GL_ATI_meminfo")) return gl_ati_meminfo; |
| if (!strcmp(ext,"GL_ATI_pn_triangles")) return gl_ati_pn_triangles; |
| if (!strcmp(ext,"GL_ATI_separate_stencil")) return gl_ati_separate_stencil; |
| if (!strcmp(ext,"GL_ATI_text_fragment_shader")) return gl_ati_text_fragment_shader; |
| if (!strcmp(ext,"GL_ATI_texture_compression_3dc")) return gl_ati_texture_compression_3dc; |
| if (!strcmp(ext,"GL_ATI_texture_env_combine3")) return gl_ati_texture_env_combine3; |
| if (!strcmp(ext,"GL_ATI_texture_float")) return gl_ati_texture_float; |
| if (!strcmp(ext,"GL_ATI_texture_mirror_once")) return gl_ati_texture_mirror_once; |
| if (!strcmp(ext,"GL_ATI_vertex_array_object")) return gl_ati_vertex_array_object; |
| if (!strcmp(ext,"GL_ATI_vertex_attrib_array_object")) return gl_ati_vertex_attrib_array_object; |
| if (!strcmp(ext,"GL_ATI_vertex_streams")) return gl_ati_vertex_streams; |
| if (!strcmp(ext,"GL_DMP_shader_binary")) return gl_dmp_shader_binary; |
| if (!strcmp(ext,"GL_EXT_422_pixels")) return gl_ext_422_pixels; |
| if (!strcmp(ext,"GL_EXT_Cg_shader")) return gl_ext_cg_shader; |
| if (!strcmp(ext,"GL_EXT_abgr")) return gl_ext_abgr; |
| if (!strcmp(ext,"GL_EXT_bgra")) return gl_ext_bgra; |
| if (!strcmp(ext,"GL_EXT_bindable_uniform")) return gl_ext_bindable_uniform; |
| if (!strcmp(ext,"GL_EXT_blend_color")) return regal_ext_blend_color || gl_ext_blend_color; |
| if (!strcmp(ext,"GL_EXT_blend_equation_separate")) return gl_ext_blend_equation_separate; |
| if (!strcmp(ext,"GL_EXT_blend_func_separate")) return gl_ext_blend_func_separate; |
| if (!strcmp(ext,"GL_EXT_blend_minmax")) return gl_ext_blend_minmax; |
| if (!strcmp(ext,"GL_EXT_blend_subtract")) return regal_ext_blend_subtract || gl_ext_blend_subtract; |
| if (!strcmp(ext,"GL_EXT_clip_volume_hint")) return gl_ext_clip_volume_hint; |
| if (!strcmp(ext,"GL_EXT_cmyka")) return gl_ext_cmyka; |
| if (!strcmp(ext,"GL_EXT_color_buffer_half_float")) return gl_ext_color_buffer_half_float; |
| if (!strcmp(ext,"GL_EXT_color_subtable")) return gl_ext_color_subtable; |
| if (!strcmp(ext,"GL_EXT_compiled_vertex_array")) return gl_ext_compiled_vertex_array; |
| if (!strcmp(ext,"GL_EXT_convolution")) return gl_ext_convolution; |
| if (!strcmp(ext,"GL_EXT_coordinate_frame")) return gl_ext_coordinate_frame; |
| if (!strcmp(ext,"GL_EXT_copy_texture")) return gl_ext_copy_texture; |
| if (!strcmp(ext,"GL_EXT_cull_vertex")) return gl_ext_cull_vertex; |
| if (!strcmp(ext,"GL_EXT_debug_label")) return gl_ext_debug_label; |
| if (!strcmp(ext,"GL_EXT_debug_marker")) return true; |
| if (!strcmp(ext,"GL_EXT_depth_bounds_test")) return gl_ext_depth_bounds_test; |
| if (!strcmp(ext,"GL_EXT_direct_state_access")) return regal_ext_direct_state_access || gl_ext_direct_state_access; |
| if (!strcmp(ext,"GL_EXT_discard_framebuffer")) return gl_ext_discard_framebuffer; |
| if (!strcmp(ext,"GL_EXT_disjoint_timer_query")) return gl_ext_disjoint_timer_query; |
| if (!strcmp(ext,"GL_EXT_draw_buffers2")) return gl_ext_draw_buffers2; |
| if (!strcmp(ext,"GL_EXT_draw_instanced")) return gl_ext_draw_instanced; |
| if (!strcmp(ext,"GL_EXT_draw_range_elements")) return gl_ext_draw_range_elements; |
| if (!strcmp(ext,"GL_EXT_fog_coord")) return gl_ext_fog_coord; |
| if (!strcmp(ext,"GL_EXT_fragment_lighting")) return gl_ext_fragment_lighting; |
| if (!strcmp(ext,"GL_EXT_framebuffer_blit")) return regal_ext_framebuffer_blit || gl_ext_framebuffer_blit; |
| if (!strcmp(ext,"GL_EXT_framebuffer_multisample")) return gl_ext_framebuffer_multisample; |
| if (!strcmp(ext,"GL_EXT_framebuffer_multisample_blit_scaled")) return gl_ext_framebuffer_multisample_blit_scaled; |
| if (!strcmp(ext,"GL_EXT_framebuffer_object")) return regal_ext_framebuffer_object || gl_ext_framebuffer_object; |
| if (!strcmp(ext,"GL_EXT_framebuffer_sRGB")) return gl_ext_framebuffer_srgb; |
| if (!strcmp(ext,"GL_EXT_geometry_shader4")) return gl_ext_geometry_shader4; |
| if (!strcmp(ext,"GL_EXT_gpu_program_parameters")) return gl_ext_gpu_program_parameters; |
| if (!strcmp(ext,"GL_EXT_gpu_shader4")) return gl_ext_gpu_shader4; |
| if (!strcmp(ext,"GL_EXT_histogram")) return gl_ext_histogram; |
| if (!strcmp(ext,"GL_EXT_index_func")) return gl_ext_index_func; |
| if (!strcmp(ext,"GL_EXT_index_material")) return gl_ext_index_material; |
| if (!strcmp(ext,"GL_EXT_light_texture")) return gl_ext_light_texture; |
| if (!strcmp(ext,"GL_EXT_map_buffer_range")) return gl_ext_map_buffer_range; |
| if (!strcmp(ext,"GL_EXT_multi_draw_arrays")) return gl_ext_multi_draw_arrays; |
| if (!strcmp(ext,"GL_EXT_multisample")) return gl_ext_multisample; |
| if (!strcmp(ext,"GL_EXT_multisampled_render_to_texture")) return gl_ext_multisampled_render_to_texture; |
| if (!strcmp(ext,"GL_EXT_multiview_draw_buffers")) return gl_ext_multiview_draw_buffers; |
| if (!strcmp(ext,"GL_EXT_occlusion_query_boolean")) return gl_ext_occlusion_query_boolean; |
| if (!strcmp(ext,"GL_EXT_packed_depth_stencil")) return gl_ext_packed_depth_stencil; |
| if (!strcmp(ext,"GL_EXT_packed_float")) return gl_ext_packed_float; |
| if (!strcmp(ext,"GL_EXT_packed_pixels")) return gl_ext_packed_pixels; |
| if (!strcmp(ext,"GL_EXT_paletted_texture")) return gl_ext_paletted_texture; |
| if (!strcmp(ext,"GL_EXT_pixel_buffer_object")) return gl_ext_pixel_buffer_object; |
| if (!strcmp(ext,"GL_EXT_pixel_transform")) return gl_ext_pixel_transform; |
| if (!strcmp(ext,"GL_EXT_point_parameters")) return gl_ext_point_parameters; |
| if (!strcmp(ext,"GL_EXT_polygon_offset")) return gl_ext_polygon_offset; |
| if (!strcmp(ext,"GL_EXT_provoking_vertex")) return gl_ext_provoking_vertex; |
| if (!strcmp(ext,"GL_EXT_read_format_bgra")) return gl_ext_read_format_bgra; |
| if (!strcmp(ext,"GL_EXT_rescale_normal")) return gl_ext_rescale_normal; |
| if (!strcmp(ext,"GL_EXT_robustness")) return gl_ext_robustness; |
| if (!strcmp(ext,"GL_EXT_sRGB")) return gl_ext_srgb; |
| if (!strcmp(ext,"GL_EXT_scene_marker")) return gl_ext_scene_marker; |
| if (!strcmp(ext,"GL_EXT_secondary_color")) return gl_ext_secondary_color; |
| if (!strcmp(ext,"GL_EXT_separate_shader_objects")) return gl_ext_separate_shader_objects; |
| if (!strcmp(ext,"GL_EXT_separate_specular_color")) return gl_ext_separate_specular_color; |
| if (!strcmp(ext,"GL_EXT_shader_framebuffer_fetch")) return gl_ext_shader_framebuffer_fetch; |
| if (!strcmp(ext,"GL_EXT_shader_image_load_store")) return gl_ext_shader_image_load_store; |
| if (!strcmp(ext,"GL_EXT_shadow_samplers")) return gl_ext_shadow_samplers; |
| if (!strcmp(ext,"GL_EXT_shared_texture_palette")) return gl_ext_shared_texture_palette; |
| if (!strcmp(ext,"GL_EXT_stencil_clear_tag")) return gl_ext_stencil_clear_tag; |
| if (!strcmp(ext,"GL_EXT_stencil_two_side")) return gl_ext_stencil_two_side; |
| if (!strcmp(ext,"GL_EXT_stencil_wrap")) return gl_ext_stencil_wrap; |
| if (!strcmp(ext,"GL_EXT_subtexture")) return gl_ext_subtexture; |
| if (!strcmp(ext,"GL_EXT_texture")) return gl_ext_texture; |
| if (!strcmp(ext,"GL_EXT_texture3D")) return gl_ext_texture3d; |
| if (!strcmp(ext,"GL_EXT_texture_array")) return gl_ext_texture_array; |
| if (!strcmp(ext,"GL_EXT_texture_buffer_object")) return gl_ext_texture_buffer_object; |
| if (!strcmp(ext,"GL_EXT_texture_compression_latc")) return gl_ext_texture_compression_latc; |
| if (!strcmp(ext,"GL_EXT_texture_compression_rgtc")) return gl_ext_texture_compression_rgtc; |
| if (!strcmp(ext,"GL_EXT_texture_compression_s3tc")) return gl_ext_texture_compression_s3tc; |
| if (!strcmp(ext,"GL_EXT_texture_cube_map")) return regal_ext_texture_cube_map || gl_ext_texture_cube_map; |
| if (!strcmp(ext,"GL_EXT_texture_edge_clamp")) return regal_ext_texture_edge_clamp || gl_ext_texture_edge_clamp; |
| if (!strcmp(ext,"GL_EXT_texture_env_combine")) return regal_ext_texture_env_combine || gl_ext_texture_env_combine; |
| if (!strcmp(ext,"GL_EXT_texture_env_dot3")) return regal_ext_texture_env_dot3 || gl_ext_texture_env_dot3; |
| if (!strcmp(ext,"GL_EXT_texture_filter_anisotropic")) return gl_ext_texture_filter_anisotropic; |
| if (!strcmp(ext,"GL_EXT_texture_format_BGRA8888")) return gl_ext_texture_format_bgra8888; |
| if (!strcmp(ext,"GL_EXT_texture_integer")) return gl_ext_texture_integer; |
| if (!strcmp(ext,"GL_EXT_texture_lod_bias")) return gl_ext_texture_lod_bias; |
| if (!strcmp(ext,"GL_EXT_texture_mirror_clamp")) return gl_ext_texture_mirror_clamp; |
| if (!strcmp(ext,"GL_EXT_texture_object")) return gl_ext_texture_object; |
| if (!strcmp(ext,"GL_EXT_texture_perturb_normal")) return gl_ext_texture_perturb_normal; |
| if (!strcmp(ext,"GL_EXT_texture_rectangle")) return gl_ext_texture_rectangle; |
| if (!strcmp(ext,"GL_EXT_texture_rg")) return gl_ext_texture_rg; |
| if (!strcmp(ext,"GL_EXT_texture_sRGB")) return gl_ext_texture_srgb; |
| if (!strcmp(ext,"GL_EXT_texture_sRGB_decode")) return gl_ext_texture_srgb_decode; |
| if (!strcmp(ext,"GL_EXT_texture_shared_exponent")) return gl_ext_texture_shared_exponent; |
| if (!strcmp(ext,"GL_EXT_texture_snorm")) return gl_ext_texture_snorm; |
| if (!strcmp(ext,"GL_EXT_texture_storage")) return gl_ext_texture_storage; |
| if (!strcmp(ext,"GL_EXT_texture_swizzle")) return gl_ext_texture_swizzle; |
| if (!strcmp(ext,"GL_EXT_texture_type_2_10_10_10_REV")) return gl_ext_texture_type_2_10_10_10_rev; |
| if (!strcmp(ext,"GL_EXT_timer_query")) return gl_ext_timer_query; |
| if (!strcmp(ext,"GL_EXT_transform_feedback")) return gl_ext_transform_feedback; |
| if (!strcmp(ext,"GL_EXT_unpack_subimage")) return gl_ext_unpack_subimage; |
| if (!strcmp(ext,"GL_EXT_vertex_array")) return gl_ext_vertex_array; |
| if (!strcmp(ext,"GL_EXT_vertex_attrib_64bit")) return gl_ext_vertex_attrib_64bit; |
| if (!strcmp(ext,"GL_EXT_vertex_shader")) return gl_ext_vertex_shader; |
| if (!strcmp(ext,"GL_EXT_vertex_weighting")) return gl_ext_vertex_weighting; |
| if (!strcmp(ext,"GL_EXT_x11_sync_object")) return gl_ext_x11_sync_object; |
| if (!strcmp(ext,"GL_FJ_shader_binary_GCCSO")) return gl_fj_shader_binary_gccso; |
| if (!strcmp(ext,"GL_GREMEDY_frame_terminator")) return gl_gremedy_frame_terminator; |
| if (!strcmp(ext,"GL_GREMEDY_string_marker")) return gl_gremedy_string_marker; |
| if (!strcmp(ext,"GL_HP_image_transform")) return gl_hp_image_transform; |
| if (!strcmp(ext,"GL_HP_occlusion_test")) return gl_hp_occlusion_test; |
| if (!strcmp(ext,"GL_IBM_cull_vertex")) return gl_ibm_cull_vertex; |
| if (!strcmp(ext,"GL_IBM_multimode_draw_arrays")) return gl_ibm_multimode_draw_arrays; |
| if (!strcmp(ext,"GL_IBM_rasterpos_clip")) return gl_ibm_rasterpos_clip; |
| if (!strcmp(ext,"GL_IBM_static_data")) return gl_ibm_static_data; |
| if (!strcmp(ext,"GL_IBM_texture_mirrored_repeat")) return regal_ibm_texture_mirrored_repeat || gl_ibm_texture_mirrored_repeat; |
| if (!strcmp(ext,"GL_IBM_vertex_array_lists")) return gl_ibm_vertex_array_lists; |
| if (!strcmp(ext,"GL_IMG_multisampled_render_to_texture")) return gl_img_multisampled_render_to_texture; |
| if (!strcmp(ext,"GL_IMG_program_binary")) return gl_img_program_binary; |
| if (!strcmp(ext,"GL_IMG_read_format")) return gl_img_read_format; |
| if (!strcmp(ext,"GL_IMG_shader_binary")) return gl_img_shader_binary; |
| if (!strcmp(ext,"GL_IMG_texture_compression_pvrtc")) return gl_img_texture_compression_pvrtc; |
| if (!strcmp(ext,"GL_IMG_texture_compression_pvrtc2")) return gl_img_texture_compression_pvrtc2; |
| if (!strcmp(ext,"GL_IMG_texture_env_enhanced_fixed_function")) return gl_img_texture_env_enhanced_fixed_function; |
| if (!strcmp(ext,"GL_IMG_user_clip_plane")) return gl_img_user_clip_plane; |
| if (!strcmp(ext,"GL_INGR_blend_func_separate")) return gl_ingr_blend_func_separate; |
| if (!strcmp(ext,"GL_INGR_color_clamp")) return gl_ingr_color_clamp; |
| if (!strcmp(ext,"GL_INGR_interlace_read")) return gl_ingr_interlace_read; |
| if (!strcmp(ext,"GL_INTEL_map_texture")) return gl_intel_map_texture; |
| if (!strcmp(ext,"GL_INTEL_parallel_arrays")) return gl_intel_parallel_arrays; |
| if (!strcmp(ext,"GL_INTEL_texture_scissor")) return gl_intel_texture_scissor; |
| if (!strcmp(ext,"GL_KHR_debug")) return gl_khr_debug; |
| if (!strcmp(ext,"GL_KHR_texture_compression_astc_ldr")) return gl_khr_texture_compression_astc_ldr; |
| if (!strcmp(ext,"GL_KTX_buffer_region")) return gl_ktx_buffer_region; |
| if (!strcmp(ext,"GL_MESAX_texture_stack")) return gl_mesax_texture_stack; |
| if (!strcmp(ext,"GL_MESA_pack_invert")) return gl_mesa_pack_invert; |
| if (!strcmp(ext,"GL_MESA_resize_buffers")) return gl_mesa_resize_buffers; |
| if (!strcmp(ext,"GL_MESA_window_pos")) return gl_mesa_window_pos; |
| if (!strcmp(ext,"GL_MESA_ycbcr_texture")) return gl_mesa_ycbcr_texture; |
| if (!strcmp(ext,"GL_NVX_conditional_render")) return gl_nvx_conditional_render; |
| if (!strcmp(ext,"GL_NVX_gpu_memory_info")) return gl_nvx_gpu_memory_info; |
| if (!strcmp(ext,"GL_NV_3dvision_settings")) return gl_nv_3dvision_settings; |
| if (!strcmp(ext,"GL_NV_bgr")) return gl_nv_bgr; |
| if (!strcmp(ext,"GL_NV_bindless_texture")) return gl_nv_bindless_texture; |
| if (!strcmp(ext,"GL_NV_blend_square")) return regal_nv_blend_square || gl_nv_blend_square; |
| if (!strcmp(ext,"GL_NV_compute_program5")) return gl_nv_compute_program5; |
| if (!strcmp(ext,"GL_NV_conditional_render")) return gl_nv_conditional_render; |
| if (!strcmp(ext,"GL_NV_copy_depth_to_color")) return gl_nv_copy_depth_to_color; |
| if (!strcmp(ext,"GL_NV_copy_image")) return gl_nv_copy_image; |
| if (!strcmp(ext,"GL_NV_coverage_sample")) return gl_nv_coverage_sample; |
| if (!strcmp(ext,"GL_NV_deep_texture3D")) return gl_nv_deep_texture3d; |
| if (!strcmp(ext,"GL_NV_depth_buffer_float")) return gl_nv_depth_buffer_float; |
| if (!strcmp(ext,"GL_NV_depth_clamp")) return gl_nv_depth_clamp; |
| if (!strcmp(ext,"GL_NV_depth_nonlinear")) return gl_nv_depth_nonlinear; |
| if (!strcmp(ext,"GL_NV_depth_range_unclamped")) return gl_nv_depth_range_unclamped; |
| if (!strcmp(ext,"GL_NV_draw_buffers")) return gl_nv_draw_buffers; |
| if (!strcmp(ext,"GL_NV_draw_texture")) return gl_nv_draw_texture; |
| if (!strcmp(ext,"GL_NV_evaluators")) return gl_nv_evaluators; |
| if (!strcmp(ext,"GL_NV_explicit_multisample")) return gl_nv_explicit_multisample; |
| if (!strcmp(ext,"GL_NV_fbo_color_attachments")) return gl_nv_fbo_color_attachments; |
| if (!strcmp(ext,"GL_NV_fence")) return gl_nv_fence; |
| if (!strcmp(ext,"GL_NV_float_buffer")) return gl_nv_float_buffer; |
| if (!strcmp(ext,"GL_NV_fog_distance")) return gl_nv_fog_distance; |
| if (!strcmp(ext,"GL_NV_fragment_program")) return gl_nv_fragment_program; |
| if (!strcmp(ext,"GL_NV_fragment_program2")) return gl_nv_fragment_program2; |
| if (!strcmp(ext,"GL_NV_framebuffer_blit")) return gl_nv_framebuffer_blit; |
| if (!strcmp(ext,"GL_NV_framebuffer_multisample")) return gl_nv_framebuffer_multisample; |
| if (!strcmp(ext,"GL_NV_framebuffer_multisample_coverage")) return gl_nv_framebuffer_multisample_coverage; |
| if (!strcmp(ext,"GL_NV_geometry_program4")) return gl_nv_geometry_program4; |
| if (!strcmp(ext,"GL_NV_gpu_program4")) return gl_nv_gpu_program4; |
| if (!strcmp(ext,"GL_NV_gpu_program5")) return gl_nv_gpu_program5; |
| if (!strcmp(ext,"GL_NV_gpu_shader5")) return gl_nv_gpu_shader5; |
| if (!strcmp(ext,"GL_NV_half_float")) return gl_nv_half_float; |
| if (!strcmp(ext,"GL_NV_instanced_arrays")) return gl_nv_instanced_arrays; |
| if (!strcmp(ext,"GL_NV_light_max_exponent")) return gl_nv_light_max_exponent; |
| if (!strcmp(ext,"GL_NV_multisample_coverage")) return gl_nv_multisample_coverage; |
| if (!strcmp(ext,"GL_NV_multisample_filter_hint")) return gl_nv_multisample_filter_hint; |
| if (!strcmp(ext,"GL_NV_occlusion_query")) return gl_nv_occlusion_query; |
| if (!strcmp(ext,"GL_NV_pack_subimage")) return gl_nv_pack_subimage; |
| if (!strcmp(ext,"GL_NV_packed_depth_stencil")) return gl_nv_packed_depth_stencil; |
| if (!strcmp(ext,"GL_NV_packed_float_linear")) return gl_nv_packed_float_linear; |
| if (!strcmp(ext,"GL_NV_parameter_buffer_object")) return gl_nv_parameter_buffer_object; |
| if (!strcmp(ext,"GL_NV_path_rendering")) return gl_nv_path_rendering; |
| if (!strcmp(ext,"GL_NV_pixel_buffer_object")) return gl_nv_pixel_buffer_object; |
| if (!strcmp(ext,"GL_NV_pixel_data_range")) return gl_nv_pixel_data_range; |
| if (!strcmp(ext,"GL_NV_platform_binary")) return gl_nv_platform_binary; |
| if (!strcmp(ext,"GL_NV_point_sprite")) return gl_nv_point_sprite; |
| if (!strcmp(ext,"GL_NV_present_video")) return gl_nv_present_video; |
| if (!strcmp(ext,"GL_NV_primitive_restart")) return gl_nv_primitive_restart; |
| if (!strcmp(ext,"GL_NV_read_buffer")) return gl_nv_read_buffer; |
| if (!strcmp(ext,"GL_NV_read_buffer_front")) return gl_nv_read_buffer_front; |
| if (!strcmp(ext,"GL_NV_register_combiners")) return gl_nv_register_combiners; |
| if (!strcmp(ext,"GL_NV_register_combiners2")) return gl_nv_register_combiners2; |
| if (!strcmp(ext,"GL_NV_sRGB_formats")) return gl_nv_srgb_formats; |
| if (!strcmp(ext,"GL_NV_shader_buffer_load")) return gl_nv_shader_buffer_load; |
| if (!strcmp(ext,"GL_NV_shadow_samplers_array")) return gl_nv_shadow_samplers_array; |
| if (!strcmp(ext,"GL_NV_shadow_samplers_cube")) return gl_nv_shadow_samplers_cube; |
| if (!strcmp(ext,"GL_NV_tessellation_program5")) return gl_nv_tessellation_program5; |
| if (!strcmp(ext,"GL_NV_texgen_emboss")) return gl_nv_texgen_emboss; |
| if (!strcmp(ext,"GL_NV_texgen_reflection")) return gl_nv_texgen_reflection; |
| if (!strcmp(ext,"GL_NV_texture_array")) return gl_nv_texture_array; |
| if (!strcmp(ext,"GL_NV_texture_barrier")) return gl_nv_texture_barrier; |
| if (!strcmp(ext,"GL_NV_texture_border_clamp")) return gl_nv_texture_border_clamp; |
| if (!strcmp(ext,"GL_NV_texture_compression_latc")) return gl_nv_texture_compression_latc; |
| if (!strcmp(ext,"GL_NV_texture_compression_s3tc")) return gl_nv_texture_compression_s3tc; |
| if (!strcmp(ext,"GL_NV_texture_env_combine4")) return gl_nv_texture_env_combine4; |
| if (!strcmp(ext,"GL_NV_texture_expand_normal")) return gl_nv_texture_expand_normal; |
| if (!strcmp(ext,"GL_NV_texture_multisample")) return gl_nv_texture_multisample; |
| if (!strcmp(ext,"GL_NV_texture_rectangle")) return gl_nv_texture_rectangle; |
| if (!strcmp(ext,"GL_NV_texture_shader")) return gl_nv_texture_shader; |
| if (!strcmp(ext,"GL_NV_texture_shader2")) return gl_nv_texture_shader2; |
| if (!strcmp(ext,"GL_NV_texture_shader3")) return gl_nv_texture_shader3; |
| if (!strcmp(ext,"GL_NV_transform_feedback")) return gl_nv_transform_feedback; |
| if (!strcmp(ext,"GL_NV_transform_feedback2")) return gl_nv_transform_feedback2; |
| if (!strcmp(ext,"GL_NV_vdpau_interop")) return gl_nv_vdpau_interop; |
| if (!strcmp(ext,"GL_NV_vertex_array_range")) return gl_nv_vertex_array_range; |
| if (!strcmp(ext,"GL_NV_vertex_array_range2")) return gl_nv_vertex_array_range2; |
| if (!strcmp(ext,"GL_NV_vertex_attrib_integer_64bit")) return gl_nv_vertex_attrib_integer_64bit; |
| if (!strcmp(ext,"GL_NV_vertex_buffer_unified_memory")) return gl_nv_vertex_buffer_unified_memory; |
| if (!strcmp(ext,"GL_NV_vertex_program")) return gl_nv_vertex_program; |
| if (!strcmp(ext,"GL_NV_vertex_program2_option")) return gl_nv_vertex_program2_option; |
| if (!strcmp(ext,"GL_NV_vertex_program3")) return gl_nv_vertex_program3; |
| if (!strcmp(ext,"GL_NV_vertex_program4")) return gl_nv_vertex_program4; |
| if (!strcmp(ext,"GL_NV_video_capture")) return gl_nv_video_capture; |
| if (!strcmp(ext,"GL_OES_blend_equation_separate")) return gl_oes_blend_equation_separate; |
| if (!strcmp(ext,"GL_OES_blend_func_separate")) return gl_oes_blend_func_separate; |
| if (!strcmp(ext,"GL_OES_blend_subtract")) return gl_oes_blend_subtract; |
| if (!strcmp(ext,"GL_OES_compressed_ETC1_RGB8_texture")) return gl_oes_compressed_etc1_rgb8_texture; |
| if (!strcmp(ext,"GL_OES_compressed_paletted_texture")) return gl_oes_compressed_paletted_texture; |
| if (!strcmp(ext,"GL_OES_depth_texture")) return gl_oes_depth_texture; |
| if (!strcmp(ext,"GL_OES_draw_texture")) return gl_oes_draw_texture; |
| if (!strcmp(ext,"GL_OES_element_index_uint")) return gl_oes_element_index_uint; |
| if (!strcmp(ext,"GL_OES_fbo_render_mipmap")) return gl_oes_fbo_render_mipmap; |
| if (!strcmp(ext,"GL_OES_framebuffer_object")) return gl_oes_framebuffer_object; |
| if (!strcmp(ext,"GL_OES_get_program_binary")) return gl_oes_get_program_binary; |
| if (!strcmp(ext,"GL_OES_mapbuffer")) return gl_oes_mapbuffer; |
| if (!strcmp(ext,"GL_OES_matrix_get")) return gl_oes_matrix_get; |
| if (!strcmp(ext,"GL_OES_matrix_palette")) return gl_oes_matrix_palette; |
| if (!strcmp(ext,"GL_OES_packed_depth_stencil")) return gl_oes_packed_depth_stencil; |
| if (!strcmp(ext,"GL_OES_point_size_array")) return gl_oes_point_size_array; |
| if (!strcmp(ext,"GL_OES_point_sprite")) return gl_oes_point_sprite; |
| if (!strcmp(ext,"GL_OES_read_format")) return gl_oes_read_format; |
| if (!strcmp(ext,"GL_OES_required_internalformat")) return gl_oes_required_internalformat; |
| if (!strcmp(ext,"GL_OES_rgb8_rgba8")) return gl_oes_rgb8_rgba8; |
| if (!strcmp(ext,"GL_OES_single_precision")) return gl_oes_single_precision; |
| if (!strcmp(ext,"GL_OES_standard_derivatives")) return gl_oes_standard_derivatives; |
| if (!strcmp(ext,"GL_OES_stencil1")) return gl_oes_stencil1; |
| if (!strcmp(ext,"GL_OES_stencil4")) return gl_oes_stencil4; |
| if (!strcmp(ext,"GL_OES_stencil8")) return gl_oes_stencil8; |
| if (!strcmp(ext,"GL_OES_surfaceless_context")) return gl_oes_surfaceless_context; |
| if (!strcmp(ext,"GL_OES_texture_3D")) return gl_oes_texture_3d; |
| if (!strcmp(ext,"GL_OES_texture_cube_map")) return gl_oes_texture_cube_map; |
| if (!strcmp(ext,"GL_OES_texture_mirrored_repeat")) return gl_oes_texture_mirrored_repeat; |
| if (!strcmp(ext,"GL_OES_vertex_array_object")) return gl_oes_vertex_array_object; |
| if (!strcmp(ext,"GL_OES_vertex_half_float")) return gl_oes_vertex_half_float; |
| if (!strcmp(ext,"GL_OES_vertex_type_10_10_10_2")) return gl_oes_vertex_type_10_10_10_2; |
| if (!strcmp(ext,"GL_OML_interlace")) return gl_oml_interlace; |
| if (!strcmp(ext,"GL_OML_resample")) return gl_oml_resample; |
| if (!strcmp(ext,"GL_OML_subsample")) return gl_oml_subsample; |
| if (!strcmp(ext,"GL_PGI_misc_hints")) return gl_pgi_misc_hints; |
| if (!strcmp(ext,"GL_PGI_vertex_hints")) return gl_pgi_vertex_hints; |
| if (!strcmp(ext,"GL_QCOM_alpha_test")) return gl_qcom_alpha_test; |
| if (!strcmp(ext,"GL_QCOM_binning_control")) return gl_qcom_binning_control; |
| if (!strcmp(ext,"GL_QCOM_driver_control")) return gl_qcom_driver_control; |
| if (!strcmp(ext,"GL_QCOM_extended_get")) return gl_qcom_extended_get; |
| if (!strcmp(ext,"GL_QCOM_extended_get2")) return gl_qcom_extended_get2; |
| if (!strcmp(ext,"GL_QCOM_perfmon_global_mode")) return gl_qcom_perfmon_global_mode; |
| if (!strcmp(ext,"GL_QCOM_tiled_rendering")) return gl_qcom_tiled_rendering; |
| if (!strcmp(ext,"GL_QCOM_writeonly_rendering")) return gl_qcom_writeonly_rendering; |
| if (!strcmp(ext,"GL_REGAL_ES1_0_compatibility")) return true; |
| if (!strcmp(ext,"GL_REGAL_ES1_1_compatibility")) return true; |
| if (!strcmp(ext,"GL_REGAL_enable")) return true; |
| if (!strcmp(ext,"GL_REGAL_error_string")) return true; |
| if (!strcmp(ext,"GL_REGAL_extension_query")) return true; |
| if (!strcmp(ext,"GL_REGAL_log")) return true; |
| if (!strcmp(ext,"GL_REND_screen_coordinates")) return gl_rend_screen_coordinates; |
| if (!strcmp(ext,"GL_S3_s3tc")) return gl_s3_s3tc; |
| if (!strcmp(ext,"GL_SGIS_color_range")) return gl_sgis_color_range; |
| if (!strcmp(ext,"GL_SGIS_detail_texture")) return gl_sgis_detail_texture; |
| if (!strcmp(ext,"GL_SGIS_fog_function")) return gl_sgis_fog_function; |
| if (!strcmp(ext,"GL_SGIS_generate_mipmap")) return gl_sgis_generate_mipmap; |
| if (!strcmp(ext,"GL_SGIS_multisample")) return gl_sgis_multisample; |
| if (!strcmp(ext,"GL_SGIS_pixel_texture")) return gl_sgis_pixel_texture; |
| if (!strcmp(ext,"GL_SGIS_point_line_texgen")) return gl_sgis_point_line_texgen; |
| if (!strcmp(ext,"GL_SGIS_point_parameters")) return gl_sgis_point_parameters; |
| if (!strcmp(ext,"GL_SGIS_sharpen_texture")) return gl_sgis_sharpen_texture; |
| if (!strcmp(ext,"GL_SGIS_texture4D")) return gl_sgis_texture4d; |
| if (!strcmp(ext,"GL_SGIS_texture_border_clamp")) return gl_sgis_texture_border_clamp; |
| if (!strcmp(ext,"GL_SGIS_texture_color_mask")) return gl_sgis_texture_color_mask; |
| if (!strcmp(ext,"GL_SGIS_texture_edge_clamp")) return gl_sgis_texture_edge_clamp; |
| if (!strcmp(ext,"GL_SGIS_texture_filter4")) return gl_sgis_texture_filter4; |
| if (!strcmp(ext,"GL_SGIS_texture_lod")) return gl_sgis_texture_lod; |
| if (!strcmp(ext,"GL_SGIX_async")) return gl_sgix_async; |
| if (!strcmp(ext,"GL_SGIX_async_histogram")) return gl_sgix_async_histogram; |
| if (!strcmp(ext,"GL_SGIX_async_pixel")) return gl_sgix_async_pixel; |
| if (!strcmp(ext,"GL_SGIX_blend_alpha_minmax")) return gl_sgix_blend_alpha_minmax; |
| if (!strcmp(ext,"GL_SGIX_convolution_accuracy")) return gl_sgix_convolution_accuracy; |
| if (!strcmp(ext,"GL_SGIX_depth_texture")) return gl_sgix_depth_texture; |
| if (!strcmp(ext,"GL_SGIX_flush_raster")) return gl_sgix_flush_raster; |
| if (!strcmp(ext,"GL_SGIX_fog_offset")) return gl_sgix_fog_offset; |
| if (!strcmp(ext,"GL_SGIX_fog_texture")) return gl_sgix_fog_texture; |
| if (!strcmp(ext,"GL_SGIX_fragment_lighting")) return gl_sgix_fragment_lighting; |
| if (!strcmp(ext,"GL_SGIX_fragment_specular_lighting")) return gl_sgix_fragment_specular_lighting; |
| if (!strcmp(ext,"GL_SGIX_framezoom")) return gl_sgix_framezoom; |
| if (!strcmp(ext,"GL_SGIX_igloo_interface")) return gl_sgix_igloo_interface; |
| if (!strcmp(ext,"GL_SGIX_instruments")) return gl_sgix_instruments; |
| if (!strcmp(ext,"GL_SGIX_interlace")) return gl_sgix_interlace; |
| if (!strcmp(ext,"GL_SGIX_list_priority")) return gl_sgix_list_priority; |
| if (!strcmp(ext,"GL_SGIX_pixel_texture")) return gl_sgix_pixel_texture; |
| if (!strcmp(ext,"GL_SGIX_polynomial_ffd")) return gl_sgix_polynomial_ffd; |
| if (!strcmp(ext,"GL_SGIX_reference_plane")) return gl_sgix_reference_plane; |
| if (!strcmp(ext,"GL_SGIX_resample")) return gl_sgix_resample; |
| if (!strcmp(ext,"GL_SGIX_shadow")) return gl_sgix_shadow; |
| if (!strcmp(ext,"GL_SGIX_shadow_ambient")) return gl_sgix_shadow_ambient; |
| if (!strcmp(ext,"GL_SGIX_sprite")) return gl_sgix_sprite; |
| if (!strcmp(ext,"GL_SGIX_tag_sample_buffer")) return gl_sgix_tag_sample_buffer; |
| if (!strcmp(ext,"GL_SGIX_texture_coordinate_clamp")) return gl_sgix_texture_coordinate_clamp; |
| if (!strcmp(ext,"GL_SGIX_texture_multi_buffer")) return gl_sgix_texture_multi_buffer; |
| if (!strcmp(ext,"GL_SGIX_texture_range")) return gl_sgix_texture_range; |
| if (!strcmp(ext,"GL_SGIX_texture_scale_bias")) return gl_sgix_texture_scale_bias; |
| if (!strcmp(ext,"GL_SGIX_vertex_preclip_hint")) return gl_sgix_vertex_preclip_hint; |
| if (!strcmp(ext,"GL_SGIX_ycrcb")) return gl_sgix_ycrcb; |
| if (!strcmp(ext,"GL_SGI_color_matrix")) return gl_sgi_color_matrix; |
| if (!strcmp(ext,"GL_SGI_color_table")) return gl_sgi_color_table; |
| if (!strcmp(ext,"GL_SGI_texture_color_table")) return gl_sgi_texture_color_table; |
| if (!strcmp(ext,"GL_SUNX_constant_data")) return gl_sunx_constant_data; |
| if (!strcmp(ext,"GL_SUN_convolution_border_modes")) return gl_sun_convolution_border_modes; |
| if (!strcmp(ext,"GL_SUN_global_alpha")) return gl_sun_global_alpha; |
| if (!strcmp(ext,"GL_SUN_mesh_array")) return gl_sun_mesh_array; |
| if (!strcmp(ext,"GL_SUN_read_video_pixels")) return gl_sun_read_video_pixels; |
| if (!strcmp(ext,"GL_SUN_slice_accum")) return gl_sun_slice_accum; |
| if (!strcmp(ext,"GL_SUN_triangle_list")) return gl_sun_triangle_list; |
| if (!strcmp(ext,"GL_SUN_vertex")) return gl_sun_vertex; |
| if (!strcmp(ext,"GL_VIV_shader_binary")) return gl_viv_shader_binary; |
| if (!strcmp(ext,"GL_WIN_phong_shading")) return gl_win_phong_shading; |
| if (!strcmp(ext,"GL_WIN_specular_fog")) return gl_win_specular_fog; |
| if (!strcmp(ext,"GL_WIN_swap_hint")) return gl_win_swap_hint; |
| |
| #if REGAL_SYS_WGL |
| if (!strcmp(ext,"WGL_3DL_stereo_control")) return wgl_3dl_stereo_control; |
| if (!strcmp(ext,"WGL_AMD_gpu_association")) return wgl_amd_gpu_association; |
| if (!strcmp(ext,"WGL_ARB_buffer_region")) return wgl_arb_buffer_region; |
| if (!strcmp(ext,"WGL_ARB_create_context")) return wgl_arb_create_context; |
| if (!strcmp(ext,"WGL_ARB_create_context_profile")) return wgl_arb_create_context_profile; |
| if (!strcmp(ext,"WGL_ARB_create_context_robustness")) return wgl_arb_create_context_robustness; |
| if (!strcmp(ext,"WGL_ARB_extensions_string")) return wgl_arb_extensions_string; |
| if (!strcmp(ext,"WGL_ARB_framebuffer_sRGB")) return wgl_arb_framebuffer_srgb; |
| if (!strcmp(ext,"WGL_ARB_make_current_read")) return wgl_arb_make_current_read; |
| if (!strcmp(ext,"WGL_ARB_multisample")) return wgl_arb_multisample; |
| if (!strcmp(ext,"WGL_ARB_pbuffer")) return wgl_arb_pbuffer; |
| if (!strcmp(ext,"WGL_ARB_pixel_format")) return wgl_arb_pixel_format; |
| if (!strcmp(ext,"WGL_ARB_pixel_format_float")) return wgl_arb_pixel_format_float; |
| if (!strcmp(ext,"WGL_ARB_render_texture")) return wgl_arb_render_texture; |
| if (!strcmp(ext,"WGL_ARB_robustness_share_group_isolation")) return wgl_arb_robustness_share_group_isolation; |
| if (!strcmp(ext,"WGL_ATI_pixel_format_float")) return wgl_ati_pixel_format_float; |
| if (!strcmp(ext,"WGL_ATI_render_texture_rectangle")) return wgl_ati_render_texture_rectangle; |
| if (!strcmp(ext,"WGL_EXT_create_context_es2_profile")) return wgl_ext_create_context_es2_profile; |
| if (!strcmp(ext,"WGL_EXT_create_context_es_profile")) return wgl_ext_create_context_es_profile; |
| if (!strcmp(ext,"WGL_EXT_depth_float")) return wgl_ext_depth_float; |
| if (!strcmp(ext,"WGL_EXT_display_color_table")) return wgl_ext_display_color_table; |
| if (!strcmp(ext,"WGL_EXT_extensions_string")) return wgl_ext_extensions_string; |
| if (!strcmp(ext,"WGL_EXT_framebuffer_sRGB")) return wgl_ext_framebuffer_srgb; |
| if (!strcmp(ext,"WGL_EXT_make_current_read")) return wgl_ext_make_current_read; |
| if (!strcmp(ext,"WGL_EXT_multisample")) return wgl_ext_multisample; |
| if (!strcmp(ext,"WGL_EXT_pbuffer")) return wgl_ext_pbuffer; |
| if (!strcmp(ext,"WGL_EXT_pixel_format")) return wgl_ext_pixel_format; |
| if (!strcmp(ext,"WGL_EXT_pixel_format_packed_float")) return wgl_ext_pixel_format_packed_float; |
| if (!strcmp(ext,"WGL_EXT_swap_control")) return wgl_ext_swap_control; |
| if (!strcmp(ext,"WGL_GDI")) return wgl_gdi; |
| if (!strcmp(ext,"WGL_I3D_digital_video_control")) return wgl_i3d_digital_video_control; |
| if (!strcmp(ext,"WGL_I3D_gamma")) return wgl_i3d_gamma; |
| if (!strcmp(ext,"WGL_I3D_genlock")) return wgl_i3d_genlock; |
| if (!strcmp(ext,"WGL_I3D_image_buffer")) return wgl_i3d_image_buffer; |
| if (!strcmp(ext,"WGL_I3D_swap_frame_lock")) return wgl_i3d_swap_frame_lock; |
| if (!strcmp(ext,"WGL_I3D_swap_frame_usage")) return wgl_i3d_swap_frame_usage; |
| if (!strcmp(ext,"WGL_NV_DX_interop")) return wgl_nv_dx_interop; |
| if (!strcmp(ext,"WGL_NV_copy_image")) return wgl_nv_copy_image; |
| if (!strcmp(ext,"WGL_NV_float_buffer")) return wgl_nv_float_buffer; |
| if (!strcmp(ext,"WGL_NV_gpu_affinity")) return wgl_nv_gpu_affinity; |
| if (!strcmp(ext,"WGL_NV_multisample_coverage")) return wgl_nv_multisample_coverage; |
| if (!strcmp(ext,"WGL_NV_present_video")) return wgl_nv_present_video; |
| if (!strcmp(ext,"WGL_NV_render_depth_texture")) return wgl_nv_render_depth_texture; |
| if (!strcmp(ext,"WGL_NV_render_texture_rectangle")) return wgl_nv_render_texture_rectangle; |
| if (!strcmp(ext,"WGL_NV_swap_group")) return wgl_nv_swap_group; |
| if (!strcmp(ext,"WGL_NV_vertex_array_range")) return wgl_nv_vertex_array_range; |
| if (!strcmp(ext,"WGL_NV_video_capture")) return wgl_nv_video_capture; |
| if (!strcmp(ext,"WGL_NV_video_output")) return wgl_nv_video_output; |
| if (!strcmp(ext,"WGL_OML_sync_control")) return wgl_oml_sync_control; |
| #endif |
| |
| #if REGAL_SYS_GLX |
| if (!strcmp(ext,"GLX_3DFX_multisample")) return glx_3dfx_multisample; |
| if (!strcmp(ext,"GLX_AMD_gpu_association")) return glx_amd_gpu_association; |
| if (!strcmp(ext,"GLX_ARB_create_context")) return glx_arb_create_context; |
| if (!strcmp(ext,"GLX_ARB_create_context_profile")) return glx_arb_create_context_profile; |
| if (!strcmp(ext,"GLX_ARB_create_context_robustness")) return glx_arb_create_context_robustness; |
| if (!strcmp(ext,"GLX_ARB_fbconfig_float")) return glx_arb_fbconfig_float; |
| if (!strcmp(ext,"GLX_ARB_framebuffer_sRGB")) return glx_arb_framebuffer_srgb; |
| if (!strcmp(ext,"GLX_ARB_get_proc_address")) return glx_arb_get_proc_address; |
| if (!strcmp(ext,"GLX_ARB_multisample")) return glx_arb_multisample; |
| if (!strcmp(ext,"GLX_ARB_robustness_share_group_isolation")) return glx_arb_robustness_share_group_isolation; |
| if (!strcmp(ext,"GLX_ARB_vertex_buffer_object")) return glx_arb_vertex_buffer_object; |
| if (!strcmp(ext,"GLX_ATI_pixel_format_float")) return glx_ati_pixel_format_float; |
| if (!strcmp(ext,"GLX_ATI_render_texture")) return glx_ati_render_texture; |
| if (!strcmp(ext,"GLX_EXT_create_context_es2_profile")) return glx_ext_create_context_es2_profile; |
| if (!strcmp(ext,"GLX_EXT_create_context_es_profile")) return glx_ext_create_context_es_profile; |
| if (!strcmp(ext,"GLX_EXT_fbconfig_packed_float")) return glx_ext_fbconfig_packed_float; |
| if (!strcmp(ext,"GLX_EXT_framebuffer_sRGB")) return glx_ext_framebuffer_srgb; |
| if (!strcmp(ext,"GLX_EXT_import_context")) return glx_ext_import_context; |
| if (!strcmp(ext,"GLX_EXT_swap_control")) return glx_ext_swap_control; |
| if (!strcmp(ext,"GLX_EXT_swap_control_tear")) return glx_ext_swap_control_tear; |
| if (!strcmp(ext,"GLX_EXT_texture_from_pixmap")) return glx_ext_texture_from_pixmap; |
| if (!strcmp(ext,"GLX_EXT_visual_info")) return glx_ext_visual_info; |
| if (!strcmp(ext,"GLX_EXT_visual_rating")) return glx_ext_visual_rating; |
| if (!strcmp(ext,"GLX_INTEL_swap_event")) return glx_intel_swap_event; |
| if (!strcmp(ext,"GLX_MESA_agp_offset")) return glx_mesa_agp_offset; |
| if (!strcmp(ext,"GLX_MESA_copy_sub_buffer")) return glx_mesa_copy_sub_buffer; |
| if (!strcmp(ext,"GLX_MESA_pixmap_colormap")) return glx_mesa_pixmap_colormap; |
| if (!strcmp(ext,"GLX_MESA_release_buffers")) return glx_mesa_release_buffers; |
| if (!strcmp(ext,"GLX_MESA_set_3dfx_mode")) return glx_mesa_set_3dfx_mode; |
| if (!strcmp(ext,"GLX_MESA_swap_control")) return glx_mesa_swap_control; |
| if (!strcmp(ext,"GLX_NV_copy_image")) return glx_nv_copy_image; |
| if (!strcmp(ext,"GLX_NV_float_buffer")) return glx_nv_float_buffer; |
| if (!strcmp(ext,"GLX_NV_multisample_coverage")) return glx_nv_multisample_coverage; |
| if (!strcmp(ext,"GLX_NV_present_video")) return glx_nv_present_video; |
| if (!strcmp(ext,"GLX_NV_swap_group")) return glx_nv_swap_group; |
| if (!strcmp(ext,"GLX_NV_vertex_array_range")) return glx_nv_vertex_array_range; |
| if (!strcmp(ext,"GLX_NV_video_capture")) return glx_nv_video_capture; |
| if (!strcmp(ext,"GLX_NV_video_output")) return glx_nv_video_output; |
| if (!strcmp(ext,"GLX_OML_swap_method")) return glx_oml_swap_method; |
| if (!strcmp(ext,"GLX_OML_sync_control")) return glx_oml_sync_control; |
| if (!strcmp(ext,"GLX_SGIS_blended_overlay")) return glx_sgis_blended_overlay; |
| if (!strcmp(ext,"GLX_SGIS_color_range")) return glx_sgis_color_range; |
| if (!strcmp(ext,"GLX_SGIS_multisample")) return glx_sgis_multisample; |
| if (!strcmp(ext,"GLX_SGIS_shared_multisample")) return glx_sgis_shared_multisample; |
| if (!strcmp(ext,"GLX_SGIX_fbconfig")) return glx_sgix_fbconfig; |
| if (!strcmp(ext,"GLX_SGIX_hyperpipe")) return glx_sgix_hyperpipe; |
| if (!strcmp(ext,"GLX_SGIX_pbuffer")) return glx_sgix_pbuffer; |
| if (!strcmp(ext,"GLX_SGIX_swap_barrier")) return glx_sgix_swap_barrier; |
| if (!strcmp(ext,"GLX_SGIX_swap_group")) return glx_sgix_swap_group; |
| if (!strcmp(ext,"GLX_SGIX_video_resize")) return glx_sgix_video_resize; |
| if (!strcmp(ext,"GLX_SGIX_visual_select_group")) return glx_sgix_visual_select_group; |
| if (!strcmp(ext,"GLX_SGI_cushion")) return glx_sgi_cushion; |
| if (!strcmp(ext,"GLX_SGI_make_current_read")) return glx_sgi_make_current_read; |
| if (!strcmp(ext,"GLX_SGI_swap_control")) return glx_sgi_swap_control; |
| if (!strcmp(ext,"GLX_SGI_video_sync")) return glx_sgi_video_sync; |
| if (!strcmp(ext,"GLX_SUN_get_transparent_index")) return glx_sun_get_transparent_index; |
| if (!strcmp(ext,"GLX_SUN_video_resize")) return glx_sun_video_resize; |
| #endif |
| |
| #if REGAL_SYS_EGL |
| if (!strcmp(ext,"EGL_ANGLE_query_surface_pointer")) return egl_angle_query_surface_pointer; |
| if (!strcmp(ext,"EGL_ANGLE_surface_d3d_texture_2d_share_handle")) return egl_angle_surface_d3d_texture_2d_share_handle; |
| if (!strcmp(ext,"EGL_EXT_create_context_robustness")) return egl_ext_create_context_robustness; |
| if (!strcmp(ext,"EGL_EXT_multiview_window")) return egl_ext_multiview_window; |
| if (!strcmp(ext,"EGL_HI_colorformats")) return egl_hi_colorformats; |
| if (!strcmp(ext,"EGL_IMG_context_priority")) return egl_img_context_priority; |
| if (!strcmp(ext,"EGL_KHR_config_attribs")) return egl_khr_config_attribs; |
| if (!strcmp(ext,"EGL_KHR_create_context")) return egl_khr_create_context; |
| if (!strcmp(ext,"EGL_KHR_fence_sync")) return egl_khr_fence_sync; |
| if (!strcmp(ext,"EGL_KHR_gl_texture_cubemap_image")) return egl_khr_gl_texture_cubemap_image; |
| if (!strcmp(ext,"EGL_KHR_image_base")) return egl_khr_image_base; |
| if (!strcmp(ext,"EGL_KHR_image_pixmap")) return egl_khr_image_pixmap; |
| if (!strcmp(ext,"EGL_KHR_lock_surface")) return egl_khr_lock_surface; |
| if (!strcmp(ext,"EGL_KHR_lock_surface2")) return egl_khr_lock_surface2; |
| if (!strcmp(ext,"EGL_KHR_reusable_sync")) return egl_khr_reusable_sync; |
| if (!strcmp(ext,"EGL_KHR_stream")) return egl_khr_stream; |
| if (!strcmp(ext,"EGL_KHR_stream_consumer_gltexture")) return egl_khr_stream_consumer_gltexture; |
| if (!strcmp(ext,"EGL_KHR_stream_cross_process_fd")) return egl_khr_stream_cross_process_fd; |
| if (!strcmp(ext,"EGL_KHR_stream_fifo")) return egl_khr_stream_fifo; |
| if (!strcmp(ext,"EGL_KHR_stream_producer_eglsurface")) return egl_khr_stream_producer_eglsurface; |
| if (!strcmp(ext,"EGL_KHR_vg_parent_image")) return egl_khr_vg_parent_image; |
| if (!strcmp(ext,"EGL_KHR_wait_sync")) return egl_khr_wait_sync; |
| if (!strcmp(ext,"EGL_MESA_drm_image")) return egl_mesa_drm_image; |
| if (!strcmp(ext,"EGL_NV_coverage_sample")) return egl_nv_coverage_sample; |
| if (!strcmp(ext,"EGL_NV_coverage_sample_resolve")) return egl_nv_coverage_sample_resolve; |
| if (!strcmp(ext,"EGL_NV_post_sub_buffer")) return egl_nv_post_sub_buffer; |
| if (!strcmp(ext,"EGL_NV_sync")) return egl_nv_sync; |
| if (!strcmp(ext,"EGL_NV_system_time")) return egl_nv_system_time; |
| #endif |
| |
| return false; |
| } |
| |
| bool |
| ContextInfo::isSupported(const char *ext) const |
| { |
| Internal("ContextInfo::isSupported ",boost::print::quote(ext,'"')); |
| |
| string_list<string> e; |
| e.split(ext,' '); |
| for (string_list<string>::const_iterator i=e.begin(); i!=e.end(); ++i) |
| if (i->length() && !getExtension(i->c_str())) return false; |
| return true; |
| } |
| |
| REGAL_NAMESPACE_END |