aboutsummaryrefslogtreecommitdiff
path: root/glew/auto/EGL-Registry/specs
diff options
context:
space:
mode:
Diffstat (limited to 'glew/auto/EGL-Registry/specs')
-rw-r--r--glew/auto/EGL-Registry/specs/EGLTechNote0001.html110
-rw-r--r--glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.pngbin0 -> 145052 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.0.pdfbin0 -> 238654 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.1.pdfbin0 -> 301346 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.2.pdfbin0 -> 478979 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.3.pdfbin0 -> 516479 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.4.pdfbin0 -> 342048 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdfbin0 -> 347659 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.5.pdfbin0 -> 433708 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdfbin0 -> 435618 bytes
-rw-r--r--glew/auto/EGL-Registry/specs/igstyle.css185
-rw-r--r--glew/auto/EGL-Registry/specs/legal.html34
-rw-r--r--glew/auto/EGL-Registry/specs/legal.xhtml36
13 files changed, 365 insertions, 0 deletions
diff --git a/glew/auto/EGL-Registry/specs/EGLTechNote0001.html b/glew/auto/EGL-Registry/specs/EGLTechNote0001.html
new file mode 100644
index 0000000..ed98604
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/EGLTechNote0001.html
@@ -0,0 +1,110 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>EGL Technical Note #1 - EGL 1.4 and Ancillary Buffer Preservation</title><link rel="stylesheet" href="igstyle.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.1"><meta name="description" content="Summarizes ancillary buffer preservation issues across eglSwapBuffers, including recent changes to behavior defined by the EGL 1.4 Specification."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="article" title="EGL Technical Note #1 - EGL 1.4 and Ancillary Buffer Preservation"><div class="titlepage"><div><div><h2 class="title"><a name="id2598382"></a>EGL Technical Note #1 - EGL 1.4 and Ancillary Buffer Preservation</h2></div><div><p class="edition"> First Edition</p></div><div><p class="releaseinfo"></p></div><div><div class="authorgroup"><div class="editor"><h4 class="editedby">Edited by</h4><h3 class="editor"><span class="firstname">Jon</span> <span class="surname">Leech</span></h3><div class="affiliation"><span class="orgname">Khronos Group<br></span></div></div></div></div><div><p class="copyright">Copyright © 2010 The Khronos Group Inc.</p></div><div><a href="legal.html">Legal Notice</a></div><div><div class="abstract" title="Abstract"><p class="title"><b>Abstract</b></p><p> Summarizes <em class="glossterm"><a class="glossterm" href="#ancillary" title="Ancillary Buffers">ancillary
+ buffer</a></em> preservation issues across
+ <code class="code">eglSwapBuffers</code>, including recent changes to
+ behavior defined by the EGL 1.4 Specification. </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#introduction">1. Introduction</a></span></dt><dt><span class="section"><a href="#usecases">2. Use Cases for Buffer Preservation </a></span></dt><dt><span class="section"><a href="#bufquery">3. Color Buffer Preservation Queries and Controls </a></span></dt><dt><span class="section"><a href="#nocontrol">4. No Control of Auxillary Buffer Preservation; Compatibility
+ Issues </a></span></dt><dt><span class="section"><a href="#extensions">5. EGL Extensions for Control of Ancillary Buffer Preservation
+ </a></span></dt><dt><span class="appendix"><a href="#id2602337">A. Glossary</a></span></dt><dt><span class="appendix"><a href="#id2595698">B. Document History</a></span></dt><dt><span class="appendix"><a href="#id2585500">C. Acknowledgements</a></span></dt></dl></div><div class="mediaobject" align="center"><img src="Khronos-1600-Transparent-May07.png" align="middle" width="270" alt="Khronos Group logo"></div><div class="section" title="1. Introduction"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction"></a>1. Introduction</h2></div></div></div><p> Calling <code class="code">eglSwapBuffers</code> may or may not result in
+ the preservation of the contents of the color buffer and
+ ancillary buffers (depth, stencil, and alpha mask) of the
+ surface being swapped. Some applications may rely on buffer
+ contents being preserved. This note discusses scenarios in
+ which buffer preservation is desirable, describes all the EGL
+ entry points and attributes relevant to buffer preservation,
+ and describes a change in preservation behavior made in the
+ <a class="ulink" href="http://www.khronos.org/registry/egl/" target="_top"> EGL 1.4
+ Specification </a> update of February 23, 2010. This
+ change may require changes to certain applications which rely
+ on ancillary buffer preservation and are being moved to new
+ platforms or new EGL implementations. </p><p> Many applications do not require buffer preservation, since
+ they clear all buffers being used and completely redraw their
+ contents for each frame. Such applications need not consider
+ the issues discussed in this note. </p></div><div class="section" title="2.  Use Cases for Buffer Preservation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="usecases"></a>2.  Use Cases for Buffer Preservation </h2></div></div></div><p> An example of the use of buffer preservation is an
+ application which wishes to build up an image step by step by
+ drawing multiple layers, and to display the partial images
+ resulting from each each successive layer being drawn.
+ </p><p> If color and ancillary buffer contents are known to be
+ preserved across <code class="code">eglSwapBuffers</code>, such an
+ application can construct and display each step by drawing
+ only the most recent layer and performing
+ <code class="code">eglSwapBuffers</code>. </p><p> If buffer contents are not known to be preserved, the
+ application can instead, for each frame being displayed,
+ redraw all layers up to the most recent. Alternatively, the
+ application may explicitly save the contents of required
+ buffers by reading them back (with e.g.
+ <code class="code">glReadPixels</code>) prior to
+ <code class="code">eglSwapBuffers</code>, and restore them (with e.g.
+ <code class="code">glDrawPixels</code> or drawing a textured quad) prior
+ to drawing the next layer. However, both of these approaches
+ are likely to incur significant performance penalties.
+ </p></div><div class="section" title="3.  Color Buffer Preservation Queries and Controls"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="bufquery"></a>3.  Color Buffer Preservation Queries and Controls </h2></div></div></div><p> To determine if <code class="code">eglSwapBuffers</code> will preserve
+ color buffer contents of a surface, call </p><p> <code class="code">
+ eglQuerySurface(dpy, surface, EGL_SWAP_BEHAVIOR, &amp;value);
+ </code> </p><p> where <code class="code">surface</code> is the <span class="type">EGLSurface</span>
+ being queried, <code class="code">dpy</code> is the
+ <span class="type">EGLDisplay</span> <code class="code">surface</code> belongs to, and
+ <code class="code">value</code> is a pointer to an <span class="type">EGLint</span>. On
+ success, <code class="code">*value</code> will contain either
+ <code class="constant">EGL_BUFFER_PRESERVED</code>, indicating that
+ color buffer contents are preserved, or
+ <code class="constant">EGL_BUFFER_DESTROYED</code>, indicating that
+ color buffer contents are not preserved. </p><p> Some surfaces allow applications to control whether or not
+ the color buffer contents are preserved. If
+ <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> is set
+ in the <code class="constant">EGL_SURFACE_TYPE</code> attribute of the
+ <span class="type">EGLConfig</span> used to create <code class="code">surface</code>,
+ then calling </p><p> <code class="code">
+ eglSurfaceAttrib(dpy, surface, EGL_SWAP_BEHAVIOR,
+ EGL_BUFFER_PRESERVED)
+ </code> </p><p> will cause color buffer contents to be preserved across
+ future calls to <code class="code">eglSwapBuffers</code>, while calling
+ </p><p> <code class="code">
+ eglSurfaceAttrib(dpy, surface, EGL_SWAP_BEHAVIOR,
+ EGL_BUFFER_DESTOYED)
+ </code> </p><p> will cause color buffer contents to not be preserved. When
+ this control is available, there may be a significant
+ performance penalty for requesting color buffer preservation.
+ </p><p> If <code class="constant">EGL_SWAP_BEHAVIOR_PRESERVED_BIT</code> is
+ not set in the <code class="constant">EGL_SURFACE_TYPE</code>
+ attribute, then control of color buffer preservation is not
+ allowed for this surface. In this case, calling
+ <code class="code">eglSurfaceAttrib</code> with <code class="code">attribute</code>
+ <code class="constant">EGL_SWAP_BEHAVIOR</code> will fail and generate
+ an <code class="constant">EGL_BAD_MATCH</code> error. </p></div><div class="section" title="4.  No Control of Auxillary Buffer Preservation; Compatibility Issues"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="nocontrol"></a>4.  No Control of Auxillary Buffer Preservation; Compatibility
+ Issues </h2></div></div></div><p> In versions of the EGL 1.4 Specification prior to February 23,
+ 2010, the specification implied that the color buffer
+ preservation behavior described above also applied to ancillary
+ (depth, stencil, and alpha mask) buffer contents. The
+ Specification of February 23, 2010 revises the buffer
+ preservation queries and controls and explicitly states that
+ they only apply to the color buffer. </p><p> As a result, the EGL 1.4 API has no way to determine or
+ control whether <code class="code">eglSwapBuffers</code> will preserve
+ ancillary buffer contents. Some implementations do so and
+ some do not. We know that this is a backwards-incompatible
+ change. The change was made because some common hardware
+ incurs very high penalties for ancillary buffer preservation.
+ Despite what prior versions of the Specification said, EGL
+ implementations on these devices often did not preserve
+ ancillary buffers. Khronos felt that developers would be
+ better off if we explicitly acknowledged this situation.
+ </p><p> This change in the Specification is not expected to result in
+ changes to implementations, and therefore driver updates are
+ unlikely to adversely affect any application which relies on
+ ancillary buffer preservation. However, developers of such
+ applications must be aware that when porting to another
+ platform, they may find that ancillary buffer contents are
+ not preserved. </p></div><div class="section" title="5.  EGL Extensions for Control of Ancillary Buffer Preservation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="extensions"></a>5.  EGL Extensions for Control of Ancillary Buffer Preservation
+ </h2></div></div></div><p> The EGL Working Group is currently developing an EGL extension
+ which will allow explicitly control over ancillary buffer
+ preservation in a fashion similar to color buffer preservation.
+ We expect this extension specification to be completed later in
+ 2010. Vendors will then choose whether or not to implement the
+ extension in their drivers. The extension specification will
+ be published in the
+ <a class="ulink" href="http://www.khronos.org/registry/egl/" target="_top"> Khronos
+ Registry</a> when it is finalized. </p></div><div class="appendix" title="A. Glossary"><h2 class="title" style="clear: both"><a name="id2602337"></a>A. Glossary</h2><div class="glosslist"><dl><dt><a name="ancillary"></a>Ancillary Buffers</dt><dd><p> Buffers of an <span class="type">EGLSurface</span> other than the
+ color buffer. These may include the depth and/or stencil
+ buffers for use by OpenGL ES, and the alpha mask buffer for
+ use by OpenVG. </p></dd></dl></div></div><div class="appendix" title="B. Document History"><h2 class="title" style="clear: both"><a name="id2595698"></a>B. Document History</h2><div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 1.0</td><td align="left">March 30, 2010</td><td align="left">jpl</td></tr><tr><td class="revremark" align="left" colspan="3">Public Release.</td></tr></table></div></div><div class="appendix" title="C. Acknowledgements"><h2 class="title" style="clear: both"><a name="id2585500"></a>C. Acknowledgements</h2><p>Members of the Khronos EGL Working Group, especially Acorn
+ Pooley, Ben Bowman, Ian Romanick, Mark Callow, and Maurice Ribble.
+ Additional thanks to Mark Callow for the Docbook stylesheets and
+ build process used to build this document</p></div></div></body></html>
diff --git a/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png b/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png
new file mode 100644
index 0000000..0793268
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf
new file mode 100644
index 0000000..82c5cd0
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf
new file mode 100644
index 0000000..0ce2eea
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf
new file mode 100644
index 0000000..53fbf53
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf
new file mode 100644
index 0000000..5535fb3
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf
new file mode 100644
index 0000000..1032035
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf
new file mode 100644
index 0000000..c8f474a
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf
new file mode 100644
index 0000000..7206fe4
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf
new file mode 100644
index 0000000..056d63a
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf
Binary files differ
diff --git a/glew/auto/EGL-Registry/specs/igstyle.css b/glew/auto/EGL-Registry/specs/igstyle.css
new file mode 100644
index 0000000..447b0df
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/igstyle.css
@@ -0,0 +1,185 @@
+/* vi: set sw=2 ts=4: */
+
+/*
+ $HeadURL: https://cvs.khronos.org/svn/repos/util/trunk/doc/iguide/igstyle.css $
+ $Revision: 7453 $
+ $Author: markc $
+*/
+
+body {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-weight: normal;
+ color: #333333;
+ background-color: white;
+ margin: 4em;
+ max-width: 50em;
+}
+
+h1 {
+ color: #00A6A6;
+}
+
+h2, h3, h4, h5, h6 {
+ color: #146A68;
+}
+
+/* Set space between editedby and editor to 0.5em.
+ * editor margin-top contributes to this.
+ */
+h4.editedby {
+ margin-bottom: 0.5em;
+}
+
+/* Remove spaces between editedby & editor and editor & affiliation.
+ * affiliation is a div so there's no top-margin to fix.
+ */
+h3.editor {
+ margin-top: 0;
+ /* color: #333333; */
+ margin-bottom: 0;
+}
+
+/* Remove space between copyright and legal notice lines.
+ * Legal notice is in a div so there's no top-margin to fix.
+ */
+p.copyright {
+ margin-bottom: 0;
+}
+
+/* Remove space between edition, docrev & releaseinfo.*/
+p.edition {
+ margin-bottom: 0;
+}
+
+p.docrev {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+p.releaseinfo {
+ margin-top: 0;
+}
+
+p.title {
+ color: #146A68;
+}
+
+a {
+ text-decoration: none;
+}
+
+/* The following a: pseudo-class order is necessary in
+ * order to be effective.
+ */
+a:link {
+ color: #009999;
+}
+
+a:visited {
+ color: #006699;
+}
+
+a:hover {
+ color: #00CCCC;
+}
+
+a:active {
+ color: #0000FF;
+}
+
+code.code {
+ white-space: nowrap;
+}
+
+/* Increase space before abstract. */
+div.abstract > p.title {
+ margin-top: 3em;
+
+}
+
+div.footnote {
+ font-size: small;
+}
+
+div.legalnotice {
+ font-size: x-small;
+}
+
+div.article > div.titlepage {
+ text-align: center;
+}
+
+table {
+ border-collapse: collapse;*/
+ /*border-spacing: 0;*/
+ border-style: ridge;
+}
+
+td {
+ padding: 0.3em;
+}
+
+th {
+ padding: 0.3em;
+ /* background-color: #FFDEAD; */
+ background-color: #EBD8AF;
+}
+
+th:first-child {
+ /* background-color: #EFEFEF; */
+ background-color: #EBE57B;
+}
+
+.informalexample {
+ /*background-color: #D7D9D9;*/
+ background-color: #EBEBEB;
+ border: thin dashed #146A68;
+}
+
+/* override width="100%" set by xls style sheet. */
+div.revhistory > table {
+ width: auto;
+ border: thin solid;
+ font-size: small;
+ background-color: #EBEBEB;
+}
+
+div.revhistory > table th {
+ border-bottom: thin solid;
+}
+
+div.revhistory > table td {
+ border: thin dotted;
+}
+
+div.revhistory > table td.revremark {
+ border-bottom: thin solid;
+}
+
+.remark {
+ background-color: yellow;
+ color: maroon;
+}
+
+/* Haven't found a way to select .remark *except* when it's a child of
+ * .releaseinfo so I've had to add this. I tried the negation
+ * pseudo-operator without success.
+.releaseinfo .remark {
+ background-color: white;
+ color: #333333;
+}
+*/
+
+/* Selector notes:
+ * See http://css.maxdesign.com.au/selectutorial/selectors_adjacent.htm
+ *
+ * A B selects a B that is a descendant of A.
+ * A > B selects a B that is a direct child of A.
+ * A + B selects a B that immediately follows an A where A & B are siblings.
+ * #foo is an id selector; can do A#foo to select an A with id="foo".
+ * .bar is a class selector; can do A.bar to select an A with class="bar".
+ * A[attrib<=value>] is an attribute selector. It selects an A with "attrib"
+ * specified. Optionally a specific attribute value can also be specified.
+ * A:b is pseudo-element or pseudo-class selector. Examples are first-child,
+ * visited, hover, first-line, first-letter.
+ */
diff --git a/glew/auto/EGL-Registry/specs/legal.html b/glew/auto/EGL-Registry/specs/legal.html
new file mode 100644
index 0000000..1cc20b4
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/legal.html
@@ -0,0 +1,34 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Legal Notice</title><link rel="stylesheet" href="igstyle.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="legalnotice" title="Legal Notice"><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><sup>&#8482;</sup> is a trademark of The
+ Khronos Group Inc. <span class="trademark">OpenGL</span><sup>®</sup> is a
+ registered trademark, and <span class="trademark">OpenGL
+ ES</span><sup>&#8482;</sup>is a trademark, of Silicon Graphics, Inc. All other marks
+ are the property of their respective owners.</p></div></body></html>
diff --git a/glew/auto/EGL-Registry/specs/legal.xhtml b/glew/auto/EGL-Registry/specs/legal.xhtml
new file mode 100644
index 0000000..0102d61
--- /dev/null
+++ b/glew/auto/EGL-Registry/specs/legal.xhtml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Legal Notice</title><link rel="stylesheet" href="igstyle.css" type="text/css" /><meta name="generator" content="DocBook XSL Stylesheets V1.74.0" /></head><body><div class="legalnotice"><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><sup xmlns="">â„¢</sup> is a trademark of The
+ Khronos Group Inc. <span class="trademark">OpenGL</span><sup xmlns="">®</sup> is a
+ registered trademark, and <span class="trademark">OpenGL
+ ES</span><sup xmlns="">â„¢</sup>is a trademark, of Silicon Graphics, Inc. All other marks
+ are the property of their respective owners.</p></div></body></html>