Jump to content

OpenGL ES

From Wikipedia, the free encyclopedia

OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

The API is cross-language and multi-platform. The GLU library and the original GLUT are not available for OpenGL ES, freeglut however, supports it. OpenGL ES is managed by the non-profit technology consortium Khronos Group. Vulkan, a next-generation API from Khronos, is made for simpler high performance drivers for mobile and desktop devices.

Versions

[edit]

Several versions of the OpenGL ES specification now exist. OpenGL ES 1.0 is drawn up against the OpenGL 1.3 specification, OpenGL ES 1.1 is defined relative to the OpenGL 1.5 specification and OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification. This means that, for example, an application written for OpenGL ES 1.0 should be easily portable to the desktop OpenGL 1.3; as the OpenGL ES is a stripped-down version of the API, the reverse may or may not be true, depending on the particular features used.

OpenGL ES comes with its own version of shading language (OpenGL ES SL), which is different from OpenGL SL.[1]

Version 1.0 and 1.1 both have common (CM) and common lite (CL) profiles, the difference being that the common lite profile only supports fixed-point instead of floating point data type support, whereas common supports both.

OpenGL ES 1.0

[edit]

OpenGL ES 1.0 was released publicly July 28, 2003. OpenGL ES 1.0 is based on the original OpenGL 1.3 API, with much functionality removed and a little bit added. One significant difference between OpenGL and OpenGL ES is that OpenGL ES removed the need to bracket OpenGL library calls with glBegin and glEnd. Other significant differences are that the calling semantics for primitive rendering functions were changed in favor of vertex arrays, and fixed-point data types were introduced for vertex coordinates. Attributes were also added to better support the computational abilities of embedded processors, which often lack a floating point unit (FPU). Many other functions and rendering primitives were removed in version 1.0 to produce a lightweight interface, including:

  • quad and polygon rendering primitives;
  • texgen, line, and polygon stipple;
  • polygon mode and antialiased polygon rendering are not supported, although rendering using multisample is still possible (rather than alpha border fragments);
  • ARB_Image pixel class operations, bitmaps, and 3D textures are not supported;
  • several of the more technical drawing modes are eliminated, including frontbuffer and accumulation buffer;
  • bitmap operations for copying pixels individually, evaluators, and user selection operations are not allowed;
  • display lists and feedback are removed, as are push and pop operations for state attributes;
  • and some material parameters were removed, including back-face parameters and user-defined clip planes.

The actual version is 1.0.0.2.[2]

Extension Name Sort #Number Details
OES_byte_coordinates OpenGL ES Extension #4 (formerly OpenGL Extension #291)
OES_compressed_paletted_texture OpenGL ES Extension #6 (formerly OpenGL Extension #294)
OES_fixed_point OpenGL ES Extension #9 (formerly OpenGL Extension #292)
OES_query_matrix OpenGL ES Extension #16 (formerly OpenGL Extension #296)
OES_read_format OpenGL ES Extension #17 (formerly OpenGL Extension #295)
OES_single_precision OpenGL ES Extension #18 (formerly OpenGL Extension #293)
optional Mesa (most drivers)
OES_compressed_ETC1_RGB8_texture OpenGL ES Extension #5

OpenGL ES 1.1

[edit]

OpenGL ES 1.1 added features such as mandatory support for multitexture, better multitexture support (including combiners and dot product texture operations), automatic mipmap generation, vertex buffer objects, state queries, user clip planes, and greater control over point rendering.[3] Actual Version is 1.1.12.[4]

Extension Name Sort #Number
OES_draw_texture OpenGL ES Extension #7
OES_matrix_get OpenGL ES Extension #11
OES_point_size_array OpenGL ES Extension #14
OES_point_sprite OpenGL ES Extension #15
optional Mesa (all drivers)
OES_framebuffer_object OpenGL ES Extension #10 (became core in ES 2.0)[5]
OES_EGL_image OpenGL ES Extension #23
OES_EGL_image_external OpenGL ES Extension #87
OES_required_internalformat OpenGL ES Extension # TBD

