[cairo-commit] 2 commits - src/test-base-compositor-surface.c test/record1414x.c test/reference

Chris Wilson ickle at kemper.freedesktop.org
Fri Mar 2 04:33:24 PST 2012


 src/test-base-compositor-surface.c                                        |  174 ++--------
 test/record1414x.c                                                        |    1 
 test/reference/clip-disjoint-hatching.base.argb32.ref.png                 |binary
 test/reference/clip-disjoint-hatching.base.rgb24.ref.png                  |binary
 test/reference/clip-fill-eo-unbounded.base.argb32.ref.png                 |binary
 test/reference/clip-fill-eo-unbounded.base.rgb24.ref.png                  |binary
 test/reference/clip-fill-nz-unbounded.base.argb32.ref.png                 |binary
 test/reference/clip-fill-nz-unbounded.base.rgb24.ref.png                  |binary
 test/reference/clip-fill-rule.base.argb32.ref.png                         |binary
 test/reference/clip-fill-rule.base.rgb24.ref.png                          |binary
 test/reference/clip-fill.base.argb32.ref.png                              |binary
 test/reference/clip-fill.base.rgb24.ref.png                               |binary
 test/reference/clip-group-shapes-circles.base.argb32.ref.png              |binary
 test/reference/clip-group-shapes-circles.base.rgb24.ref.png               |binary
 test/reference/clip-group-shapes-unaligned-rectangles.base.argb32.ref.png |binary
 test/reference/clip-group-shapes-unaligned-rectangles.base.rgb24.ref.png  |binary
 test/reference/clip-image.base.argb32.ref.png                             |binary
 test/reference/clip-image.base.rgb24.ref.png                              |binary
 test/reference/clip-intersect.base.argb32.ref.png                         |binary
 test/reference/clip-intersect.base.rgb24.ref.png                          |binary
 test/reference/clip-nesting.base.argb32.ref.png                           |binary
 test/reference/clip-nesting.base.rgb24.ref.png                            |binary
 test/reference/clip-operator.base.argb32.ref.png                          |binary
 test/reference/clip-operator.base.rgb24.ref.png                           |binary
 test/reference/clip-polygons.base.argb32.ref.png                          |binary
 test/reference/clip-polygons.base.rgb24.ref.png                           |binary
 test/reference/clip-push-group.base.argb32.ref.png                        |binary
 test/reference/clip-push-group.base.rgb24.ref.png                         |binary
 test/reference/clip-rectilinear.base.argb32.ref.png                       |binary
 test/reference/clip-rectilinear.base.rgb24.ref.png                        |binary
 test/reference/clip-shape.base.argb32.ref.png                             |binary
 test/reference/clip-shape.base.rgb24.ref.png                              |binary
 test/reference/clip-stroke-unbounded.base.argb32.ref.png                  |binary
 test/reference/clip-stroke-unbounded.base.rgb24.ref.png                   |binary
 test/reference/clip-stroke.base.argb32.ref.png                            |binary
 test/reference/clip-stroke.base.rgb24.ref.png                             |binary
 test/reference/clip-text.base.argb32.ref.png                              |binary
 test/reference/clip-text.base.rgb24.ref.png                               |binary
 test/reference/clip-twice.base.argb32.ref.png                             |binary
 test/reference/clip-twice.base.rgb24.ref.png                              |binary
 test/reference/clipped-group.base.argb32.ref.png                          |binary
 test/reference/clipped-group.base.rgb24.ref.png                           |binary
 test/reference/hatchings.base.argb32.ref.png                              |binary
 test/reference/hatchings.base.rgb24.ref.png                               |binary
 test/reference/mask.base.argb32.ref.png                                   |binary
 test/reference/mask.base.rgb24.ref.png                                    |binary
 test/reference/paint-with-alpha-clip-mask.base.argb32.ref.png             |binary
 test/reference/paint-with-alpha-clip-mask.base.rgb24.ref.png              |binary
 test/reference/paint-with-alpha-clip.base.argb32.ref.png                  |binary
 test/reference/paint-with-alpha-clip.base.rgb24.ref.png                   |binary
 test/reference/paint-with-alpha-solid-clip.base.argb32.ref.png            |binary
 test/reference/paint-with-alpha-solid-clip.base.rgb24.ref.png             |binary
 test/reference/pdf-isolated-group.base.argb32.ref.png                     |binary
 test/reference/pdf-isolated-group.base.rgb24.ref.png                      |binary
 test/reference/random-clip.base.argb32.ref.png                            |binary
 test/reference/random-clip.base.rgb24.ref.png                             |binary
 test/reference/record1414x-fill-alpha.xfail.png                           |binary
 test/reference/rotate-clip-image-surface-paint.base.argb32.ref.png        |binary
 test/reference/rotate-clip-image-surface-paint.base.rgb24.ref.png         |binary
 test/reference/rotated-clip.base.argb32.ref.png                           |binary
 test/reference/rotated-clip.base.rgb24.ref.png                            |binary
 test/reference/tighten-bounds.base.argb32.ref.png                         |binary
 test/reference/tighten-bounds.base.rgb24.ref.png                          |binary
 test/reference/trap-clip.base.argb32.ref.png                              |binary
 test/reference/trap-clip.base.rgb24.ref.png                               |binary
 65 files changed, 50 insertions(+), 125 deletions(-)

