12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <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>
|