mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2024-11-28 12:45:56 +08:00
4d066836e3
This uses the previously added scripts to convert the documentation to reStructuredText, which is both easier to read offline, and can be used to generate modern HTML for online documentation. No modification to the generated results have been done. Acked-by: Eric Engestrom <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4630>
46 lines
1.5 KiB
ReStructuredText
46 lines
1.5 KiB
ReStructuredText
Off-screen Rendering
|
|
====================
|
|
|
|
Mesa's off-screen interface is used for rendering into user-allocated
|
|
memory without any sort of window system or operating system
|
|
dependencies. That is, the GL_FRONT colorbuffer is actually a buffer in
|
|
main memory, rather than a window on your display.
|
|
|
|
The OSMesa API provides three basic functions for making off-screen
|
|
renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
|
|
OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for more
|
|
information about the API functions.
|
|
|
|
The OSMesa interface may be used with any of three software renderers:
|
|
|
|
#. llvmpipe - this is the high-performance Gallium LLVM driver
|
|
#. softpipe - this it the reference Gallium software driver
|
|
#. swrast - this is the legacy Mesa software rasterizer
|
|
|
|
There are several examples of OSMesa in the mesa/demos repository.
|
|
|
|
Building OSMesa
|
|
---------------
|
|
|
|
Configure and build Mesa with something like:
|
|
|
|
::
|
|
|
|
meson builddir -Dosmesa=gallium -Dgallium-drivers=swrast -Ddri-drivers=[] -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
|
|
ninja -C builddir install
|
|
|
|
Make sure you have LLVM installed first if you want to use the llvmpipe
|
|
driver.
|
|
|
|
When the build is complete you should find:
|
|
|
|
::
|
|
|
|
$PWD/builddir/install/lib/libOSMesa.so (swrast-based OSMesa)
|
|
$PWD/builddir/install/lib/gallium/libOSMsea.so (gallium-based OSMesa)
|
|
|
|
Set your LD_LIBRARY_PATH to point to $PWD/builddir/install to use the
|
|
libraries
|
|
|
|
When you link your application, link with -lOSMesa
|