OpenGL ES 2.0

[edit]

OpenGL ES 2.0 was publicly released in March 2007.[6] It is roughly based on OpenGL 2.0, but it eliminates most of the fixed-function rendering pipeline in favor of a programmable one in a move similar to the transition from OpenGL 3.0 to 3.1.[7] Control flow in shaders is generally limited to forward branching and to loops where the maximum number of iterations can easily be determined at compile time.[8] Almost all rendering features of the transform and lighting stage, such as the specification of materials and light parameters formerly specified by the fixed-function API, are replaced by shaders written by the graphics programmer. As a result, OpenGL ES 2.0 is not backward compatible with OpenGL ES 1.1. Some incompatibilities between the desktop version of OpenGL and OpenGL ES 2.0 persisted until OpenGL 4.1, which added the GL_ARB_ES2_compatibility extension.[9] Actual version is 2.0.25.[10]

The Khronos Group has written a document describing the differences between OpenGL ES 2.0 and ordinary OpenGL 2.0.[11]

Extension Name Sort #Number
OES_texture_cube_map OpenGL ES Extension #20
OES_texture_npot OpenGL ES Extension #37
OES_depth24 OpenGL ES Extension #24
OES_depth_texture OpenGL ES Extension #44
OES_element_index_uint OpenGL ES Extension #26
OES_fbo_render_mipmap OpenGL ES Extension #27
OES_get_program_binary OpenGL ES Extension #47
OES_mapbuffer OpenGL ES Extension #29
OES_packed_depth_stencil OpenGL ES Extension #43
OES_rgb8_rgba8 OpenGL ES Extension #30
OES_stencil8 OpenGL ES Extension #33
OES_vertex_half_float OpenGL ES Extension #38
additional in MESA (all drivers)
OES_EGL_image OpenGL ES Extension #23 (different for 1.1)
OES_EGL_image_external OpenGL ES Extension #87 (different for 1.1)
OES_texture_3D OpenGL ES Extension #34 (became core in ES 3.0)[12]
OES_texture_float_linear OES_texture_half_float_linear OpenGL ES Extension #35, extended in ES 3.0 and 3.1
OES_texture_float OES_texture_half_float OpenGL ES Extension #36, extended in ES 3.0 and 3.1
OES_standard_derivatives OpenGL ES Extension #45
OES_vertex_array_object OpenGL ES Extension #71 (became core in ES 3.0)[12]
OES_surfaceless_context OpenGL ES Extension #116
OES_depth_texture_cube_map OpenGL ES Extension #136
EXT_texture_filter_anisotropic OpenGL ES Extension #41
EXT_texture_type_2_10_10_10_REV OpenGL ES Extension #42
EXT_texture_compression_dxt1 OpenGL ES Extension #49
EXT_texture_format_BGRA8888 OpenGL ES Extension #51
EXT_discard_framebuffer OpenGL ES Extension #64
EXT_blend_minmax OpenGL ES Extension #65
EXT_read_format_bgra OpenGL ES Extension #66
EXT_multi_draw_arrays OpenGL ES Extension #69
EXT_frag_depth OpenGL ES Extension #86
EXT_unpack_subimage OpenGL ES Extension #90
EXT_texture_rg OpenGL ES Extension #103
EXT_draw_buffers OpenGL ES Extension #151
EXT_compressed_ETC1_RGB8_sub_texture OpenGL ES Extension #188
NV_draw_buffers OpenGL ES Extension #91
NV_fbo_color_attachments OpenGL ES Extension #92
NV_read_buffer OpenGL ES Extension #93
NV_read_depth_stencil OpenGL ES Extension #94
ANGLE_texture_compression_dxt OpenGL ES Extension #111

OpenGL ES 3.0

[edit]

