diff options
Diffstat (limited to 'glew/auto/EGL-Registry/specs')
-rw-r--r-- | glew/auto/EGL-Registry/specs/EGLTechNote0001.html | 110 | ||||
-rw-r--r-- | glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png | bin | 0 -> 145052 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.0.pdf | bin | 0 -> 238654 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.1.pdf | bin | 0 -> 301346 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.2.pdf | bin | 0 -> 478979 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.3.pdf | bin | 0 -> 516479 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.4.pdf | bin | 0 -> 342048 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf | bin | 0 -> 347659 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.5.pdf | bin | 0 -> 433708 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf | bin | 0 -> 435618 bytes | |||
-rw-r--r-- | glew/auto/EGL-Registry/specs/igstyle.css | 185 | ||||
-rw-r--r-- | glew/auto/EGL-Registry/specs/legal.html | 34 | ||||
-rw-r--r-- | glew/auto/EGL-Registry/specs/legal.xhtml | 36 |
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, &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 Binary files differnew file mode 100644 index 0000000..0793268 --- /dev/null +++ b/glew/auto/EGL-Registry/specs/Khronos-1600-Transparent-May07.png diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf Binary files differnew file mode 100644 index 0000000..82c5cd0 --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.0.pdf diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf Binary files differnew file mode 100644 index 0000000..0ce2eea --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.1.pdf diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf Binary files differnew file mode 100644 index 0000000..53fbf53 --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.2.pdf diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf Binary files differnew file mode 100644 index 0000000..5535fb3 --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.3.pdf diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf Binary files differnew file mode 100644 index 0000000..1032035 --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.4.pdf diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf Binary files differnew file mode 100644 index 0000000..c8f474a --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.4.withchanges.pdf diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf Binary files differnew file mode 100644 index 0000000..7206fe4 --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.5.pdf diff --git a/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf b/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf Binary files differnew file mode 100644 index 0000000..056d63a --- /dev/null +++ b/glew/auto/EGL-Registry/specs/eglspec.1.5.withchanges.pdf 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>™</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>™</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> |