summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'base/gscsepr.c')
-rw-r--r--base/gscsepr.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/base/gscsepr.c b/base/gscsepr.c
index d0c81f0f..abde8590 100644
--- a/base/gscsepr.c
+++ b/base/gscsepr.c
@@ -186,16 +186,17 @@ gx_set_overprint_Separation(const gs_color_space * pcs, gs_gstate * pgs)
gs_devicen_color_map * pcmap = &pgs->color_component_map;
if (pcmap->use_alt_cspace)
- return gx_spot_colors_set_overprint(pcs->base_space, pgs);
+ return gx_set_no_overprint(pgs);
else {
gs_overprint_params_t params;
- /* We should not have to blend if we don't need the alternate tint transform */
- params.retain_any_comps = pgs->overprint &&
- pcs->params.separation.sep_type != SEP_ALL;
+ params.retain_any_comps = (((pgs->overprint && pgs->is_fill_color) ||
+ (pgs->stroke_overprint && !pgs->is_fill_color)) &&
+ (pcs->params.separation.sep_type != SEP_ALL));
+ params.is_fill_color = pgs->is_fill_color;
+ params.drawn_comps = 0;
+ params.op_state = OP_STATE_NONE;
if (params.retain_any_comps) {
- params.retain_spot_comps = false;
- params.drawn_comps = 0;
if (pcs->params.separation.sep_type != SEP_NONE) {
int mcomp = pcmap->color_map[0];
@@ -204,7 +205,7 @@ gx_set_overprint_Separation(const gs_color_space * pcs, gs_gstate * pgs)
}
}
/* Only DeviceCMYK can use overprint mode */
- pgs->effective_overprint_mode = 0;
+ params.effective_opm = pgs->color[0].effective_opm = 0;
return gs_gstate_update_overprint(pgs, &params);
}
}
@@ -546,7 +547,7 @@ gx_serialize_Separation(const gs_color_space * pcs, stream * s)
if (code < 0)
return code;
- code = sputs(s, (const byte *)&p->sep_name, strlen(p->sep_name) + 1, &n);
+ code = sputs(s, (const byte *)p->sep_name, strlen(p->sep_name) + 1, &n);
if (code < 0)
return code;
code = cs_serialize(pcs->base_space, s);