Mercurial > MadButterfly
diff src/redraw_man.c @ 818:86f2c59cef09
Fix typo on index of matrix
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Mon, 13 Sep 2010 20:39:22 +0800 |
parents | 387d1c597632 |
children | 586e50f82c1f ea544a68f55d |
line wrap: on
line diff
--- a/src/redraw_man.c Mon Sep 13 15:33:19 2010 +0800 +++ b/src/redraw_man.c Mon Sep 13 20:39:22 2010 +0800 @@ -1282,7 +1282,7 @@ paggr = coord_get_aggr_matrix(parent); scale_x = matrix[0] / aggr[0]; - scale_y = matrix[3] / aggr[3]; + scale_y = matrix[4] / aggr[4]; shift_x = matrix[2] - scale_x * aggr[2]; shift_y = matrix[5] - scale_y * aggr[5]; @@ -1579,7 +1579,7 @@ } /* Shift space */ aggr = coord_get_aggr_matrix(cur); - aggr[3] -= min_x; + aggr[2] -= min_x; aggr[5] -= min_y; FOR_COORD_MEMBERS(coord, geo) { @@ -2783,6 +2783,38 @@ } static void +test_own_canvas_area(void) { + redraw_man_t *rdman; + redraw_man_t _rdman; + coord_t *coord1, *coord2; + sh_dummy_t *sh; + + redraw_man_init(&_rdman, NULL, NULL); + rdman = &_rdman; + + coord1 = rdman_coord_new(rdman, rdman->root_coord); + CU_ASSERT(coord1->parent == rdman->root_coord); + + coord2 = rdman_coord_new(rdman, coord1); + CU_ASSERT(coord2->parent == coord1); + + coord_set_opacity(coord2, 0.9); + rdman_coord_changed(rdman, coord2); + + sh = (shape_t *)sh_dummy_new(rdman, 100, 100, 20, 20); + rdman_add_shape(rdman, (shape_t *)sh, coord2); + rdman_shape_changed(rdman, (shape_t *)sh); + + clean_coord(rdman, coord2); + + /* Parent cached coord must be updated */ + CU_ASSERT(geo_get_area(coord2)->x == 100); + CU_ASSERT(geo_get_area(coord2)->y == 100); + CU_ASSERT(geo_get_area(coord2)->w <= 22 && geo_get_area(coord2)->w >= 19); + CU_ASSERT(geo_get_area(coord2)->h <= 22 && geo_get_area(coord2)->h >= 19); +} + +static void test_own_canvas(void) { redraw_man_t *rdman; redraw_man_t _rdman; @@ -2808,7 +2840,17 @@ rdman_clean_dirties(rdman); /* Parent cached coord must be updated */ - CU_ASSERT(_coord_get_dirty_areas(rdman->root_coord)->num >= 1); + CU_ASSERT(_coord_get_dirty_areas(rdman->root_coord)->num == 1); + + CU_ASSERT(geo_get_area(coord2)->x == 0); + CU_ASSERT(geo_get_area(coord2)->y == 0); + CU_ASSERT(geo_get_area(coord2)->w <= 22 && geo_get_area(coord2)->w >= 19); + CU_ASSERT(geo_get_area(coord2)->h <= 22 && geo_get_area(coord2)->h >= 19); + + CU_ASSERT(geo_get_area(coord1)->x == 100); + CU_ASSERT(geo_get_area(coord1)->y == 100); + CU_ASSERT(geo_get_area(coord1)->w <= 22 && geo_get_area(coord1)->w >= 19); + CU_ASSERT(geo_get_area(coord1)->h <= 22 && geo_get_area(coord1)->h >= 19); } CU_pSuite get_redraw_man_suite(void) { @@ -2818,6 +2860,7 @@ CU_ADD_TEST(suite, test_rdman_redraw_changed); CU_ADD_TEST(suite, test_rdman_free_objs); CU_ADD_TEST(suite, test_setup_canvas_info); + CU_ADD_TEST(suite, test_own_canvas_area); CU_ADD_TEST(suite, test_own_canvas); return suite;