diff options
author | Andrea Canciani <ranma42@gmail.com> | 2010-06-10 10:52:16 +0200 |
---|---|---|
committer | Andrea Canciani <ranma42@gmail.com> | 2010-06-10 16:07:42 +0200 |
commit | d17e2c5e23eac302b7463a08205088147da1172a (patch) | |
tree | 7d140243b143f13c35da5f86c46c4a90bbf934cc /src | |
parent | eb7fc351156bd66921ac3b3ffbd1fba6ba743ffb (diff) |
ps: support single stop gradients
Diffstat (limited to 'src')
-rw-r--r-- | src/cairo-ps-surface.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c index 71d10b88..15a67525 100644 --- a/src/cairo-ps-surface.c +++ b/src/cairo-ps-surface.c @@ -3114,7 +3114,10 @@ _cairo_ps_surface_emit_pattern_stops (cairo_ps_surface_t *surface, _cairo_output_stream_printf (surface->stream, "/CairoFunction\n"); - if (n_stops == 2) { + if (n_stops == 1) { + /* work around single stop gradients */ + _cairo_ps_surface_emit_linear_colorgradient (surface, &stops[0], &stops[0]); + } else if (n_stops == 2) { /* no need for stitched function */ _cairo_ps_surface_emit_linear_colorgradient (surface, &stops[0], &stops[1]); } else { @@ -3176,8 +3179,6 @@ _cairo_ps_surface_emit_linear_pattern (cairo_ps_surface_t *surface, double first_stop, last_stop; int repeat_begin = 0, repeat_end = 1; - assert (pattern->base.n_stops >= 2); - extend = cairo_pattern_get_extend (&pattern->base.base); pat_to_ps = pattern->base.base.matrix; @@ -3302,8 +3303,6 @@ _cairo_ps_surface_emit_radial_pattern (cairo_ps_surface_t *surface, cairo_extend_t extend; cairo_status_t status; - assert (pattern->base.n_stops >= 2); - extend = cairo_pattern_get_extend (&pattern->base.base); pat_to_ps = pattern->base.base.matrix; |