[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