Skip to content

Commit

Permalink
PS: Remove radial gradient fallback
Browse files Browse the repository at this point in the history
when one circle not inside the other. Pixman now follows the PDF
specification.
  • Loading branch information
Adrian Johnson committed Oct 15, 2010
1 parent d3655e0 commit 22cdb70
Showing 1 changed file with 2 additions and 17 deletions.
19 changes: 2 additions & 17 deletions src/cairo-ps-surface.c
Original file line number Diff line number Diff line change
Expand Up @@ -1737,28 +1737,13 @@ _gradient_pattern_supported (cairo_ps_surface_t *surface,

extend = cairo_pattern_get_extend ((cairo_pattern_t *) pattern);

/* Radial gradients are currently only supported when one circle
* is inside the other. */
/* Radial gradients are currently only supported with EXTEND_NONE
* and EXTEND_PAD. */
if (pattern->type == CAIRO_PATTERN_TYPE_RADIAL) {
double x1, y1, x2, y2, r1, r2, d;
cairo_radial_pattern_t *radial = (cairo_radial_pattern_t *) pattern;

if (extend == CAIRO_EXTEND_REPEAT ||
extend == CAIRO_EXTEND_REFLECT) {
return FALSE;
}

x1 = _cairo_fixed_to_double (radial->c1.x);
y1 = _cairo_fixed_to_double (radial->c1.y);
r1 = _cairo_fixed_to_double (radial->r1);
x2 = _cairo_fixed_to_double (radial->c2.x);
y2 = _cairo_fixed_to_double (radial->c2.y);
r2 = _cairo_fixed_to_double (radial->r2);

d = sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));
if (d > fabs(r2 - r1)) {
return FALSE;
}
}

surface->ps_level_used = CAIRO_PS_LEVEL_3;
Expand Down

0 comments on commit 22cdb70

Please sign in to comment.