[gs-cvs] rev 9546 - trunk/gs/base
ray at ghostscript.com
ray at ghostscript.com
Wed Mar 11 15:00:55 PDT 2009
Author: ray
Date: 2009-03-11 15:00:55 -0700 (Wed, 11 Mar 2009)
New Revision: 9546
Modified:
trunk/gs/base/gdevp14.c
Log:
Set the log_op (ROP) to a straightforward value when doing the pdf14 put_image
ignoring the input imager state log_op. Bug 690321.
DETAILS:
The rev 8170 alludes to doing something to prevent a similar problem (bug
689186: see DETAILS comment #2 in the log message), but this was NOT the
correct solution. When writing the transparency buffer to the target device
in the pdf14 POP_DEVICE using the "put_image" proc, we really need to use
a ROP that simply allows us to copy the image in 'normal' mode i.e. use
rop3_default.
The state of the low bits of the clist_playback_band imager_state.log_op is
rather arbitrary at the end of the band and not relevant to the put_image
operation.
Modified: trunk/gs/base/gdevp14.c
===================================================================
--- trunk/gs/base/gdevp14.c 2009-03-11 13:46:33 UTC (rev 9545)
+++ trunk/gs/base/gdevp14.c 2009-03-11 22:00:55 UTC (rev 9546)
@@ -1438,12 +1438,13 @@
pis->get_cmap_procs = p14dev->save_get_cmap_procs;
gx_set_cmap_procs(pis, p14dev->target);
/* Send image out raster data to output device */
- { /* hack: Reset lop_pdf14, which could be set by
- pdf14_fill_path, pdf14_stroke_path
- to prevent a failure ingx_image_enum_begin. */
+ /* Make a copy so we can change the ROP */
gs_imager_state new_is = *pis;
- new_is.log_op &= ~lop_pdf14;
+ /* We don't use the imager state log_op since this is for the */
+ /* clist playback. Putting the image (band in the case of the */
+ /* clist) only needs to use the default ROP to copy the data */
+ new_is.log_op = rop3_default;
p14dev->pdf14_procs->put_image(pdev, &new_is, p14dev->target);
}
pdf14_disable_device(pdev);
More information about the gs-cvs
mailing list