OpenGL® Extension Registry

Many OpenGL extensions, as well as extensions to related APIs like GLU, GLX, and WGL, have been defined by vendors and groups of vendors. The extension registry is maintained by Khronos and contains specifications for all known extensions, written as modifications to the appropriate specification documents. The registry also defines naming conventions, guidelines for creating new extensions and writing suitable extension specifications, and other related documentation.

OpenGL Application Binary Interface for Linux

The current version of the OpenGL Application Binary Interface for Linux is also available.

Extension Header Files

Because extensions vary from platform to platform and driver to driver, OpenGL developers can't expect interfaces for all extensions to be defined in the standard gl.h, glx.h, and wgl.h header files. Additional header files - glext.h, glxext.h, and wglext.h - are provided here.

These headers define interfaces (enumerants, prototypes, and for platforms supporting dynamic runtime extension queries, such as Linux and Microsoft Windows, function pointer typedefs) for all registered extensions.

Enumerant and Function Registry

The canonical database from which enumerant ranges are reserved is called enum.spec. It is in a custom text file format. A derived variant, enumext.spec, contains all the individual enumerant values assigned to token defined in extensions. The related file gl.spec defines all the individual function entry points for core OpenGL and extensions.

(Yes, these databases should be moved to a modern XML-based format. Patience.)

Miscellaneous Documents
ARB Extensions by number
  1. GL_ARB_multitexture
  2. GLX_ARB_get_proc_address
  3. GL_ARB_transpose_matrix
  4. WGL_ARB_buffer_region
  5. GL_ARB_multisample
    GLX_ARB_multisample
    WGL_ARB_multisample
  6. GL_ARB_texture_env_add
  7. GL_ARB_texture_cube_map
  8. WGL_ARB_extensions_string
  9. WGL_ARB_pixel_format
  10. WGL_ARB_make_current_read
  11. WGL_ARB_pbuffer
  12. GL_ARB_texture_compression
  13. GL_ARB_texture_border_clamp
  14. GL_ARB_point_parameters
  15. GL_ARB_vertex_blend
  16. GL_ARB_matrix_palette
  17. GL_ARB_texture_env_combine
  18. GL_ARB_texture_env_crossbar
  19. GL_ARB_texture_env_dot3
  20. WGL_ARB_render_texture
  21. GL_ARB_texture_mirrored_repeat
  22. GL_ARB_depth_texture
  23. GL_ARB_shadow
  24. GL_ARB_shadow_ambient
  25. GL_ARB_window_pos
  26. GL_ARB_vertex_program
  27. GL_ARB_fragment_program
  28. GL_ARB_vertex_buffer_object
  29. GL_ARB_occlusion_query
  30. GL_ARB_shader_objects
  31. GL_ARB_vertex_shader
  32. GL_ARB_fragment_shader
  33. GL_ARB_shading_language_100
  34. GL_ARB_texture_non_power_of_two
  35. GL_ARB_point_sprite
  36. GL_ARB_fragment_program_shadow
  37. GL_ARB_draw_buffers
  38. GL_ARB_texture_rectangle
  39. GL_ARB_color_buffer_float
    WGL_ARB_pixel_format_float
    GLX_ARB_fbconfig_float
  40. GL_ARB_half_float_pixel
  41. GL_ARB_texture_float
  42. GL_ARB_pixel_buffer_object
