Mercurial > MadButterfly
comparison src/redraw_man.c @ 825:e83956ba22d7
Make sure drawing on right cached canvas
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Tue, 14 Sep 2010 05:44:48 +0800 |
parents | 93c54322d4d8 |
children | 94041f085797 |
comparison
equal
deleted
inserted
replaced
824:93c54322d4d8 | 825:e83956ba22d7 |
---|---|
526 w, h); | 526 w, h); |
527 cr = mbe_create(surface); | 527 cr = mbe_create(surface); |
528 | 528 |
529 return cr; | 529 return cr; |
530 #else | 530 #else |
531 return NULL; | 531 return (mbe_t *)malloc(16); |
532 #endif | 532 #endif |
533 } | 533 } |
534 | 534 |
535 static void canvas_free(mbe_t *canvas) { | 535 static void canvas_free(mbe_t *canvas) { |
536 #ifndef UNITTEST | 536 #ifndef UNITTEST |
537 mbe_destroy(canvas); | 537 mbe_destroy(canvas); |
538 #else | |
539 free(canvas); | |
538 #endif | 540 #endif |
539 } | 541 } |
540 | 542 |
541 static void canvas_get_size(mbe_t *canvas, int *w, int *h) { | 543 static void canvas_get_size(mbe_t *canvas, int *w, int *h) { |
542 #ifndef UNITTEST | 544 #ifndef UNITTEST |
2611 shape_t shape; | 2613 shape_t shape; |
2612 co_aix x, y; | 2614 co_aix x, y; |
2613 co_aix w, h; | 2615 co_aix w, h; |
2614 int trans_cnt; | 2616 int trans_cnt; |
2615 int draw_cnt; | 2617 int draw_cnt; |
2618 redraw_man_t *last_draw; | |
2616 }; | 2619 }; |
2617 | 2620 |
2618 void sh_dummy_free(shape_t *sh) { | 2621 void sh_dummy_free(shape_t *sh) { |
2619 free(sh); | 2622 free(sh); |
2620 } | 2623 } |
2669 void sh_dummy_fill(shape_t *shape, mbe_t *cr) { | 2672 void sh_dummy_fill(shape_t *shape, mbe_t *cr) { |
2670 sh_dummy_t *dummy; | 2673 sh_dummy_t *dummy; |
2671 | 2674 |
2672 dummy = (sh_dummy_t *)shape; | 2675 dummy = (sh_dummy_t *)shape; |
2673 dummy->draw_cnt++; | 2676 dummy->draw_cnt++; |
2677 dummy->last_draw = cr; | |
2674 } | 2678 } |
2675 | 2679 |
2676 static void dummy_paint_prepare(paint_t *paint, mbe_t *cr) { | 2680 static void dummy_paint_prepare(paint_t *paint, mbe_t *cr) { |
2677 } | 2681 } |
2678 | 2682 |
2882 rdman_paint_fill(rdman, paint, (shape_t *)sh); | 2886 rdman_paint_fill(rdman, paint, (shape_t *)sh); |
2883 | 2887 |
2884 rdman_redraw_all(rdman); | 2888 rdman_redraw_all(rdman); |
2885 | 2889 |
2886 CU_ASSERT(sh->draw_cnt == 1); | 2890 CU_ASSERT(sh->draw_cnt == 1); |
2891 CU_ASSERT(sh->last_draw == _coord_get_canvas(coord2)); | |
2887 | 2892 |
2888 rdman_paint_free(rdman, paint); | 2893 rdman_paint_free(rdman, paint); |
2889 redraw_man_destroy(rdman); | 2894 redraw_man_destroy(rdman); |
2890 } | 2895 } |
2891 | 2896 |