Style fix, drop the explicit -ldrm from the link line.
[mesa-demos.git] / docs / osmesa.html
blob6feb8df52a0f084ad78e1b3af23135b9986b871d
1 <HTML>
3 <TITLE>Off-screen Rendering</TITLE>
5 <link rel="stylesheet" type="text/css" href="mesa.css"></head>
7 <BODY>
9 <H1>Off-screen Rendering</H1>
12 <p>
13 Mesa 1.2.4 introduced off-screen rendering, a facility for generating
14 3-D imagery without having to open a window on your display. Mesa's
15 simple off-screen rendering interface is completely operating system
16 and window system independent so programs which use off-screen
17 rendering should be very portable. This feature effectively
18 enables you to use Mesa as an off-line, batch-oriented renderer.
19 </p>
20 <p>
21 The "OSMesa" API provides 3 functions for making off-screen
22 renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and
23 OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for
24 more information. See the demos/osdemo.c file for an example program.
25 There is no facility for writing images to files. That's up to you.
26 </p>
27 <p>
28 If you want to generate large images (larger than 1280x1024) you'll
29 have to edit the src/config.h file to change MAX_WIDTH and MAX_HEIGHT
30 then recompile Mesa. Image size should only be limited by available
31 memory.
32 </p>
35 <H2>Deep color channels</H2>
37 <p>
38 For some applications 8-bit color channels don't have sufficient
39 accuracy (film and IBR, for example). If you're in this situation
40 you'll be happy to know that Mesa supports 16-bit and 32-bit color
41 channels through the OSMesa interface. When using 16-bit channels,
42 channels are GLushorts and RGBA pixels occupy 8 bytes. When using 32-bit
43 channels, channels are GLfloats and RGBA pixels occupy 16 bytes.
44 </p>
45 <p>
46 To build Mesa/OSMesa with 16-bit color channels:
47 <pre>
48 make realclean
49 make linux-osmesa16
50 </pre>
52 For 32-bit channels:
53 <pre>
54 make realclean
55 make linux-osmesa32
56 </pre>
58 <p>
59 You'll wind up with a library named libOSMesa16.so or libOSMesa32.so.
60 </p>
62 <p>
63 If you need to compile on a non-Linux platform, copy Mesa/configs/linux-osmesa16
64 to a new config file and edit it as needed. Then, add the new config name to
65 the top-level Makefile. Send a patch to the Mesa developers too, if you're
66 inclined.
67 </p>
69 <p>
70 BE WARNED: 16 and 32-bit channel support has not been exhaustively
71 tested and there may be some bugs. However, a number of people have
72 been using this feature successfully so it can't be too broken.
73 </p>
76 </BODY>
77 </HTML>