* doc/books: Added books on Web Services and ASP.NET
[mono.git] / web / drawing
1 * Drawing
2
3         Mono provides two mechanism to draw.  The first exposes the
4         Microsoft System.Drawing API and the second exposes the <a
5         href="http://www.cairographics.org">Cairo</a> API.
6
7 * System.Drawing
8
9         The System.Drawing implementation in Mono is designed to be
10         compatible with the Microsoft API.  The imaging model is very
11         similar to the PDF 1.4 composition-based imaging model.
12
13         Our implementation is a C# wrapper around the GDI+ C API (also
14         called the <a
15         href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlusReference.asp">"GDI+
16         Flat API"</a>).
17
18         <center>
19         <img src="images/system-drawing.png">
20         </center>
21
22         In Windows Mono uses the GDI+ library that is included
23         with the operating system, while in Unix we provide an
24         implementation of this API which uses Cairo to do the heavy
25         lifting. 
26
27         The implementation of GDI+ lives in mcs/class/System.Drawing
28         in the gdiplus directory and requires <a
29         href="http://www.cairographics.org">Cairo</a> to be installed
30         to get the package built.
31
32         The C# code that implement System.Drawing is the same for
33         Windows and Unix builds.
34
35         Since this is an implementation of an existing Microsoft API
36         no architectural changes go here.
37
38 * Mono.Cairo
39
40         The Mono.Cairo.dll assembly exposes the Cairo API to managed
41         applications.  The mapping is a pretty straightforward one,
42         and the programming model is very close to the C API.
43
44         This API is still unstable due to the nature of the underlying
45         API being used and will be revisited as Cairo evolves.