The OpenGL ES 3.0 specification[13] was publicly released in August 2012.[14] It is backwards compatible with OpenGL ES 2.0, and partially compatible with WebGL 2.0,[15] as WebGL 2.0 was designed to have a high degree of interoperability with OpenGL ES 3.0.[16] The current version of the OpenGL ES 3.0 standard is 3.0.6, released in November 2019.[17]

New functionality in the OpenGL ES 3.0 specification includes:

Extension Name Sort #Number Details
KHR_context_flush_control OpenGL ES Extension #191 (for GL_KHR_context_flush_control only)
additional in MESA (all drivers)
OES_texture_compression_astc OpenGL ES Extension #162
EXT_texture_border_clamp OpenGL ES Extension #182
EXT_draw_elements_base_vertex OpenGL ES Extension #204
OES_EGL_image_external_essl3 OpenGL ES Extension #220
MESA_shader_integer_functions OpenGL ES Extension #495

OpenGL ES 3.1

[edit]

The OpenGL ES 3.1 specification[19] was publicly released in March 2014. New functionality in OpenGL ES 3.1 includes:[20]

  • Compute shaders
  • Independent vertex and fragment shaders
  • Indirect draw commands

OpenGL ES 3.1 is backward compatible with OpenGL ES 2.0 and 3.0, thus enabling applications to incrementally incorporate new features. Actual Version is 3.1-(November 2016).[21]

Extension Name Sort #Number
ARB_arrays_of_arrays ARB Extension #120
ARB_compute_shader ARB Extension #122
ARB_explicit_uniform_location ARB Extension #128
ARB_framebuffer_no_attachments ARB Extension #130
ARB_program_interface_query ARB Extension #134
ARB_shader_atomic_counters ARB Extension #114
ARB_shader_image_load_store ARB Extension #115
ARB_shader_storage_buffer_object ARB Extension #137
ARB_separate_shader_objects ARB Extension #97
ARB_stencil_texturing ARB Extension #138
ARB_vertex_attrib_binding ARB Extension #125
ARB_draw_indirect ARB Extension #87
ARB_shading_language_packing ARB Extension #116
ARB_shader_image_size ARB Extension #136
ARB_texture_storage_multisample ARB Extension #141
ARB_texture_multisample ARB Extension #67
EXT_shader_integer_mix OpenGL ES Extension #161
optional Mesa (all drivers OpenGL ES 3.1+)
ARB_sample_locations ARB Extension #181
OES_texture_view OpenGL ES Extension #218
NV_image_formats OpenGL ES Extension #200
EXT_render_snorm OpenGL ES Extension #206
EXT_texture_norm16 OpenGL ES Extension #207

OpenGL ES 3.2

[edit]

The OpenGL ES 3.2 specification[22] was publicly released in August 2015. New capabilities in OpenGL ES 3.2 include:

  • Geometry and tessellation shaders to efficiently process complex scenes on the GPU.
  • Floating point render targets for increased flexibility in higher precision compute operations.
  • ASTC compression to reduce the memory footprint and bandwidth used to process textures.
  • Enhanced blending for sophisticated compositing and handling of multiple color attachments.
  • Advanced texture targets such as texture buffers, multisample 2D array and cube map arrays.
  • Debug and robustness features for easier code development and secure execution.

Actual State is 3.2.6 July 2019.[23][24]

