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