Mercurial > MadButterfly
comparison src/event.c @ 314:6c350fc92ae3
Cache rednering result is now workable.
- Know issues
- For unknow issue, CAIRO_OPERATOR_CLEAR will not be limited by clipping.
Image will be cleaned in a strange way. Maybe, it is a bug of Cairo.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Thu, 05 Mar 2009 00:54:42 +0800 |
parents | 29acbd8a0dd0 |
children | 7f7855df2af0 |
comparison
equal
deleted
inserted
replaced
313:5737548e922f | 314:6c350fc92ae3 |
---|---|
255 | 255 |
256 static | 256 static |
257 coord_t *preorder_coord_subtree(coord_t *root, coord_t *last) { | 257 coord_t *preorder_coord_subtree(coord_t *root, coord_t *last) { |
258 if(STAILQ_HEAD(last->children) && !(last->flags & COF_SKIP)) | 258 if(STAILQ_HEAD(last->children) && !(last->flags & COF_SKIP)) |
259 return STAILQ_HEAD(last->children); | 259 return STAILQ_HEAD(last->children); |
260 | |
261 last->flags &= ~COF_SKIP; | |
262 | |
260 if(last == root) | 263 if(last == root) |
261 return NULL; | 264 return NULL; |
262 while(STAILQ_NEXT(coord_t, sibling, last) == NULL) { | 265 while(STAILQ_NEXT(coord_t, sibling, last) == NULL) { |
263 if(last == root) | 266 if(last == root) |
264 return NULL; | 267 return NULL; |
267 return STAILQ_NEXT(coord_t, sibling, last); | 270 return STAILQ_NEXT(coord_t, sibling, last); |
268 } | 271 } |
269 | 272 |
270 static | 273 static |
271 void preorder_coord_skip_subtree(coord_t *coord) { | 274 void preorder_coord_skip_subtree(coord_t *coord) { |
272 coord->flags &= ~COF_SKIP; | 275 coord->flags |= COF_SKIP; |
273 } | 276 } |
274 | 277 |
275 static | 278 static |
276 coord_t *postorder_coord_subtree(coord_t *root, coord_t *last) { | 279 coord_t *postorder_coord_subtree(coord_t *root, coord_t *last) { |
277 coord_t *cur; | 280 coord_t *cur; |