Extension Name Sort #Number
KHR_blend_equation_advanced OpenGL ES Extension #168
EXT_color_buffer_float OpenGL ES Extension #137
KHR_debug OpenGL ES Extension #118
KHR_robustness OpenGL ES Extension #190
OES_copy_image OpenGL ES Extension #208
OES_draw_buffers_indexed OpenGL ES Extension #209
OES_draw_elements_base_vertex OpenGL ES Extension #219
OES_geometry_shader OpenGL ES Extension #210
OES_gpu_shader5 OpenGL ES Extension #211
OES_sample_shading OpenGL ES Extension #169
OES_sample_variables OpenGL ES Extension #170
OES_shader_image_atomic OpenGL ES Extension #171
OES_shader_io_blocks OpenGL ES Extension #213
OES_shader_multisample_interpolation OpenGL ES Extension #172
OES_tessellation_shader OpenGL ES Extension #214
OES_texture_border_clamp OpenGL ES Extension #215
OES_texture_buffer OpenGL ES Extension #216
OES_texture_cube_map_array OpenGL ES Extension #217
OES_texture_stencil8 OpenGL ES Extension #173
OES_texture_storage_multisample_2d_array OpenGL ES Extension #174
KHR_texture_compression_astc_ldr OpenGL ES Extension #117 (LDR only)
OES_primitive_bounding_box OpenGL ES Extension #212
optional Mesa (all drivers OpenGL ES 3.2+)
KHR_texture_compression_astc_hdr OpenGL ES Extension #117 (LDR included), ARB Extension #118
KHR_blend_equation_advanced_coherent OpenGL ES Extension #168
KHR_texture_compression_astc_sliced_3d OpenGL ES Extension #249 (ARB Extension #189)

OES_viewport_array

OpenGL ES Extension #267

Some more extensions are developed or in Development in Mesa for next OpenGL ES Version (see Mesamatrix).

Next generation API is Vulkan.[25]

Platform usage

[edit]

For complete list of companies and their conformant products, view here

OpenGL ES 1.0

[edit]

OpenGL ES 1.0 added an official 3D graphics API to the Android[26] and Symbian OS v8.0a[27][28] operating systems, as well as by QNX[29] It is also supported by the PlayStation 3 as one of its official graphics APIs[30] (the other one being low level libgcm library) with Nvidia's Cg in lieu of GLSL.[31] The PlayStation 3 also includes several features of the 2.0 version of OpenGL ES.

OpenGL ES 1.1

[edit]

The 1.1 version of OpenGL ES is supported by:

OpenGL ES 2.0

[edit]

Supported by:

OpenGL ES 3.0

[edit]

Supported by:

Supported by some recent versions of these GPUs:[42][43]

  • Adreno 300 and 400 series (Android, BlackBerry 10, Windows10 Windows RT)
  • Mali T600 series onwards (Android, Linux, Windows 7)
  • PowerVR Series6 (iOS, Linux)
  • Vivante (Android, OS X 10.8.3, Windows 7)
  • Nvidia (Android), Tesla G80+: Linux, Windows 7+
  • Intel HD Graphics Sandy Bridge and higher (Linux)[38]
  • AMD Terascale and actual GCN-architecture (Windows, Linux)
  • LLVMpipe and Softpipe: soft drivers in Mesa[39]
  • VIRGL: virtual Driver for virtual machines in 2018 with Mesa 18.1 (See Mesamatrix.net)

OpenGL ES 3.1

[edit]

Supported by Windows, Linux, Android (since version 5.0) on devices with appropriate hardware and drivers,[44] including:

  • Adreno 400 series[45][46]
  • Adreno 500 series (Mesa 18.1 for Linux and Android)
  • AMD Terascale and actual GCN-architecture (Windows, Linux (r600, radeonSI))
  • Intel HD Graphics for Intel Atom Z3700 series (Android)
  • Intel HD Graphics for Intel Celeron N and J series (Android)
  • Intel HD Graphics for Intel Pentium N and J series (Android)
  • Intel HD Graphics Haswell and higher (Linux Mesa: previous Ivy Bridge nearly without stencil texturing)[38]
  • Mali T6xx (midgard) series onwards[47] (Android, Linux)
  • Nvidia GeForce 400 series onwards (Windows, Linux)
  • Nvidia Tegra K1 (Android, Linux)
  • Nvidia Tegra X1 (Android)
  • PowerVR Series 6, 6XE, 6XT, 7XE and 7XT (Linux, Android)
  • Vivante GC2000 series onwards (optional with GC800 and GC1000)[48]
  • panfrost: ARM panfrost support (Linux Mesa 22.0)
  • v3d: Driver for Broadcom VideoCore in Mesa (Linux)
  • VIRGL: virtual Driver for virtual machines in 2018 with Mesa 18.1 (See Mesamatrix.net)
  • LLVMpipe: software driver in Mesa 20.2 (Linux)
  • softpipe: software driver in Mesa 20.3 (Linux)
  • Zink: emulation driver in Mesa 21.1 (Linux)
  • d3d12: WSL2 linux driver for Microsoft 10+ (Mesa 22.0)
  • Apple M1 and M2 graphics in Fedora Asahi Remix (Linux)

