Lines Matching refs:region

44  * mode globally and when that mode switches perform the update of the region
70 const RegionRec *region)
75 if (region == NULL)
78 n = region_num_rects(region);
85 region->extents.x1, region->extents.y1,
86 region->extents.x2, region->extents.y2);
92 region->extents.x1, region->extents.y1,
93 region->extents.x2, region->extents.y2,
96 box = region_rects(region);
147 &damage->region),
193 pixman_region_init(&damage->region);
217 pixman_region16_t *region = &damage->region;
223 DBG((" reduce: before region.n=%d\n", region_num_rects(region)));
239 pixman_region_union(region, region, &tmp);
241 pixman_region_subtract(region, region, &tmp);
242 damage->extents = region->extents;
248 nboxes += region_num_rects(region);
299 region_rects(region),
300 region_num_rects(region)*sizeof(BoxRec));
301 assert(n + region_num_rects(region) == nboxes);
302 pixman_region_fini(region);
303 pixman_region_init_rects(region, boxes, nboxes);
305 assert(pixman_region_not_empty(region));
306 assert(damage->extents.x1 == region->extents.x1 &&
307 damage->extents.y1 == region->extents.y1 &&
308 damage->extents.x2 == region->extents.x2 &&
309 damage->extents.y2 == region->extents.y2);
315 pixman_region_subtract(region, region, &tmp);
318 assert(damage->extents.x1 <= region->extents.x1 &&
319 damage->extents.y1 <= region->extents.y1 &&
320 damage->extents.x2 >= region->extents.x2 &&
321 damage->extents.y2 >= region->extents.y2);
322 if (pixman_region_not_empty(region))
323 damage->extents = region->extents;
335 DBG((" reduce: after region.n=%d\n", region_num_rects(region)));
630 static void _pixman_region_union_box(RegionRec *region, const BoxRec *box)
633 pixman_region_union(region, region, &u);
661 if (region_is_singular_or_empty(&damage->region) ||
662 box_contains_region(box, &damage->region)) {
663 _pixman_region_union_box(&damage->region, box);
664 assert(damage->region.extents.x2 > damage->region.extents.x1);
665 assert(damage->region.extents.y2 > damage->region.extents.y1);
670 if (pixman_region_contains_rectangle(&damage->region,
679 RegionPtr region)
681 assert(RegionNotEmpty(region));
696 if (region_is_singular(region))
697 return __sna_damage_add_box(damage, &region->extents);
699 if (region_is_singular_or_empty(&damage->region)) {
700 pixman_region_union(&damage->region, &damage->region, region);
701 assert(damage->region.extents.x2 > damage->region.extents.x1);
702 assert(damage->region.extents.y2 > damage->region.extents.y1);
703 damage_union(damage, &region->extents);
707 if (pixman_region_contains_rectangle(&damage->region,
708 &region->extents) == PIXMAN_REGION_IN)
711 damage_union(damage, &region->extents);
713 region_rects(region),
714 region_num_rects(region));
719 RegionPtr region)
726 _debug_describe_region(region_buf, sizeof(region_buf), region)));
728 damage = __sna_damage_add(damage, region);
732 assert(region_num_rects(&damage->region));
733 assert(damage->region.extents.x2 > damage->region.extents.x1);
734 assert(damage->region.extents.y2 > damage->region.extents.y1);
740 RegionPtr region)
742 return __sna_damage_add(damage, region);
793 if (pixman_region_contains_rectangle(&damage->region,
816 if (region_num_rects(&damage->region)) {
817 assert(damage->region.extents.x2 > damage->region.extents.x1);
818 assert(damage->region.extents.y2 > damage->region.extents.y1);
882 if (pixman_region_contains_rectangle(&damage->region,
905 if (region_num_rects(&damage->region)) {
906 assert(damage->region.extents.x2 > damage->region.extents.x1);
907 assert(damage->region.extents.y2 > damage->region.extents.y1);
966 if (pixman_region_contains_rectangle(&damage->region,
989 if (region_num_rects(&damage->region)) {
990 assert(damage->region.extents.x2 > damage->region.extents.x1);
991 assert(damage->region.extents.y2 > damage->region.extents.y1);
1019 assert(region_num_rects(&damage->region));
1020 assert(damage->region.extents.x2 > damage->region.extents.x1);
1021 assert(damage->region.extents.y2 > damage->region.extents.y1);
1039 pixman_region_fini(&damage->region);
1048 pixman_region_init_rect(&damage->region, 0, 0, width, height);
1049 damage->extents = damage->region.extents;
1072 assert(RegionNotEmpty(&damage->region));
1075 if (damage->region.data) {
1100 RegionPtr region)
1105 if (RegionNil(&damage->region)) {
1111 assert(RegionNotEmpty(region));
1113 if (!sna_damage_overlaps_box(damage, &region->extents))
1116 if (region_is_singular(region) &&
1117 box_contains(&region->extents, &damage->extents))
1121 pixman_region_subtract(&damage->region,
1122 &damage->region,
1123 region);
1124 if (damage->region.extents.x2 <= damage->region.extents.x1 ||
1125 damage->region.extents.y2 <= damage->region.extents.y1)
1128 damage->extents = damage->region.extents;
1136 assert(RegionNotEmpty(&damage->region));
1139 if (pixman_region_equal(region, &damage->region))
1142 if (region_is_singular(&damage->region) &&
1143 region_is_singular(region)) {
1144 pixman_region_subtract(&damage->region,
1145 &damage->region,
1146 region);
1147 if (damage->region.extents.x2 <= damage->region.extents.x1 ||
1148 damage->region.extents.y2 <= damage->region.extents.y1)
1151 damage->extents = damage->region.extents;
1152 assert(pixman_region_not_empty(&damage->region));
1160 region_rects(region),
1161 region_num_rects(region));
1166 RegionPtr region)
1173 _debug_describe_region(region_buf, sizeof(region_buf), region)));
1175 damage = __sna_damage_subtract(damage, region);
1184 RegionPtr region)
1186 return __sna_damage_subtract(damage, region);
1198 if (RegionNil(&damage->region)) {
1214 assert(RegionNotEmpty(&damage->region));
1217 if (region_is_singular(&damage->region)) {
1218 pixman_region16_t region;
1220 pixman_region_init_rects(&region, box, 1);
1221 pixman_region_subtract(&damage->region,
1222 &damage->region,
1223 &region);
1224 damage->extents = damage->region.extents;
1270 if (RegionNil(&damage->region)) {
1307 assert(RegionNotEmpty(&damage->region));
1358 ret = pixman_region_contains_rectangle(&damage->region, (BoxPtr)box);
1391 if (!pixman_region_not_empty(&damage->region)) {
1397 return pixman_region_contains_rectangle(&damage->region, (BoxPtr)box);
1444 n = pixman_region_contains_rectangle((pixman_region16_t *)&damage->region, (BoxPtr)box);
1482 RegionPtr region, RegionPtr result)
1485 assert(RegionNotEmpty(region));
1487 if (region->extents.x2 <= damage->extents.x1 ||
1488 region->extents.x1 >= damage->extents.x2)
1491 if (region->extents.y2 <= damage->extents.y1 ||
1492 region->extents.y1 >= damage->extents.y2)
1498 if (!pixman_region_not_empty(&damage->region))
1502 RegionIntersect(result, &damage->region, region);
1509 RegionPtr region, RegionPtr result)
1517 _debug_describe_region(region_buf, sizeof(region_buf), region)));
1519 ret = __sna_damage_intersect(damage, region, result);
1530 RegionPtr region, RegionPtr result)
1532 return __sna_damage_intersect(damage, region, result);
1546 *boxes = region_rects(&damage->region);
1547 return region_num_rects(&damage->region);
1559 if (!pixman_region_not_empty(&damage->region)) {
1595 if (pixman_region_not_empty(&r->region)) {
1596 pixman_region_translate(&r->region, dx, dy);
1597 l = __sna_damage_add(l, &r->region);
1607 pixman_region_fini(&damage->region);
1644 pixman_region16_t *region)
1662 pixman_region_init_rect(region, x, y, w, h);
1667 pixman_region16_t *region)
1675 pixman_region_union(region, region, &tmp);
1680 pixman_region16_t *region)
1689 pixman_region_union(region, region, &r);
1694 pixman_region16_t *region)
1701 pixman_region_subtract(region, region, &tmp);
1706 pixman_region16_t *region)
1714 pixman_region_subtract(region, region, &r);
1719 pixman_region16_t *region)
1727 pixman_region_union(region, region, &tmp);
1732 pixman_region16_t *region)
1738 r_boxes = pixman_region_rectangles(region, &r_num);
1759 pixman_region16_t *region) = {
1768 pixman_region16_t *region) = {
1796 FatalError("%s: failed - region = %s, damage = %s\n", __FUNCTION__,
1813 RegionCopy(r, &damage->region);