OpenGL ES 2.X and the OpenGL ES Shading Language
OpenGL ES 2.0 at a glance
OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification and emphasizes a programmable 3D graphics pipeline with the ability to create shader and program objects and the ability to write vertex and fragment shaders in the OpenGL ES Shading Language. OpenGL ES 2.0 does not support the fixed function transformation and fragment pipeline of OpenGL ES 1.x.
- OpenGL ES 2.0.21 Difference Specification (.PDF, updated September 19, 2007)
-
OpenGL ES Shading Language 1.0.14 Specification (.PDF,
updated March 26, 2007)
- OpenGL ES 2.0 gl2.h header file (updated November 26, 2007 - right click to download). Defines core API interface for OpenGL ES 2.0.
- OpenGL ES 2.0 gl2ext.h header file (updated November 28, 2007 - right click to download). Defines interfaces for registered OpenGL ES 2.x extensions.
- OpenGL ES 2.0 gl2platform.h header file (updated November 28, 2007 - right click to download). Platform-dependent macros for OpenGL ES 2.0 gl2.h and gl2ext.h.
-
OpenGL ES API & Extension Registry
EGL
- EGL 1.3 Specification, Header Files & Extension Registry
- EGL 1.2 Specification (.PDF, 288 KB updated July, 2005)
- EGL 1.2 .h header file (updated 2005/11/21)
- EGL 1.1 Specification (.PDF, 294 KB updated Nov, 2004)
- EGL 1.1 .h header file
OpenGL ES 2.0 in more detail
OpenGL ES 2.0 combines a version of the OpenGL Shading Language for programming vertex and fragment shaders that has been adapted for embedded platforms, together with a streamlined API from OpenGL ES 1.1 that has removed any fixed functionality that can be easily replaced by shader programs, to minimize the cost and power consumption of advanced programmable graphics subsystems.
- OpenGL 2.0 as a reference - the specification is defined relative to the
OpenGL 2.0 specification.
- OpenGL ES Shading Lanugage - adds the same basic shading language as used in OpenGL 2.0, but adapted for embedded platforms.
- Programmable Pipeline of OpenGL 2.0 replaces the fixed function transformation and fragment pipeline of OpenGL 1.x. (see diagram below). Using shaders minimize the cost and power of advanced programmable graphics subsystems.

- Wider range of precision options for use in embedded devices - adds the same basic shading language as used in OpenGL 2.0.
- Frame Buffer Objects - simplify surface management and offer a subset of functionality from the desktop FBO
- Royalty Free texture compression scheme offers 4 bits per pixel to offer enhanced quality compared to S3TC. This is an optional extension and will be made part of the core for OpenGL ES 2.1
- Not 100% backward compatible with OpenGL ES 1.x - though changes are minimized and removed functionality can be replaced with shaders





OpenGL® ES is a royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles. It consists of well-defined subsets of desktop OpenGL, creating a flexible and powerful low-level interface between software and graphics acceleration. OpenGL ES includes profiles for floating-point and fixed-point systems and the EGL™ specification for portably binding to native windowing systems. OpenGL ES 1.X is for fixed function hardware and offers acceleration, image quality and performance. OpenGL ES 2.X enables full programmable 3D graphics. OpenGL SC is tuned for the safety critical market.