Android Extension Pack

[edit]

Android Extension Pack (AEP) is a set of OpenGL ES 3.1 extensions, all bundled into a single extension introduced by Google in 2014. This allows applications to use all of the features of the set of extensions, while only testing for the presence of a single one. The AEP was officially added to Android Lollipop to provide extra features like tessellation over what was officially in the GLES 3.1 revision. OpenGL ES 3.2 update is largely made up of the AEP additions, which are already present in desktop OpenGL.[49]

OpenGL ES 3.2

[edit]

OpenGL ES 3.2, incorporating the Android Extension Pack (AEP), "boasts a small number of improvements over last year’s OpenGL ES 3.1. Both make use of similar features from the AEP. From the AEP, OpenGL ES 3.2 compliant hardware will support Tessellation for additional geometry detail, new geometry shaders, ASTC texture compression for a smaller memory bandwidth footprint, floating point render targets for high accuracy compute processes, and new debugging features for developers. These high-end features are already found in the group’s full OpenGL 4 specification."[50][51]

Supported by Windows, Linux, Android (since version 6.0 possible, 7.0+ Vulkan 1.0 and OpenGL ES 3.2 needed) on devices with appropriate hardware and drivers, including:

  • Adreno 420 and newer (Android, Linux (freedreno))
  • AMD GCN-architecture (Windows, Linux (Mesa 18.2 with radeonSI))
  • Intel HD Graphics Skylake and higher (Linux)[38]
  • Mali-T760 and newer (Android, Linux)
  • Nvidia GeForce 400 series (Fermi) and newer (Windows, Linux)[52]
  • VIRGL: virtual Driver for virtual machines in 2018 with Mesa 18.1 (See Mesamatrix.net)
  • LLVMpipe: software driver in Mesa 20 (Linux)
  • Zink: Vulkan emulation driver in Mesa 21.2 (Linux)

Deprecation in Apple platforms

[edit]

OpenGL ES (and OpenGL) was deprecated in Apple's operating systems in favour of its own proprietary Metal graphics API, but still worked in up to at least iOS 12.[53]

The future

[edit]

There is currently no plan for a new core version of OpenGL ES, as adoption of Vulkan has been deemed to displace it in embedded and mobile applications. Development of extensions to OpenGL ES continues as of 2017. [54]

OpenGL compatibility

[edit]

A few libraries have been created to emulate OpenGL calls using GL ES:

See also

[edit]
  • Direct3D – Windows API for high-performance 3D graphics, with 3D acceleration hardware support
  • DirectX – Windows API for handling tasks related to graphics and video
  • Metal – low level, high-performance 3D accelerated graphics library for Apple platforms
  • OpenSL ES – API for audio on embedded systems, developed by the Khronos Group
  • ANGLE (software) – Google developed library to turn OpenGL ES calls into those of DirectX or Vulkan
  • Mobile 3D Graphics API - a graphics API and file format specification for developing Java ME applications

References

