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.
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.
13 Our implementation is a C# wrapper around the GDI+ C API (also
15 href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlusReference.asp">"GDI+
19 <img src="images/system-drawing.png">
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
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.
32 The C# code that implement System.Drawing is the same for
33 Windows and Unix builds.
35 Since this is an implementation of an existing Microsoft API
36 no architectural changes go here.
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.
44 This API is still unstable due to the nature of the underlying
45 API being used and will be revisited as Cairo evolves.