diff src/redraw_man.c @ 133:4c2d83721bcc

-
author Thinker K.F. Li <thinker@branda.to>
date Wed, 17 Sep 2008 13:40:39 +0800
parents 76ba6fd61c7d
children 81c03fdd94d0
line wrap: on
line diff
--- a/src/redraw_man.c	Wed Sep 17 13:40:32 2008 +0800
+++ b/src/redraw_man.c	Wed Sep 17 13:40:39 2008 +0800
@@ -524,6 +524,26 @@
     return OK;
 }
 
+/*! \page dirty Relationships of dirty coord, geo, and area.
+ *
+ * A coord_t instance is dirty if it's matrix had been changed.  Once
+ * it is changed, all shapes in it's descendants would be effected.
+ * Shapes in descendants are dirtied.  Dirty coords and dirty shapes
+ * should be clean.  The procedure of clean for dirty coords re-compute
+ * aggregated matric and areas of coords.  The area of a coord is a
+ * rectangle area where member shapes of the coord occupy.  Old 
+ * and new value of coord area are putten into dirty area list.
+ *
+ * A dirty shape means it's geo being dirty.  A dirty geo is clean by
+ * recomputing area and transform shape it-self according aggregated
+ * matrix of the coord that it is a member of.  Old and new value of
+ * geo area are also putten into dirty area list.
+ *
+ * Shapes that should be redrawed are selected by if it overlaid with any
+ * of dirty areas.  Once it overlaid with one or more dirty areas, it
+ * is redrawed.
+ */
+
 static int clean_rdman_coords(redraw_man_t *rdman) {
     coord_t *coord;
     coord_t **dirty_coords;