Mercurial > MadButterfly
diff orgfiles/auto_update.muse @ 12:79e9edf4c00a
Add redraw manager
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Mon, 28 Jul 2008 17:45:36 +0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/orgfiles/auto_update.muse Mon Jul 28 17:45:36 2008 +0800 @@ -0,0 +1,24 @@ +When an object change it's size, position, or components inside it, +other objects overlaid with the object in old or new positions should +be re-drawed. The place that the object is resident in old or new +position should be cleared before re-drawing. We need a system +to determine and track effected by the change of an object. + +The graphics are grouped into groups in tree-hierachy. One group +can be part of another group. When a group's transformation matrix +is chagned, all child groups should be affected. All it's members +should also be re-drawed. All members of a group been changed are +linked into update list in their order. The one more close to +tree root is more earier in the list. + +Transformations can only apply to groups. A tree of coord_t is +maintained to model relationships of groups. Coord_t is coordination, +a transfromation from user space to upper level's space or devcie space. + +coord_t must know graphics in respective group. Once transformation +matrix of a coord_t object changed, it can ask members to +re-drawed them-self. + +Changes of the transformation of a coord_t should be propagated to +child coord_t objects/groups. +