4 Mesa implements OpenGL ES 1.1 and OpenGL ES 2.0. More information about
5 OpenGL ES can be found at https://www.khronos.org/opengles/.
7 OpenGL ES depends on a working EGL implementation. Please refer to
8 :doc:`Mesa EGL <egl>` for more information about EGL.
13 #. Run ``meson configure`` with ``-D gles1=true -D gles2=true`` and
14 enable the Gallium driver for your hardware.
15 #. Build and install Mesa as usual.
17 Alternatively, if XCB-DRI2 is installed on the system, one can use
18 ``egl_dri2`` EGL driver with OpenGL|ES-enabled DRI drivers
20 #. Run ``meson configure`` with ``-D gles1=true -D gles2=true``.
21 #. Build and install Mesa as usual.
23 Both methods will install libGLESv1_CM, libGLESv2, libEGL, and one or
24 more EGL drivers for your hardware.
29 There are some demos in ``mesa/demos`` repository.
37 OpenGL ES has an additional indirection when dispatching functions
41 Mesa: glFoo() --> _mesa_Foo()
42 OpenGL ES: glFoo() --> _es_Foo() --> _mesa_Foo()
44 The indirection serves several purposes
46 - When a function is in Mesa and the type matches, it checks the
47 arguments and calls the Mesa function.
48 - When a function is in Mesa but the type mismatches, it checks and
49 converts the arguments before calling the Mesa function.
50 - When a function is not available in Mesa, or accepts arguments that
51 are not available in OpenGL, it provides its own implementation.
53 Other than the last case, OpenGL ES uses ``APIspec.xml`` to generate
54 functions to check and/or converts the arguments.