Home | History | Annotate | Download | only in sna

Lines Matching refs:region

64 region_is_singular(pixman_region16_t *region)
66 return region->data == NULL;
70 region_is_empty(pixman_region16_t *region)
72 return region->data && region->data->numRects == 0;
76 clip_to_dst(pixman_region16_t *region,
81 DBG(("%s: region: %dx[(%d, %d), (%d, %d)], clip: %dx[(%d, %d), (%d, %d)]\n",
83 pixman_region_n_rects(region),
84 region->extents.x1, region->extents.y1,
85 region->extents.x2, region->extents.y2,
90 if (region_is_singular(region) && region_is_singular(clip)) {
91 pixman_box16_t *r = &region->extents;
105 pixman_region_init(region);
114 pixman_region_translate(region, -dx, -dy);
115 if (!pixman_region_intersect(region, region, clip))
118 pixman_region_translate(region, dx, dy);
120 return !region_is_empty(region);
135 clip_to_src(RegionPtr region, PicturePtr p, int dx, int dy)
146 result = RegionIntersect(region, region, p->clientClip);
152 return result && !region_is_empty(region);
156 sna_compute_composite_region(RegionPtr region,
170 region->extents.x1 = dst_x < 0 ? 0 : dst_x;
174 region->extents.x2 = v;
176 region->extents.y1 = dst_y < 0 ? 0 : dst_y;
180 region->extents.y2 = v;
182 region->data = 0;
186 region->extents.x1, region->extents.y1,
187 region->extents.x2, region->extents.y2));
189 if (region->extents.x1 >= region->extents.x2 ||
190 region->extents.y1 >= region->extents.y2)
193 region->extents.x1 += dst->pDrawable->x;
194 region->extents.x2 += dst->pDrawable->x;
195 region->extents.y1 += dst->pDrawable->y;
196 region->extents.y2 += dst->pDrawable->y;
202 if (!clip_to_dst(region, dst->pCompositeClip, 0, 0))
207 region->extents.x1, region->extents.y1,
208 region->extents.x2, region->extents.y2));
211 if (!clip_to_dst(region, dst->alphaMap->pCompositeClip,
214 pixman_region_fini (region);
225 if (!clip_to_src(region, src, dst_x - src_x, dst_y - src_y)) {
226 pixman_region_fini (region);
234 region->extents.x1, region->extents.y1,
235 region->extents.x2, region->extents.y2));
238 if (!clip_to_src(region, src->alphaMap,
241 pixman_region_fini(region);
253 if (!clip_to_src(region, mask, dst_x - mask_x, dst_y - mask_y)) {
254 pixman_region_fini(region);
258 if (!clip_to_src(region, mask->alphaMap,
261 pixman_region_fini(region);
268 region->extents.x1, region->extents.y1,
269 region->extents.x2, region->extents.y2));
272 return !region_is_empty(region);
431 static void apply_damage(struct sna_composite_op *op, RegionPtr region)
433 DBG(("%s: damage=%p, region=%d [(%d, %d), (%d, %d) + (%d, %d)]\n",
434 __FUNCTION__, op->damage, region_num_rects(region),
435 region->extents.x1, region->extents.y1,
436 region->extents.x2, region->extents.y2,
443 RegionTranslate(region, op->dst.x, op->dst.y);
445 assert_pixmap_contains_box(op->dst.pixmap, RegionExtents(region));
446 if (region->data == NULL &&
447 region->extents.x2 - region->extents.x1 == op->dst.width &&
448 region->extents.y2 - region->extents.y1 == op->dst.height) {
454 sna_damage_add(op->damage, region);
492 RegionPtr region,
505 DBG(("%s -- op=%d, fallback dst=(%d, %d)+(%d, %d), size=(%d, %d): region=((%d,%d), (%d, %d))\n",
510 region->extents.x1, region->extents.y1,
511 region->extents.x2, region->extents.y2));
548 if (!sna_drawable_move_region_to_cpu(dst->pDrawable, region, flags))
571 if (region->extents.x1 + sx >= 0 &&
572 region->extents.y1 + sy >= 0 &&
573 region->extents.x2 + sx <= src->pDrawable->width &&
574 region->extents.y2 + sy <= src->pDrawable->height) {
576 const BoxRec *box = region_rects(region);
577 int nbox = region_num_rects(region);
584 assert(region->extents.x1 + sx >= 0);
585 assert(region->extents.x2 + sx <= src_pixmap->drawable.width);
586 assert(region->extents.y1 + sy >= 0);
587 assert(region->extents.y2 + sy <= src_pixmap->drawable.height);
653 RegionRec region;
683 if (!sna_compute_composite_region(&region,
719 dx = region.extents.x1 - (dst_x + dst->pDrawable->x);
720 dy = region.extents.y1 - (dst_y + dst->pDrawable->y);
722 DBG(("%s: composite region extents:+(%d, %d) -> (%d, %d), (%d, %d) + (%d, %d)\n",
725 region.extents.x1, region.extents.y1,
726 region.extents.x2, region.extents.y2,
734 pixman_region_translate(&region, x, y);
736 sna_damage_subtract(&priv->cpu_damage, &region);
743 pixman_region_translate(&region, -x, -y);
750 region.extents.x1,
751 region.extents.y1,
752 region.extents.x2 - region.extents.x1,
753 region.extents.y2 - region.extents.y1,
754 region.data ? COMPOSITE_PARTIAL : 0,
760 if (region.data == NULL)
761 tmp.box(sna, &tmp, &region.extents);
764 RegionBoxptr(&region),
765 region_num_rects(&region));
766 apply_damage(&tmp, &region);
773 sna_composite_fb(op, src, mask, dst, &region,
779 REGION_UNINIT(NULL, &region);
794 pixman_region16_t region;
913 if (!pixman_region_init_rects(&region, boxes, num_boxes))
916 DBG(("%s: nrects=%d, region=(%d, %d), (%d, %d) x %d\n",
918 region.extents.x1, region.extents.y1,
919 region.extents.x2, region.extents.y2,
923 (!pixman_region_intersect(&region, &region, dst->pCompositeClip) ||
924 region_is_empty(&region))) {
932 RegionExtents(&region)->x1, RegionExtents(&region)->y1,
933 RegionExtents(&region)->x2, RegionExtents(&region)->y2,
934 region_num_rects(&region)));
941 DamageRegionAppend(dst->pDrawable, &region);
945 pixman_region_translate(&region, dst_x, dst_y);
949 RegionExtents(&region)->x1, RegionExtents(&region)->y1,
950 RegionExtents(&region)->x2, RegionExtents(&region)->y2));
951 assert_pixmap_contains_box(pixmap, RegionExtents(&region));
997 if (region.data == NULL) {
999 if (region_subsumes_drawable(&region, &pixmap->drawable))
1003 region_subsumes_damage(&region, priv->cpu_damage))) {
1014 box_inplace(pixmap, &region.extents)) {
1029 &region.extents, &damage);
1038 b = pixman_region_rectangles(&region, &num_boxes);
1082 sna_damage_add(damage, &region);
1087 if (region_subsumes_drawable(&region, &pixmap->drawable)) {
1122 if (!sna_drawable_move_region_to_cpu(&pixmap->drawable, &region, hint))
1133 int nbox = region_num_rects(&region);
1134 const BoxRec *box = region_rects(&region);
1196 pixman_region_fini(&region);