111
|
1 /*! \page archi Internal Architecture
|
|
2 *
|
|
3 * \image html core.png
|
|
4 * Above graphic is relationship among major objects of MadButterfly.
|
|
5 * \ref redraw_man_t, redraw manager, is supposed to manage graphic elements,
|
|
6 * shapes, and decide when and who to redraw on the output screen.
|
|
7 *
|
|
8 * \ref shape_t is base-type for all graphic objects. It can be a path,
|
|
9 * a text, a ellipse, ..., or an image. When the states or attributes of
|
|
10 * an graphic
|
|
11 * object changed, managing redraw_man_t, the one that manages the graphic
|
|
12 * object, will be notified. The redraw_man_t will schedule a redrawing
|
|
13 * for every
|
|
14 * dirty objects, changed ones, and relative objects. The relative objects
|
|
15 * are objects effected by changed ones. For example, part of a relative
|
|
16 * object may be hidden before changing, but it is re-explored after chaning.
|
|
17 * The explored part of the object must be redrawed.
|
|
18 *
|
|
19 * The shape of shape objects are variable from type to type. To simplize
|
|
20 * the problem, we use a rectangle to model the area occupied by an object.
|
|
21 * \ref geo_t is the one used to model the rectangle. Shape objects should
|
|
22 * update associated \ref geo_t objects to reflect changing of them-self.
|
|
23 *
|
|
24 * \ref coord_t is used to model transformation in coordinate system.
|
|
25 * A \ref coord_t is actually an transform matrix with additional
|
|
26 * informations. \ref coord_t
|
|
27 * objects are organized as a tree according hierachy of group tags in
|
|
28 * a SVG file.
|
|
29 *
|
|
30 * Colors or patterns used to stroke or fill shapes are described
|
|
31 * by \ref paint_t . Every shape object has a paint, but a paint object
|
|
32 * can be used by multiple shape objects. Once a paint is changed, all
|
|
33 * objects that associate with the paint are dirty. They will be scheduled
|
|
34 * by associated \ref redraw_man_t object to update graphics on
|
|
35 * output screen.
|
|
36 *
|
|
37 */
|