[cairo] [PATCH 21/54] drm: fixed missing antialiasing mode parameters

Enrico Weigelt, metux IT consult enrico.weigelt at gr13.net
Wed Dec 23 02:23:05 PST 2015


Several functions now want an additional parameter for antialiasing mode.
Some callers still haven't been updated yet.

Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt at gr13.net>
---
 src/drm/cairo-drm-i915-surface.c | 18 +++++++++++-------
 src/drm/cairo-drm-i965-surface.c | 11 +++++++----
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/src/drm/cairo-drm-i915-surface.c b/src/drm/cairo-drm-i915-surface.c
index 286a437..015c73a 100644
--- a/src/drm/cairo-drm-i915-surface.c
+++ b/src/drm/cairo-drm-i915-surface.c
@@ -878,6 +878,7 @@ i915_fixup_unbounded (i915_surface_t *dst,
 static cairo_status_t
 i915_fixup_unbounded_boxes (i915_surface_t *dst,
 			    const cairo_composite_rectangles_t *extents,
+			    cairo_antialias_t antialias,
 			    const cairo_clip_t *clip,
 			    cairo_boxes_t *boxes)
 {
@@ -910,7 +911,7 @@ i915_fixup_unbounded_boxes (i915_surface_t *dst,
 
 	_cairo_boxes_init (&tmp);
 
-	status = _cairo_boxes_add (&tmp, &box);
+	status = _cairo_boxes_add (&tmp, antialias, &box);
 	assert (status == CAIRO_STATUS_SUCCESS);
 
 	tmp.chunks.next = &boxes->chunks;
@@ -927,12 +928,12 @@ i915_fixup_unbounded_boxes (i915_surface_t *dst,
 	pbox = pixman_region32_rectangles (&clip_region->rgn, &i);
 	_cairo_boxes_limit (&clear, (cairo_box_t *) pbox, i);
 
-	status = _cairo_boxes_add (&clear, &box);
+	status = _cairo_boxes_add (&clear, antialias, &box);
 	assert (status == CAIRO_STATUS_SUCCESS);
 
 	for (chunk = &boxes->chunks; chunk != NULL; chunk = chunk->next) {
 	    for (i = 0; i < chunk->count; i++) {
-		status = _cairo_boxes_add (&clear, &chunk->base[i]);
+		status = _cairo_boxes_add (&clear, antialias, &chunk->base[i]);
 		if (unlikely (status)) {
 		    _cairo_boxes_fini (&clear);
 		    return status;
@@ -1647,7 +1648,7 @@ _composite_boxes (i915_surface_t *dst,
     }
 
     if (! extents->is_bounded)
-	status = i915_fixup_unbounded_boxes (dst, extents, clip, boxes);
+	status = i915_fixup_unbounded_boxes (dst, extents, antialias, clip, boxes);
 
   err_device:
     cairo_device_release (&device->intel.base.base);
@@ -1933,6 +1934,7 @@ i915_surface_fill_with_alpha (void			*abstract_dst,
 	_cairo_boxes_limit (&boxes, clip_boxes, num_boxes);
 	status = (cairo_int_status_t)_cairo_path_fixed_fill_rectilinear_to_boxes (path,
 							      fill_rule,
+							      antialias,
 							      &boxes);
 	if (likely (status == CAIRO_INT_STATUS_SUCCESS)) {
 	    status = _clip_and_composite_boxes (dst, op, source,
@@ -1991,6 +1993,7 @@ static cairo_int_status_t
 i915_surface_paint_with_alpha (void			*abstract_dst,
 			       cairo_operator_t		 op,
 			       const cairo_pattern_t	*source,
+			       cairo_antialias_t	antialias,
 			       const cairo_clip_t	*clip,
 			       double			 opacity)
 {
@@ -2048,7 +2051,7 @@ i915_surface_paint_with_alpha (void			*abstract_dst,
     {
 	_cairo_boxes_init_for_array (&boxes, clip_boxes, num_boxes);
 	status = _clip_and_composite_boxes (dst, op, source,
-					    &boxes, CAIRO_ANTIALIAS_DEFAULT,
+					    &boxes, antialias,
 					    &extents, clip, opacity);
     }
     if (clip_boxes != boxes.boxes_embedded)
@@ -2075,7 +2078,7 @@ i915_surface_paint (void			*abstract_dst,
 	return CAIRO_STATUS_SUCCESS;
     }
 
-    return i915_surface_paint_with_alpha (dst, op, source, clip, 1.);
+    return i915_surface_paint_with_alpha (dst, op, source, CAIRO_ANTIALIAS_DEFAULT, clip, 1.);
 }
 
 static cairo_int_status_t
@@ -2097,7 +2100,7 @@ i915_surface_mask (void				*abstract_dst,
 
     if (mask->type == CAIRO_PATTERN_TYPE_SOLID) {
 	const cairo_solid_pattern_t *solid = (cairo_solid_pattern_t *) mask;
-	return i915_surface_paint_with_alpha (dst, op, source, clip, solid->color.alpha);
+	return i915_surface_paint_with_alpha (dst, op, source, CAIRO_ANTIALIAS_DEFAULT, clip, solid->color.alpha);
     }
 
     status = _cairo_composite_rectangles_init_for_mask (&extents,
@@ -2275,6 +2278,7 @@ i915_surface_stroke (void			*abstract_dst,
 	status = (cairo_int_status_t)_cairo_path_fixed_stroke_rectilinear_to_boxes (path,
 								stroke_style,
 								ctm,
+								antialias,
 								&boxes);
 	if (likely (status == CAIRO_INT_STATUS_SUCCESS)) {
 	    status = _clip_and_composite_boxes (dst, op, source,
diff --git a/src/drm/cairo-drm-i965-surface.c b/src/drm/cairo-drm-i965-surface.c
index 0b8bd0a..3048129 100644
--- a/src/drm/cairo-drm-i965-surface.c
+++ b/src/drm/cairo-drm-i965-surface.c
@@ -872,6 +872,7 @@ i965_fixup_unbounded (i965_surface_t *dst,
 static cairo_status_t
 i965_fixup_unbounded_boxes (i965_surface_t *dst,
 			    const cairo_composite_rectangles_t *extents,
+			    const cairo_antialias_t antialias,
 			    const cairo_clip_t *clip,
 			    cairo_boxes_t *boxes)
 {
@@ -915,7 +916,7 @@ i965_fixup_unbounded_boxes (i965_surface_t *dst,
 
 	_cairo_boxes_init (&tmp);
 
-	status = _cairo_boxes_add (&tmp, &box);
+	status = _cairo_boxes_add (&tmp, antialias, &box);
 	assert (status == CAIRO_STATUS_SUCCESS);
 
 	tmp.chunks.next = &boxes->chunks;
@@ -932,12 +933,12 @@ i965_fixup_unbounded_boxes (i965_surface_t *dst,
 	pbox = pixman_region32_rectangles (&clip_region->rgn, &i);
 	_cairo_boxes_limit (&clear, (cairo_box_t *) pbox, i);
 
-	status = _cairo_boxes_add (&clear, &box);
+	status = _cairo_boxes_add (&clear, antialias, &box);
 	assert (status == CAIRO_STATUS_SUCCESS);
 
 	for (chunk = &boxes->chunks; chunk != NULL; chunk = chunk->next) {
 	    for (i = 0; i < chunk->count; i++) {
-		status = _cairo_boxes_add (&clear, &chunk->base[i]);
+		status = _cairo_boxes_add (&clear, antialias, &chunk->base[i]);
 		if (unlikely (status)) {
 		    _cairo_boxes_fini (&clear);
 		    return status;
@@ -1047,7 +1048,7 @@ _composite_boxes (i965_surface_t *dst,
     }
 
     if (! extents->is_bounded)
-	status = i965_fixup_unbounded_boxes (dst, extents, clip, boxes);
+	status = i965_fixup_unbounded_boxes (dst, extents, antialias, clip, boxes);
 
   err_device:
     cairo_device_release (&device->intel.base.base);
@@ -1333,6 +1334,7 @@ i965_surface_stroke (void			*abstract_dst,
 	status = _cairo_path_fixed_stroke_rectilinear_to_boxes (path,
 								stroke_style,
 								ctm,
+								antialias,
 								&boxes);
 	if (likely (status == CAIRO_INT_STATUS_SUCCESS)) {
 	    status = _clip_and_composite_boxes (dst, op, source,
@@ -1440,6 +1442,7 @@ i965_surface_fill (void			*abstract_dst,
 	_cairo_boxes_limit (&boxes, clip_boxes, num_boxes);
 	status = _cairo_path_fixed_fill_rectilinear_to_boxes (path,
 							      fill_rule,
+							      antialias,
 							      &boxes);
 	if (likely (status == CAIRO_INT_STATUS_SUCCESS)) {
 	    status = _clip_and_composite_boxes (dst, op, source,
-- 
2.6.4.442.g545299f



More information about the cairo mailing list