About celiagg¶
celiagg is designed to be a simple, stateless library for 2D vector graphics.
Simple, because it provides a general API which should be simple enough to
fit in ones head while still being a general solution for 2D vector
rasterization. Stateless, because unlike Cairo
or
Quartz
(for example), celiagg’s main drawing object (Canvas
) holds the absolute
minimum state required to do its job. Instead, the celiagg API includes a
handful of stateful objects which are used to pass various drawing attributes
to the methods of Canvas
. In this way, it is more like
Skia (but much simpler, of course).
High-level Overview¶
These are the main objects used for drawing in celiagg.
Canvas
: The object which has the main drawing methods. It also manages the frame buffer which is being drawn into.celiagg.GraphicsState
: The main state container to be passed to allCanvas
drawing methods.VertexSource
: A family of classes which contain vector data to be rasterized. Includesceliagg.Path
,celiagg.BSpline
, andceliagg.ShapeAtPoints
Paint
: Another family of classes which describe the color and texture of lines and fills. Includesceliagg.SolidPaint
,celiagg.PatternPaint
,celiagg.LinearGradientPaint
, andceliagg.RadialGradientPaint
.celiagg.Transform
: A 2D affine transformceliagg.Font
: A single font, needed when rendering text.celiagg.FontCache
: Needed to measure the size of rendered text.celiagg.Image
: A container for raster image data.