summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/pcl3/src/gdevpcl3.c')
-rw-r--r--contrib/pcl3/src/gdevpcl3.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/contrib/pcl3/src/gdevpcl3.c b/contrib/pcl3/src/gdevpcl3.c
index 6b6468e0..5e3e8f80 100644
--- a/contrib/pcl3/src/gdevpcl3.c
+++ b/contrib/pcl3/src/gdevpcl3.c
@@ -92,10 +92,21 @@ static dev_proc_close_device(pcl3_close_device);
static dev_proc_get_params(pcl3_get_params);
static dev_proc_put_params(pcl3_put_params);
-/* Device procedure table */
-static gx_device_procs pcl3_procs = {
- eprn_procs_initdata(pcl3_open_device, pcl3_close_device, pcl3_get_params,
- pcl3_put_params)
+/* Device procedures */
+static void
+eprn_initialize_device_procs(gx_device *dev)
+{
+ gdev_prn_initialize_device_procs(dev);
+
+ set_dev_proc(dev, open_device, pcl3_open_device);
+ set_dev_proc(dev, get_initial_matrix, eprn_get_initial_matrix);
+ set_dev_proc(dev, close_device, pcl3_close_device);
+ set_dev_proc(dev, map_rgb_color, eprn_map_rgb_color_for_CMY_or_K);
+ set_dev_proc(dev, map_color_rgb, eprn_map_color_rgb);
+ set_dev_proc(dev, map_cmyk_color, eprn_map_cmyk_color_glob);
+ set_dev_proc(dev, get_params, pcl3_get_params);
+ set_dev_proc(dev, put_params, pcl3_put_params);
+ set_dev_proc(dev, fillpage, eprn_fillpage);
};
/* prn procedure implementations */
@@ -129,7 +140,7 @@ static void pcl3_flag_mismatch_reporter(
pcl3_Device gs_##dname##_device = { \
eprn_device_initdata( \
pcl3_Device, /* device type */ \
- pcl3_procs, /* static device procedure table */ \
+ eprn_initialize_device_procs, /* initialize dev_procs */ \
#dname, /* device name */ \
300.0, 300.0, /* horizontal and vertical resolution */\
pcl3_print_page, /* print page routine */ \