OpenGL ES is a cross-platform API for 2D and 3D graphics on embedded systems. It consists of a subset of desktop OpenGL, which is a widely adopted 2D and 3D graphics API, creating a 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.
Variant: ScreenPlay and non-ScreenPlay.
The Symbian platform supports two versions of OpenGL ES:
OpenGL ES 1.X, which is for fixed function hardware and offers acceleration, image quality and performance.
OpenGL ES 2.X, which is for programmable hardware and enables fully programmable 3D graphics and shader objects.
OpenGL ES is an open standard developed by the Khronos Group (www.khronos.org).
The following diagram shows the direct use of OpenGL ES by an application through the public OpenGL ES interface together with EGL. On the Symbian platform, both OpenGL ES and EGL have a component (shown in blue) that declares the interface, and both require an implementation that implements that interface (shown in green).
Figure: OpenGLES component relationships
It is possible for the OpenGL ES and EGL implementations to communicate through a private interface that is not standardized by Symbian.
The OpenGLES Interface component provides a consistent interface to OpenGL ES on the Symbian platform, enabling cross-device compatibility. The component includes the Khronos-released header files (which incorporate some minor changes, such as in-source comments). It also provides some Symbian-specific header files and LIB, DEF and MMP files and UIDs. It does not provide any implementations of the APIs.
EGL is an interface between rendering APIs such as OpenGL ES or OpenVG and an underlying native platform window system.