summaryrefslogtreecommitdiff
path: root/gs/base/gxclrect.c
diff options
context:
space:
mode:
authorRay Johnston <ray.johnston@artifex.com>2013-07-11 13:03:17 -0700
committerRay Johnston <ray.johnston@artifex.com>2013-09-01 17:55:23 -0700
commit9c95a9ae56b5051ba8c7c3b3d161932678d3b01d (patch)
treee8937ce061b9d4914d64b3439e603e8194805b7e /gs/base/gxclrect.c
parente7b7ecff0277c0aa7e162edd21842dc4409391ff (diff)
downloadghostpdl-9c95a9ae56b5051ba8c7c3b3d161932678d3b01d.tar.gz
Enhance gx_saved_page and save_page function to support advanced functions.
By saving the device params in the saved_page struct we can use it more generally to print pages out of order. This is still compatible with the rendering of multiple saved pages on a 'master' page for imposition, but the latter does not use the device params so pages with differing spot colors or differing destination ICC profiles may be incorrect. To be fixed later. Several utility functions support lists of saved pages: gx_saved_pages_list_new to allocate and initialize a saved page list; gx_saved_pages_list_add to alloc a new saved page object, fill it with the current page and add it to the end of the list; gx_saved_pages_list_print to print various pages in various orders from the list; gx_saved_pages_list_free to free the clist files for the saved pages as well as the saved pages and the saved pages list and to support the parameter and command line arg, gx_saved_pages_param_process. This function may be useful for applications as well. See psi/imainarg.c for sample usage with --saved-pages-test. Also, the gx_device_printer get and put params have an added saved-pages string parameter to allow control of this feature. A new command line option --saved-pages="..." is added that will call the 'process' function. This is implemented for BOTH gs imainarg and plmain used by the other languages. Also, --saved-pages-test is added for weekly testing that will collect all pages in a list (--saved-pages=begin) then after the file is processed, will print all pages (--saved-pages="print normal flush"). The capability is mentioned in doc/Use.htm, and the parameters for the control string is documented in doc/SavedPages.htm
Diffstat (limited to 'gs/base/gxclrect.c')
-rw-r--r--gs/base/gxclrect.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gs/base/gxclrect.c b/gs/base/gxclrect.c
index b9a406109..06203b780 100644
--- a/gs/base/gxclrect.c
+++ b/gs/base/gxclrect.c
@@ -24,6 +24,8 @@
#include "gxclpath.h"
#include "gxdevsop.h"
+extern dev_proc_dev_spec_op(gdev_prn_dev_spec_op);
+
/* ---------------- Writing utilities ---------------- */
#define cmd_set_rect(rect)\
@@ -601,8 +603,6 @@ clist_fill_linear_color_triangle(gx_device * dev, const gs_fill_attributes *fa,
int
clist_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
{
- gs_pattern1_instance_t *pinst = (gs_pattern1_instance_t *)data;
- gx_bitmap_id id = (gx_bitmap_id)size;
gx_device_clist_common * const cdev = &((gx_device_clist *)pdev)->common;
if (dev_spec_op == gxdso_pattern_handles_clip_path)
@@ -621,7 +621,8 @@ clist_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
return 0;
}
}
- return gx_default_dev_spec_op(pdev, dev_spec_op, pinst, id);
+ /* forward to our super class */
+ return gdev_prn_dev_spec_op(pdev, dev_spec_op, data, size);
}
#define dev_proc_pattern_manage(proc)\