Click or drag to resize
SoGLExtension Class

Contains methods to query and disable OpenGL extensions.

Inheritance Hierarchy
SystemObject
  OIV.InventorSoNetBase
    OIV.Inventor.DevicesSoGLExtension

Namespace: OIV.Inventor.Devices
Assembly: OIV.Inventor.GL (in OIV.Inventor.GL.dll) Version: 2023.1.3.0 (2023.1.3)
Syntax
public sealed class SoGLExtension : SoNetBase

The SoGLExtension type exposes the following members.

Methods
  NameDescription
Public methodStatic memberDisableExtension

Disable a specific extension in software.

Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodStatic memberExtSupported

This routine is pretty quick.

Public methodStatic memberGetExtID

Methods to quickly figure out if an OpenGL extension is available at run-time.

Public methodGetHashCode
Overrides GetHashCode().
(Inherited from SoNetBase.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodStatic memberIsAvailable

Returns true if the extension is available.

Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Remarks

OIV.Inventor.Devices.SoGLExtension is based on GLEW (the OpenGL Extension Wrangler library). The OpenGL Extension Wrangler Library (GLEW) is a cross-platform, open-source extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the current platform. Once an extension is known to be present, the function linked to that extension can be called directly.

EXAMPLE

Here is an example of checking if a GL extension is present. Note that the OIV.Inventor.Devices.SoGLExtension.IsAvailable(System.String) method will normally succeed even if no context is currently bound. In that case it creates its own temporary context automatically, but a warning message is posted when using a debug build of Open Inventor.

SoGLContext context = new SoGLContext( true );
context.Bind();
   bool ok = OIV.Inventor.Devices.SoGLExtension.IsAvailable( "GL_ARB_vertex_program" );
context.Unbind();

NOTES

The OIV.Inventor.Devices.SoGLExtension header file must be included before any OpenGL header files.

The following list categorizes the extensions that can be queried with OIV.Inventor.Devices.SoGLExtension.IsAvailable(System.String):

  • GL_VERSION_1_1

  • GL_VERSION_1_2

  • GL_VERSION_1_3

  • GL_VERSION_1_4

  • GL_VERSION_1_5

  • GL_VERSION_2_0

  • GL_VERSION_2_1

  • GL_VERSION_3_0

  • GL_VERSION_3_1

  • GL_VERSION_3_2

  • GL_VERSION_3_3

  • GL_VERSION_4_0

  • GL_VERSION_4_1

3DFX

  • GL_3DFX_multisample

  • GL_3DFX_tbuffer

  • GL_3DFX_texture_compression_FXT1

AMD

  • GL_AMD_draw_buffers_blend

  • GL_AMD_performance_monitor

  • GL_AMD_texture_texture4

  • GL_AMD_vertex_shader_tessellator

  • GL_AMD_seamless_cubemap_per_texture

  • GL_AMD_shader_stencil_export

  • GL_AMD_conservative_depth

  • GL_AMD_debug_output

  • GL_AMD_name_gen_delete

  • GL_AMD_transform_feedback3_lines_triangles

  • GL_AMD_depth_clamp_separate

APPLE

  • GL_APPLE_aux_depth_stencil

  • GL_APPLE_client_storage

  • GL_APPLE_element_array

  • GL_APPLE_fence

  • GL_APPLE_float_pixels

  • GL_APPLE_flush_buffer_range

  • GL_APPLE_object_purgeable

  • GL_APPLE_pixel_buffer

  • GL_APPLE_rgb_422

  • GL_APPLE_row_bytes

  • GL_APPLE_specular_vector

  • GL_APPLE_texture_range

  • GL_APPLE_transform_hint

  • GL_APPLE_vertex_array_object

  • GL_APPLE_vertex_array_range

  • GL_APPLE_vertex_program_evaluators

  • GL_APPLE_ycbcr_422

ARB

  • GL_ARB_color_buffer_float

  • GL_ARB_compatibility

  • GL_ARB_copy_buffer

  • GL_ARB_depth_buffer_float

  • GL_ARB_depth_clamp

  • GL_ARB_depth_texture

  • GL_ARB_draw_buffers

  • GL_ARB_draw_buffers_blend

  • GL_ARB_draw_elements_base_vertex

  • GL_ARB_draw_instanced

  • GL_ARB_fragment_coord_conventions

  • GL_ARB_fragment_program

  • GL_ARB_fragment_program_shadow

  • GL_ARB_fragment_shader

  • GL_ARB_framebuffer_object

  • GL_ARB_framebuffer_sRGB

  • GL_ARB_geometry_shader4

  • GL_ARB_half_float_pixel

  • GL_ARB_half_float_vertex

  • GL_ARB_imaging

  • GL_ARB_instanced_arrays

  • GL_ARB_map_buffer_range

  • GL_ARB_matrix_palette

  • GL_ARB_multisample

  • GL_ARB_multitexture

  • GL_ARB_occlusion_query

  • GL_ARB_pixel_buffer_object

  • GL_ARB_point_parameters

  • GL_ARB_point_sprite

  • GL_ARB_provoking_vertex

  • GL_ARB_sample_shading

  • GL_ARB_seamless_cube_map

  • GL_ARB_shader_objects

  • GL_ARB_shader_texture_lod

  • GL_ARB_shading_language_100

  • GL_ARB_shadow

  • GL_ARB_shadow_ambient

  • GL_ARB_sync

  • GL_ARB_texture_border_clamp

  • GL_ARB_texture_buffer_object

  • GL_ARB_texture_compression

  • GL_ARB_texture_compression_rgtc

  • GL_ARB_texture_cube_map

  • GL_ARB_texture_cube_map_array

  • GL_ARB_texture_env_add

  • GL_ARB_texture_env_combine

  • GL_ARB_texture_env_crossbar

  • GL_ARB_texture_env_dot3

  • GL_ARB_texture_float

  • GL_ARB_texture_gather

  • GL_ARB_texture_mirrored_repeat

  • GL_ARB_texture_multisample

  • GL_ARB_texture_non_power_of_two

  • GL_ARB_texture_query_lod

  • GL_ARB_texture_rectangle

  • GL_ARB_texture_rg

  • GL_ARB_transpose_matrix

  • GL_ARB_uniform_buffer_object

  • GL_ARB_vertex_array_bgra

  • GL_ARB_vertex_array_object

  • GL_ARB_vertex_blend

  • GL_ARB_vertex_buffer_object

  • GL_ARB_vertex_program

  • GL_ARB_vertex_shader

  • GL_ARB_window_pos

  • GL_ARB_blend_func_extended

  • GL_ARB_draw_indirect

  • GL_ARB_explicit_attrib_location

  • GL_ARB_gpu_shader5

  • GL_ARB_gpu_shader_fp64

  • GL_ARB_occlusion_query2

  • GL_ARB_sampler_objects

  • GL_ARB_shader_bit_encoding

  • GL_ARB_shader_subroutine

  • GL_ARB_shading_language_include

  • GL_ARB_tessellation_shader

  • GL_ARB_texture_buffer_object_rgb32

  • GL_ARB_texture_compression_bptc

  • GL_ARB_texture_rgb10_a2ui

  • GL_ARB_texture_swizzle

  • GL_ARB_timer_query

  • GL_ARB_transform_feedback2

  • GL_ARB_transform_feedback3

  • GL_ARB_vertex_type_2_10_10_10_rev

  • GL_ARB_ES2_compatibility

  • GL_ARB_cl_event

  • GL_ARB_debug_output

  • GL_ARB_get_program_binary

  • GL_ARB_robustness

  • GL_ARB_separate_shader_objects

  • GL_ARB_shader_precision

  • GL_ARB_shader_stencil_export

  • GL_ARB_vertex_attrib_64bit

  • GL_ARB_viewport_array

ATI

  • GL_ATIX_point_sprites

  • GL_ATIX_texture_env_combine3

  • GL_ATIX_texture_env_route

  • GL_ATIX_vertex_shader_output_point_size

  • GL_ATI_draw_buffers

  • GL_ATI_element_array

  • GL_ATI_envmap_bumpmap

  • GL_ATI_fragment_shader

  • GL_ATI_map_object_buffer

  • GL_ATI_meminfo

  • GL_ATI_pn_triangles

  • GL_ATI_separate_stencil

  • GL_ATI_shader_texture_lod

  • GL_ATI_text_fragment_shader

  • GL_ATI_texture_compression_3dc

  • GL_ATI_texture_env_combine3

  • GL_ATI_texture_float

  • GL_ATI_texture_mirror_once

  • GL_ATI_vertex_array_object

  • GL_ATI_vertex_attrib_array_object

  • GL_ATI_vertex_streams

EXT

  • GL_EXT_422_pixels

  • GL_EXT_Cg_shader

  • GL_EXT_abgr

  • GL_EXT_bgra

  • GL_EXT_bindable_uniform

  • GL_EXT_blend_color

  • GL_EXT_blend_equation_separate

  • GL_EXT_blend_func_separate

  • GL_EXT_blend_logic_op

  • GL_EXT_blend_minmax

  • GL_EXT_blend_subtract

  • GL_EXT_clip_volume_hint

  • GL_EXT_cmyka

  • GL_EXT_color_subtable

  • GL_EXT_compiled_vertex_array

  • GL_EXT_convolution

  • GL_EXT_coordinate_frame

  • GL_EXT_copy_texture

  • GL_EXT_cull_vertex

  • GL_EXT_depth_bounds_test

  • GL_EXT_direct_state_access

  • GL_EXT_draw_buffers2

  • GL_EXT_draw_instanced

  • GL_EXT_draw_range_elements

  • GL_EXT_fog_coord

  • GL_EXT_fragment_lighting

  • GL_EXT_framebuffer_blit

  • GL_EXT_framebuffer_multisample

  • GL_EXT_framebuffer_object

  • GL_EXT_framebuffer_sRGB

  • GL_EXT_geometry_shader4

  • GL_EXT_gpu_program_parameters

  • GL_EXT_gpu_shader4

  • GL_EXT_histogram

  • GL_EXT_index_array_formats

  • GL_EXT_index_func

  • GL_EXT_index_material

  • GL_EXT_index_texture

  • GL_EXT_light_texture

  • GL_EXT_misc_attribute

  • GL_EXT_multi_draw_arrays

  • GL_EXT_multisample

  • GL_EXT_packed_depth_stencil

  • GL_EXT_packed_float

  • GL_EXT_packed_pixels

  • GL_EXT_paletted_texture

  • GL_EXT_pixel_buffer_object

  • GL_EXT_pixel_transform

  • GL_EXT_pixel_transform_color_table

  • GL_EXT_point_parameters

  • GL_EXT_polygon_offset

  • GL_EXT_provoking_vertex

  • GL_EXT_rescale_normal

  • GL_EXT_separate_shader_objects

  • GL_EXT_scene_marker

  • GL_EXT_secondary_color

  • GL_EXT_separate_specular_color

  • GL_EXT_shadow_funcs

  • GL_EXT_shared_texture_palette

  • GL_EXT_stencil_clear_tag

  • GL_EXT_stencil_two_side

  • GL_EXT_stencil_wrap

  • GL_EXT_subtexture

  • GL_EXT_texture

  • GL_EXT_texture3D

  • GL_EXT_texture_array

  • GL_EXT_texture_buffer_object

  • GL_EXT_texture_compression_dxt1

  • GL_EXT_texture_compression_latc

  • GL_EXT_texture_compression_rgtc

  • GL_EXT_texture_compression_s3tc

  • GL_EXT_texture_cube_map

  • GL_EXT_texture_edge_clamp

  • GL_EXT_texture_env

  • GL_EXT_texture_env_add

  • GL_EXT_texture_env_combine

  • GL_EXT_texture_env_dot3

  • GL_EXT_texture_filter_anisotropic

  • GL_EXT_texture_integer

  • GL_EXT_texture_lod_bias

  • GL_EXT_texture_mirror_clamp

  • GL_EXT_texture_object

  • GL_EXT_texture_perturb_normal

  • GL_EXT_texture_rectangle

  • GL_EXT_texture_snorm

  • GL_EXT_texture_sRGB

  • GL_EXT_texture_shared_exponent

  • GL_EXT_texture_swizzle

  • GL_EXT_timer_query

  • GL_EXT_transform_feedback

  • GL_EXT_vertex_array

  • GL_EXT_vertex_array_bgra

  • GL_EXT_vertex_shader

  • GL_EXT_vertex_weighting

  • GL_EXT_shader_image_load_store

  • GL_EXT_vertex_attrib_64bit

  • GL_EXT_texture_sRGB_decode

GRemedy

  • GL_GREMEDY_frame_terminator

  • GL_GREMEDY_string_marker

HP

  • GL_HP_convolution_border_modes

  • GL_HP_image_transform

  • GL_HP_occlusion_test

  • GL_HP_texture_lighting

IBM

  • GL_IBM_cull_vertex

  • GL_IBM_multimode_draw_arrays

  • GL_IBM_rasterpos_clip

  • GL_IBM_static_data

  • GL_IBM_texture_mirrored_repeat

  • GL_IBM_vertex_array_lists

INGR

  • GL_INGR_color_clamp

  • GL_INGR_interlace_read

Intel

  • GL_INTEL_parallel_arrays

  • GL_INTEL_texture_scissor

KTX

  • GL_KTX_buffer_region

MESA

  • GL_MESAX_texture_stack

  • GL_MESA_pack_invert

  • GL_MESA_resize_buffers

  • GL_MESA_window_pos

  • GL_MESA_ycbcr_texture

NVidia

  • GL_NV_blend_square

  • GL_NV_conditional_render

  • GL_NV_copy_depth_to_color

  • GL_NV_copy_image

  • GL_NV_depth_buffer_float

  • GL_NV_depth_clamp

  • GL_NV_depth_range_unclamped

  • GL_NV_evaluators

  • GL_NV_explicit_multisample

  • GL_NV_fence

  • GL_NV_float_buffer

  • GL_NV_fog_distance

  • GL_NV_fragment_program

  • GL_NV_fragment_program2

  • GL_NV_fragment_program4

  • GL_NV_fragment_program_option

  • GL_NV_framebuffer_multisample_coverage

  • GL_NV_geometry_program4

  • GL_NV_geometry_shader4

  • GL_NV_gpu_program4

  • GL_NV_half_float

  • GL_NV_light_max_exponent

  • GL_NV_multisample_filter_hint

  • GL_NV_occlusion_query

  • GL_NV_packed_depth_stencil

  • GL_NV_parameter_buffer_object

  • GL_NV_parameter_buffer_object2

  • GL_NV_pixel_data_range

  • GL_NV_point_sprite

  • GL_NV_present_video

  • GL_NV_primitive_restart

  • GL_NV_register_combiners

  • GL_NV_register_combiners2

  • GL_NV_shader_buffer_load

  • GL_NV_texgen_emboss

  • GL_NV_texgen_reflection

  • GL_NV_texture_barrier

  • GL_NV_texture_compression_vtc

  • GL_NV_texture_env_combine4

  • GL_NV_texture_expand_normal

  • GL_NV_texture_rectangle

  • GL_NV_texture_shader

  • GL_NV_texture_shader2

  • GL_NV_texture_shader3

  • GL_NV_transform_feedback

  • GL_NV_transform_feedback2

  • GL_NV_vertex_array_range

  • GL_NV_vertex_array_range2

  • GL_NV_vertex_buffer_unified_memory

  • GL_NV_vertex_program

  • GL_NV_vertex_program1_1

  • GL_NV_vertex_program2

  • GL_NV_vertex_program2_option

  • GL_NV_vertex_program3

  • GL_NV_vertex_program4

  • GL_NV_gpu_program5

  • GL_NV_gpu_program_fp64

  • GL_NV_gpu_shader5

  • GL_NV_tessellation_program5

  • GL_NV_vertex_attrib_integer_64bit

  • GL_NV_multisample_coverage

  • GL_NV_vdpau_interop

  • GL_NVX_gpu_memory_info

OES

  • GL_OES_byte_coordinates

  • GL_OES_compressed_paletted_texture

  • GL_OES_read_format

  • GL_OES_single_precision

OML

  • GL_OML_interlace

  • GL_OML_resample

  • GL_OML_subsample

PGI

  • GL_PGI_misc_hints

  • GL_PGI_vertex_hints

Rend

  • GL_REND_screen_coordinates

S3

  • GL_S3_s3tc

SGI

  • GL_SGIS_color_range

  • GL_SGIS_detail_texture

  • GL_SGIS_fog_function

  • GL_SGIS_generate_mipmap

  • GL_SGIS_multisample

  • GL_SGIS_pixel_texture

  • GL_SGIS_point_line_texgen

  • GL_SGIS_sharpen_texture

  • GL_SGIS_texture4D

  • GL_SGIS_texture_border_clamp

  • GL_SGIS_texture_edge_clamp

  • GL_SGIS_texture_filter4

  • GL_SGIS_texture_lod

  • GL_SGIS_texture_select

  • GL_SGIX_async

  • GL_SGIX_async_histogram

  • GL_SGIX_async_pixel

  • GL_SGIX_blend_alpha_minmax

  • GL_SGIX_clipmap

  • GL_SGIX_convolution_accuracy

  • GL_SGIX_depth_texture

  • GL_SGIX_flush_raster

  • GL_SGIX_fog_offset

  • GL_SGIX_fog_texture

  • GL_SGIX_fragment_specular_lighting

  • GL_SGIX_framezoom

  • GL_SGIX_interlace

  • GL_SGIX_ir_instrument1

  • GL_SGIX_list_priority

  • GL_SGIX_pixel_texture

  • GL_SGIX_pixel_texture_bits

  • GL_SGIX_reference_plane

  • GL_SGIX_resample

  • GL_SGIX_shadow

  • GL_SGIX_shadow_ambient

  • GL_SGIX_sprite

  • GL_SGIX_tag_sample_buffer

  • GL_SGIX_texture_add_env

  • GL_SGIX_texture_coordinate_clamp

  • GL_SGIX_texture_lod_bias

  • GL_SGIX_texture_multi_buffer

  • GL_SGIX_texture_range

  • GL_SGIX_texture_scale_bias

  • GL_SGIX_vertex_preclip

  • GL_SGIX_vertex_preclip_hint

  • GL_SGIX_ycrcb

  • GL_SGI_color_matrix

  • GL_SGI_color_table

  • GL_SGI_texture_color_table

Sun

  • GL_SUNX_constant_data

  • GL_SUN_convolution_border_modes

  • GL_SUN_global_alpha

  • GL_SUN_mesh_array

  • GL_SUN_read_video_pixels

  • GL_SUN_slice_accum

  • GL_SUN_triangle_list

  • GL_SUN_vertex

Win

  • GL_WIN_phong_shading

  • GL_WIN_specular_fog

  • GL_WIN_swap_hint

WGL

  • WGL_3DFX_multisample

  • WGL_3DL_stereo_control

  • WGL_AMD_gpu_association

  • WGL_ARB_buffer_region

  • WGL_ARB_create_context

  • WGL_ARB_create_context_profile

  • WGL_ARB_extensions_string

  • WGL_ARB_framebuffer_sRGB

  • WGL_ARB_make_current_read

  • WGL_ARB_multisample

  • WGL_ARB_pbuffer

  • WGL_ARB_pixel_format

  • WGL_ARB_pixel_format_float

  • WGL_ARB_render_texture

  • WGL_ATI_pixel_format_float

  • WGL_ATI_render_texture_rectangle

  • WGL_EXT_depth_float

  • WGL_EXT_display_color_table

  • WGL_EXT_extensions_string

  • WGL_EXT_framebuffer_sRGB

  • WGL_EXT_make_current_read

  • WGL_EXT_multisample

  • WGL_EXT_pbuffer

  • WGL_EXT_pixel_format

  • WGL_EXT_pixel_format_packed_float

  • WGL_EXT_swap_control

  • WGL_I3D_digital_video_control

  • WGL_I3D_gamma

  • WGL_I3D_genlock

  • WGL_I3D_image_buffer

  • WGL_I3D_swap_frame_lock

  • WGL_I3D_swap_frame_usage

  • WGL_NV_copy_image

  • WGL_NV_float_buffer

  • WGL_NV_gpu_affinity

  • WGL_NV_present_video

  • WGL_NV_render_depth_texture

  • WGL_NV_render_texture_rectangle

  • WGL_NV_swap_group

  • WGL_NV_vertex_array_range

  • WGL_NV_video_output

  • WGL_OML_sync_control

  • WGL_NV_multisample_coverage

  • WGL_ARB_create_context_robustness

  • WGL_EXT_create_context_es2_profile

GLX

  • GLX_VERSION_1_2

  • GLX_VERSION_1_3

  • GLX_VERSION_1_4

  • GLX_3DFX_multisample

  • GLX_ARB_create_context

  • GLX_ARB_create_context_profile

  • GLX_ARB_fbconfig_float

  • GLX_ARB_framebuffer_sRGB

  • GLX_ARB_get_proc_address

  • GLX_ARB_multisample

  • GLX_ARB_vertex_buffer_object

  • GLX_ATI_pixel_format_float

  • GLX_ATI_render_texture

  • GLX_EXT_fbconfig_packed_float

  • GLX_EXT_framebuffer_sRGB

  • GLX_EXT_import_context

  • GLX_EXT_scene_marker

  • GLX_EXT_texture_from_pixmap

  • GLX_EXT_visual_info

  • GLX_EXT_visual_rating

  • GLX_EXT_swap_control

  • GLX_INTEL_swap_event

  • GLX_MESA_agp_offset

  • GLX_MESA_copy_sub_buffer

  • GLX_MESA_pixmap_colormap

  • GLX_MESA_release_buffers

  • GLX_MESA_set_3dfx_mode

  • GLX_NV_copy_image

  • GLX_NV_float_buffer

  • GLX_NV_present_video

  • GLX_NV_swap_group

  • GLX_NV_vertex_array_range

  • GLX_NV_video_output

  • GLX_OML_swap_method

  • GLX_OML_sync_control

  • GLX_SGIS_blended_overlay

  • GLX_SGIS_color_range

  • GLX_SGIS_multisample

  • GLX_SGIS_shared_multisample

  • GLX_SGIX_fbconfig

  • GLX_SGIX_hyperpipe

  • GLX_SGIX_pbuffer

  • GLX_SGIX_swap_barrier

  • GLX_SGIX_swap_group

  • GLX_SGIX_video_resize

  • GLX_SGIX_visual_select_group

  • GLX_SGI_cushion

  • GLX_SGI_make_current_read

  • GLX_SGI_swap_control

  • GLX_SGI_video_sync

  • GLX_SUN_get_transparent_index

  • GLX_SUN_video_resize

  • GLX_AMD_gpu_association

  • GLX_NV_multisample_coverage

  • GLX_ARB_create_context_robustness

  • GLX_EXT_create_context_es2_profile

See Also