summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2010-06-10 10:52:16 +0200
committerAndrea Canciani <ranma42@gmail.com>2010-06-10 16:07:42 +0200
commitd17e2c5e23eac302b7463a08205088147da1172a (patch)
tree7d140243b143f13c35da5f86c46c4a90bbf934cc /src
parenteb7fc351156bd66921ac3b3ffbd1fba6ba743ffb (diff)
ps: support single stop gradients
Diffstat (limited to 'src')
-rw-r--r--src/cairo-ps-surface.c9
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;