summaryrefslogtreecommitdiff
path: root/docs/opengles.html
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2010-05-07 14:13:08 +0800
committerChia-I Wu <olv@lunarg.com>2010-05-08 14:58:59 +0800
commit2e3c4e47842905bc7f3d506e865cc77f7463166b (patch)
tree2d7b71355d0a97436ba7d08956a9075cb21cd105 /docs/opengles.html
parent56530c90976e96694a034a04925affd806860f09 (diff)
docs: Update EGL and OpenGL ES docs.
Update to reflect recent gles and mapi works.
Diffstat (limited to 'docs/opengles.html')
-rw-r--r--docs/opengles.html69
1 files changed, 35 insertions, 34 deletions
diff --git a/docs/opengles.html b/docs/opengles.html
index fc41e6771c1..9984a79b1b2 100644
--- a/docs/opengles.html
+++ b/docs/opengles.html
@@ -1,68 +1,69 @@
<html>
-<title>OpenGL ES State Trackers</title>
+<title>OpenGL ES</title>
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
<body>
-<h1>OpenGL ES State Trackers</h1>
+<h1>OpenGL ES</h1>
-<p>The current version of the OpenGL ES state trackers implement OpenGL ES 1.1 and OpenGL ES 2.0.
-More informations about OpenGL ES can be found at
-<a href="http://www.khronos.org/opengles/" target="_parent">
-http://www.khronos.org/opengles/</a>.</p>
-
-<p>The OpenGL ES state trackers depends on the Gallium architecture and a
-working EGL implementation. Please refer to <a href="egl.html">Mesa EGL</a>
-for more information about EGL.</p>
+<p>Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More informations about
+OpenGL ES can be found at <a href="http://www.khronos.org/opengles/"
+target="_parent"> http://www.khronos.org/opengles/</a>.</p>
+<p>OpenGL ES depends on a working EGL implementation. Please refer to
+<a href="egl.html">Mesa EGL</a> for more information about EGL.</p>
<h2>Build the Libraries</h2>
<ol>
-<li>Run <code>configure</code> with <code>--with-state-trackers=egl,es</code> and enable the Gallium driver for your hardware.</li>
+<li>Run <code>configure</code> with <code>--enable-gles-overlay</code> and enable the Gallium driver for your hardware.</li>
+<li>Build and install Mesa as usual.</li>
+</ol>
+
+Alternatively, if XCB-DRI2 is installed on the system, one can use
+<code>egl_dri2</code> EGL driver with OpenGL|ES-enabled DRI drivers
+
+<ol>
+<li>Run <code>configure</code> with <code>--enable-gles1 --enable-gles2</code>.</li>
<li>Build and install Mesa as usual.</li>
</ol>
-<p>It will install libGLESv1_CM, libGLESv2, libEGL, and one or more EGL drivers for your hardware.</p>
+<p>Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more
+EGL drivers for your hardware.</p>
+
<h2>Run the Demos</h2>
-<p>There are some demos in <code>progs/es1/</code> and <code>progs/es2/</code>. You can use them to test your build. For example,</p>
+<p>There are some demos in <code>progs/egl/</code>. You can use them to test
+your build. For example,</p>
<pre>
- $ cd progs/es1/xegl
+ $ cd progs/egl/eglut
+ $ make
+ $ cd ../opengles1
$ make
- $ ./torus
+ $ ./torus_x11
</pre>
<h2>Developers</h2>
-<p>The core of OpenGL ES state trackers is the ES overlay. It is located in
-<code>src/mesa/es/</code>.</p>
-
-<h3>Structure</h3>
+<h3>Internal Libraries</h3>
-<p>The ES overlay uses as much code as possible from Mesa. It has its own glapi XMLs to describe the APIs of OpenGL ES. The ES overlay can be built parallelly with Mesa, and they will give</p>
-
-<table border="1">
- <tr><td>Library Name</td><td>Usage</td><td>Source</td></tr>
- <tr><td>libmesagallium.a</td><td>OpenGL state tracker</td><td>Mesa</td></tr>
- <tr><td>libes1gallium.a</td><td>OpenGL ES 1.x state tracker</td><td>ES overlay</td></tr>
- <tr><td>libes2gallium.a</td><td>OpenGL ES 2.x state tracker</td><td>ES overlay</td></tr>
- <tr><td>libglapi.a</td><td>OpenGL API</td><td>Mesa</td></tr>
- <tr><td>libes1api.a</td><td>OpenGL ES 1.x API</td><td>ES overlay</td></tr>
- <tr><td>libes2api.a</td><td>OpenGL ES 2.x API</td><td>ES overlay</td></tr>
+<table border="1" style="text-align: center;">
+ <tr><td>Library Name</td><td>Used By</td><td>Enabled</td><td>OpenGL</td><td>OpenGL ES 1.x</td><td>OpenGL ES 2.x</td></tr>
+ <tr><td><code>src/mesa/libmesa.a</td><td>Classic DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
+ <tr><td><code>src/mesa/libmesagallium.a</td><td>Gallium EGL and DRI drivers</td><td>y</td><td>y</td><td>--enable-gles1</td><td>--enable-gles2</td></tr>
+ <tr><td><code>src/mesa/es/libes1gallium.a</td><td>Gallium EGL drivers</td><td>--enable-gles-overlay</td><td>n</td><td>y</td><td>n</td></tr>
+ <tr><td><code>src/mesa/es/libes2gallium.a</td><td>Gallium EGL drivers</td><td>--enable-gles-overlay</td><td>n</td><td>n</td><td>y</td></tr>
</table>
-<p>The OpenGL ES state trackers and APIs are then used by <code>src/gallium/state_trackers/es/</code> to create the final libraries.</p>
-
<h3>Dispatch Table</h3>
-<p>The ES overlay uses an additional indirection when dispatching fucntions</p>
+<p>OpenGL ES has an additional indirection when dispatching fucntions</p>
<pre>
Mesa: glFoo() --&gt; _mesa_Foo()
- ES overlay: glFoo() --&gt; _es_Foo() --&gt; _mesa_Foo()
+ OpenGL ES: glFoo() --&gt; _es_Foo() --&gt; _mesa_Foo()
</pre>
<p>The indirection serves several purposes</p>
@@ -73,7 +74,7 @@ for more information about EGL.</p>
<li>When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.</li>
</ul>
-<p>Other than the last case, the ES overlay uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
+<p>Other than the last case, OpenGL ES uses <code>APIspec.xml</code> to generate functions to check and/or converts the arguments.</p>
</body>
</html>