mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-01-10 08:10:24 +01:00
PS: Fix gradients with one stop
This commit is contained in:
parent
f99d86e708
commit
3a2a867210
1 changed files with 26 additions and 0 deletions
|
|
@ -2618,6 +2618,19 @@ _cairo_ps_surface_emit_linear_pattern (cairo_ps_surface_t *surface,
|
|||
if (pattern->base.n_stops == 0)
|
||||
return CAIRO_INT_STATUS_NOTHING_TO_DO;
|
||||
|
||||
if (pattern->base.n_stops == 1) {
|
||||
cairo_solid_pattern_t solid;
|
||||
|
||||
_cairo_pattern_init_solid (&solid,
|
||||
&pattern->base.stops[0].color,
|
||||
CAIRO_CONTENT_COLOR_ALPHA);
|
||||
_cairo_ps_surface_emit_solid_pattern (surface,
|
||||
&solid);
|
||||
_cairo_pattern_fini (&solid.base);
|
||||
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
extend = cairo_pattern_get_extend (&pattern->base.base);
|
||||
|
||||
pat_to_ps = pattern->base.base.matrix;
|
||||
|
|
@ -2745,6 +2758,19 @@ _cairo_ps_surface_emit_radial_pattern (cairo_ps_surface_t *surface,
|
|||
if (pattern->base.n_stops == 0)
|
||||
return CAIRO_INT_STATUS_NOTHING_TO_DO;
|
||||
|
||||
if (pattern->base.n_stops == 1) {
|
||||
cairo_solid_pattern_t solid;
|
||||
|
||||
_cairo_pattern_init_solid (&solid,
|
||||
&pattern->base.stops[0].color,
|
||||
CAIRO_CONTENT_COLOR_ALPHA);
|
||||
_cairo_ps_surface_emit_solid_pattern (surface,
|
||||
&solid);
|
||||
_cairo_pattern_fini (&solid.base);
|
||||
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
extend = cairo_pattern_get_extend (&pattern->base.base);
|
||||
|
||||
pat_to_ps = pattern->base.base.matrix;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue