• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:: console
27
28   meson builddir -Dosmesa=true -Dgallium-drivers=swrast -Ddri-drivers=[] -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
29   ninja -C builddir install
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