opengles/openglesinterface/documentation/implementers_guide.html
changeset 111 29ddb8a72f0e
parent 110 7f25ef56562d
child 113 f3c3c510a760
child 152 9f1c3fea0f87
--- a/opengles/openglesinterface/documentation/implementers_guide.html	Wed Jun 23 19:41:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,403 +0,0 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Khronos API Implementers' Guidelines</title><link rel="stylesheet" href="igstyle.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.69.1"><meta name="description" content="Guidelines to be followed by implementers of Khronos Group
-		APIs"><style type="text/css">
-body { background-image: url('draft.png');
-       background-repeat: no-repeat;
-       background-position: top left;
-       /* The following properties make the watermark "fixed" on the page. */
-       /* I think that's just a bit too distracting for the reader... */
-       /* background-attachment: fixed; */
-       /* background-position: center center; */
-     }</style></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id4739083"></a>Khronos API Implementers' Guidelines</h1></div><div><div class="authorgroup"><h4 class="editedby">Edited by</h4><h3 class="editor"><span class="firstname">Mark</span> <span class="surname">Callow</span></h3><div class="affiliation"><span class="orgname">HI Corporation<br></span></div><code class="email">&lt;<a href="mailto:callow_mark%20at%20hicorp.co.jp">callow_mark at hicorp.co.jp</a>&gt;</code><p></p></div></div><div><p class="copyright">Copyright © 2007 The Khronos Group Inc.</p></div><div><div class="legalnotice"><a name="legal"></a><p>This document is protected by copyright laws and contains
-		material proprietary to the Khronos Group, Inc. It or any components
-		may not be reproduced, republished, distributed, transmitted,
-		displayed, broadcast or otherwise exploited in any manner without
-		the express prior written permission of Khronos Group.
-	   	The receipt or possession of this
-		document does not convey any rights to reproduce, disclose, or
-		distribute its contents, or to manufacture, use, or sell anything
-	   	that it may describe, in whole or in part.</p><p>Khronos Group grants express permission to any current Promoter,
-		Contributor or Adopter member of Khronos to copy and redistribute
-		UNMODIFIED versions of this document in any fashion, provided
-		that NO CHARGE is made for the document and the latest available
-		update of the document is used whenever possible.
-	   	Such distributed document may be
-		re-formatted AS LONG AS the contents of the document are not
-		changed in any way.  The document may be incorporated into a
-		product that is sold as long as such product includes significant
-		independent work developed by the seller. A link to the current
-		version of this document on the Khronos Group web-site should
-		be included whenever possible with document distributions.</p><p>Khronos Group makes no, and expressly disclaims any,
-		representations or warranties, express or implied, regarding this
-		document, including, without limitation, any implied warranties
-		of merchantability or fitness for a particular purpose or
-		non-infringement of any intellectual property. Khronos Group makes
-		no, and expressly disclaims any, warranties, express or implied,
-		regarding the correctness, accuracy, completeness, timeliness, and
-		reliability of the document. Under no circumstances will the Khronos
-		Group, or any of its Promoters, Contributors or Members or their
-		respective partners, officers, directors, employees, agents or
-		representatives be liable for any damages, whether direct, indirect,
-		special or consequential damages for lost revenues, lost profits,
-		or otherwise, arising from or in connection with these
-		materials.</p><p><span class="trademark">Khronos</span>™ is a trademark of
-		The Khronos Group Inc. <span class="trademark">OpenGL</span>®
-		is a registered trademark, and
-		<span class="trademark">OpenGL ES</span>™is a trademark, of
-		Silicon Graphics, Inc.</p></div></div><div><div class="revhistory"><table border="1" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.9.0</td><td align="left">2006-12-08 19:15:11 -0800</td><td align="left">msc</td></tr><tr><td align="left" colspan="3">First docbook version</td></tr><tr><td align="left">Revision 0.91.0</td><td align="left">2006-12-12 17:26:03 -0800</td><td align="left">msc</td></tr><tr><td align="left" colspan="3">Public review version: amended copyright notice; changed OpenKODE and GLES utility library names.</td></tr></table></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>Guidelines to be followed by implementers of Khronos Group
-		<em class="glossterm">APIs</em></p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#introduction">Introduction</a></span></dt><dt><span class="section"><a href="#generalguidelines">General Guidelines </a></span></dt><dd><dl><dt><span class="section"><a href="#controlled">Vendor Controlled Platforms (e.g. BREW, SymbianOS)</a></span></dt><dt><span class="section"><a href="#uncontrolled">Uncontrolled Platforms (e.g. GNU/Linux, Windows, Windows CE)</a></span></dt></dl></dd><dt><span class="section"><a href="#id4787332">Acknowledgements</a></span></dt><dt><span class="glossary"><a href="#id4787444">Glossary</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>1. <a href="#id4713194">Header File Names and Locations</a></dt><dt>2. <a href="#id4786950">Recommended Library Names</a></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction"></a>Introduction</h2></div></div></div><p> This document provides guidelines for
-	  <a href="#gls_implementer"><em class="firstterm">implementers
-	  </em></a>
-	  of OpenGL ES, OpenVG and other <a href="#gls_api"><em class="firstterm">API</em></a>
-	  standards specified by the Khronos Group.
-	  The aim of these hints is to provide commonality between implementations to 
-	  ease the logistical problems faced by developers using multiple different 
-	  implementations of an <em class="glossterm">API</em>.
-   	</p><p> One of the primary goals is to allow an application binary to run 
-	  on top of multiple different OpenGL ES / OpenVG / EGL implementations 
-	  on the same platform. </p><p> Implementers are strongly urged to comply with these guidelines. 
-	</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="generalguidelines"></a>General Guidelines </h2></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="controlled"></a>Vendor Controlled Platforms (e.g. BREW, SymbianOS)</h3></div></div></div><p> Implementers should follow the linkage specifications established 
-		by the
-		<a href="#gls_vendor"><em class="firstterm">platform vendor</em></a>
-		.
-	  </p><div class="itemizedlist"><ul type="opencircle"><li style="list-style-type: circle"><p> Use the header files, (e.g., for OpenGL ES, gl.h &amp; egl.h) 
-			provided by the platform vendor. </p></li><li style="list-style-type: circle"><p> Use the function names specified in those header files. </p></li><li style="list-style-type: circle"><p>Implement all <em class="glossterm">API</em>
-			entry points in the same way as in the
-			<em class="glossterm">vendor</em>-provided
-			<a href="#gls_abi"><em class="firstterm">ABI</em></a>. That is,
-			functions should be functions, in-line functions should be
-			in-line functions and macros should be macros.
-		  </p></li><li style="list-style-type: circle"><p> Use the platform specified library names. </p></li></ul></div><p>Vendors of controlled platforms are strongly urged to follow the
-		recommendations given below for <a href="#uncontrolled" title="Uncontrolled Platforms (e.g. GNU/Linux, Windows, Windows CE)">
-		Uncontrolled Platforms</a> when adding a Khronos Group
-	    <em class="glossterm">API</em> to their platform.
-	  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="uncontrolled"></a>Uncontrolled Platforms (e.g. GNU/Linux, Windows, Windows CE)</h3></div></div></div><p> When providing implementations for platforms where the vendor 
-		does not provide standard linkage specifications, implementers
-		are urged to follow the following recommendations.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="headerfiles"></a> Header Files </h4></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="hfgeneral"></a>General</h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Use the Khronos provided header files (e.g., for OpenGL 
-				ES, <code class="filename">gl.h</code> &amp;
-				<code class="filename">egl.h</code>). If changes are
-				unavoidable, consider contributing your changes back to Khronos
-				by updating the standard header files in the Khronos Subversion
-				tree. </p></li><li><p> If you make your own header files and the platform is 
-				Windows, make sure they are suitable for use with
-				<a href="#gls_mfc"><em class="firstterm"><span class="acronym">MFC</span></em></a>.
-			   	For example 
-				<code class="code">#define EGL_DEFAULT_DISPLAY GetDC(0)</code>
-				is broken for MFC. You need to use 
-				<code class="code">::GetDC(0)</code>
-				because several MFC have their own 
-				<code class="code">GetDC(void)</code>
-				methods.</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="hfegl"></a>EGL</h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p> Package the EGL header files 
-				<code class="filename">egl.h</code>
-				and
-				<code class="filename">eglplatform.h</code>
-				in the folder 
-				<code class="filename">EGL</code>.
-			  </p></li><li><p> <code class="filename">eglplatform.h</code>
-			   	contains platform
-				dependent items and needs to be modified by the implementer.
-				In particular the
-				<span class="type">eglNativeDisplayType</span>, 
-				<span class="type">eglNativeWindowType</span>, and 
-				<span class="type">eglNativePixmapType</span>
-				typedefs must be defined as appropriate for the platform
-				(typically, they will be typedef'ed to corresponding types
-				in the native window system). Developer documentation should
-				mention the correspondence so that developers know what
-			   	parameters to pass to 
-				<code class="function">eglCreateWindowSurface</code>, 
-				<code class="function">eglCreatePixmapSurface</code>, and 
-				<code class="function">eglCopyBuffers</code>.
-			   	Documentation should also describe the format of the 
-				<em class="parameter"><code>display_id</code></em>
-				parameter to 
-				<code class="function">eglGetDisplay</code>,
-			   	since this is a platform-specific identifier.</p></li><li><p> Include 
-				<code class="filename">eglplatform.h</code>
-				in 
-				<code class="filename">egl.h</code>
-				thus: 
-				<code class="code">#include &lt;EGL/eglplatform.h&gt;</code>
-				. Do not use 
-				<code class="code">#include &lt;eglplatform.h&gt;</code>
-				because app. makefiles will then need 2 different 
-				<em class="parameter"><code>-I&lt;path&gt;</code></em>
-				options to find both include files. </p></li><li><p> Do not include 
-				<code class="filename">gl.h</code>
-				in 
-				<code class="filename">egl.h</code>
-				. </p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="hfgles1x"></a> OpenGL ES 1.x </h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p> Package the OpenGL ES header files 
-				<code class="filename">gl.h</code>
-				and 
-				<code class="filename">glplatform.h</code>
-				in the folder 
-				<code class="filename">GLES</code>
-				.  </p></li><li><p> <code class="filename">glplatform.h</code>
-				contains platform dependent items and may need to be
-				modified by the implementer. Implementers are encouraged
-				to provide their additions for newly supported platforms
-				to the Khronos Group for inclusion in the Adopters'
-				distribution.</p></li><li><p> For compatibility with GLES 1.0 implementations, include 
-				in 
-				<code class="filename">GLES</code>
-				a special 
-				<code class="filename">egl.h</code>
-				containing the following: 
-				</p><div class="informalexample"><pre class="programlisting">
-#include &lt;EGL/egl.h&gt;
-#include &lt;GLES/gl.h&gt;</pre></div><p>
-				This is because many early OpenGL ES 1.0 implementations
-				included 
-				<code class="filename">gl.h</code>
-				in 
-				<code class="filename">egl.h</code>
-				so many existing applications only include 
-				<code class="filename">egl.h</code>
-				. </p></li><li><p>The name <code class="filename">glu.h</code>
-				is reserved for future use by the Khronos Group.</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="hfgles2x"></a> OpenGL ES 2.x </h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>The core header files for OpenGL ES 2.x are called
-			   	<code class="filename">gl2.h</code> and
-			    <code class="filename">gl2platform.h</code> to
-			    keep them distinct from the GLES 1.x header files and enable
-			    application to use both versions.</p></li><li><p>The function declarations and constant definitions for
-			   	OpenGL ES 2.x are divided into 2 header files: 
-			    <code class="filename">gl2.h</code>
-			    declares and defines all the core functions and constants; 
-			    <code class="filename">gl2ext.h</code>
-				declares and defines functions and constants for all
-				Khronos approved extensions and can be used even if the
-				implementation doesn't provide a particular extension.</p><p>Functions and constants for Implementer
-				extensions should be declared and defined in an implementer's
-				own header file using names and constant values obtained from
-				the Khronos Group's Extension Registry.</p></li><li><p>Package all these header files in the folder
-			    <code class="filename">GLES2</code>.</p></li><li><p>The name <code class="filename">glu2.h</code>
-				is reserved for future use by the Khronos Group.</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="hfopenkode"></a>OpenKODE</h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Package the OpenKODE header files 
-		        <code class="filename">kd.h</code>
-		        and
-		        <code class="filename">kdplatform.h</code>
-		        in the folder 
-				<code class="filename">KD</code>.
-			  </p></li><li><p>Implementers are encouraged to code
-				<code class="filename">kd.h</code> such that it
-				includes as few as possible of the platform's include files,
-				and to avoid declaring C and POSIX standard functions. This
-				will ease the creation of portable OpenKODE applications,
-			   	and help stop non-portable code being added accidentally.
-			  </p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="hfopenvg"></a>OpenVG</h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Package the OpenVG header files 
-		        <code class="filename">openvg.h</code>
-		        and, when provided, 
-		        <code class="filename">vgu.h</code>
-		        in the folder 
-		        <code class="filename">VG</code>
-				.</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="hfsummary"></a>Header File Summary</h5></div></div></div><div class="table"><a name="id4713194"></a><p class="title"><b>Table 1. Header File Names and Locations</b></p><table summary="Header File Names and Locations" border="1"><colgroup><col align="left"><col align="left"><col align="left"><col align="left"><col align="left"></colgroup><thead><tr><th align="left"> API </th><th align="left"> Location </th><th align="left"> Header Files </th><th align="left"> How to include </th><th align="left"> Provider </th></tr></thead><tbody><tr><td rowspan="2" align="left" valign="top"> EGL 1.x </td><td rowspan="2" align="left" valign="top"> 
-					<code class="filename">EGL</code>
-				  </td><td align="left"> 
-					<code class="filename">egl.h</code>
-				  </td><td align="left"> 
-					<code class="code">#include &lt;EGL/egl.h&gt;</code>
-				  </td><td align="left">
-					Khronos
-				  </td></tr><tr><td align="left"> 
-					<code class="filename">eglplatform.h</code>
-					<sup>[<a name="id4713330" href="#ftn.id4713330">1</a>]</sup>
-				  </td><td align="left"> 
-					Included by <code class="filename">egl.h</code>
-				  </td><td align="left">
-					Vendor or Implementer
-				  </td></tr><tr><td rowspan="3" align="left" valign="top"> OpenGL ES 1.x </td><td rowspan="3" align="left" valign="top"> 
-					<code class="filename">GLES</code>
-				  </td><td align="left"> 
-					<code class="filename">gl.h</code>
-				  </td><td align="left"> 
-					<code class="code">#include &lt;GLES/gl.h&gt;</code>
-				  </td><td align="left">
-					Khronos
-				  </td></tr><tr><td align="left"> 
-					<code class="filename">glplatform.h</code>
-					<sup>[<a name="id4713439" href="#ftn.id4713439">2</a>]</sup>
-				  </td><td align="left"> 
-					Included by <code class="filename">gl.h</code>
-				  </td><td align="left">
-					Vendor or Implementer
-				  </td></tr><tr><td align="left">
-					<code class="filename">glu.h</code>
-				  </td><td colspan="2" align="center">
-					Reserved for future use
-				  </td></tr><tr><td rowspan="4" align="left" valign="top"> OpenGL ES 2.x </td><td rowspan="4" align="left" valign="top"> 
-					<code class="filename">GLES2</code>
-				  </td><td align="left"> 
-					<code class="filename">gl2.h</code>
-				  </td><td align="left"> 
-					<code class="code">#include &lt;GLES2/gl2.h&gt;</code>
-				  </td><td align="left">
-					Khronos
-				  </td></tr><tr><td align="left"> 
-					<code class="filename">gl2platform.h</code>
-				  </td><td align="left"> 
-					Included by <code class="filename">gl2.h</code>
-				  </td><td align="left">
-					Vendor or Implementer
-				  </td></tr><tr><td align="left"> 
-					<code class="filename">gl2ext.h</code>
-				  </td><td align="left"> 
-					<code class="code">#include &lt;GLES2/gl2ext.h&gt;</code>
-				  </td><td align="left">
-					Khronos
-				  </td></tr><tr><td align="left">
-					<code class="filename">glu2.h</code>
-				  </td><td colspan="2" align="center">
-					Reserved for future use
-				  </td></tr><tr><td rowspan="2" align="left" valign="top"> OpenKODE 1.x </td><td rowspan="2" align="left" valign="top"> 
-					<code class="filename">KD</code>
-				  </td><td align="left"> 
-					<code class="filename">kd.h</code>
-				  </td><td align="left"> 
-					<code class="code">#include &lt;KD/kd.h&gt;</code>
-				  </td><td align="left">
-					Khronos
-				  </td></tr><tr><td align="left"> 
-					<code class="filename">kdplatform.h</code>
-				  </td><td align="left"> 
-					Included by <code class="filename">kd.h</code>
-				  </td><td align="left">
-					Vendor or Implementer
-				  </td></tr><tr><td rowspan="2" align="left" valign="top"> OpenVG 1.x </td><td rowspan="2" align="left" valign="top"> 
-					<code class="filename">VG</code>
-				  </td><td align="left"> 
-					<code class="filename">openvg.h</code>
-				  </td><td align="left"> 
-					<code class="code">#include &lt;VG/openvg.h&gt;</code>
-				  </td><td align="left">
-					Khronos
-				  </td></tr><tr><td align="left"> 
-					<code class="filename">vgu.h</code>
-					<sup>[<a name="id4786686" href="#ftn.id4786686">3</a>]</sup>
-				  </td><td align="left"> 
-					<code class="code">#include &lt;VG/vgu.h&gt;</code>
-				  </td><td align="left">
-					Khronos
-				  </td></tr></tbody></table><div class="footnotes"><div class="footnote"><p><sup>[<a name="ftn.id4713330" href="#id4713330">1</a>] </sup>
-						Many early EGL implementations used
-						<code class="filename">egltypes.h</code>
-						instead of the now recommended
-						<code class="filename">eglplatform.h</code>
-						.</p></div><div class="footnote"><p><sup>[<a name="ftn.id4713439" href="#id4713439">2</a>] </sup>
-						<code class="filename">glplatform.h</code>
-						does not exist in many early implementations of
-						OpenGL ES 1.x. Platform dependent declarations were
-						included directly in <code class="filename">gl.h
-					  </code>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id4786686" href="#id4786686">3</a>] </sup>
-						Required, if the OpenVG utility library is provided.
-					  </p></div></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="notes"></a>Notes </h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>To find the include files, use appropriate compiler 
-			  options in the makefiles for your sample programs; e.g.
-			  <em class="parameter"><code>-I</code></em> (gcc, linux) or
-			  <em class="parameter"><code>/I</code></em> (Visual C++).
-			</p></li><li><p>Given the different IDEs &amp; compilers people use, 
-			  especially on Windows, it is not possible to recommend a system 
-			  location to place these include files. Where obvious choices 
-			  exist Khronos recommends implementers take advantage of them. 
-			</p></li><li><p>In particular, GNU/Linux implementations should
-			  follow the 
-			  <a href="http://www.pathname.com/fhs/" target="_top"> 
-				<em class="citetitle">Filesystem Hierarchy Standard</em>
-			  </a>
-			  for location of headers and libraries. 
-			</p></li></ul></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="libraries"></a>Libraries</h4></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>It is highly desirable to implement all
-			  <em class="glossterm">API</em> entry points as
-			  function calls. However in the OpenKODE core, macros or in-lines
-			  may be used instead of a function call provided the following
-			  rules are followed:
-			</p><div class="itemizedlist"><ul type="circle"><li><p>When calling a function, each argument must be evaluated
-				  exactly once (although the order of evaluation is
-				  undefined).</p></li><li><p>It must be possible to take the address of function.
-			    </p></li></ul></div></li><li><p>
-			  Except in cases where macros are allowed, ensure the
-			  <em class="glossterm">API</em> function
-			  names exported by your lib &amp; dll files match the function
-			  names specified by the Khronos standard for the
-			  <em class="glossterm">API</em> you are
-			  implementing. 
-		  </p></li></ul></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="lpackaging"></a>Packaging</h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p>OpenGL ES, EGL, OpenVG and OpenKODE entry points should
-				be packaged in separate libraries.</p></li><li><p>However to provide backward compatibility for existing
-				applications, two OpenGL ES 1.1 libraries should be provided:
-			   	one with and one without the EGL entry points.</p><p> 
-				<span class="emphasis"><em>Note: There are extant implementations of the dual 
-			  	OpenGL ES libraries demonstrating this is possible on Symbian, 
-			  	GNU/Linux, Win32 and WinCE.</em></span>
-		  	  </p><p>For OpenGL ES 2.x, only a library without EGL entry points 
-			    is needed.</p></li></ul></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="lnaming"></a>Naming</h5></div></div></div><p>Khronos recommends the library names shown in the following 
-			table: </p><div class="table"><a name="id4786950"></a><p class="title"><b>Table 2. Recommended Library Names</b></p><table summary="Recommended Library Names" border="1"><colgroup><col align="left"><col align="left"></colgroup><thead><tr><th align="left"> API/Entry Points </th><th align="left"> Name </th></tr></thead><tbody><tr><td align="left"> EGL </td><td align="left"> 
-					<code class="filename">libEGL.{lib,dll}</code>
-				  </td></tr><tr><td align="left"> OpenGL ES 1.x with EGL (Common Profile)</td><td align="left"> 
-					<code class="filename">libGLES_CM.{lib,dll}</code>
-					<sup>[<a name="fnreq" href="#ftn.fnreq">1</a>]</sup>
-					<sup>[<a name="fndepr" href="#ftn.fndepr">2</a>]</sup>
-				  </td></tr><tr><td align="left"> OpenGL ES 1.x with EGL (Lite Profile) </td><td align="left"> 
-					<code class="filename">libGLES_CL.{lib,dll}</code>
-					<sup>[<a href="#ftn.fnreq">1</a>]</sup>
-					<sup>[<a href="#ftn.fndepr">2</a>]</sup>
-				  </td></tr><tr><td align="left"> OpenGL ES 1.x without EGL </td><td align="left"> 
-					<code class="filename">libGLESv1_C[LM].{lib,dll}</code>
-					<sup>[<a name="fnsprev" href="#ftn.fnsprev">3</a>]</sup>
-				  </td></tr><tr><td align="left"> OpenGL ES 2.x without EGL </td><td align="left"> 
-					<code class="filename">libGLESv2.{lib,dll}</code>
-				  </td></tr><tr><td align="left"> </td><td align="left"> 
-					<code class="filename">libGLUESv1.{lib,dll}</code>
-					<sup>[<a name="fnreserved" href="#ftn.fnreserved">4</a>]</sup>
-				  </td></tr><tr><td align="left"> </td><td align="left"> 
-					<code class="filename">libGLUESv2.{lib,dll}</code>
-					<sup>[<a href="#ftn.fnreserved">4</a>]</sup>
-				  </td></tr><tr><td align="left"> OpenKODE </td><td align="left"> 
-					<code class="filename">libKD{lib,dll}</code>
-				  </td></tr><tr><td align="left"> OpenVG </td><td align="left"> 
-					<code class="filename">libOpenVG{lib,dll}</code>
-				  </td></tr><tr><td align="left"> OpenVG Utilities (when present) </td><td align="left"> 
-					<code class="filename">libOpenVGU.{lib,dll}</code>
-				  </td></tr></tbody></table><div class="footnotes"><div class="footnote"><p><sup>[<a name="ftn.fnreq" href="#fnreq">1</a>] </sup> These names are required for OpenGL ES 1.0 
-						and the libraries must contain the EGL entry points 
-						as detailed in Chapter 8, 
-						<span class="emphasis"><em>Packaging</em></span>,
-					   	of the OpenGL ES 1.0 specification.</p></div><div class="footnote"><p><sup>[<a name="ftn.fndepr" href="#fndepr">2</a>] </sup> These names are deprecated for OpenGL ES 1.1 
-						and beyond and should only be used for a library 
-						that includes the EGL entry points in order to support 
-						legacy applications. </p></div><div class="footnote"><p><sup>[<a name="ftn.fnsprev" href="#fnsprev">3</a>] </sup> 
-						<span class="emphasis"><em>The OpenGL ES 1.1 specification at revision 1.1.09
-						  was updated to specify these alternate names for GLES
-						  libraries that do not contain the EGL entry points.
-						</em></span>
-					  </p></div><div class="footnote"><p><sup>[<a name="ftn.fnreserved" href="#fnreserved">4</a>] </sup>These names are reserved for future use by the
-						Khronos Group.</p></div></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="notes2"></a>Notes </h5></div></div></div><div class="itemizedlist"><ul type="disc"><li><p><span class="emphasis"><em>The extensions
-				<code class="filename">.lib</code>
-				&amp; <code class="filename">.dll</code>
-				are allowed to vary by platform. On GNU/Linux for example 
-				they should be .a and .so to match that platform's
-				conventions.</em></span></p></li></ul></div></div></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4787332"></a>Acknowledgements</h2></div></div></div><p class="ackno"> 
-	<p>Thanks to all the members of the Khronos Group for their input
-	  and in particular to the following:
-	</p>
-	<table class="simplelist" border="0" summary="Simple list"><tr><td>
-	    <span class="othercredit"><span class="firstname">Petri</span> <span class="surname">Kero</span></span>
-	  </td></tr><tr><td>
-	    <span class="othercredit"><span class="firstname">Jon</span> <span class="surname">Leech</span></span>
-	  </td></tr><tr><td> 
-		<span class="othercredit"><span class="firstname">Robert</span> <span class="surname">Palmer</span></span>
-	  </td></tr><tr><td> 
-		<span class="othercredit"><span class="firstname">Jani</span> <span class="surname">Vaarala</span></span>
-	  </td></tr><tr><td> 
-		<span class="othercredit"><span class="firstname">Hans-Martin</span> <span class="surname">Will</span></span>
-	  </td></tr></table>
-  </p></div><div class="glossary"><div class="titlepage"><div><div><h2 class="title"><a name="id4787444"></a>Glossary</h2></div></div></div><dl><dt><a name="gls_abi"></a>Application Binary Interface (ABI)</dt><dd><p>
-		  The low-level interface between a compiled application program and the
-		  operating system or its libraries.
-		</p></dd><dt><a name="gls_api"></a>Application Programming Interface (API)</dt><dd><p>
-		  The source-code level interface between an application program
-		  and the operating system or its libraries.
-		</p></dd><dt><a name="gls_implementer"></a>Implementer</dt><dd><p>
-		  A company or person who implements a Khronos API.
-		</p></dd><dt><a name="gls_mfc"></a>Microsoft Foundation Classes (MFC)</dt><dd><p>
-		  A set of C++ utility classes provided by Microsoft Corporation.
-		</p></dd><dt><a name="gls_vendor"></a>Platform Vendor (Vendor)</dt><dd><p>
-		  A company providing an operating system platform that includes an
-		  <em class="glossterm">ABI</em>
-		  specification for one or more Khronos APIs. E.g., Qualcomm (OpenGL ES
-		  on BREW) and Symbian (OpenGL ES on Symbian OS). A Vendor may also be
-		  an <em class="glossterm">Implementer.</em>
-		</p></dd></dl></div></div></body></html>