The OpenGLES Interface component provides the Symbian platform with an interface to the open-source, cross-platform OpenGL ES APIs defined by the Khronos Group. The component includes the Khronos-released header files, some Symbian-specific header files, LIB, DEF and MMP files and UIDs. It does not provide any implementations of the APIs.
Variant: ScreenPlay and non-ScreenPlay.
The OpenGL ES specifications are defined by the Khronos Group (http://www.khronos.org/). The following table provides links to the relevant specifications.
Specification Version | Location |
---|---|
OpenGL ES 1.1.10 |
http://www.khronos.org/registry/gles/specs/1.1/es_full_spec.1.1.10.pdf |
OpenGL ES 2.0 |
The OpenGLES Interface component includes the Khronos-released header files that conform to these specifications. The header files incorporate some minor changes, such as in-source comments.
These header files are derived from the official Khronos Subversion Repository (https://cvs.khronos.org/svn/repos/) as shown in the following table.
The following OpenGL ES profiles are supported:
OpenGL ES implementations can expose implementation-specific functionality by using the standard extension mechanisms.
The OpenGL ES 1.X extensions, which are defined by Khronos, are located in /epoc32/include/GLES/glext.h.
The OpenGL ES 2.0 extensions, which are defined by Khronos, are located in /epoc32/include/GLES2/gl2ext.h.
Implementers can disable extensions by using glextplatform.h and gl2extplatform.h, respectively.
Implementers edit the Symbian-supplied /epoc32/include/GLES/glextplatform.h by defining an appropriate define guard. For example, defining GL_OES_draw_texture in glextplatform.h prevents definition of GL_TEXTURE_CROP_RECT_OES in glext.h.
Khronos defines the file names and directories for OpenGL ES in the Khronos API Implementers Guide.
For each profile, the OpenGLES Interface component provides a library file as shown in the following table. The library filenames are specified by Khronos.
Library Name | Usage |
---|---|
libGLES_CM.lib |
OpenGL ES 1.1 Common Profile with EGL |
libGLES_CL.lib |
OpenGL ES 1.1 Common-Lite Profile with EGL |
libGLESv1_CM.lib |
OpenGL ES Common Profile without EGL (known as OpenGL ES 1.1 v1) |
libGLESv2.lib |
OpenGL ES 2.0 |
Note: OpenGL ES 1.1 v1 is not another version of OpenGL ES. It is instead another form of packaging for the OpenGL ES 1.1 API.
The following definition (DEF) files are delivered by the OpenGLES Interface component in order to ensure binary compatibility.
Name and path | Usage |
---|---|
/epoc32/include/platform/def/<plat>/openglesu.def |
OpenGL ES 1.0 with EGL (CM profile) |
/epoc32/include/platform/def/<plat>/opengles11u.def |
OpenGL ES 1.1 with EGL (CM profile) |
/epoc32/include/platform/def/<plat>/libglesv1_cm11u.def |
OpenGL ES 1.1 without EGL (CM profile) |
/epoc32/include/platform/def/<plat>/libglesv2u.def |
OpenGL ES 2.0 |