Mercurial > MadButterfly
annotate dox/arch.h @ 795:46a4cd4d382b
Remove dependent on system time to gain frame rate
Date.now() would read system time. It is ineffeciency in for some
implementation. To gain frame rate, we should rely on accuration of
setInterval().
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Tue, 31 Aug 2010 10:04:15 +0800 |
parents | e89512d6fa0a |
children |
rev | line source |
---|---|
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 * | |
141
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
19 * The shape of shape objects are vary from type to type. To simplize |
111 | 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 | |
141
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
28 * a SVG file. coord_t has a member variable, called before_pmem, that |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
29 * is relative position in parent coord. \ref coord_t::before_pmem stands for |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
30 * "before parent member", it is an index to the list of member shapes |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
31 * of parent coord. Members of a coord is shape tags they are children of |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
32 * the "g" tag of the coord corresponding. \ref coord_t::before_pmem means |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
33 * "g" of the coord is before the indexed member of parent. |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
34 * |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
35 * \image html geom_relation.png |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
36 * |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
37 * It is possible to have more than one coord with the same |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
38 * \ref coord_t::before_pmem value and as children of a coord. It means |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
39 * all children with the same coord_t::before_pmem value are all before |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
40 * nth member, after (n-1)th member, and they are in order of them-self |
e89512d6fa0a
Change doxygen comment to reflect changes of relation-ship.
Thinker K.F. Li <thinker@branda.to>
parents:
111
diff
changeset
|
41 * in the children list. |
111 | 42 * |
43 * Colors or patterns used to stroke or fill shapes are described | |
44 * by \ref paint_t . Every shape object has a paint, but a paint object | |
45 * can be used by multiple shape objects. Once a paint is changed, all | |
46 * objects that associate with the paint are dirty. They will be scheduled | |
47 * by associated \ref redraw_man_t object to update graphics on | |
48 * output screen. | |
49 * | |
50 */ |