docs: Update egl and openvg docs.

This commit is contained in:
Chia-I Wu 2010-10-28 17:25:07 +08:00
parent be5f34a053
commit c6320c5eb2
2 changed files with 28 additions and 48 deletions

View File

@ -32,14 +32,14 @@ cards.</p>
the Gallium driver for your hardware. For example</p> the Gallium driver for your hardware. For example</p>
<pre> <pre>
$ ./configure --enable-gles-overlay --with-state-trackers=egl,vega --enable-gallium-intel $ ./configure --enable-gles-overlay --enable-openvg --enable-gallium-intel
</pre> </pre>
<p>The main library and OpenGL is enabled by default. The first option enables <p>The main library and OpenGL is enabled by default. The first option enables
<a href="opengles.html">OpenGL ES 1.x and 2.x</a>. The <code>egl</code> state <a href="opengles.html">OpenGL ES 1.x and 2.x</a>. The second option enables
tracker is needed by a number of EGL drivers. EGL drivers will be covered <a href="openvg.html">OpenVG</a>.
later. The <a href="openvg.html">vega state tracker</a> provides OpenVG </p>
1.x.</p>
</li> </li>
<li>Build and install Mesa as usual.</li> <li>Build and install Mesa as usual.</li>
@ -84,19 +84,10 @@ only be built with SCons.</p>
</li> </li>
<li><code>--with-state-trackers</code>
<p>The argument is a comma separated string. It is usually used to specify the
rendering APIs, such as OpenVG, to build. But it is also used to specify
<code>egl</code> state tracker that <code>egl_gallium</code> depends on.</p>
</li>
<li><code>--enable-gles-overlay</code> <li><code>--enable-gles-overlay</code>
<p>OpenGL and OpenGL ES are not controlled by <p>OpenGL is built by default. To build OpenGL ES, this option must be
<code>--with-state-trackers</code>. OpenGL is always built. To build OpenGL explicitly given.</p>
ES, this option must be explicitly given.</p>
</li> </li>
@ -108,6 +99,12 @@ one big library that supports multiple APIs.</p>
</li> </li>
<li><code>--enable-openvg</code>
<p>OpenVG must be explicitly enabled by this option.</p>
</li>
</ul> </ul>
<h2>Use EGL</h2> <h2>Use EGL</h2>
@ -141,7 +138,8 @@ specific driver. This variable is ignored for setuid/setgid binaries.</p>
<p><code>egl_gallium</code> dynamically loads hardware drivers and client API <p><code>egl_gallium</code> dynamically loads hardware drivers and client API
modules found in <code>EGL_DRIVERS_PATH</code>. Thus, specifying this variable modules found in <code>EGL_DRIVERS_PATH</code>. Thus, specifying this variable
alone is not sufficient for <code>egl_gallium</code> for uninstalled build.</p> alone is not sufficient for <code>egl_gallium</code> for an uninstalled
build.</p>
</li> </li>
@ -177,7 +175,7 @@ variable to true forces the use of software rendering.</p>
<p>This driver is based on Gallium3D. It supports all rendering APIs and <p>This driver is based on Gallium3D. It supports all rendering APIs and
hardwares supported by Gallium3D. It is the only driver that supports OpenVG. hardwares supported by Gallium3D. It is the only driver that supports OpenVG.
The supported platforms are X11, KMS, FBDEV, and GDI.</p> The supported platforms are X11, DRM, FBDEV, and GDI.</p>
</li> </li>
@ -193,16 +191,8 @@ is not available in GLX or GLX extensions.</p>
<p>This driver supports the X Window System as its window system. It functions <p>This driver supports the X Window System as its window system. It functions
as a DRI2 driver loader. Unlike <code>egl_glx</code>, it has no dependency on as a DRI2 driver loader. Unlike <code>egl_glx</code>, it has no dependency on
<code>libGL</code>. It talks to the X server directly using DRI2 protocol.</p> <code>libGL</code>. It talks to the X server directly using (XCB-)DRI2
protocol.</p>
</li>
<li><code>egl_dri</code>
<p>This driver lacks maintenance and does <em>not</em> build. It is similiar
to <code>egl_dri2</code> in that it functions as a DRI(1) driver loader. But
unlike <code>egl_dri2</code>, it supports Linux framebuffer devices as its
window system and supports EGL_MESA_screen_surface extension. As DRI1 drivers
are phasing out, it might eventually be replaced by <code>egl_dri2</code>.</p>
</li> </li>
</ul> </ul>
@ -295,7 +285,6 @@ should as well lock the display before using it.
<ul> <ul>
<li>Pass the conformance tests</li> <li>Pass the conformance tests</li>
<li>Reference counting in main library?</li>
<li>Mixed use of OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is supported. But <li>Mixed use of OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is supported. But
which one of <code>libGL.so</code>, <code>libGLESv1_CM.so</code>, and which one of <code>libGL.so</code>, <code>libGLESv1_CM.so</code>, and
<code>libGLESv2.so</code> should an application link to? Bad things may happen <code>libGLESv2.so</code> should an application link to? Bad things may happen

View File

@ -26,36 +26,27 @@ Please refer to <a href="egl.html">Mesa EGL</a> for more information about EGL.
<h2>Building the library</h2> <h2>Building the library</h2>
<ol> <ol>
<li>Build Mesa3D with Gallium3D. Any build that builds Gallium3D libraries, EGL, and Gallium EGL drivers will suffice</li> <li>Run <code>configure</code> with <code>--enable-openvg</code>. If you do
<li>cd src/gallium/state_trackers/vega; make</li> not need OpenGL, you can add <code>--disable-opengl</code> to save the
<li>The last step will build libOpenVG library. You can add the libdir to LD_LIBRARY_PATH or install libOpenVG</li> compilation time.</li>
<li>Build and install Mesa as usual.</li>
</ol> </ol>
<h3>Sample build</h3> <h3>Sample build</h3>
A sample build looks as follows: A sample build looks as follows:
<pre> <pre>
$ ./configure --with-state-trackers=egl,vega --enable-gallium-intel $ ./configure --disable-opengl --enable-openvg
$ make $ make
$ make install $ make install
</pre> </pre>
<p>It will install <code>libOpenVG.so</code>, <code>libEGL.so</code>, and one
or more EGL drivers.</p>
<h2>OpenVG Demos</h2> <h2>OpenVG Demos</h2>
<p> <p>OpenVG demos can be found in mesa/demos repository.</p>
To build the OpenVG demos:
</p>
<pre>
cd progs/openvg
make
</pre>
<p>
To run a demo:
</p>
<pre>
cd openvg/demos
./lion
</pre>
</body> </body>
</html> </html>