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++)