CARVIEW |
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 related documentation.
The OpenGL ES Registry is part of the Combined OpenGL Registry for OpenGL, OpenGL ES, and OpenGL SC, which includes the XML API registry of reserved enumerants and functions.
Table of Contents
- Working Group Policy for when Specifications and extensions will be updated.
- Current OpenGL ES API and Shading Language Specifications and Reference Pages
- Core API and Extension Header Files
- OpenGL ES Extension Specifications
- IP Disclosures Potentially Affecting OpenGL ES Implementations
OpenGL ES Core API and Shading Language Specifications and Reference Pages
The current version of OpenGL ES is OpenGL ES 3.2. Specifications for older versions 3.1, 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.2 Specifications and Documentation
- OpenGL ES 3.2 Specification (May 5, 2022) without changes marked and with changes marked .
- OpenGL ES Shading Language 3.20 Specification (August 14, 2023) (HTML) (PDF)
- OpenGL ES 3.2 Online Reference Pages.
- OpenGL ES Quick Reference Card (available for different API versions).
OpenGL ES 3.1 Specifications and Documentation
- OpenGL ES 3.1 Specification (November 3, 2016), without changes marked and with changes marked .
- OpenGL ES Shading Language 3.10 Specification (January 29, 2016) without changes marked and with changes marked .
- OpenGL ES 3.1 Online Reference Pages.
OpenGL ES 3.0 Specifications and Documentation
- OpenGL ES 3.0.6 Specification (November 1, 2019), without changes marked and with changes marked .
- OpenGL ES Shading Language 3.00 Specification (January 29, 2016).
- OpenGL ES 3.0 Online Reference Pages.
OpenGL ES 2.0 Specifications and Documentation
- OpenGL ES 2.0 Full Specification , Full Specification with changes marked, Difference Specification (November 2, 2010). A Japanese translation of the specification is also available.
- OpenGL ES Shading Language 1.00 Specification (May 12, 2009).
- OpenGL ES 2.0 Online Reference Pages.
OpenGL ES 1.1 Specifications and Documentation
- OpenGL ES 1.1 Full Specification and Difference Specification (April 24, 2008).
- OpenGL ES 1.1.03 Extension Pack (July 19, 2005).
- OpenGL ES 1.1 Online Reference Pages.
OpenGL ES 1.0 Specification and Documentation
- OpenGL ES 1.0.02 Specification .
- gl.h for OpenGL ES 1.0.
- The old OpenGL ES 1.0 and EGL 1.0 Reference Manual is obsolete and has been removed from the Registry. Please use the OpenGL ES 1.1 Online Reference Pages instead.
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, 3.1 and 3.2) 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 as Issues in the OpenGL-Registry repository.
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.
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.
- <GLES3/gl32.h> OpenGL ES 3.2 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.2 Platform-Dependent Macros (this header is shared with OpenGL ES 3.0 and 3.1).
- <GLES3/gl31.h> OpenGL ES 3.1 Header File.
- <GLES2/gl2ext.h> OpenGL ES Extension Header File.
- <GLES3/gl3platform.h> OpenGL ES 3.1 Platform-Dependent Macros (this header is shared with OpenGL ES 3.0).
- <GLES3/gl3.h> OpenGL ES 3.0 Header File.
- <GLES2/gl2ext.h> OpenGL ES Extension Header File.
- <GLES3/gl3platform.h> OpenGL ES 3.0 Platform-Dependent Macros.
- <GLES2/gl2.h> OpenGL ES 2.0 Header File.
- <GLES2/gl2ext.h> OpenGL ES Extension Header File.
- <GLES2/gl2platform.h> OpenGL ES 2.0 Platform-Dependent Macros.
- <GLES/gl.h> OpenGL ES 1.1 Header File.
- <GLES/glext.h> OpenGL ES 1.1 Extension Header File.
- <GLES/glplatform.h> OpenGL ES 1.1 Platform-Dependent Macros.
- <GLES/egl.h> EGL Legacy Header File for OpenGL ES 1.1 (August 6, 2008) - requires <EGL/egl.h> from the EGL Registry .
Khronos Shared Platform Header (<KHR/khrplatform.h>)
- The OpenGL ES 3.0, 2.0, and 1.1 headers all depend on the shared <KHR/khrplatform.h> header from the EGL Registry .
Extension Specifications by number
- GL_OES_blend_equation_separate
- GL_OES_blend_func_separate
- GL_OES_blend_subtract
- GL_OES_byte_coordinates
- GL_OES_compressed_ETC1_RGB8_texture
- GL_OES_compressed_paletted_texture
- GL_OES_draw_texture
- GL_OES_extended_matrix_palette
- GL_OES_fixed_point
- GL_OES_framebuffer_object
- GL_OES_matrix_get
- GL_OES_matrix_palette
- GL_OES_point_size_array
- GL_OES_point_sprite
- GL_OES_query_matrix
- GL_OES_read_format
- GL_OES_single_precision
- GL_OES_stencil_wrap
- GL_OES_texture_cube_map
- GL_OES_texture_env_crossbar
- GL_OES_texture_mirrored_repeat
- GL_OES_EGL_image
- GL_OES_depth24
- GL_OES_depth32
- GL_OES_element_index_uint
- GL_OES_fbo_render_mipmap
- GL_OES_fragment_precision_high
- GL_OES_mapbuffer
- GL_OES_rgb8_rgba8
- GL_OES_stencil1
- GL_OES_stencil4
- GL_OES_stencil8
- GL_OES_texture_3D
- GL_OES_texture_float_linear
GL_OES_texture_half_float_linear - GL_OES_texture_float
GL_OES_texture_half_float - GL_OES_texture_npot
- GL_OES_vertex_half_float
- GL_AMD_compressed_3DC_texture
- GL_AMD_compressed_ATC_texture
- GL_EXT_texture_filter_anisotropic
- GL_EXT_texture_type_2_10_10_10_REV
- GL_OES_depth_texture
- GL_OES_packed_depth_stencil
- GL_OES_standard_derivatives
- GL_OES_vertex_type_10_10_10_2
- GL_OES_get_program_binary
- GL_AMD_program_binary_Z400
- GL_EXT_texture_compression_dxt1
- GL_AMD_performance_monitor
- GL_EXT_texture_format_BGRA8888
- GL_NV_fence
- GL_IMG_read_format
- GL_IMG_texture_compression_pvrtc
- GL_QCOM_driver_control
- GL_QCOM_performance_monitor_global_mode
- GL_IMG_user_clip_plane
- GL_IMG_texture_env_enhanced_fixed_function
- GL_APPLE_texture_2D_limited_npot
- GL_EXT_texture_lod_bias
- GL_QCOM_writeonly_rendering
- GL_QCOM_extended_get
- GL_QCOM_extended_get2
- GL_EXT_discard_framebuffer
- GL_EXT_blend_minmax
- GL_EXT_read_format_bgra
- GL_IMG_program_binary
- GL_IMG_shader_binary
- GL_EXT_multi_draw_arrays
GL_SUN_multi_draw_arrays - GL_QCOM_tiled_rendering
- GL_OES_vertex_array_object
- GL_NV_coverage_sample
- GL_NV_depth_nonlinear
- GL_IMG_multisampled_render_to_texture
- GL_OES_EGL_sync
- GL_APPLE_rgb_422
- GL_EXT_shader_texture_lod
- GL_APPLE_framebuffer_multisample
- GL_APPLE_texture_format_BGRA8888
- GL_APPLE_texture_max_level
- GL_ARM_mali_shader_binary
- GL_ARM_rgba8
- GL_ANGLE_framebuffer_blit
- GL_ANGLE_framebuffer_multisample
- GL_VIV_shader_binary
- GL_EXT_frag_depth
- GL_OES_EGL_image_external
- GL_DMP_shader_binary
- GL_QCOM_alpha_test
- GL_EXT_unpack_subimage
- GL_NV_draw_buffers
- GL_NV_fbo_color_attachments
- GL_NV_read_buffer
- GL_NV_read_depth_stencil
- GL_NV_texture_compression_s3tc_update
- GL_NV_texture_npot_2D_mipmap
- GL_EXT_color_buffer_half_float
- GL_EXT_debug_label
- GL_EXT_debug_marker
- GL_EXT_occlusion_query_boolean
- GL_EXT_separate_shader_objects
- GL_EXT_shadow_samplers
- GL_EXT_texture_rg
- GL_NV_EGL_stream_consumer_external
- GL_EXT_sRGB
- GL_EXT_multisampled_render_to_texture
- GL_EXT_robustness
- GL_EXT_texture_storage
- GL_ANGLE_instanced_arrays
- GL_ANGLE_pack_reverse_row_order
- GL_ANGLE_texture_compression_dxt3
GL_ANGLE_texture_compression_dxt1
GL_ANGLE_texture_compression_dxt5 - GL_ANGLE_texture_usage
- GL_ANGLE_translated_shader_source
- GL_FJ_shader_binary_GCCSO
- GL_OES_required_internalformat
- GL_OES_surfaceless_context
- GL_KHR_texture_compression_astc_hdr
GL_KHR_texture_compression_astc_ldr - GL_KHR_debug
- GL_QCOM_binning_control
- GL_ARM_mali_program_binary
- GL_EXT_map_buffer_range
- GL_EXT_shader_framebuffer_fetch
GL_EXT_shader_framebuffer_fetch_non_coherent - GL_APPLE_copy_texture_levels
- GL_APPLE_sync
- GL_EXT_multiview_draw_buffers
- GL_NV_draw_texture
- GL_NV_packed_float
- GL_NV_texture_compression_s3tc
- GL_NV_3dvision_settings
- GL_NV_texture_compression_latc
- GL_NV_platform_binary
- GL_NV_pack_subimage
- GL_NV_texture_array
- GL_NV_pixel_buffer_object
- GL_NV_bgr
- GL_OES_depth_texture_cube_map
- GL_EXT_color_buffer_float
- GL_ANGLE_depth_texture
- GL_ANGLE_program_binary
- GL_IMG_texture_compression_pvrtc2
- GL_NV_draw_instanced
- GL_NV_framebuffer_blit
- GL_NV_framebuffer_multisample
- GL_NV_generate_mipmap_sRGB
- GL_NV_instanced_arrays
- GL_NV_shadow_samplers_array
- GL_NV_shadow_samplers_cube
- GL_NV_sRGB_formats
- GL_NV_texture_border_clamp
- GL_EXT_disjoint_timer_query
- GL_EXT_draw_buffers
- GL_EXT_texture_sRGB_decode
- GL_EXT_sRGB_write_control
- GL_EXT_texture_compression_s3tc
- GL_EXT_pvrtc_sRGB
- GL_EXT_instanced_arrays
- GL_EXT_draw_instanced
- GL_NV_copy_buffer
- GL_NV_explicit_attrib_location
- GL_NV_non_square_matrices
- GL_EXT_shader_integer_mix
- GL_OES_texture_compression_astc
- GL_NV_blend_equation_advanced
GL_NV_blend_equation_advanced_coherent - GL_INTEL_performance_query
- GL_ARM_shader_framebuffer_fetch
- GL_ARM_shader_framebuffer_fetch_depth_stencil
- GL_EXT_shader_pixel_local_storage
- GL_KHR_blend_equation_advanced
GL_KHR_blend_equation_advanced_coherent - GL_OES_sample_shading
- GL_OES_sample_variables
- GL_OES_shader_image_atomic
- GL_OES_shader_multisample_interpolation
- GL_OES_texture_stencil8
- GL_OES_texture_storage_multisample_2d_array
- GL_EXT_copy_image
- GL_EXT_draw_buffers_indexed
- GL_EXT_geometry_shader
GL_EXT_geometry_point_size - GL_EXT_gpu_shader5
- GL_EXT_shader_implicit_conversions
- GL_EXT_shader_io_blocks
- GL_EXT_tessellation_shader
GL_EXT_tessellation_point_size - GL_EXT_texture_border_clamp
- GL_EXT_texture_buffer
- GL_EXT_texture_cube_map_array
- GL_EXT_texture_view
- GL_EXT_primitive_bounding_box
- GL_ANDROID_extension_pack_es31a
- GL_EXT_compressed_ETC1_RGB8_sub_texture
- GL_KHR_robust_buffer_access_behavior
- GL_KHR_robustness
- GL_KHR_context_flush_control
GLX_ARB_context_flush_control
WGL_ARB_context_flush_control - GL_DMP_program_binary
- GL_APPLE_clip_distance
- GL_APPLE_color_buffer_packed_float
- GL_APPLE_texture_packed_float
- GL_NV_internalformat_sample_query
- GL_NV_bindless_texture
- GL_NV_conditional_render
- GL_NV_path_rendering
- GL_NV_image_formats
- GL_NV_shader_noperspective_interpolation
- GL_NV_viewport_array
- GL_EXT_base_instance
- GL_EXT_draw_elements_base_vertex
- GL_EXT_multi_draw_indirect
- GL_EXT_render_snorm
- GL_EXT_texture_norm16
- GL_OES_copy_image
- GL_OES_draw_buffers_indexed
- GL_OES_geometry_shader
- GL_OES_gpu_shader5
- GL_OES_primitive_bounding_box
- GL_OES_shader_io_blocks
- GL_OES_tessellation_shader
GL_OES_tessellation_point_size - GL_OES_texture_border_clamp
- GL_OES_texture_buffer
- GL_OES_texture_cube_map_array
- GL_OES_texture_view
- GL_OES_draw_elements_base_vertex
- GL_OES_EGL_image_external_essl3
- GL_EXT_texture_sRGB_R8
- GL_EXT_YUV_target
- GL_EXT_texture_sRGB_RG8
- GL_EXT_float_blend
- GL_EXT_post_depth_coverage
- GL_EXT_raster_multisample
- GL_EXT_texture_filter_minmax
- GL_NV_conservative_raster
- GL_NV_fragment_coverage_to_color
- GL_NV_fragment_shader_interlock
- GL_NV_framebuffer_mixed_samples
- GL_NV_fill_rectangle
- GL_NV_geometry_shader_passthrough
- GL_NV_path_rendering_shared_edge
- GL_NV_sample_locations
- GL_NV_sample_mask_override_coverage
- GL_NV_viewport_array2
- GL_NV_polygon_mode
- GL_EXT_buffer_storage
- GL_EXT_sparse_texture
- GL_OVR_multiview
- GL_OVR_multiview2
- GL_KHR_no_error
- GL_INTEL_framebuffer_CMAA
- GL_EXT_blend_func_extended
- GL_EXT_multisample_compatibility
- GL_KHR_texture_compression_astc_sliced_3d
- GL_OVR_multiview_multisampled_render_to_texture
- GL_IMG_texture_filter_cubic
- GL_EXT_polygon_offset_clamp
- GL_EXT_shader_pixel_local_storage2
- GL_EXT_shader_group_vote
- GL_IMG_framebuffer_downsample
- GL_EXT_protected_textures
- GL_EXT_clip_cull_distance
- GL_NV_viewport_swizzle
- GL_EXT_sparse_texture2
- GL_NV_gpu_shader5
- GL_NV_shader_atomic_fp16_vector
- GL_NV_conservative_raster_pre_snap_triangles
- GL_EXT_window_rectangles
- GL_EXT_shader_non_constant_global_initializers
- GL_INTEL_conservative_rasterization
- GL_NVX_blend_equation_advanced_multi_draw_buffers
- GL_OES_viewport_array
- GL_EXT_conservative_depth
- GL_EXT_clear_texture
- GL_IMG_bindless_texture
- GL_NV_texture_barrier
- GL_EXT_draw_transform_feedback
- GL_QCOM_framebuffer_foveated
- GL_NV_draw_vulkan_image
- GL_EXT_multisampled_render_to_texture2
- GL_EXT_texture_compression_astc_decode_mode
GL_EXT_texture_compression_astc_decode_mode_rgb9e5 - GL_QCOM_shader_framebuffer_fetch_noncoherent
- GL_EXT_EGL_image_array
- GL_EXT_memory_object
GL_EXT_semaphore - GL_EXT_memory_object_fd
GL_EXT_semaphore_fd - GL_EXT_memory_object_win32
GL_EXT_semaphore_win32 - GL_EXT_win32_keyed_mutex
- GL_EXT_external_buffer
- GL_NV_blend_minmax_factor
- GL_EXT_texture_compression_rgtc
- GL_EXT_texture_compression_bptc
- GL_KHR_parallel_shader_compile
- GL_EXT_texture_compression_s3tc_srgb
- GL_EXT_clip_control
- GL_EXT_texture_mirror_clamp_to_edge
- GL_MESA_tile_raster_order
- GL_QCOM_texture_foveated
- GL_MESA_program_binary_formats
- GL_NV_clip_space_w_scaling
- GL_NV_stereo_view_rendering
- GL_NV_conservative_raster_pre_snap
- GL_EXT_EGL_image_external_wrap_modes
- GL_EXT_texture_format_sRGB_override
- GL_INTEL_blackhole_render
- GL_EXT_EGL_image_storage
- GL_MESA_framebuffer_flip_y
- GL_AMD_framebuffer_multisample_advanced
- GL_QCOM_shader_framebuffer_fetch_rate
- GL_NV_memory_attachment
- GL_QCOM_texture_foveated_subsampled_layout
- GL_QCOM_YUV_texture_gather
- GL_NV_compute_shader_derivatives
- GL_EXT_depth_clamp
- GL_EXT_texture_query_lod
- GL_NV_scissor_exclusive
- GL_NV_mesh_shader
- GL_NV_shader_texture_footprint
- GL_NV_representative_fragment_test
- GL_NV_shading_rate_image
- GL_NV_fragment_shader_barycentric
- GL_EXT_multiview_timer_query
- GL_EXT_multiview_texture_multisample
- GL_EXT_multiview_tessellation_geometry_shader
- GL_EXT_texture_shadow_lod
- GL_KHR_shader_subgroup
- GL_NV_shader_subgroup_partitioned
- GL_INTEL_shader_integer_functions2
- GL_ARM_texture_unnormalized_coordinates
- GL_QCOM_shading_rate
- GL_QCOM_motion_estimation
- GL_MESA_framebuffer_flip_x
- GL_MESA_framebuffer_swap_xy
- GL_NV_memory_object_sparse
- GL_NV_timeline_semaphore
- GL_QCOM_texture_foveated2
- GL_NV_primitive_shading_rate
- GL_QCOM_frame_extrapolation
- GL_QCOM_render_shared_exponent
- GL_MESA_bgra
- GL_EXT_texture_storage_compression
- GL_EXT_EGL_image_storage_compression
- GL_EXT_separate_depth_stencil
- GL_EXT_shader_samples_identical
- GL_EXT_fragment_shading_rate
GL_EXT_fragment_shading_rate_attachment
GL_EXT_fragment_shading_rate_primitive - GL_EXT_framebuffer_blit_layers
- GL_QCOM_texture_lod_bias
- GL_QCOM_render_sRGB_R8_RG8
- GL_MESA_sampler_objects
- GL_ARM_shader_core_properties
- GL_QCOM_ycbcr_degamma
- GL_MESA_texture_const_bandwidth
- GL_EXT_shader_clock
- GL_HUAWEI_program_binary
- GL_HUAWEI_shader_binary