Khronos OpenGL ES Registry

Khronos OpenGL ES Registry

The OpenGL ES registry contains specifications of the core API and shading language; specifications of Khronos- and vendor-approved OpenGL ES extensions; header files corresponding to the specifications; and other related documentation. The companion OpenGL Registry has related material including the API registry of reserved enumerants and functions (shared between OpenGL ES and OpenGL).

Table of Contents


OpenGL ES Core API and Shading Language Specifications and Reference Pages

The current version of OpenGL ES is OpenGL ES 3.1. Specifications for older versions 3.0, 2.0, 1.1, and 1.0 are also available below. For additional specifications, headers, and documentation not listed below, see the Khronos.org Developer Pages. Header files not labelled with a revision date include their last update time in comments near the top of the file.

OpenGL ES 3.1 Specifications and Documentation
OpenGL ES 3.0 Specifications and Documentation
OpenGL ES 2.0 Specifications and Documentation
OpenGL ES 1.1 Specifications and Documentation
OpenGL ES 1.0 Specification and Documentation

API and Extension Header Files

Because extensions vary from platform to platform and driver to driver, OpenGL ES segregates headers for each API version into a header for the core API (OpenGL ES 1.0, 1.1, 2.0, 3.0, and 3.1) and a separate header defining extension interfaces for that core API. These header files are supplied here for developers and platform vendors. They define interfaces including enumerants, prototypes, and for platforms supporting dynamic runtime extension queries, such as Linux and Microsoft Windows, function pointer typedefs. Please report problems using the public Khronos Bugzilla.

In addition to the core API and extension headers, there is also an OpenGL ES version-specific platform header file intended to define calling conventions and data types specific to a platform.

Finally, almost all of the headers described below depend on a platform header file common to multiple Khronos APIs called <KHR/khrplatform.h>.

Vendors may include modified versions of any or all of these headers with their OpenGL ES implementations, but in general only the platform-specific OpenGL ES and Khronos headers are likely to be modified by the implementation. This makes it possible for developers to drop in more recently updated versions of the headers obtained here, typically when new extensions are supplied on a platform.

OpenGL ES 3.1 Headers

  • <GLES3/gl31.h> OpenGL ES 3.1 Header File.
  • <GLES2/gl2ext.h> OpenGL ES Extension Header File (this header is defined to contain all defined extension interfaces for OpenGL ES 2.0 and all later versions, since later versions are backwards-compatible with OpenGL ES 2.0).
  • <GLES3/gl3platform.h> OpenGL ES 3.1 Platform-Dependent Macros (this header is shared with OpenGL ES 3.0).

OpenGL ES 3.0 Headers

OpenGL ES 2.0 Headers

OpenGL ES 1.1 Headers

Khronos Shared Platform Header (<KHR/khrplatform.h>)


XML API Registry of Reserved Enumerants and Functions

The API Registry is a set of XML documents defining the APIs and enumerants used in OpenGL, OpenGL ES, EGL, and related APIs, as well as enumerant ranges reserved to vendors but not used yet. There are also scripts for loading the XML and processing it into header files. All documents in the registry are available from the Khronos Subversion server using anonymous public access. Start with the README .


Legacy OpenGL ES Headers

Current versions of the OpenGL ES 3.1, 3.0 and 2.0 headers are autogenerated from the XML API Registry. Older, handcoded versions of the 3.0 and 2.0 headers are functionally equivalent, but structurally different. We are no longer maintaining the handcoded headers, but they remain available for comparison:

