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