aboutsummaryrefslogtreecommitdiff
path: root/mesalib/docs/osmesa.html
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/docs/osmesa.html')
-rw-r--r--mesalib/docs/osmesa.html88
1 files changed, 88 insertions, 0 deletions
diff --git a/mesalib/docs/osmesa.html b/mesalib/docs/osmesa.html
new file mode 100644
index 000000000..629d054f4
--- /dev/null
+++ b/mesalib/docs/osmesa.html
@@ -0,0 +1,88 @@
+<HTML>
+
+<TITLE>Off-screen Rendering</TITLE>
+
+<link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<H1>Off-screen Rendering</H1>
+
+
+<p>
+Mesa's off-screen rendering interface is used for rendering into
+user-allocated blocks of memory.
+That is, the GL_FRONT colorbuffer is actually a buffer in main memory,
+rather than a window on your display.
+There are no window system or operating system dependencies.
+One potential application is to use Mesa as an off-line, batch-style renderer.
+</p>
+
+<p>
+The <B>OSMesa</B> 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.
+</p>
+
+<p>
+There are several examples of OSMesa in the <code>progs/osdemo/</code>
+directory.
+</p>
+
+
+<H2>Deep color channels</H2>
+
+<p>
+For some applications 8-bit color channels don't have sufficient
+precision.
+OSMesa supports 16-bit and 32-bit color channels through the OSMesa interface.
+When using 16-bit channels, channels are GLushorts and RGBA pixels occupy
+8 bytes.
+When using 32-bit channels, channels are GLfloats and RGBA pixels occupy
+16 bytes.
+</p>
+
+<p>
+Before version 6.5.1, Mesa had to be recompiled to support exactly
+one of 8, 16 or 32-bit channels.
+With Mesa 6.5.1, Mesa can be compiled for either 8, 16 or 32-bit channels
+and render into any of the smaller size channels.
+For example, if Mesa's compiled for 32-bit channels, you can also render
+16 and 8-bit channel images.
+</p>
+
+<p>
+To build Mesa/OSMesa for 16 and 8-bit color channel support:
+<pre>
+ make realclean
+ make linux-osmesa16
+</pre>
+
+<p>
+To build Mesa/OSMesa for 32, 16 and 8-bit color channel support:
+<pre>
+ make realclean
+ make linux-osmesa32
+</pre>
+
+<p>
+You'll wind up with a library named libOSMesa16.so or libOSMesa32.so.
+Otherwise, most Mesa configurations build an 8-bit/channel libOSMesa.so library
+by default.
+</p>
+
+<p>
+If performance is important, compile Mesa for the channel size you're
+most interested in.
+</p>
+
+<p>
+If you need to compile on a non-Linux platform, copy Mesa/configs/linux-osmesa16
+to a new config file and edit it as needed. Then, add the new config name to
+the top-level Makefile. Send a patch to the Mesa developers too, if you're
+inclined.
+</p>
+
+</BODY>
+</HTML>