EGL
EGL是Khronos渲染API(如OpenGL ES)与底层本地平台窗口系统之间的接口。
它能够处理图形上下文管理、表面缓冲区绑定和渲染同步,辅助实现高性能、加速的3D渲染。
它能够处理图形上下文管理、表面缓冲区绑定和渲染同步,辅助实现高性能、加速的3D渲染。
以下是支持的EGL 1.5拓展功能(拓展详情请查阅 EGL <https://registry.khronos.org/EGL/>_):
• EGL_EXT_client_extensions
• EGL_EXT_create_context_robustness
• EGL_EXT_image_dma_buf_import
• EGL_EXT_image_dma_buf_import_modifiers
• EGL_EXT_image_gl_colorspace
• EGL_EXT_pixel_format_float
• EGL_KHR_platform_gbm
• EGL_EXT_yuv_surface
• EGL_IMG_context_priority
• EGL_KHR_client_get_all_proc_addresses
• EGL_KHR_create_context
• EGL_KHR_fence_sync
• EGL_KHR_get_all_proc_addresses
• EGL_KHR_gl_colorspace
• EGL_KHR_gl_texture_2D_image
• EGL_KHR_gl_texture_3D_image
• EGL_KHR_gl_texture_cubemap_image
• EGL_KHR_gl_renderbuffer_image
• EGL_KHR_image
• EGL_KHR_image_base
• EGL_KHR_no_config_context
• EGL_KHR_partial_update
• EGL_EXT_create_context_robustness
• EGL_EXT_image_dma_buf_import
• EGL_EXT_image_dma_buf_import_modifiers
• EGL_EXT_image_gl_colorspace
• EGL_EXT_pixel_format_float
• EGL_KHR_platform_gbm
• EGL_EXT_yuv_surface
• EGL_IMG_context_priority
• EGL_KHR_client_get_all_proc_addresses
• EGL_KHR_create_context
• EGL_KHR_fence_sync
• EGL_KHR_get_all_proc_addresses
• EGL_KHR_gl_colorspace
• EGL_KHR_gl_texture_2D_image
• EGL_KHR_gl_texture_3D_image
• EGL_KHR_gl_texture_cubemap_image
• EGL_KHR_gl_renderbuffer_image
• EGL_KHR_image
• EGL_KHR_image_base
• EGL_KHR_no_config_context
• EGL_KHR_partial_update
OpenGL ES
OpenGL ES是用于编写3D图形应用程序的标准API。它分为两种版本:
• OpenGL ES 1.1
• OpenGL ES 2.0, OpenGL ES 3.0, OpenGL ES 3.1,和OpenGL ES 3.2
• OpenGL ES 2.0, OpenGL ES 3.0, OpenGL ES 3.1,和OpenGL ES 3.2
两者最大的区别在于渲染管线是否可编程。下面将分小节简述各版本的特点。
OpenGL ES 1.1
OpenGL ES 1.1是OpenGL 1.5标准的一个子集,它定义了在图形硬件上使用的渲染管线。几何变换、照明和着色都是通过选择各种预定义算法指定。
OpenGL ES 2.0
OpenGL ES 2.0是OpenGL 2.0标准的一个子集,它定义了一个用于可编程图形硬件的可编程渲染管线。
渲染应用程序需要指定两种类型的信息:
• 使用顶点着色器进行几何处理。
• 使用片段着色器进行像素处理。
• 使用片段着色器进行像素处理。
这两种类型的着色器均由OpenGL ES着色语言编写。为了简化API,OpenGL ES 2.0取消了OpenGL ES 1.1中的固定渲染管线,
因此,OpenGL ES 2.0不兼容OpenGL ES 1.1。
因此,OpenGL ES 2.0不兼容OpenGL ES 1.1。
以下是支持的OpenGL ES 2.0拓展功能(拓展详情请查阅 OpenGL ES <https://registry.khronos.org/OpenGL/index_es.php>_):
• GL_ARM_mali_program_binary
• GL_ARM_mali_shader_binary
• GL_ARM_rgba8
• GL_ARM_shader_framebuffer_fetch
• GL_ARM_shader_framebuffer_fetch_depth_stencil
• GL_EXT_blend_minmax
• GL_EXT_color_buffer_half_float
• GL_EXT_clip_control
• GL_EXT_discard_framebuffer
• GL_EXT_disjoint_timer_query
• GL_EXT_draw_elements_base_vertex
• GL_EXT_fragment_shading_rate
• GL_EXT_fragment_shading_rate_attachment
• GL_EXT_fragment_shading_rate_primitive
• GL_EXT_multisampled_render_to_texture
• GL_EXT_multisampled_render_to_texture2
• GL_EXT_occlusion_query_boolean
• GL_EXT_polygon_offset_clamp
• GL_EXT_read_format_bgra
• GL_EXT_robustness
• GL_EXT_shader_framebuffer_fetch
• GL_EXT_shadow_samplers
• GL_EXT_sRGB
• GL_EXT_sRGB_write_control
• GL_EXT_texture_border_clamp
• GL_EXT_texture_filter_anisotropic
• GL_EXT_texture_format_BGRA8888
• GL_EXT_texture_rg
• GL_EXT_texture_storage
• GL_EXT_texture_type_2_10_10_10_REV
• GL_EXT_unpack_subimage
• GL_EXT_EGL_image_array
• GL_KHR_blend_equation_advanced
• GL_KHR_blend_equation_advanced_coherent
• GL_KHR_debug
• GL_KHR_robust_buffer_access_behavior
• GL_KHR_texture_compression_astc_hdr
• GL_KHR_texture_compression_astc_ldr
• GL_KHR_texture_compression_astc_sliced_3d
• GL_OES_compressed_ETC1_RGB8_texture
• GL_OES_compressed_paletted_texture
• GL_OES_depth_texture
• GL_OES_depth_texture_cube_map
• GL_OES_depth24
• GL_OES_draw_elements_base_vertex
• GL_OES_element_index_uint
• GL_OES_fbo_render_mipmap
• GL_OES_get_program_binary
• GL_OES_mapbuffer
• GL_OES_packed_depth_stencil
• GL_OES_required_internalformat
• GL_OES_rgb8_rgba8
• GL_OES_standard_derivatives
• GL_OES_surfaceless_context
• GL_OES_texture_3D
• GL_OES_texture_border_clamp
• GL_OES_texture_compression_astc
• GL_OES_texture_npot
• GL_OES_vertex_array_object
• GL_OES_vertex_half_float
• GL_OES_EGL_image
• GL_OES_EGL_image_external
• GL_OES_EGL_sync
• GL_ARM_mali_shader_binary
• GL_ARM_rgba8
• GL_ARM_shader_framebuffer_fetch
• GL_ARM_shader_framebuffer_fetch_depth_stencil
• GL_EXT_blend_minmax
• GL_EXT_color_buffer_half_float
• GL_EXT_clip_control
• GL_EXT_discard_framebuffer
• GL_EXT_disjoint_timer_query
• GL_EXT_draw_elements_base_vertex
• GL_EXT_fragment_shading_rate
• GL_EXT_fragment_shading_rate_attachment
• GL_EXT_fragment_shading_rate_primitive
• GL_EXT_multisampled_render_to_texture
• GL_EXT_multisampled_render_to_texture2
• GL_EXT_occlusion_query_boolean
• GL_EXT_polygon_offset_clamp
• GL_EXT_read_format_bgra
• GL_EXT_robustness
• GL_EXT_shader_framebuffer_fetch
• GL_EXT_shadow_samplers
• GL_EXT_sRGB
• GL_EXT_sRGB_write_control
• GL_EXT_texture_border_clamp
• GL_EXT_texture_filter_anisotropic
• GL_EXT_texture_format_BGRA8888
• GL_EXT_texture_rg
• GL_EXT_texture_storage
• GL_EXT_texture_type_2_10_10_10_REV
• GL_EXT_unpack_subimage
• GL_EXT_EGL_image_array
• GL_KHR_blend_equation_advanced
• GL_KHR_blend_equation_advanced_coherent
• GL_KHR_debug
• GL_KHR_robust_buffer_access_behavior
• GL_KHR_texture_compression_astc_hdr
• GL_KHR_texture_compression_astc_ldr
• GL_KHR_texture_compression_astc_sliced_3d
• GL_OES_compressed_ETC1_RGB8_texture
• GL_OES_compressed_paletted_texture
• GL_OES_depth_texture
• GL_OES_depth_texture_cube_map
• GL_OES_depth24
• GL_OES_draw_elements_base_vertex
• GL_OES_element_index_uint
• GL_OES_fbo_render_mipmap
• GL_OES_get_program_binary
• GL_OES_mapbuffer
• GL_OES_packed_depth_stencil
• GL_OES_required_internalformat
• GL_OES_rgb8_rgba8
• GL_OES_standard_derivatives
• GL_OES_surfaceless_context
• GL_OES_texture_3D
• GL_OES_texture_border_clamp
• GL_OES_texture_compression_astc
• GL_OES_texture_npot
• GL_OES_vertex_array_object
• GL_OES_vertex_half_float
• GL_OES_EGL_image
• GL_OES_EGL_image_external
• GL_OES_EGL_sync
OpenGL ES 3.0
OpenGL ES 3.0标准向后兼容OpenGL ES 2.0,引入了OpenGL ES着色语言3.0。它包括以下功能:
• 更多的纹理格式。
• 3D纹理和2D纹理数组。
• 变换反馈。
• 像素缓冲。
• 多渲染目标。
• 遮挡查询。
• 显示同步。
• 采样器对象。
• Uniform缓冲。
• 3D纹理和2D纹理数组。
• 变换反馈。
• 像素缓冲。
• 多渲染目标。
• 遮挡查询。
• 显示同步。
• 采样器对象。
• Uniform缓冲。
以下是支持的OpenGL ES 3.0拓展功能(拓展详情请查阅 OpenGL ES <https://registry.khronos.org/OpenGL/index_es.php>_):
• GL_ARM_texture_unnormalized_coordinates
• GL_EXT_color_buffer_float
• GL_EXT_copy_image
• GL_EXT_draw_buffers_indexed
• GL_EXT_float_blend
• GL_EXT_protected_textures
• GL_EXT_shader_pixel_local_storage
• GL_EXT_texture_sRGB_R8
• GL_EXT_texture_sRGB_RG8
• GL_EXT_YUV_target
• GL_OES_draw_buffers_indexed
• GL_OES_sample_shading
• GL_OES_sample_variables
• GL_OES_shader_multisample_interpolation
• GL_OES_texture_float_linear
• GL_OES_EGL_image_external_essl3
• GL_OVR_multiview
• GL_OVR_multiview2
• GL_OVR_multiview_multisampled_render_to_texture
• GL_EXT_color_buffer_float
• GL_EXT_copy_image
• GL_EXT_draw_buffers_indexed
• GL_EXT_float_blend
• GL_EXT_protected_textures
• GL_EXT_shader_pixel_local_storage
• GL_EXT_texture_sRGB_R8
• GL_EXT_texture_sRGB_RG8
• GL_EXT_YUV_target
• GL_OES_draw_buffers_indexed
• GL_OES_sample_shading
• GL_OES_sample_variables
• GL_OES_shader_multisample_interpolation
• GL_OES_texture_float_linear
• GL_OES_EGL_image_external_essl3
• GL_OVR_multiview
• GL_OVR_multiview2
• GL_OVR_multiview_multisampled_render_to_texture
OpenGL ES 3.1
OpenGL ES 3.1标准向后兼容OpenGL ES 2.0和OpenGL ES 3.0。
OpenGL ES 3.1引入了OpenGL ES着色语言3.1,包括以下新特性:
OpenGL ES 3.1引入了OpenGL ES着色语言3.1,包括以下新特性:
• 计算管线。
• 间接渲染。
• 着色器缓冲。
• 多采样纹理。
• 间接渲染。
• 着色器缓冲。
• 多采样纹理。
以下是支持的OpenGL ES 3.1拓展功能(拓展详情请查阅 OpenGL ES <https://registry.khronos.org/OpenGL/index_es.php>_ ):
• GL_EXT_buffer_storage
• GL_EXT_clear_texture
• GL_EXT_external_buffer
• GL_EXT_geometry_shader
• GL_EXT_gpu_shader5
• GL_EXT_primitive_bounding_box
• GL_EXT_shader_io_blocks
• GL_EXT_tessellation_shader
• GL_EXT_texture_buffer
• GL_EXT_texture_cube_map_array
• GL_KHR_robustness
• GL_OES_copy_image
• GL_OES_geometry_shader
• GL_OES_gpu_shader5
• GL_OES_primitive_bounding_box
• GL_OES_shader_image_atomic
• GL_OES_shader_io_blocks
• GL_OES_tessellation_shader
• GL_OES_texture_buffer
• GL_OES_texture_cube_map_array
• GL_OES_texture_stencil8
• GL_OES_texture_storage_multisample_2d_array
• GL_EXT_clear_texture
• GL_EXT_external_buffer
• GL_EXT_geometry_shader
• GL_EXT_gpu_shader5
• GL_EXT_primitive_bounding_box
• GL_EXT_shader_io_blocks
• GL_EXT_tessellation_shader
• GL_EXT_texture_buffer
• GL_EXT_texture_cube_map_array
• GL_KHR_robustness
• GL_OES_copy_image
• GL_OES_geometry_shader
• GL_OES_gpu_shader5
• GL_OES_primitive_bounding_box
• GL_OES_shader_image_atomic
• GL_OES_shader_io_blocks
• GL_OES_tessellation_shader
• GL_OES_texture_buffer
• GL_OES_texture_cube_map_array
• GL_OES_texture_stencil8
• GL_OES_texture_storage_multisample_2d_array
OpenGL ES 3.2
OpenGL ES 3.2标准向后兼容OpenGL ES 2.0、OpenGL ES 3.0和OpenGL ES 3.1。
OpenGL ES 3.2引入了OpenGL ES着色语言3.2,包括以下新特性:
OpenGL ES 3.2引入了OpenGL ES着色语言3.2,包括以下新特性:
• 浮点渲染目标。
• Per-sample着色。
• Per-attachment混色。
• 几何着色器。
• 细分着色器。
• Per-sample着色。
• Per-attachment混色。
• 几何着色器。
• 细分着色器。
以下是支持的OpenGL ES 3.2拓展功能(关于拓展功能的详细描述可到 OpenGL ES <https://registry.khronos.org/OpenGL/index_es.php>_ 中去查看):
• GL_ARM_shader_core_properties
• GL_EXT_shader_non_constant_global_initializers
• GL_EXT_shader_non_constant_global_initializers