diff options
author | Chris Liddell <chris.liddell@artifex.com> | 2018-09-11 10:59:24 +0100 |
---|---|---|
committer | Chris Liddell <chris.liddell@artifex.com> | 2018-09-11 11:39:38 +0100 |
commit | 4b3fbf2bca24b2833322985be390fc739d237f7d (patch) | |
tree | 3439b1479afe27fda4675ecd8295f9cf7f230b4b | |
parent | 5ac63e47077e0e7d02e99e247e0c47c4737e0cb8 (diff) | |
download | ghostpdl-4b3fbf2bca24b2833322985be390fc739d237f7d.tar.gz |
Bug 699757: disable epo device for x11 devices
The epo device interferes with the operation of the x11 devices when those
are integrating with an existing X application (i.e. xv, or other application
that relies on the 'GHOSTVIEW' functionality).
Disable epo by adding an x11 specific fillpage method.
-rw-r--r-- | devices/gdevx.c | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/devices/gdevx.c b/devices/gdevx.c index be0291592..da20177ee 100644 --- a/devices/gdevx.c +++ b/devices/gdevx.c @@ -75,6 +75,7 @@ static dev_proc_strip_tile_rectangle(x_strip_tile_rectangle); static dev_proc_begin_typed_image(x_begin_typed_image); static dev_proc_get_bits_rectangle(x_get_bits_rectangle); /*extern dev_proc_get_xfont_procs(gdev_x_finish_copydevice);*/ +static dev_proc_fillpage(x_fillpage); /* The device descriptor */ #define x_device(this_device, dev_body) \ @@ -124,7 +125,36 @@ const gx_device_X this_device = { \ NULL, /* create_compositor */ \ NULL, /* get_hardware_params */ \ NULL, /* text_begin */ \ - gdev_x_finish_copydevice \ + gdev_x_finish_copydevice, \ + NULL, /* begin_transparency_group */ \ + NULL, /* end_transparency_group */ \ + NULL, /* begin_transparency_mask */ \ + NULL, /* end_transparency_mask */ \ + NULL, /* discard_transparency_layer */ \ + NULL, /* get_color_mapping_procs */ \ + NULL, /* get_color_comp_index */ \ + NULL, /* encode_color */ \ + NULL, /* decode_color */ \ + NULL, /* pattern_manage */ \ + NULL, /* fill_rectangle_hl_color */ \ + NULL, /* include_color_space */ \ + NULL, /* fill_linear_color_scanline */ \ + NULL, /* fill_linear_color_trapezoid */ \ + NULL, /* fill_linear_color_triangle */ \ + NULL, /* update_spot_equivalent_colors */ \ + NULL, /* ret_devn_params */ \ + x_fillpage, /* fillpage */ \ + NULL, /* push_transparency_state */ \ + NULL, /* pop_transparency_state */ \ + NULL, /* put_image */ \ + NULL, /* dev_spec_op */ \ + NULL, /* copy_planes */ \ + NULL, /* get_profile */ \ + NULL, /* set_graphics_type_tag */ \ + NULL, \ + NULL, \ + NULL, \ + NULL \ }, \ gx_device_bbox_common_initial(0 /*false*/, 1 /*true*/, 1 /*true*/), \ 0 /*false*/, /* is_buffered */ \ @@ -979,6 +1009,15 @@ x_get_bits_rectangle(gx_device * dev, const gs_int_rect * prect, return code; } +/* Supplying a fillpage prevents the erasepage optimisation + device being installed. + */ +static int +x_fillpage(gx_device *dev, gs_gstate * pgs, gx_device_color *pdevc) +{ + return gx_default_fillpage(dev, pgs, pdevc); +} + /* Set up with a specified tile. */ /* Return false if we can't do it for some reason. */ static int |