Extension Specifications
  1. GL_OES_blend_equation_separate
  2. GL_OES_blend_func_separate
  3. GL_OES_blend_subtract
  4. GL_OES_byte_coordinates
  5. GL_OES_compressed_ETC1_RGB8_texture
  6. GL_OES_compressed_paletted_texture
  7. GL_OES_draw_texture
  8. GL_OES_extended_matrix_palette
  9. GL_OES_fixed_point
  10. GL_OES_framebuffer_object
  11. GL_OES_matrix_get
  12. GL_OES_matrix_palette
  13. GL_OES_point_size_array
  14. GL_OES_point_sprite
  15. GL_OES_query_matrix
  16. GL_OES_read_format
  17. GL_OES_single_precision
  18. GL_OES_stencil_wrap
  19. GL_OES_texture_cube_map
  20. GL_OES_texture_env_crossbar
  21. GL_OES_texture_mirrored_repeat
  22. GL_OES_EGL_image
  23. GL_OES_depth24
  24. GL_OES_depth32
  25. GL_OES_element_index_uint
  26. GL_OES_fbo_render_mipmap
  27. GL_OES_fragment_precision_high
  28. GL_OES_mapbuffer
  29. GL_OES_rgb8_rgba8
  30. GL_OES_stencil1
  31. GL_OES_stencil4
  32. GL_OES_stencil8
  33. GL_OES_texture_3D
  34. GL_OES_texture_float_linear
    GL_OES_texture_half_float_linear
  35. GL_OES_texture_float
    GL_OES_texture_half_float
  36. GL_OES_texture_npot
  37. GL_OES_vertex_half_float
  38. GL_AMD_compressed_3DC_texture
  39. GL_AMD_compressed_ATC_texture
  40. GL_EXT_texture_filter_anisotropic
  41. GL_EXT_texture_type_2_10_10_10_REV
  42. GL_OES_depth_texture
  43. GL_OES_packed_depth_stencil
  44. GL_OES_standard_derivatives
  45. GL_OES_vertex_type_10_10_10_2
  46. GL_OES_get_program_binary
  47. GL_AMD_program_binary_Z400
  48. GL_EXT_texture_compression_dxt1
  49. GL_AMD_performance_monitor
  50. GL_EXT_texture_format_BGRA8888
  51. GL_NV_fence
  52. GL_IMG_read_format
  53. GL_IMG_texture_compression_pvrtc
  54. GL_QCOM_driver_control
  55. GL_QCOM_performance_monitor_global_mode
  56. GL_IMG_user_clip_plane
  57. GL_IMG_texture_env_enhanced_fixed_function
  58. GL_APPLE_texture_2D_limited_npot
  59. GL_EXT_texture_lod_bias
  60. GL_QCOM_writeonly_rendering
  61. GL_QCOM_extended_get
  62. GL_QCOM_extended_get2
  63. GL_EXT_discard_framebuffer
  64. GL_EXT_blend_minmax
  65. GL_EXT_read_format_bgra
  66. GL_IMG_program_binary
  67. GL_IMG_shader_binary
  68. GL_EXT_multi_draw_arrays
    GL_SUN_multi_draw_arrays
  69. GL_QCOM_tiled_rendering
  70. GL_OES_vertex_array_object
  71. GL_NV_coverage_sample
  72. GL_NV_depth_nonlinear
  73. GL_IMG_multisampled_render_to_texture
  74. GL_OES_EGL_sync
  75. GL_APPLE_rgb_422
  76. GL_EXT_shader_texture_lod
  77. GL_APPLE_framebuffer_multisample
  78. GL_APPLE_texture_format_BGRA8888
  79. GL_APPLE_texture_max_level
  80. GL_ARM_mali_shader_binary
  81. GL_ARM_rgba8
  82. GL_ANGLE_framebuffer_blit
  83. GL_ANGLE_framebuffer_multisample
  84. GL_VIV_shader_binary
  85. GL_EXT_frag_depth
  86. GL_OES_EGL_image_external
  87. GL_DMP_shader_binary
  88. GL_QCOM_alpha_test
  89. GL_EXT_unpack_subimage
  90. GL_NV_draw_buffers
  91. GL_NV_fbo_color_attachments
  92. GL_NV_read_buffer
  93. GL_NV_read_depth_stencil
  94. GL_NV_texture_compression_s3tc_update
  95. GL_NV_texture_npot_2D_mipmap
  96. GL_EXT_color_buffer_half_float
  97. GL_EXT_debug_label
  98. GL_EXT_debug_marker
  99. GL_EXT_occlusion_query_boolean
  100. GL_EXT_separate_shader_objects
  101. GL_EXT_shadow_samplers
  102. GL_EXT_texture_rg
  103. GL_NV_EGL_stream_consumer_external
  104. GL_EXT_sRGB
  105. GL_EXT_multisampled_render_to_texture
  106. GL_EXT_robustness
  107. GL_EXT_texture_storage
  108. GL_ANGLE_instanced_arrays
  109. GL_ANGLE_pack_reverse_row_order
  110. GL_ANGLE_texture_compression_dxt3
    GL_ANGLE_texture_compression_dxt5
  111. GL_ANGLE_texture_usage
  112. GL_ANGLE_translated_shader_source
  113. GL_FJ_shader_binary_GCCSO
  114. GL_OES_required_internalformat
  115. GL_OES_surfaceless_context
  116. GL_KHR_texture_compression_astc_hdr
    GL_KHR_texture_compression_astc_ldr
  117. GL_KHR_debug
  118. GL_QCOM_binning_control
  119. GL_ARM_mali_program_binary
  120. GL_EXT_map_buffer_range
  121. GL_EXT_shader_framebuffer_fetch
  122. GL_APPLE_copy_texture_levels
  123. GL_APPLE_sync
  124. GL_EXT_multiview_draw_buffers
  125. GL_NV_draw_texture
  126. GL_NV_packed_float
  127. GL_NV_texture_compression_s3tc
  128. GL_NV_3dvision_settings
  129. GL_NV_texture_compression_latc
  130. GL_NV_platform_binary
  131. GL_NV_pack_subimage
  132. GL_NV_texture_array
  133. GL_NV_pixel_buffer_object
  134. GL_NV_bgr
  135. GL_OES_depth_texture_cube_map
  136. GL_EXT_color_buffer_float
  137. GL_ANGLE_depth_texture
  138. GL_ANGLE_program_binary
  139. GL_IMG_texture_compression_pvrtc2
  140. GL_NV_draw_instanced
  141. GL_NV_framebuffer_blit
  142. GL_NV_framebuffer_multisample
  143. GL_NV_generate_mipmap_sRGB
  144. GL_NV_instanced_arrays
  145. GL_NV_shadow_samplers_array
  146. GL_NV_shadow_samplers_cube
  147. GL_NV_sRGB_formats
  148. GL_NV_texture_border_clamp
  149. GL_EXT_disjoint_timer_query
  150. GL_EXT_draw_buffers
  151. GL_EXT_texture_sRGB_decode
  152. GL_EXT_sRGB_write_control
  153. GL_EXT_texture_compression_s3tc
  154. GL_EXT_pvrtc_sRGB
  155. GL_EXT_instanced_arrays
  156. GL_EXT_draw_instanced
  157. GL_NV_copy_buffer
  158. GL_NV_explicit_attrib_location
  159. GL_NV_non_square_matrices
  160. GL_EXT_shader_integer_mix
  161. GL_OES_texture_compression_astc
  162. GL_NV_blend_equation_advanced
    GL_NV_blend_equation_advanced_coherent
  163. GL_INTEL_performance_query
  164. GL_ARM_shader_framebuffer_fetch
  165. GL_ARM_shader_framebuffer_fetch_depth_stencil
  166. GL_EXT_shader_pixel_local_storage
  167. GL_KHR_blend_equation_advanced
    GL_KHR_blend_equation_advanced_coherent
  168. GL_OES_sample_shading
  169. GL_OES_sample_variables
  170. GL_OES_shader_image_atomic
  171. GL_OES_shader_multisample_interpolation
  172. GL_OES_texture_stencil8
  173. GL_OES_texture_storage_multisample_2d_array
  174. GL_EXT_copy_image
  175. GL_EXT_draw_buffers_indexed
  176. GL_EXT_geometry_shader
    GL_EXT_geometry_point_size
  177. GL_EXT_gpu_shader5
  178. GL_EXT_shader_implicit_conversions
  179. GL_EXT_shader_io_blocks
  180. GL_EXT_tessellation_shader
    GL_EXT_tessellation_point_size
  181. GL_EXT_texture_border_clamp
  182. GL_EXT_texture_buffer
  183. GL_EXT_texture_cube_map_array
  184. GL_EXT_texture_view
  185. GL_EXT_primitive_bounding_box
  186. GL_ANDROID_extension_pack_es31a
  187. GL_EXT_compressed_ETC1_RGB8_sub_texture
safety