Whereas Cairo would create a mask of a shape, then make a source for it, and then transfer them onto the surface, an SVG file would simply specify the shape with a style attribute. This constitutes a fundamentally different approach from Scalable Vector Graphics (SVG), which specifies the color of shapes with Cascading Style Sheets (CSS) rules. Finally the result is transferred to the destination or surface, which is provided by the back-end for the output.Then source must be defined, which may be a color, a color gradient, a bitmap or some vector graphics, and from the painted parts of this source a die cut is made with the help of the above defined mask.First a mask is created, which includes one or more vector primitives or forms, i.e., circles, squares, TrueType fonts, Bézier curves, etc.The Cairo drawing model relies on a three-layer model.Īny drawing process takes place in three steps: The BeOS, OS/2 and DirectFB backends were dropped in 2022. There are other back-ends in development targeting the graphics APIs OpenVG, Qt, Skia, and Microsoft's Direct2D. Back-ends support includes output to the X Window System, via both Xlib and XCB, Win32 GDI, OS X Quartz Compositor, the BeOS API, OS/2, OpenGL contexts (directly and via glitz), local image buffers, PNG files, PDF, PostScript, DirectFB and SVG files. Ĭairo supports output (including rasterisation) to a number of different back-ends, known as "surfaces" in its code. The Cairo development team maintains up-to-date instructions for rendering surfaces to SDL.GTK began in 2005, with version 2.8, to use Cairo to render the majority of its graphical control elements, and since version 3.0 all rendering is done through Cairo.
YOUTUBE.COM INKSCAPE LOGO FULL
FLTK has full Cairo support (through -enable-cairo compile switch).Since Cairo is only a drawing library, it can be quite useful to integrate it with a graphical user interface toolkit. Software architecture Language bindings Ī library written in one programming language may be used in another language if bindings are written Cairo has a range of bindings for various languages including C++, C# and other CLI languages, Delphi, Eiffel, Factor, Harbour, Haskell, Julia, Lua, Perl, PHP, Python, Ruby, Rust, Scheme, Smalltalk and several others like Gambas (Visual Basic like).