The Nokia EGL Implementation component consists of a reference implementation of the EGL Interface. Device creators may replace the Symbian platform implementation with their own.
Target audience: Device creators.
The Symbian implementation of EGL depends on which variant of the graphics architecture is in use:
In ScreenPlay, the implementation is based on surfaces that are created by Surface Manager and can be used by the composition engine. For application developers this offers the ability to have a semi-transparent UI on top of the EGL content.
The implementation now supports EGL 1.4. However, the only new feature that has been implemented is the preserve buffer option. The implementation of the preserve buffer option conforms to the expected behavior described in the EGL Interface section.
In the non-ScreenPlay variant, the implementation is based on CWindowGc or Direct Screen Access (DSA) if graphics hardware acceleration is available. In this variant, there is no guarantee that applications can create a semi-transparent UI on top of the EGL content.
The EGL client can query whether the ScreenPlay features are supported on the particular device.
Symbian provides two EGL implementations—one for use in ScreenPlay and one for the non-ScreenPlay variant. A comprehensive list of the EGL APIs can be found at http://www.khronos.org/egl/. A list of the Symbian extensions and modifications is provided in EGL Interface Overview.
DLL | Description |
---|---|
libegl_gce.dll |
The ScreenPlay implementation. |
libegl_nongce.dll |
The non-ScreenPlay implementation. |
libEGL.dll |
In the emulator, this provides a mechanism that switches between the two DLLs mentioned above depending on whether the ScreenPlay variant is in use. For ARM builds, one of the two files above is renamed to this during the ROM build process. This is controlled by IBY files. |
The emulator switching mechanism switches to the ScreenPlay implementation if the following line is present in the Epoc.ini file:
SYMBIAN_GRAPHICS_USE_GCE ON
When this line is not present in the Epoc.ini file, the non-ScreenPlay implementation is used.