Vendor and EXT Extensions by number
  1. GL_EXT_abgr
  2. GL_EXT_blend_color
  3. GL_EXT_polygon_offset
  4. GL_EXT_texture
  5. GL_EXT_texture3D
  6. GL_SGIS_texture_filter4
  7. GL_EXT_subtexture
  8. GL_EXT_copy_texture
  9. GL_EXT_histogram
  10. GL_EXT_convolution
  11. GL_SGI_color_matrix
  12. GL_SGI_color_table
  13. GL_SGIS_pixel_texture
  14. GL_SGIX_pixel_texture
  15. GL_SGIS_texture4D
  16. GL_SGI_texture_color_table
  17. GL_EXT_cmyka
  18. GL_EXT_texture_object
  19. GL_SGIS_detail_texture
  20. GL_SGIS_sharpen_texture
  21. GL_EXT_packed_pixels
  22. GL_SGIS_texture_lod
  23. GL_SGIS_multisample
    GLX_SGIS_multisample
  24. GL_EXT_rescale_normal
  25. GLX_EXT_visual_info
  26. GL_EXT_vertex_array
  27. GL_EXT_misc_attribute
  28. GL_SGIS_generate_mipmap
  29. GL_SGIX_clipmap
  30. GL_SGIX_shadow
  31. GL_SGIS_texture_edge_clamp
  32. GL_SGIS_texture_border_clamp
  33. GL_EXT_blend_minmax
  34. GL_EXT_blend_subtract
  35. GL_EXT_blend_logic_op
  36. GLX_SGI_swap_control
  37. GLX_SGI_video_sync
  38. GLX_SGI_make_current_read
  39. GLX_SGIX_video_source
  40. GLX_EXT_visual_rating
  41. GL_SGIX_interlace
  42. GLX_EXT_import_context
  43. GLX_SGIX_fbconfig
  44. GLX_SGIX_pbuffer
  45. GL_SGIS_texture_select
  46. GL_SGIX_sprite
  47. GL_SGIX_texture_multi_buffer
  48. GL_EXT_point_parameters
  49. GL_SGIX_instruments
  50. GL_SGIX_texture_scale_bias
  51. GL_SGIX_framezoom
  52. GL_SGIX_tag_sample_buffer
  53. GL_SGIX_reference_plane
  54. GL_SGIX_flush_raster
  55. GLX_SGI_cushion
  56. GL_SGIX_depth_texture
  57. GL_SGIS_fog_function
  58. GL_SGIX_fog_offset
  59. GL_HP_image_transform
  60. GL_HP_convolution_border_modes
  61. GL_SGIX_texture_add_env
  62. GL_EXT_color_subtable
  63. GLU_EXT_object_space_tess
  64. GL_PGI_vertex_hints
  65. GL_PGI_misc_hints
  66. GL_EXT_paletted_texture
  67. GL_EXT_clip_volume_hint
  68. GL_SGIX_list_priority
  69. GL_SGIX_ir_instrument1
  70. GLX_SGIX_video_resize
  71. GL_SGIX_texture_lod_bias
  72. GLU_SGI_filter4_parameters
  73. GLX_SGIX_dm_buffer
  74. GL_SGIX_shadow_ambient
  75. GLX_SGIX_swap_group
  76. GLX_SGIX_swap_barrier
  77. GL_EXT_index_texture
  78. GL_EXT_index_material
  79. GL_EXT_index_func
  80. GL_EXT_index_array_formats
  81. GL_EXT_compiled_vertex_array
  82. GL_EXT_cull_vertex
  83. GLU_EXT_nurbs_tessellator
  84. GL_SGIX_ycrcb
  85. GL_EXT_fragment_lighting
  86. GL_IBM_rasterpos_clip
  87. GL_HP_texture_lighting
  88. GL_EXT_draw_range_elements
  89. GL_WIN_phong_shading
  90. GL_WIN_specular_fog
  91. GLX_SGIS_color_range
    GL_SGIS_color_range
  92. GL_EXT_light_texture
  93. GL_SGIX_blend_alpha_minmax
  94. GL_EXT_scene_marker
    GLX_EXT_scene_marker
  95. GL_SGIX_pixel_texture_bits
  96. GL_EXT_bgra
  97. GL_SGIX_async
  98. GL_SGIX_async_pixel
  99. GL_SGIX_async_histogram
  100. GL_INTEL_texture_scissor
  101. GL_INTEL_parallel_arrays
  102. GL_HP_occlusion_test
  103. GL_EXT_pixel_transform
  104. GL_EXT_pixel_transform_color_table
  105. GL_EXT_shared_texture_palette
  106. GLX_SGIS_blended_overlay
  107. GL_EXT_separate_specular_color
  108. GL_EXT_secondary_color
  109. GL_EXT_texture_env
  110. GL_EXT_texture_perturb_normal
  111. GL_EXT_multi_draw_arrays
    GL_SUN_multi_draw_arrays
  112. GL_EXT_fog_coord
  113. GL_REND_screen_coordinates
  114. GL_EXT_coordinate_frame
  115. GL_EXT_texture_env_combine
  116. GL_APPLE_specular_vector
  117. GL_APPLE_transform_hint
  118. GL_SUNX_constant_data
  119. GL_SUN_global_alpha
  120. GL_SUN_triangle_list
  121. GL_SUN_vertex
  122. WGL_EXT_display_color_table
  123. WGL_EXT_extensions_string
  124. WGL_EXT_make_current_read
  125. WGL_EXT_pixel_format
  126. WGL_EXT_pbuffer
  127. WGL_EXT_swap_control
  128. GL_EXT_blend_func_separate
  129. GL_INGR_color_clamp
  130. GL_INGR_interlace_read
  131. GL_EXT_stencil_wrap
  132. WGL_EXT_depth_float
  133. GL_EXT_422_pixels
  134. GL_NV_texgen_reflection
  135. GL_SGIX_texture_range
  136. GL_SUN_convolution_border_modes
  137. GLX_SUN_get_transparent_index
  138. GL_EXT_texture_env_add
  139. GL_EXT_texture_lod_bias
  140. GL_EXT_texture_filter_anisotropic
  141. GL_EXT_vertex_weighting
  142. GL_NV_light_max_exponent
  143. GL_NV_vertex_array_range
  144. GL_NV_register_combiners
  145. GL_NV_fog_distance
  146. GL_NV_texgen_emboss
  147. GL_NV_blend_square
  148. GL_NV_texture_env_combine4
  149. GL_MESA_resize_buffers
  150. GL_MESA_window_pos
  151. GL_EXT_texture_compression_s3tc
  152. GL_IBM_cull_vertex
  153. GL_IBM_multimode_draw_arrays
  154. GL_IBM_vertex_array_lists
  155. GL_3DFX_texture_compression_FXT1
  156. GL_3DFX_multisample
  157. GL_3DFX_tbuffer
  158. WGL_EXT_multisample
    GL_EXT_multisample
  159. GL_SGIX_vertex_preclip
    GL_SGIX_vertex_preclip_hint
  160. GL_SGIX_resample
  161. GL_SGIS_texture_color_mask
  162. GLX_MESA_copy_sub_buffer
  163. GLX_MESA_pixmap_colormap
  164. GLX_MESA_release_buffers
  165. GLX_MESA_set_3dfx_mode
  166. GL_EXT_texture_env_dot3
  167. GL_ATI_texture_mirror_once
  168. GL_NV_fence
  169. GL_IBM_static_data
  170. GL_IBM_texture_mirrored_repeat
  171. GL_NV_evaluators
  172. GL_NV_packed_depth_stencil
  173. GL_NV_register_combiners2
  174. GL_NV_texture_compression_vtc
  175. GL_NV_texture_rectangle
  176. GL_NV_texture_shader
  177. GL_NV_texture_shader2
  178. GL_NV_vertex_array_range2
  179. GL_NV_vertex_program
  180. GLX_SGIX_visual_select_group
  181. GL_SGIX_texture_coordinate_clamp
  182. GLX_OML_swap_method
  183. GLX_OML_sync_control
  184. GL_OML_interlace
  185. GL_OML_subsample
  186. GL_OML_resample
  187. WGL_OML_sync_control
  188. GL_NV_copy_depth_to_color
  189. GL_ATI_envmap_bumpmap
  190. GL_ATI_fragment_shader
  191. GL_ATI_pn_triangles
  192. GL_ATI_vertex_array_object
  193. GL_EXT_vertex_shader
  194. GL_ATI_vertex_streams
  195. WGL_I3D_digital_video_control
  196. WGL_I3D_gamma
  197. WGL_I3D_genlock
  198. WGL_I3D_image_buffer
  199. WGL_I3D_swap_frame_lock
  200. WGL_I3D_swap_frame_usage
  201. GL_ATI_element_array
  202. GL_SUN_mesh_array
  203. GL_SUN_slice_accum
  204. GL_NV_multisample_filter_hint
  205. GL_NV_depth_clamp
  206. GL_NV_occlusion_query
  207. GL_NV_point_sprite
  208. WGL_NV_render_depth_texture
  209. WGL_NV_render_texture_rectangle
  210. GL_NV_texture_shader3
  211. GL_NV_vertex_program1_1
  212. GL_EXT_shadow_funcs
  213. GL_EXT_stencil_two_side
  214. GL_ATI_text_fragment_shader
  215. GL_APPLE_client_storage
  216. GL_APPLE_element_array
  217. GL_APPLE_fence
  218. GL_APPLE_vertex_array_object
  219. GL_APPLE_vertex_array_range
  220. GL_APPLE_ycbcr_422
  221. GL_S3_s3tc
  222. GL_ATI_draw_buffers
  223. WGL_ATI_pixel_format_float
  224. GL_ATI_texture_env_combine3
  225. GL_ATI_texture_float
  226. GL_NV_float_buffer
    WGL_NV_float_buffer
  227. GL_NV_fragment_program
  228. GL_NV_half_float
  229. GL_NV_pixel_data_range
  230. GL_NV_primitive_restart
  231. GL_NV_texture_expand_normal
  232. GL_NV_vertex_program2
  233. GL_ATI_map_object_buffer
  234. GL_ATI_separate_stencil
  235. GL_ATI_vertex_attrib_array_object
  236. GL_OES_byte_coordinates
  237. GL_OES_fixed_point
  238. GL_OES_single_precision
  239. GL_OES_compressed_paletted_texture
  240. GL_OES_read_format
  241. GL_OES_query_matrix
  242. GL_EXT_depth_bounds_test
  243. GL_EXT_texture_mirror_clamp
  244. GL_EXT_blend_equation_separate
  245. GL_MESA_pack_invert
  246. GL_MESA_ycbcr_texture
  247. GL_EXT_pixel_buffer_object
  248. GL_NV_fragment_program_option
  249. GL_NV_fragment_program2
  250. GL_NV_vertex_program2_option
  251. GL_NV_vertex_program3
  252. GLX_SGIX_hyperpipe
  253. GLX_MESA_agp_offset
  254. GL_EXT_texture_compression_dxt1
  255. GL_EXT_framebuffer_object
  256. GL_GREMEDY_string_marker
  257. GL_EXT_packed_depth_stencil
  258. WGL_3DL_stereo_control
  259. GL_EXT_stencil_clear_tag
  260. GL_EXT_texture_sRGB
  261. GL_EXT_framebuffer_blit
  262. GL_EXT_framebuffer_multisample
  263. GL_MESAX_texture_stack
  264. GL_EXT_timer_query
  265. GL_EXT_gpu_program_parameters
  266. GL_APPLE_flush_buffer_range
Other Extensions

These extensions have not yet been assigned numbers, are still under development, or were abandoned (but are kept in the extension registry for reference purposes).

Column Header
Column Footer