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/.
+OpenGL ES
-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 information about +OpenGL ES can be found at +https://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
-
-
- Run
configure
with--with-state-trackers=egl,es
and enable the Gallium driver for your hardware.
+ - Run
meson configure
with-D gles1=true -D gles2=true
and enable the Gallium driver for your hardware. - Build and install Mesa as usual.
It 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,
- $ cd progs/es1/xegl - $ make - $ ./torus -- -
Developers
+Alternatively, if XCB-DRI2 is installed on the system, one can use +egl_dri2
EGL driver with OpenGL|ES-enabled DRI drivers
-The core of OpenGL ES state trackers is the ES overlay. It is located in
-src/mesa/es/
.
-
+
- Run
meson configure
with-D gles1=true -D gles2=true
.
+ - Build and install Mesa as usual. +
Structure
+Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more +EGL drivers for your hardware.
-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
+Run the Demos
-Library Name | Usage | Source |
libmesagallium.a | OpenGL state tracker | Mesa |
libes1gallium.a | OpenGL ES 1.x state tracker | ES overlay |
libes2gallium.a | OpenGL ES 2.x state tracker | ES overlay |
libglapi.a | OpenGL API | Mesa |
libes1api.a | OpenGL ES 1.x API | ES overlay |
libes2api.a | OpenGL ES 2.x API | ES overlay |
There are some demos in mesa/demos
repository.
The OpenGL ES state trackers and APIs are then used by src/gallium/state_trackers/es/
to create the final libraries.
Developers
Dispatch Table
-The ES overlay uses an additional indirection when dispatching fucntions
+OpenGL ES has an additional indirection when dispatching functions
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 +63,8 @@ for more information about EGL.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.