[cairo] [PATCH 19/51] drm: fixed missing antialiasing mode parameters

Enrico Weigelt, metux IT consult enrico.weigelt at gr13.net
Fri Dec 18 05:28:58 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 68822c0..c212a59 100644
--- a/src/drm/cairo-drm-i915-surface.c
+++ b/src/drm/cairo-drm-i915-surface.c
@@ -879,6 +879,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)
 {
@@ -911,7 +912,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;
@@ -928,12 +929,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;
@@ -1648,7 +1649,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);
@@ -1934,6 +1935,7 @@ i915_surface_fill_with_alpha (void			*abstract_dst,
 	_cairo_boxes_limit (&boxes, clip_boxes, num_boxes);
 	cairo_status_t stat = _cairo_path_fixed_fill_rectilinear_to_boxes (path,
 							      fill_rule,
+							      antialias,
 							      &boxes);
 	if (likely (stat == CAIRO_STATUS_SUCCESS)) {
 	    stat = _clip_and_composite_boxes (dst, op, source,
@@ -1992,6 +1994,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)
 {
@@ -2049,7 +2052,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)
@@ -2076,7 +2079,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
@@ -2098,7 +2101,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,
@@ -2276,6 +2279,7 @@ i915_surface_stroke (void			*abstract_dst,
 	cairo_status_t stat = _cairo_path_fixed_stroke_rectilinear_to_boxes (path,
 								stroke_style,
 								ctm,
+								antialias,
 								&boxes);
 	if (likely (stat == CAIRO_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 0938d64..409c685 100644
--- a/src/drm/cairo-drm-i965-surface.c
+++ b/src/drm/cairo-drm-i965-surface.c
@@ -873,6 +873,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)
 {
@@ -916,7 +917,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;
@@ -933,12 +934,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;
@@ -1048,7 +1049,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);
@@ -1334,6 +1335,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,
@@ -1441,6 +1443,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