Mercurial > MadButterfly
comparison src/redraw_man.c @ 527:47a860beaa44 Android_Skia
Every coord can only appear at mot one time in the dirty coord list.
rdman_coord_changed() will check COF_DIRTY flags to make sure never
add a coord into dirty coord list more than one time. So, we don't need
to check it, again, in clean_rdman_dirties().
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Tue, 22 Dec 2009 22:39:53 +0800 |
parents | 3f695a6177b2 |
children | d687d3395264 |
comparison
equal
deleted
inserted
replaced
526:3f695a6177b2 | 527:47a860beaa44 |
---|---|
1862 * by clean_coord(). | 1862 * by clean_coord(). |
1863 */ | 1863 */ |
1864 coords = rdman->dirty_coords.ds; | 1864 coords = rdman->dirty_coords.ds; |
1865 for(i = 0; i < rdman->dirty_coords.num; i++) { | 1865 for(i = 0; i < rdman->dirty_coords.num; i++) { |
1866 coord = coords[i]; | 1866 coord = coords[i]; |
1867 if(coord->flags & COF_DIRTY) { | 1867 if(!coord_get_flags(coord, COF_OWN_CANVAS)) |
1868 if(!coord_get_flags(coord, COF_OWN_CANVAS)) | 1868 SWAP(coord->cur_area, coord->last_area, area_t *); |
1869 SWAP(coord->cur_area, coord->last_area, area_t *); | 1869 else { |
1870 else { | 1870 coord->last_area = coord->cur_area; |
1871 coord->last_area = coord->cur_area; | 1871 coord->cur_area = &coord->canvas_info->owner_mems_area; |
1872 coord->cur_area = &coord->canvas_info->owner_mems_area; | 1872 /* coord->cur_area are reseted to another area at |
1873 /* coord->cur_area are reseted to another area at | 1873 * #RST. |
1874 * #RST. | 1874 * |
1875 * | 1875 * coord->cur_area of a cached coord is aggregated |
1876 * coord->cur_area of a cached coord is aggregated | 1876 * area. But, its meaning is changed back to be area |
1877 * area. But, its meaning is changed back to be area | 1877 * of members to compute. It can avoid specialized |
1878 * of members to compute. It can avoid specialized | 1878 * code for cached coords to change meaning of |
1879 * code for cached coords to change meaning of | 1879 * cur_area temporary when computing area of a cached |
1880 * cur_area temporary when computing area of a cached | 1880 * coord. |
1881 * coord. | 1881 */ |
1882 */ | |
1883 } | |
1884 } | 1882 } |
1885 } | 1883 } |
1886 | 1884 |
1887 geos = rdman->dirty_geos.ds; | 1885 geos = rdman->dirty_geos.ds; |
1888 for(i = 0; i < rdman->dirty_geos.num; i++) | 1886 for(i = 0; i < rdman->dirty_geos.num; i++) |