From 85ef9930f56bf15181f9a0b238f03d55303cf411 Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 22 Nov 2010 19:42:40 +0000 Subject: Updated to mesalib 7.9 --- mesalib/docs/opengles.html | 69 +++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 34 deletions(-) (limited to 'mesalib/docs/opengles.html') diff --git a/mesalib/docs/opengles.html b/mesalib/docs/opengles.html index fc41e6771..63cc1146a 100644 --- a/mesalib/docs/opengles.html +++ b/mesalib/docs/opengles.html @@ -1,68 +1,69 @@ -OpenGL ES State Trackers +OpenGL ES -

OpenGL ES State Trackers

+

OpenGL ES

-

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 - -http://www.khronos.org/opengles/.

- -

The OpenGL ES state trackers depends on the Gallium architecture and a -working EGL implementation. Please refer to Mesa EGL -for more information about EGL.

+

Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More informations about +OpenGL ES can be found at http://www.khronos.org/opengles/.

+

OpenGL ES depends on a working EGL implementation. Please refer to +Mesa EGL for more information about EGL.

Build the Libraries

    -
  1. Run configure with --with-state-trackers=egl,es and enable the Gallium driver for your hardware.
  2. +
  3. Run configure with --enable-gles-overlay and enable the Gallium driver for your hardware.
  4. +
  5. Build and install Mesa as usual.
  6. +
+ +Alternatively, if XCB-DRI2 is installed on the system, one can use +egl_dri2 EGL driver with OpenGL|ES-enabled DRI drivers + +
    +
  1. Run configure with --enable-gles1 --enable-gles2.
  2. Build and install Mesa as usual.
-

It will install libGLESv1_CM, libGLESv2, libEGL, and one or more EGL drivers for your hardware.

+

Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more +EGL drivers for your hardware.

+

Run the Demos

-

There are some demos in progs/es1/ and progs/es2/. You can use them to test your build. For example,

+

There are some demos in progs/egl/. You can use them to test +your build. For example,

-  $ cd progs/es1/xegl
+  $ cd progs/egl/eglut
+  $ make
+  $ cd ../opengles1
   $ make
-  $ ./torus
+  $ ./torus_x11
 

Developers

-

The core of OpenGL ES state trackers is the ES overlay. It is located in -src/mesa/es/.

- -

Structure

+

Internal Libraries

-

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

- - - - - - - - - +
Library NameUsageSource
libmesagallium.aOpenGL state trackerMesa
libes1gallium.aOpenGL ES 1.x state trackerES overlay
libes2gallium.aOpenGL ES 2.x state trackerES overlay
libglapi.aOpenGL APIMesa
libes1api.aOpenGL ES 1.x APIES overlay
libes2api.aOpenGL ES 2.x APIES overlay
+ + + + +
Library NameUsed ByEnabledOpenGLOpenGL ES 1.xOpenGL ES 2.x
libmesa.aClassic DRI driversyy--enable-gles1--enable-gles2
libmesagallium.aGallium EGL and DRI driversyy--enable-gles1--enable-gles2
libes1gallium.aGallium EGL drivers--enable-gles-overlaynyn
libes2gallium.aGallium EGL drivers--enable-gles-overlaynny
-

The OpenGL ES state trackers and APIs are then used by src/gallium/state_trackers/es/ to create the final libraries.

-

Dispatch Table

-

The ES overlay uses an additional indirection when dispatching fucntions

+

OpenGL ES has an additional indirection when dispatching fucntions

   Mesa:       glFoo() --> _mesa_Foo()
-  ES overlay: glFoo() --> _es_Foo() --> _mesa_Foo()
+  OpenGL ES:  glFoo() --> _es_Foo() --> _mesa_Foo()
 

The indirection serves several purposes

@@ -73,7 +74,7 @@ for more information about EGL.

  • When a function is not available in Mesa, or accepts arguments that are not available in OpenGL, it provides its own implementation.
  • -

    Other than the last case, the ES overlay uses APIspec.xml to generate functions to check and/or converts the arguments.

    +

    Other than the last case, OpenGL ES uses APIspec.xml to generate functions to check and/or converts the arguments.

    -- cgit v1.2.3