OSDN Git Service

Use a simple CSS style sheet.
[android-x86/external-mesa.git] / docs / osmesa.html
1 <HTML>
2
3 <TITLE>Off-screen Rendering</TITLE>
4
5 <link rel="stylesheet" type="text/css" href="mesa.css"></head>
6
7 <BODY>
8
9 <H1>Off-screen Rendering</H1>
10
11
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>
33
34
35 <H2>Deep color channels</H2>
36
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>
51
52    For 32-bit channels:
53 <pre>
54       make realclean
55       make linux-osmesa32
56 </pre>
57
58 <p>
59 You'll wind up with a library named libOSMesa16.so or libOSMesa32.so.
60 </p>
61
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>
68
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>
74
75
76 </BODY>
77 </HTML>