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.
configure
with --enable-gles-overlay
and enable the Gallium driver for your hardware.egl_dri2
EGL driver with OpenGL|ES-enabled DRI drivers
configure
with --enable-gles1 --enable-gles2
.Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or more EGL drivers for your hardware.
There are some demos in progs/egl/
. You can use them to test
your build. For example,
$ cd progs/egl/eglut $ make $ cd ../opengles1 $ make $ ./torus_x11
Library Name | Used By | Enabled | OpenGL | OpenGL ES 1.x | OpenGL ES 2.x |
src/mesa/libmesa.a | Classic DRI drivers | y | y | --enable-gles1 | --enable-gles2 |
src/mesa/libmesagallium.a | Gallium EGL and DRI drivers | y | y | --enable-gles1 | --enable-gles2 |
src/mesa/es/libes1gallium.a | Gallium EGL drivers | --enable-gles-overlay | n | y | n |
src/mesa/es/libes2gallium.a | Gallium EGL drivers | --enable-gles-overlay | n | n | y |
OpenGL ES has an additional indirection when dispatching fucntions
Mesa: glFoo() --> _mesa_Foo() OpenGL ES: glFoo() --> _es_Foo() --> _mesa_Foo()
The indirection serves several purposes
Other than the last case, OpenGL ES uses APIspec.xml
to generate functions to check and/or converts the arguments.