[edit]
  1. ^ "What versions of GLSL can I use in OpenGL ES 2.0?". Stack Overflow.
  2. ^ https://www.khronos.org/registry/OpenGL/specs/es/1.0/opengles_spec_1_0.pdf [bare URL PDF]
  3. ^ http://developer.amd.com/wordpress/media/2012/10/GDC06-GLES_Tutorial_Day-Munshi-OpenGLES_Overview.pdf [bare URL PDF]
  4. ^ https://www.khronos.org/registry/OpenGL/specs/es/1.1/es_full_spec_1.1.pdf [bare URL PDF]
  5. ^ "stack overflow: glGenFramebuffersOES vs glGenFramebuffers?". Retrieved 2022-04-19.
  6. ^ "Khronos Press Releases - OpenGL ES 2.0". Khronos.org. 2007-03-05. Archived from the original on 2010-12-28. Retrieved 2010-12-23.
  7. ^ Edward Angel, Dave Shreiner, Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL, 6th Edition, p. xxi-xxii, ISBN 978-0-13-254523-5
  8. ^ "The OpenGL® ES Shading Language" (PDF). Khronos.org. Retrieved 2013-02-16.
  9. ^ "The OpenGL(R)Graphics System: A Specification (Version 4.1 (Core Profile)" (PDF). July 25, 2010.
  10. ^ https://www.khronos.org/registry/OpenGL/specs/es/2.0/es_full_spec_2.0.pdf [bare URL PDF]
  11. ^ "OpenGL© ES – Common Profile Specification 2.0.25 (Difference Specification)" (PDF). November 2, 2010.
  12. ^ a b "OpenGL ES 3.0 Programming Guide" (PDF). Pearson Education, Inc. Retrieved 2022-04-18.
  13. ^ "Khronos OpenGL ES Registry - The Khronos Group Inc". registry.khronos.org.
  14. ^ "Khronos Releases OpenGL ES 3.0 Specification to Bring Mobile 3D Graphics to the Next Level". Khronos. 2012-08-06. Retrieved 2012-08-06.
  15. ^ "WebGL: 2D and 3D graphics for the web". Mozilla. Retrieved 2023-06-30.
  16. ^ "WebGL 2.0 Specification". registry.khronos.org.
  17. ^ https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf [bare URL PDF]
  18. ^ "GLSL ES 3.0 Specification" (PDF). Khronos. Retrieved 2023-06-30.
  19. ^ "Khronos OpenGL ES Registry - The Khronos Group Inc". registry.khronos.org.
  20. ^ "Khronos Releases OpenGL ES 3.1 Specification". Khronos.org. 2014-03-17. Retrieved 2014-03-17.
  21. ^ https://www.khronos.org/registry/OpenGL/specs/es/3.1/es_spec_3.1.pdf [bare URL PDF]
  22. ^ "Khronos OpenGL ES Registry - The Khronos Group Inc". registry.khronos.org.
  23. ^ https://www.khronos.org/registry/OpenGL/specs/es/3.2/es_spec_3.2.pdf [bare URL PDF]
  24. ^ https://www.khronos.org/registry/OpenGL/specs/es/3.2/GLSL_ES_Specification_3.20.pdf [bare URL PDF]
  25. ^ "Next Generation OpenGL Becomes Vulkan: Additional Details Released".
  26. ^ "Android Platform". Android Developers.
  27. ^ "Symbian OS Version 8.0 Product sheet". 2008-03-30. Archived from the original on 2008-03-30. Retrieved 2008-03-30.
  28. ^ Dueder, Janelle (2022-12-09). "OpenGL ES - Symbian Games Development". 25 Years of Programming. Retrieved 2023-01-14.
  29. ^ "Using OpenGL ES". QNX Software Development Platform (v6.5.0). QNX. Retrieved 2011-01-08.
  30. ^ "OpenGL ES demo in PPT format". 21 November 2021.
  31. ^ "OpenGL ES/PSGL Presentation in PPT format". Sony. Khronos. 21 November 2021.
  32. ^ "OpenGL ES SDK available for Nokia 6630". Khronos Forums. 2004-09-22. Retrieved 2023-01-14.
  33. ^ "New in this beta release". Release Notes - BlackBerry Java Application. Research in Motion. Archived from the original on 2009-12-02. Retrieved 2009-12-08.
  34. ^ Koh, Damian (2009-11-29). "What to expect for BlackBerry smartphones". CNET Asia. Archived from the original on 2009-12-13. Retrieved 2009-12-08.
  35. ^ a b "PDK - Overview". HP Palm Developer Center. Archived from the original on 2011-01-01. Retrieved 2010-12-23.
  36. ^ "DMP announces OpenGL ES 1.1 conformant PICA 200 adopted by Nintendo". 2010-06-21. Retrieved 2013-06-02.
  37. ^ "Android 2.2 specifications". 2010-07-01. Archived from the original on 2010-10-11.
  38. ^ a b c d "Mesa OpenGL Extensions and Capabilities". people.freedesktop.org.
  39. ^ a b "Mesa OpenGL Extensions and Capabilities". people.freedesktop.org.
  40. ^ "Maemo software - Nokia > Nokia N900 mobile computer > Technical specifications". Nokia Corporation. Archived from the original on 29 October 2009. Retrieved 12 January 2010.
  41. ^ "iOS 8 for Developers". Apple Developer.
  42. ^ "Khronos Conformant Products". 21 November 2021.
  43. ^ Sag, Anshel (2013-04-11). "The State of OpenGL ES 3.0: Who's Got What". Bright Side of News. Archived from the original on 2013-06-15. Retrieved 2015-12-22.
  44. ^ "OpenGL ES3.1 Conformant Products". Retrieved 2014-08-11.
  45. ^ "Adreno™ Graphics Processing Units". Qualcomm. Retrieved 2014-08-11.
  46. ^ "GL ES 3.1 on Adreno 3xx?". Retrieved 2014-08-11.
  47. ^ "ARM's Mali Midgard Architecture Explored". AnandTech. Retrieved 2014-08-11.
  48. ^ "Vivante Vega Cores for 3D". Vivante. Retrieved 2014-12-10.
  49. ^ "Khronos Debuts OpenGL ES 3.2 & New GL Extensions, But No Vulkan This Week". August 10, 2015. Retrieved August 11, 2015.
  50. ^ "OpenGL ES 3.2 and Vulkan – everything you need to know". Android Authority. 2015-08-15. Retrieved 2015-12-22.
  51. ^ "3D Graphics API State of the Union: SIGGRAPH 2015" (PDF). Khronos. Industry will ship >1.7 billion devices in 2015
  52. ^ "NVIDIA Releases 358.50 Game Ready Drivers For Star Wars Battlefront". AnandTech. Retrieved 2015-10-07.
  53. ^ Apple Inc. "What's New in iOS - Apple Developer". developer.apple.com. Retrieved 2018-08-07. Apps built using OpenGL ES will continue to run in iOS 12, but OpenGL ES is deprecated in iOS 13.
  54. ^ Khronos. "Vulkan, OpenGL, and OpenGL ES" (PDF). www.khronos.org. Retrieved 2020-04-24.
  55. ^ "p3/regal: Regal for OpenGL". GitHub. 18 October 2021.
  56. ^ McCutchan, John (7 September 2012). "In-depth: Bringing Regal OpenGL to Native Client". Gamasutra.
  57. ^ "GL4ES - The OpenGL driver for GLES Hardware". GitHub.

Further reading

[edit]
  • Ginsburg, Dan; Purnomo, Budirijanto; Shreiner, Dave; Munshi, Aaftab (2014). OpenGL ES 3.0 Programming Guide. Addison-Wesley Professional. ISBN 978-0-321-93388-1.
  • Pulli, Kari; Aarnio, Tomi; Miettinen, Ville; Roimela, Kimmo & Vaarala, Jani (2007). Mobile 3D Graphics with OpenGL ES and M3G. Morgan Kaufmann. ISBN 978-0-12-373727-4.
  • Astle, Dave & Durnil, David (2004). OpenGL ES Game Development. Course Technology PTR. ISBN 1-59200-370-2.
  • Pulli, Kari; Aarnio, Tomi; Roimela, Kimmo & Vaarala, Jani (2005). "Designing graphics programming interfaces for mobile devices". IEEE Computer Graphics and Applications. 25 (6). IEEE CG&A 2005: 66–75. doi:10.1109/MCG.2005.129. PMID 16315479. S2CID 8177273.
[edit]