Symbian3/PDK/Source/GUID-7811CCA0-6677-57AE-812B-31375ABBA862.dita
author Graeme Price <GRAEME.PRICE@NOKIA.COM>
Fri, 15 Oct 2010 14:32:18 +0100
changeset 15 307f4279f433
parent 14 578be2adaf3e
permissions -rw-r--r--
Initial contribution of the Adaptation Documentation.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-7811CCA0-6677-57AE-812B-31375ABBA862"><title>Using Legacy vs. System-Wide EGL Headers</title><shortdesc>From Symbian OS v9.4 onwards, EGL is delivered as a standalone library within a separate component, the EGL Collection. EGL is thus available for system wide use (for example, by both OpenVG and OpenGL ES). For Symbian^2, the EGL version is 1.3 and is independent of the version for OpenGL ES. For Symbian^3, the EGL version is 1.4. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. <b>Target audience</b>: Device creators. </p> <p>Prior to Symbian OS v9.4, EGL was delivered as part of the OpenGL ES library, with the OpenGL ES library containing the entry points for both EGL and OpenGL ES APIs. EGL 1.1 was the version embedded within OpenGL ES. </p> <p>In order to help migrate legacy OpenGL ES applications, the Symbian platform provides a variability point to allow device vendors a staged migration. This variability point allows making use of the system-wide EGL but through the EGL v1.1 headers, effectively hiding from the system-wide EGL any API later than EGL v1.1. </p> <p><b>Using the legacy EGL headers </b> </p> <p>To use the legacy EGL 1.1 headers (these are delivered as part of the OpenGLES Interface component), insert the following line into the OEM-specific system-wide variant file: </p> <codeblock id="GUID-DDDBC4CF-033C-5216-8EEC-A0AEE397E5A9" xml:space="preserve">#define __OPENGLESHEADERS_LEGACY_EGL_1_1</codeblock> <p>This causes the following two files to <codeph>#include</codeph> the legacy EGL 1.1 header files: </p> <ul><li id="GUID-4CA19079-3956-5F04-8A3A-A3DED6453D23"><p> <filepath>/epoc32/include/GLES/egl.h</filepath>  </p> </li> <li id="GUID-3D61040A-4052-5766-B29E-E3D5DEB05655"><p> <filepath>/epoc32/include/GLES/egltypes.h</filepath>  </p> </li> </ul> <p>The legacy EGL 1.1 header files are: </p> <ul><li id="GUID-A6DAF15F-BE7F-5B87-A2DE-AC515067949D"><p> <filepath>/epoc32/include/GLES/legacy_egl_1_1/egl.h</filepath>  </p> </li> <li id="GUID-96BAE283-C998-5751-960B-6140C231BCFE"><p> <filepath>/epoc32/include/GLES/legacy_egl_1_1/egltypes.h</filepath>  </p> </li> </ul> <p>When in legacy mode, the following are true: </p> <ul><li id="GUID-47E6A952-0711-5C3A-B438-CB18A6EEF65D"><p> <filepath> GLES/egl.h</filepath> includes <filepath>GLES/gl.h</filepath> then <filepath>GLES/egltypes.h</filepath>  </p> </li> <li id="GUID-5FCE89A6-A3A2-55BF-A08D-25419FDF3E6B"><p> <filepath> GLES/egl.h</filepath> defines symbols in the EGL 1.1 API namespace </p> </li> <li id="GUID-F08E3272-ECED-5F69-B382-6B949CB697A7"><p> <filepath> GLES/egl.h</filepath> does not define any symbol from EGL API later than EGL 1.1 </p> </li> </ul> <p><b>Using the system-wide EGL headers </b> </p> <p>The system-wide EGL header files are used by default (that is, when <codeph>__OPENGLESHEADERS_LEGACY_EGL_1_1</codeph> is not defined). These conform to the EGL API 1.2, 1.3 or 1.4. The system-wide header files are: </p> <ul><li id="GUID-DBB76091-A72F-56B8-92BB-B65EE1B84D12"><p> <filepath>/epoc32/include/EGL/egl.h</filepath>  </p> </li> <li id="GUID-9278912D-6595-5758-8EEB-657EEFE01958"><p> <filepath>/epoc32/include/EGL/egltypes.h</filepath>  </p> </li> </ul> <p>When not in legacy mode, the following are true: </p> <ul><li id="GUID-A67E8819-A29E-552C-B529-2A3194CB7A06"><p> <filepath>GLES/egl.h</filepath> includes <filepath>EGL/egl.h</filepath> and then <filepath>GLES/gl.h</filepath>  </p> </li> <li id="GUID-865268C2-C044-509C-B2AC-BA131D71CBD4"><p> <filepath>GLES/egl.h</filepath> includes <filepath>GLES/egltypes.h</filepath>  </p> </li> <li id="GUID-2B1DA521-9D1B-50BD-8DD5-ADA54F2ED3B0"><p> <filepath>GLES/egl.h</filepath> defines symbols in the system-wide EGL API (<filepath>EGL/egl.h</filepath>) </p> </li> <li id="GUID-9037C2DA-0B30-5F58-AE3D-B88F0CDA6710"><p> <filepath>GLES/egltypes.h</filepath> re-directs to <filepath>EGL/egltypes.h</filepath>  </p> </li> </ul> </conbody><related-links><link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL
                Collection</linktext> </link> <link href="GUID-7DD1BC7B-B3F7-515D-8DC8-B699B947B434.dita"><linktext>OpenGL ES Porting Guide</linktext> </link> <link href="GUID-90A4BDE2-839A-5A37-ACAA-EB33FE39DE54.dita"><linktext>OpenGL ES Variability
                Choices</linktext> </link> <link href="GUID-12D5C140-DFDA-549B-9CCF-EF7488B832AE.dita"><linktext>OpenGLES Interface Overview</linktext> </link> </related-links></concept>