New commits:
commit 8968f010356fc946193aa1ee0a28af39730b8338
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Mar 1 23:24:55 2012 +0000

    base: Remove the double application of the clip boxes
    
    The clipping code was modified to handle partial boxes itself, so update
    the base compositor to simply use the core clipping code and avoid
    double application.

diff --git a/src/test-base-compositor-surface.c b/src/test-base-compositor-surface.c
index 21032b0..f8fa517 100644
--- a/src/test-base-compositor-surface.c
+++ b/src/test-base-compositor-surface.c
@@ -137,103 +137,6 @@ _pixman_operator (cairo_operator_t op)
     }
 }
 
-static void
-_pixman_image_add_boxes (pixman_image_t *image,
-			 int dst_x, int dst_y,
-			 cairo_box_t *box,
-			 int count)
-{
-    while (count--) {
-	pixman_trapezoid_t trap;
-
-	trap.top = _cairo_fixed_to_16_16 (box->p1.y);
-	trap.bottom = _cairo_fixed_to_16_16 (box->p2.y);
-
-	trap.left.p1.x = _cairo_fixed_to_16_16 (box->p1.x);
-	trap.left.p1.y = _cairo_fixed_to_16_16 (box->p1.y);
-	trap.left.p2.x = _cairo_fixed_to_16_16 (box->p1.x);
-	trap.left.p2.y = _cairo_fixed_to_16_16 (box->p2.y);
-
-	trap.right.p1.x = _cairo_fixed_to_16_16 (box->p2.x);
-	trap.right.p1.y = _cairo_fixed_to_16_16 (box->p1.y);
-	trap.right.p2.x = _cairo_fixed_to_16_16 (box->p2.x);
-	trap.right.p2.y = _cairo_fixed_to_16_16 (box->p2.y);
-
-	pixman_rasterize_trapezoid (image, &trap, -dst_x, -dst_y);
-	box++;
-    }
-}
-
-static cairo_status_t
-combine_in_boxes (cairo_image_surface_t *dst,
-		  cairo_box_t *box, int count,
-		  const cairo_rectangle_int_t *extents)
-{
-    pixman_image_t *mask;
-
-    mask = pixman_image_create_bits (PIXMAN_a8,
-				     extents->width, extents->height,
-				     NULL, 0);
-    if (unlikely (mask == NULL))
-	return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-
-    _pixman_image_add_boxes (mask, extents->x, extents->y, box, count);
-    pixman_image_composite32 (PIXMAN_OP_IN,
-                              mask, NULL, dst->pixman_image,
-			      0, 0,
-                              0, 0,
-                              0, 0,
-                              extents->width, extents->height);
-    pixman_image_unref (mask);
-
-    return CAIRO_STATUS_SUCCESS;
-}
-
-static cairo_image_surface_t *
-get_clip_surface (cairo_image_surface_t	*dst,
-		  const cairo_composite_rectangles_t *extents,
-		  int *clip_x,
-		  int *clip_y)
-{
-    cairo_image_surface_t *surface;
-    cairo_int_status_t status;
-
-    surface = (cairo_image_surface_t *)
-	_cairo_surface_create_similar_solid (&dst->base,
-					     CAIRO_CONTENT_ALPHA,
-					     extents->unbounded.width,
-					     extents->unbounded.height,
-					     CAIRO_COLOR_WHITE);
-    if (unlikely (surface->base.status))
-	return surface;
-
-    if (extents->clip->boxes) {
-	status = combine_in_boxes (surface,
-				   extents->clip->boxes,
-				   extents->clip->num_boxes,
-				   &extents->unbounded);
-	if (unlikely (status))
-	    goto error;
-    }
-
-    if (extents->clip->path) {
-	status = _cairo_clip_combine_with_surface (extents->clip,
-						   &surface->base,
-						   extents->unbounded.x,
-						   extents->unbounded.y);
-	if (unlikely (status))
-	    goto error;
-    }
-
-    *clip_x = extents->unbounded.x;
-    *clip_y = extents->unbounded.y;
-    return surface;
-
-error:
-    cairo_surface_destroy (&surface->base);
-    return (cairo_image_surface_t *)_cairo_surface_create_in_error (status);
-}
-
 static cairo_image_surface_t *
 create_composite_mask (cairo_image_surface_t	*dst,
 		       void			*draw_closure,
@@ -243,12 +146,13 @@ create_composite_mask (cairo_image_surface_t	*dst,
     cairo_image_surface_t *surface;
     cairo_int_status_t status;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     surface = (cairo_image_surface_t *)
-	_cairo_surface_create_similar_solid (&dst->base,
-					     CAIRO_CONTENT_ALPHA,
-					     extents->bounded.width,
-					     extents->bounded.height,
-					     CAIRO_COLOR_TRANSPARENT);
+	_cairo_image_surface_create_with_pixman_format (NULL, PIXMAN_a8,
+							extents->bounded.width,
+							extents->bounded.height,
+							0);
     if (unlikely (surface->base.status))
 	return surface;
 
@@ -259,23 +163,12 @@ create_composite_mask (cairo_image_surface_t	*dst,
     if (unlikely (status))
 	goto error;
 
-    if (extents->clip->boxes) {
-	status = combine_in_boxes (surface,
-				   extents->clip->boxes,
-				   extents->clip->num_boxes,
-				   &extents->bounded);
-	if (unlikely (status))
-	    goto error;
-    }
-
-    if (extents->clip->path) {
-	status = _cairo_clip_combine_with_surface (extents->clip,
-						   &surface->base,
-						   extents->bounded.x,
-						   extents->bounded.y);
-	if (unlikely (status))
-	    goto error;
-    }
+    status = _cairo_clip_combine_with_surface (extents->clip,
+					       &surface->base,
+					       extents->bounded.x,
+					       extents->bounded.y);
+    if (unlikely (status))
+	goto error;
 
     return surface;
 
@@ -298,6 +191,8 @@ clip_and_composite_with_mask (const cairo_composite_rectangles_t*extents,
     cairo_status_t status = CAIRO_STATUS_SUCCESS;
     int src_x, src_y;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     mask = create_composite_mask (dst, draw_closure, draw_func, extents);
     if (unlikely (mask->base.status))
 	return mask->base.status;
@@ -339,11 +234,14 @@ clip_and_composite_combine (const cairo_composite_rectangles_t*extents,
     int clip_x, clip_y;
     cairo_status_t status;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     tmp = (cairo_image_surface_t *)
-	_cairo_surface_create_similar_solid (&dst->base, dst->base.content,
-					     extents->bounded.width,
-					     extents->bounded.height,
-					     CAIRO_COLOR_TRANSPARENT);
+	_cairo_image_surface_create_with_pixman_format (NULL,
+							dst->pixman_format,
+							extents->bounded.width,
+							extents->bounded.height,
+							0);
     if (unlikely (tmp->base.status))
 	return tmp->base.status;
 
@@ -362,7 +260,7 @@ clip_and_composite_combine (const cairo_composite_rectangles_t*extents,
 	goto error;
 
     clip = (cairo_image_surface_t *)
-	get_clip_surface (dst, extents, &clip_x, &clip_y);
+	_cairo_clip_get_surface (extents->clip, &dst->base, &clip_x, &clip_y);
     if (unlikely (clip->base.status))
 	goto error;
 
@@ -401,6 +299,8 @@ clip_and_composite_source (const cairo_composite_rectangles_t	*extents,
     int src_x, src_y;
     cairo_status_t status = CAIRO_STATUS_SUCCESS;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     mask = create_composite_mask (dst, draw_closure, draw_func, extents);
     if (unlikely (mask->base.status))
 	return mask->base.status;
@@ -443,10 +343,14 @@ fixup_unbounded (const cairo_composite_rectangles_t *extents)
     pixman_image_t *mask;
     int mask_x, mask_y;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     if (! _cairo_clip_is_region (extents->clip)) {
 	cairo_image_surface_t *clip;
 
-	clip = get_clip_surface (dst, extents, &mask_x, &mask_y);
+	clip = (cairo_image_surface_t *)
+	    _cairo_clip_get_surface (extents->clip, &dst->base,
+				     &mask_x, &mask_y);
 	if (unlikely (clip->base.status))
 	    return clip->base.status;
 
@@ -590,6 +494,8 @@ composite_paint (cairo_image_surface_t		*dst,
     pixman_image_t *src;
     int src_x, src_y;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     _cairo_pattern_sampled_area (pattern, extents, &sample);
     src = _pixman_image_for_pattern (dst,
 				     pattern, FALSE,
@@ -598,6 +504,11 @@ composite_paint (cairo_image_surface_t		*dst,
     if (unlikely (src == NULL))
 	return _cairo_error (CAIRO_STATUS_NO_MEMORY);
 
+    TRACE ((stderr, "%s: src=(%d, %d), dst=(%d, %d) size=%dx%d\n", __FUNCTION__,
+	    extents->x + src_x, extents->y + src_y,
+	    extents->x - dst_x, extents->y - dst_y,
+	    extents->width, extents->height));
+
     pixman_image_composite32 (_pixman_operator (op),
 			      src, NULL, dst->pixman_image,
 			      extents->x + src_x, extents->y + src_y,
@@ -614,6 +525,7 @@ static cairo_int_status_t
 base_compositor_paint (const cairo_compositor_t *_compositor,
 		       cairo_composite_rectangles_t *extents)
 {
+    TRACE ((stderr, "%s\n", __FUNCTION__));
     return clip_and_composite (extents, composite_paint, NULL);
 }
 
@@ -631,6 +543,8 @@ composite_mask (cairo_image_surface_t		*dst,
     int src_x, src_y;
     int mask_x, mask_y;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     _cairo_pattern_sampled_area (pattern, extents, &sample);
     src = _pixman_image_for_pattern (dst, pattern, FALSE,
 				     extents, &sample,
@@ -664,6 +578,7 @@ static cairo_int_status_t
 base_compositor_mask (const cairo_compositor_t *_compositor,
 		      cairo_composite_rectangles_t *extents)
 {
+    TRACE ((stderr, "%s\n", __FUNCTION__));
     return clip_and_composite (extents, composite_mask, &extents->mask_pattern.base);
 }
 
@@ -686,6 +601,8 @@ composite_traps (cairo_image_surface_t	*dst,
     pixman_image_t *src, *mask;
     int src_x, src_y;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     _cairo_pattern_sampled_area (pattern, extents, &sample);
     src = _pixman_image_for_pattern (dst, pattern, FALSE,
 				     extents, &sample,
@@ -741,6 +658,8 @@ base_compositor_stroke (const cairo_compositor_t *_compositor,
     composite_traps_info_t info;
     cairo_int_status_t status;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     info.antialias = antialias;
     _cairo_traps_init_with_clip (&info.traps, extents->clip);
     status = _cairo_path_fixed_stroke_to_traps (path, style,
@@ -767,6 +686,8 @@ base_compositor_fill (const cairo_compositor_t *_compositor,
     composite_traps_info_t info;
     cairo_int_status_t status;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     info.antialias = antialias;
     _cairo_traps_init_with_clip (&info.traps, extents->clip);
     status = _cairo_path_fixed_fill_to_traps (path,
@@ -795,6 +716,8 @@ composite_glyphs (cairo_image_surface_t	*dst,
     cairo_status_t status;
     int i;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
+
     mask = pixman_image_create_bits (PIXMAN_a8,
 				     extents->width, extents->height,
 				     NULL, 0);
@@ -877,6 +800,7 @@ base_compositor_glyphs (const cairo_compositor_t	*_compositor,
     info.glyphs = glyphs;
     info.num_glyphs = num_glyphs;
 
+    TRACE ((stderr, "%s\n", __FUNCTION__));
     return clip_and_composite (extents, composite_glyphs, &info);
 }
 
diff --git a/test/reference/clip-disjoint-hatching.base.argb32.ref.png b/test/reference/clip-disjoint-hatching.base.argb32.ref.png
index dbac90b..55f26d0 100644
Binary files a/test/reference/clip-disjoint-hatching.base.argb32.ref.png and b/test/reference/clip-disjoint-hatching.base.argb32.ref.png differ
diff --git a/test/reference/clip-disjoint-hatching.base.rgb24.ref.png b/test/reference/clip-disjoint-hatching.base.rgb24.ref.png
index dbac90b..55f26d0 100644
Binary files a/test/reference/clip-disjoint-hatching.base.rgb24.ref.png and b/test/reference/clip-disjoint-hatching.base.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-eo-unbounded.base.argb32.ref.png b/test/reference/clip-fill-eo-unbounded.base.argb32.ref.png
index 19b9f09..81ecfb9 100644
Binary files a/test/reference/clip-fill-eo-unbounded.base.argb32.ref.png and b/test/reference/clip-fill-eo-unbounded.base.argb32.ref.png differ
diff --git a/test/reference/clip-fill-eo-unbounded.base.rgb24.ref.png b/test/reference/clip-fill-eo-unbounded.base.rgb24.ref.png
index 1ad0b17..d6a5939 100644
Binary files a/test/reference/clip-fill-eo-unbounded.base.rgb24.ref.png and b/test/reference/clip-fill-eo-unbounded.base.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-nz-unbounded.base.argb32.ref.png b/test/reference/clip-fill-nz-unbounded.base.argb32.ref.png
index 19b9f09..81ecfb9 100644
Binary files a/test/reference/clip-fill-nz-unbounded.base.argb32.ref.png and b/test/reference/clip-fill-nz-unbounded.base.argb32.ref.png differ
diff --git a/test/reference/clip-fill-nz-unbounded.base.rgb24.ref.png b/test/reference/clip-fill-nz-unbounded.base.rgb24.ref.png
index 1ad0b17..d6a5939 100644
Binary files a/test/reference/clip-fill-nz-unbounded.base.rgb24.ref.png and b/test/reference/clip-fill-nz-unbounded.base.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-rule.base.argb32.ref.png b/test/reference/clip-fill-rule.base.argb32.ref.png
index 6b083a7..cb23ea6 100644
Binary files a/test/reference/clip-fill-rule.base.argb32.ref.png and b/test/reference/clip-fill-rule.base.argb32.ref.png differ
diff --git a/test/reference/clip-fill-rule.base.rgb24.ref.png b/test/reference/clip-fill-rule.base.rgb24.ref.png
index d21472d..5265dde 100644
Binary files a/test/reference/clip-fill-rule.base.rgb24.ref.png and b/test/reference/clip-fill-rule.base.rgb24.ref.png differ
diff --git a/test/reference/clip-fill.base.argb32.ref.png b/test/reference/clip-fill.base.argb32.ref.png
index d6e84a3..72dc229 100644
Binary files a/test/reference/clip-fill.base.argb32.ref.png and b/test/reference/clip-fill.base.argb32.ref.png differ
diff --git a/test/reference/clip-fill.base.rgb24.ref.png b/test/reference/clip-fill.base.rgb24.ref.png
index d6e84a3..72dc229 100644
Binary files a/test/reference/clip-fill.base.rgb24.ref.png and b/test/reference/clip-fill.base.rgb24.ref.png differ
diff --git a/test/reference/clip-group-shapes-circles.base.argb32.ref.png b/test/reference/clip-group-shapes-circles.base.argb32.ref.png
index 1a67714..7dd6a83 100644
Binary files a/test/reference/clip-group-shapes-circles.base.argb32.ref.png and b/test/reference/clip-group-shapes-circles.base.argb32.ref.png differ
diff --git a/test/reference/clip-group-shapes-circles.base.rgb24.ref.png b/test/reference/clip-group-shapes-circles.base.rgb24.ref.png
index 1a67714..7dd6a83 100644
Binary files a/test/reference/clip-group-shapes-circles.base.rgb24.ref.png and b/test/reference/clip-group-shapes-circles.base.rgb24.ref.png differ
diff --git a/test/reference/clip-group-shapes-unaligned-rectangles.base.argb32.ref.png b/test/reference/clip-group-shapes-unaligned-rectangles.base.argb32.ref.png
index 877e78b..2ad4118 100644
Binary files a/test/reference/clip-group-shapes-unaligned-rectangles.base.argb32.ref.png and b/test/reference/clip-group-shapes-unaligned-rectangles.base.argb32.ref.png differ
diff --git a/test/reference/clip-group-shapes-unaligned-rectangles.base.rgb24.ref.png b/test/reference/clip-group-shapes-unaligned-rectangles.base.rgb24.ref.png
index 877e78b..2ad4118 100644
Binary files a/test/reference/clip-group-shapes-unaligned-rectangles.base.rgb24.ref.png and b/test/reference/clip-group-shapes-unaligned-rectangles.base.rgb24.ref.png differ
diff --git a/test/reference/clip-image.base.argb32.ref.png b/test/reference/clip-image.base.argb32.ref.png
index 062c721..0f71f73 100644
Binary files a/test/reference/clip-image.base.argb32.ref.png and b/test/reference/clip-image.base.argb32.ref.png differ
diff --git a/test/reference/clip-image.base.rgb24.ref.png b/test/reference/clip-image.base.rgb24.ref.png
index 062c721..0f71f73 100644
Binary files a/test/reference/clip-image.base.rgb24.ref.png and b/test/reference/clip-image.base.rgb24.ref.png differ
diff --git a/test/reference/clip-intersect.base.argb32.ref.png b/test/reference/clip-intersect.base.argb32.ref.png
index 2e97b54..6627b3a 100644
Binary files a/test/reference/clip-intersect.base.argb32.ref.png and b/test/reference/clip-intersect.base.argb32.ref.png differ
diff --git a/test/reference/clip-intersect.base.rgb24.ref.png b/test/reference/clip-intersect.base.rgb24.ref.png
index 2e97b54..6627b3a 100644
Binary files a/test/reference/clip-intersect.base.rgb24.ref.png and b/test/reference/clip-intersect.base.rgb24.ref.png differ
diff --git a/test/reference/clip-nesting.base.argb32.ref.png b/test/reference/clip-nesting.base.argb32.ref.png
index 01168df..ce0cc0d 100644
Binary files a/test/reference/clip-nesting.base.argb32.ref.png and b/test/reference/clip-nesting.base.argb32.ref.png differ
diff --git a/test/reference/clip-nesting.base.rgb24.ref.png b/test/reference/clip-nesting.base.rgb24.ref.png
index d087ab6..5247843 100644
Binary files a/test/reference/clip-nesting.base.rgb24.ref.png and b/test/reference/clip-nesting.base.rgb24.ref.png differ
diff --git a/test/reference/clip-operator.base.argb32.ref.png b/test/reference/clip-operator.base.argb32.ref.png
index 289b5d9..39a92b0 100644
Binary files a/test/reference/clip-operator.base.argb32.ref.png and b/test/reference/clip-operator.base.argb32.ref.png differ
diff --git a/test/reference/clip-operator.base.rgb24.ref.png b/test/reference/clip-operator.base.rgb24.ref.png
index 299960e..eed3469 100644
Binary files a/test/reference/clip-operator.base.rgb24.ref.png and b/test/reference/clip-operator.base.rgb24.ref.png differ
diff --git a/test/reference/clip-polygons.base.argb32.ref.png b/test/reference/clip-polygons.base.argb32.ref.png
index e1f294c..e139ef3 100644
Binary files a/test/reference/clip-polygons.base.argb32.ref.png and b/test/reference/clip-polygons.base.argb32.ref.png differ
diff --git a/test/reference/clip-polygons.base.rgb24.ref.png b/test/reference/clip-polygons.base.rgb24.ref.png
index e1f294c..e139ef3 100644
Binary files a/test/reference/clip-polygons.base.rgb24.ref.png and b/test/reference/clip-polygons.base.rgb24.ref.png differ
diff --git a/test/reference/clip-push-group.base.argb32.ref.png b/test/reference/clip-push-group.base.argb32.ref.png
index de6ac63..86724a2 100644
Binary files a/test/reference/clip-push-group.base.argb32.ref.png and b/test/reference/clip-push-group.base.argb32.ref.png differ
diff --git a/test/reference/clip-push-group.base.rgb24.ref.png b/test/reference/clip-push-group.base.rgb24.ref.png
index de6ac63..86724a2 100644
Binary files a/test/reference/clip-push-group.base.rgb24.ref.png and b/test/reference/clip-push-group.base.rgb24.ref.png differ
diff --git a/test/reference/clip-rectilinear.base.argb32.ref.png b/test/reference/clip-rectilinear.base.argb32.ref.png
index 2a27bec..9d910db 100644
Binary files a/test/reference/clip-rectilinear.base.argb32.ref.png and b/test/reference/clip-rectilinear.base.argb32.ref.png differ
diff --git a/test/reference/clip-rectilinear.base.rgb24.ref.png b/test/reference/clip-rectilinear.base.rgb24.ref.png
index 2a27bec..9d910db 100644
Binary files a/test/reference/clip-rectilinear.base.rgb24.ref.png and b/test/reference/clip-rectilinear.base.rgb24.ref.png differ
diff --git a/test/reference/clip-shape.base.argb32.ref.png b/test/reference/clip-shape.base.argb32.ref.png
index 8757979..5d79521 100644
Binary files a/test/reference/clip-shape.base.argb32.ref.png and b/test/reference/clip-shape.base.argb32.ref.png differ
diff --git a/test/reference/clip-shape.base.rgb24.ref.png b/test/reference/clip-shape.base.rgb24.ref.png
index 8757979..5d79521 100644
Binary files a/test/reference/clip-shape.base.rgb24.ref.png and b/test/reference/clip-shape.base.rgb24.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.base.argb32.ref.png b/test/reference/clip-stroke-unbounded.base.argb32.ref.png
index aea8cba..de0d589 100644
Binary files a/test/reference/clip-stroke-unbounded.base.argb32.ref.png and b/test/reference/clip-stroke-unbounded.base.argb32.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.base.rgb24.ref.png b/test/reference/clip-stroke-unbounded.base.rgb24.ref.png
index 70cddac..7d204ee 100644
Binary files a/test/reference/clip-stroke-unbounded.base.rgb24.ref.png and b/test/reference/clip-stroke-unbounded.base.rgb24.ref.png differ
diff --git a/test/reference/clip-stroke.base.argb32.ref.png b/test/reference/clip-stroke.base.argb32.ref.png
index 0a6342d..31ed15e 100644
Binary files a/test/reference/clip-stroke.base.argb32.ref.png and b/test/reference/clip-stroke.base.argb32.ref.png differ
diff --git a/test/reference/clip-stroke.base.rgb24.ref.png b/test/reference/clip-stroke.base.rgb24.ref.png
index 0a6342d..31ed15e 100644
Binary files a/test/reference/clip-stroke.base.rgb24.ref.png and b/test/reference/clip-stroke.base.rgb24.ref.png differ
diff --git a/test/reference/clip-text.base.argb32.ref.png b/test/reference/clip-text.base.argb32.ref.png
index 2a68298..e2b2ca7 100644
Binary files a/test/reference/clip-text.base.argb32.ref.png and b/test/reference/clip-text.base.argb32.ref.png differ
diff --git a/test/reference/clip-text.base.rgb24.ref.png b/test/reference/clip-text.base.rgb24.ref.png
index 2a68298..e2b2ca7 100644
Binary files a/test/reference/clip-text.base.rgb24.ref.png and b/test/reference/clip-text.base.rgb24.ref.png differ
diff --git a/test/reference/clip-twice.base.argb32.ref.png b/test/reference/clip-twice.base.argb32.ref.png
index ba62180..a3dcca4 100644
Binary files a/test/reference/clip-twice.base.argb32.ref.png and b/test/reference/clip-twice.base.argb32.ref.png differ
diff --git a/test/reference/clip-twice.base.rgb24.ref.png b/test/reference/clip-twice.base.rgb24.ref.png
index 9cbdc4d..0c4aaba 100644
Binary files a/test/reference/clip-twice.base.rgb24.ref.png and b/test/reference/clip-twice.base.rgb24.ref.png differ
diff --git a/test/reference/clipped-group.base.argb32.ref.png b/test/reference/clipped-group.base.argb32.ref.png
index 9855e61..bea4c75 100644
Binary files a/test/reference/clipped-group.base.argb32.ref.png and b/test/reference/clipped-group.base.argb32.ref.png differ
diff --git a/test/reference/clipped-group.base.rgb24.ref.png b/test/reference/clipped-group.base.rgb24.ref.png
index 9855e61..bea4c75 100644
Binary files a/test/reference/clipped-group.base.rgb24.ref.png and b/test/reference/clipped-group.base.rgb24.ref.png differ
diff --git a/test/reference/hatchings.base.argb32.ref.png b/test/reference/hatchings.base.argb32.ref.png
index 26cc637..73e156d 100644
Binary files a/test/reference/hatchings.base.argb32.ref.png and b/test/reference/hatchings.base.argb32.ref.png differ
diff --git a/test/reference/hatchings.base.rgb24.ref.png b/test/reference/hatchings.base.rgb24.ref.png
index 26cc637..73e156d 100644
Binary files a/test/reference/hatchings.base.rgb24.ref.png and b/test/reference/hatchings.base.rgb24.ref.png differ
diff --git a/test/reference/mask.base.argb32.ref.png b/test/reference/mask.base.argb32.ref.png
index 3286ce6..7ee6b45 100644
Binary files a/test/reference/mask.base.argb32.ref.png and b/test/reference/mask.base.argb32.ref.png differ
diff --git a/test/reference/mask.base.rgb24.ref.png b/test/reference/mask.base.rgb24.ref.png
index edcabaf..b0ceb35 100644
Binary files a/test/reference/mask.base.rgb24.ref.png and b/test/reference/mask.base.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip-mask.base.argb32.ref.png b/test/reference/paint-with-alpha-clip-mask.base.argb32.ref.png
index 201bd0d..95746ff 100644
Binary files a/test/reference/paint-with-alpha-clip-mask.base.argb32.ref.png and b/test/reference/paint-with-alpha-clip-mask.base.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip-mask.base.rgb24.ref.png b/test/reference/paint-with-alpha-clip-mask.base.rgb24.ref.png
index 201bd0d..95746ff 100644
Binary files a/test/reference/paint-with-alpha-clip-mask.base.rgb24.ref.png and b/test/reference/paint-with-alpha-clip-mask.base.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip.base.argb32.ref.png b/test/reference/paint-with-alpha-clip.base.argb32.ref.png
index 704c70a..c1da67e 100644
Binary files a/test/reference/paint-with-alpha-clip.base.argb32.ref.png and b/test/reference/paint-with-alpha-clip.base.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip.base.rgb24.ref.png b/test/reference/paint-with-alpha-clip.base.rgb24.ref.png
index 704c70a..c1da67e 100644
Binary files a/test/reference/paint-with-alpha-clip.base.rgb24.ref.png and b/test/reference/paint-with-alpha-clip.base.rgb24.ref.png differ
diff --git a/test/reference/paint-with-alpha-solid-clip.base.argb32.ref.png b/test/reference/paint-with-alpha-solid-clip.base.argb32.ref.png
index 2cd2df2..59d226d 100644
Binary files a/test/reference/paint-with-alpha-solid-clip.base.argb32.ref.png and b/test/reference/paint-with-alpha-solid-clip.base.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha-solid-clip.base.rgb24.ref.png b/test/reference/paint-with-alpha-solid-clip.base.rgb24.ref.png
index 2cd2df2..59d226d 100644
Binary files a/test/reference/paint-with-alpha-solid-clip.base.rgb24.ref.png and b/test/reference/paint-with-alpha-solid-clip.base.rgb24.ref.png differ
diff --git a/test/reference/pdf-isolated-group.base.argb32.ref.png b/test/reference/pdf-isolated-group.base.argb32.ref.png
new file mode 100644
index 0000000..6c8522c
Binary files /dev/null and b/test/reference/pdf-isolated-group.base.argb32.ref.png differ
diff --git a/test/reference/pdf-isolated-group.base.rgb24.ref.png b/test/reference/pdf-isolated-group.base.rgb24.ref.png
new file mode 100644
index 0000000..6c8522c
Binary files /dev/null and b/test/reference/pdf-isolated-group.base.rgb24.ref.png differ
diff --git a/test/reference/random-clip.base.argb32.ref.png b/test/reference/random-clip.base.argb32.ref.png
index 85f7808..2750fb1 100644
Binary files a/test/reference/random-clip.base.argb32.ref.png and b/test/reference/random-clip.base.argb32.ref.png differ
diff --git a/test/reference/random-clip.base.rgb24.ref.png b/test/reference/random-clip.base.rgb24.ref.png
index 85f7808..2750fb1 100644
Binary files a/test/reference/random-clip.base.rgb24.ref.png and b/test/reference/random-clip.base.rgb24.ref.png differ
diff --git a/test/reference/rotate-clip-image-surface-paint.base.argb32.ref.png b/test/reference/rotate-clip-image-surface-paint.base.argb32.ref.png
index 9d991d9..7f74b2b 100644
Binary files a/test/reference/rotate-clip-image-surface-paint.base.argb32.ref.png and b/test/reference/rotate-clip-image-surface-paint.base.argb32.ref.png differ
diff --git a/test/reference/rotate-clip-image-surface-paint.base.rgb24.ref.png b/test/reference/rotate-clip-image-surface-paint.base.rgb24.ref.png
index 9d991d9..7f74b2b 100644
Binary files a/test/reference/rotate-clip-image-surface-paint.base.rgb24.ref.png and b/test/reference/rotate-clip-image-surface-paint.base.rgb24.ref.png differ
diff --git a/test/reference/rotated-clip.base.argb32.ref.png b/test/reference/rotated-clip.base.argb32.ref.png
index ca0f0af..e553a13 100644
Binary files a/test/reference/rotated-clip.base.argb32.ref.png and b/test/reference/rotated-clip.base.argb32.ref.png differ
diff --git a/test/reference/rotated-clip.base.rgb24.ref.png b/test/reference/rotated-clip.base.rgb24.ref.png
index ca0f0af..e553a13 100644
Binary files a/test/reference/rotated-clip.base.rgb24.ref.png and b/test/reference/rotated-clip.base.rgb24.ref.png differ
diff --git a/test/reference/tighten-bounds.base.argb32.ref.png b/test/reference/tighten-bounds.base.argb32.ref.png
index 291a841..169d9de 100644
Binary files a/test/reference/tighten-bounds.base.argb32.ref.png and b/test/reference/tighten-bounds.base.argb32.ref.png differ
diff --git a/test/reference/tighten-bounds.base.rgb24.ref.png b/test/reference/tighten-bounds.base.rgb24.ref.png
index f31c17c..d984ff7 100644
Binary files a/test/reference/tighten-bounds.base.rgb24.ref.png and b/test/reference/tighten-bounds.base.rgb24.ref.png differ
diff --git a/test/reference/trap-clip.base.argb32.ref.png b/test/reference/trap-clip.base.argb32.ref.png
index 319d835..285934b 100644
Binary files a/test/reference/trap-clip.base.argb32.ref.png and b/test/reference/trap-clip.base.argb32.ref.png differ
diff --git a/test/reference/trap-clip.base.rgb24.ref.png b/test/reference/trap-clip.base.rgb24.ref.png
index 7ac5789..ed89be7 100644
Binary files a/test/reference/trap-clip.base.rgb24.ref.png and b/test/reference/trap-clip.base.rgb24.ref.png differ
commit 705cd6e1c642863a06b9cfc269572ceb473ac87a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Mar 2 12:22:22 2012 +0000

    test/record1414: Pixel align the clip for replay
    
    In order to match the reference image we need complete coverage, and the
    purpose of the test is to check non-integer scaling of replays rather
    than handling of the clip pixels. That partial coverage is better tested
    elsewhere.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/test/record1414x.c b/test/record1414x.c
index bbd03ca..b8adb86 100644
--- a/test/record1414x.c
+++ b/test/record1414x.c
@@ -374,6 +374,7 @@ record_replay (cairo_t *cr, cairo_t *(*func)(cairo_t *), int width, int height)
     cairo_surface_destroy (surface);
     cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_NONE);
 
+    cairo_identity_matrix (cr); /* make sure the clip is pixel-aligned */
     for (y = 0; y < height; y += 2) {
 	for (x = 0; x < width; x += 2) {
 	    cairo_rectangle (cr, x, y, 2, 2);
diff --git a/test/reference/record1414x-fill-alpha.xfail.png b/test/reference/record1414x-fill-alpha.xfail.png
new file mode 100644
index 0000000..9393186
Binary files /dev/null and b/test/reference/record1414x-fill-alpha.xfail.png differ


More information about the cairo-commit mailing list