[cairo] [PATCH 18/71] drm: fixed missing antialiasing mode parameters

Bryce Harrington bryce at osg.samsung.com
Tue Apr 25 01:31:16 UTC 2017


On Mon, Apr 17, 2017 at 06:56:57PM +0200, Enrico Weigelt, metux IT consult wrote:
> 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>
Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>

> ---
>  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 6048bb5c0..12905b85f 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 2c5530345..817f78c3c 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.11.0.rc0.7.gbe5a750
> 
> -- 
> cairo mailing list
> cairo at cairographics.org
> https://lists.cairographics.org/mailman/listinfo/cairo


More information about the cairo mailing list