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 allCanvasdrawing methods.VertexSource: A family of classes which contain vector data to be rasterized. Includesceliagg.Path,celiagg.BSpline, andceliagg.ShapeAtPointsPaint: 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.