xref: /aosp_15_r20/external/mesa3d/docs/osmesa.rst (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1Off-screen Rendering
2====================
3
4Mesa's off-screen interface is used for rendering into user-allocated
5memory without any sort of window system or operating system
6dependencies. That is, the GL_FRONT colorbuffer is actually a buffer in
7main memory, rather than a window on your display.
8
9The OSMesa API provides three basic functions for making off-screen
10renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
11OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for more
12information about the API functions.
13
14The OSMesa interface may be used with the gallium software renderers:
15
16#. LLVMpipe - this is the high-performance Gallium LLVM driver
17#. Softpipe - this is the reference Gallium software driver
18
19There are several examples of OSMesa in the mesa/demos repository.
20
21Building OSMesa
22---------------
23
24Configure and build Mesa with something like:
25
26.. code-block:: sh
27
28   meson setup builddir -Dosmesa=true -Dgallium-drivers=swrast -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
29   meson install -C builddir
30
31Make sure you have LLVM installed first if you want to use the LLVMpipe
32driver.
33
34When the build is complete you should find:
35
36::
37
38   $PWD/builddir/install/lib/libOSMesa.so
39
40Set your LD_LIBRARY_PATH to point to $PWD/builddir/install to use the
41libraries
42
43When you link your application, link with -lOSMesa
44