[cairo] Cairo Tutorial
Lawrence D'Oliveiro
ldo at geek-central.gen.nz
Thu Nov 19 00:15:05 PST 2015
Do people find the existing Cairo tutorial
<http://cairographics.org/tutorial/> useful? I don’t feel it jibes with
how I learned to understand Cairo. Rather, I made sense of it in terms
of the interrelationships of the principal object types:
* a *surface* is the recipient of drawing operations. There are various
types of surfaces, in particular an *image surface* is a rectangular
array of pixels, which can be of various formats.
Other surface types have their uses, for example PDF and SVG
surfaces allow the direct creation of those file formats with Cairo
drawing operations, such that the original object geometry (including
text font outlines) is preserved as far as possible, rather than being
rendered to pixels at some fixed resolution.
* a *context* is the holder of state for drawing operations. It keeps
information needed during drawing, but which is no longer needed once
the final image has been produced, such as the colour/pattern to use
for drawing, the font to use for text, and so on.
* a *pattern* supplies the information for affecting pixel values
during drawing. It can be as simple as a single uniform colour
(in this case, Cairo provides convenience routines to set the source
colour for drawing directly, rather than having to explicitly create a
pattern object first), or it can be a more elaborate gradient or mesh
pattern, or it can even consist of the image from another surface.
* a *font face* is the Cairo object for loading fonts to use for
rendering text.
* a *scaled font* is the user-visible part of Cairo’s font-caching
mechanism. It represents a font with a particular transformation and
rendering options selected. If you use a number of different
font settings repeatedly, then obtaining and setting scaled fonts is a
quicker way of switching among these settings when rendering text than
specifying the font face and size and other options separately every
time.
As I see it, those are the most important ones to get straight. Once
you grasp those concepts, the rest makes a whole lot more sense.
More information about the cairo
mailing list