OpenGLES Interface Overview

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 .

Supported APIs

The OpenGL ES specifications are defined by the Khronos Group ( http://www.khronos.org/ ). The following table provides links to the relevant specifications.

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.

Specification Version Repository

OpenGL ES 1.X

/ogles/branches/1.X/src/include/GLES/

OpenGL ES 2.0

/ogles/trunk/src/include/GLES2/

Profiles supported

The following OpenGL ES profiles are supported:

  • OpenGL ES 1.X Common Profile (CM)

  • OpenGL ES 1.X Common-Lite Profile (CL)

  • OpenGL ES 2.0. There is only one profile, therefore only one version exists.

Extensions 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 .

Organization of file names and directories

Khronos defines the file names and directories for OpenGL ES in the Khronos API Implementers Guide .

Library files

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.

Definition files

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

Related concepts
OpenGLES Collection