3 <TITLE>Off-screen Rendering
</TITLE>
5 <BODY text=
"#000000" bgcolor=
"#55bbff" link=
"#111188">
7 <H1>Off-screen Rendering
</H1>
11 Mesa
1.2.4 introduced off-screen rendering, a facility for generating
12 3-D imagery without having to open a window on your display. Mesa's
13 simple off-screen rendering interface is completely operating system
14 and window system independent so programs which use off-screen
15 rendering should be very portable. This feature effectively
16 enables you to use Mesa as an off-line, batch-oriented renderer.
19 The
"OSMesa" API provides
3 functions for making off-screen
20 renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
21 OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for
22 more information. See the demos/osdemo.c file for an example program.
23 There is no facility for writing images to files. That's up to you.
26 If you want to generate large images (larger than
1280x1024) you'll
27 have to edit the src/config.h file to change MAX_WIDTH and MAX_HEIGHT
28 then recompile Mesa. Image size should only be limited by available
33 <H2>Deep color channels
</H2>
36 For some applications
8-bit color channels don't have sufficient
37 accuracy (film and IBR, for example). If you're in this situation
38 you'll be happy to know that Mesa supports
16-bit and
32-bit color
39 channels through the OSMesa interface. When using
16-bit channels,
40 channels are GLushorts and RGBA pixels occupy
8 bytes. When using
32-bit
41 channels, channels are GLfloats and RGBA pixels occupy
16 bytes.
44 To build Mesa/OSMesa with
16-bit color channels:
47 make -f Makefile.X11 clean
48 make -f Makefile.OSMesa16 linux-osmesa16
54 make -f Makefile.X11 clean
55 make -f Makefile.OSMesa16 linux-osmesa32
59 You'll wind up with a library named libOSMesa16.so or libOSMesa32.so.
63 If you're not using Linux, you can easily edit Make-config and add
64 an appropriate configuration.
67 The Mesa/tests/osdemo16.c file (available via CVS) demonstrates how
71 BE WARNED:
16 and
32-bit channel support has not been exhaustively
72 tested and there may be some bugs. However, a number of people have
73 been using this feature successfully so it can't be too broken.