summaryrefslogtreecommitdiff
path: root/pcl
AgeCommit message (Collapse)AuthorFilesLines
2012-04-20Fixes 692992. Implicit closepaths not properly detected.Henry Stiles1-15/+11
GL/2 closepaths, implicitly detected when the first point of a subpath and last are equal, were not recognized in some cases because we were doing a comparison of transformed floating point values, the comparison is now done correctly in fixed point. Many regression test files have progressions where the first and last point of a path now have a proper join where one did not exist before.
2012-04-13Support HPGL style path handling.Robin Watts1-0/+3
HPGL handles paths slightly differently to the postscript imaging model. When a path is filled, successive moveto's are treated as linetos. (i.e. the 'place we close the path to' is left at the first moveto, and the area remains fillable). Stroking is unaffected however. To model this in Ghostscript we add a new path segment type 's_gap'. The filling code treats this as a lineto. The stroking code is updated to not stroke such edges (and not to break the subpath at this point). We add a new parameter to the imager state (hpgl_path_mode), new accessor functions (gs_sethpglpathmode, gs_currenthpglpathmode), and new postscript operators (.sethpglpathmode and .currenthpglpathmode). If hpgl path mode is set to a non-zero value, then path construction treats movetos in an open subpath as gaptos. Currently this is disabled (see pcl/pctop.c for where it would be enabled) until we get the pcl interpreter to generate paths in exactly the right form. Still to do: * Update PDF write to spot such paths and to convert them as appropriate when writing out.
2012-03-06Add command line parsing for icc user parameters.Henry Stiles1-0/+34
2012-03-03Fix 692893 gl/2 rectangles not properly placed.Henry Stiles1-1/+11
When resetting the hpgl/2 page parameters we were setting scaling to its default value overriding any setting in the PCL job. HP does not reset the scaling as might be expected.
2012-03-03Fixes bug 692894, orientation of pcl pages incorrect.Henry Stiles2-14/+3
This is a case of the current code emulating undocumented behavior incorrectly. It appears the HP printers resets the print direction upon receiving a new page size command. Previously we tried to emulate this by not resetting the logical page orientation which is incorrect but happened to print the tests we had correctly.
2012-03-03Better error handling in the absence of fonts.Henry Stiles2-2/+2
2012-02-15Fix 692857, wrong current unit initialization in HPGL/2-RTL.Henry Stiles1-1/+8
The code was actually written fixed once correcly but then was broken with a bad fix (5ad194f) largely because we didn't have good bookkeeping for the original fix. Hopefully now that we have an associated bug report and test file a similar problem won't happen again.
2012-02-12Improve character fills, bug #692849.Henry Stiles3-2/+20
The unusual loops inside the characters (graphic 3 and 8 center of page) were caused by trying to edge stick and arc fonts which aren't outlines but paths (stroked fonts).
2012-02-12Improvements for bug 692849.Henry Stiles2-3/+8
Better emulation of HP printers in the absence of a requested pattern.
2012-02-12Bug 692849, missing green filled boxes fixed.Henry Stiles1-2/+4
The green boxes for fill type 22 (user defined) were missing because the download pattern command was disabled in HPGL-2/RTL mode.
2012-02-03Fixes 692387, the font rotation code did not work properly for someHenry Stiles1-44/+37
rotations. There are many progressions and small character placement adjustments in many regression files. The latter due to how the rotation matrix is now calculated with a rounded angle.
2012-02-03RTL mode's print direction is always rotated with respect to theHenry Stiles1-1/+1
physical page size.
2012-02-02Add 4 new raster decompression methods to PCL.Henry Stiles5-15/+152
HPGL/2 and RTL plotters support the following decompression methods: uncompressed block (#4), CCITT group 3 1 dimensional (#6), CCITT group 3 2 dimensional (#7), CCITT group 4 2 dimensional (#8). These have gotten little testing we only have a couple test files at the current time.
2012-01-18PJL support for the resolution variable.Henry Stiles3-0/+23
The PJL resolution variable is now properly supported, for example "PJL SET RESOLUTION = 300" will see the resolution for the next job to 300 but will be overridden if -r is given directly on the command line. Note the PJL resolution is only one value, there is no way to specify asymmetric resolution as there is with the -r option.
2012-01-18Reverts 3ab47d0e1e357a16cf5b35747b10b26d99b4d6f0, bad fix.Henry Stiles1-8/+2
Now that we have a larger corpus of hpgl/2-rtl files it is clear this fix cannot be right, something must have been wrong with the analysis, unfortunately the, referenced test file from the logs ("sprinkler") seems to be gone.
2012-01-09The previous standalone GL/2 mode is incompatible with how theHenry Stiles1-95/+68
transformations are set up in PCL. We have found that plots for standalone mode can be viewed properly in HPGL-2/RTL mode. We think this is the best alternative for now, if we get into the business of emulating individual plotters the issue can be revisited.
2012-01-09The HPGL-2/RTL work of the last few commits introduce a regression -Henry Stiles1-1/+1
disabling bound coordinates in normal PCL mode.
2012-01-09Implements transformations and clipping needed by HPGL/2-RTL. TheHenry Stiles3-86/+137
previous setup was only appropriate for HPGL standalone mode and only appeared to work based on the small number of example files we had at the time.
2012-01-09Presentation mode 3 and clipping when the cap is coincident with theHenry Stiles1-4/+11
logical page is not seen in the HPGL-2/RTL examples we have. There might be something more complicated going on here, it would be difficult to determine without a device to run experiments.
2012-01-09Support the geometry option on the command line, note this reallyHenry Stiles3-5/+24
duplicates the functionality of setting a media size using PJL, but we implement it anyway because users prefer the familiarity of the option.
2012-01-09The default top and left margin are 0 in HPGL-2/RTL mode, not the standardHenry Stiles1-2/+2
PCL values.
2012-01-09The transformation setup for HPGL-2 and RTL was really only correctHenry Stiles4-1/+6
for standalone mode (GL only). So we have to save the entry operand to the "Enter HPGL/2 command" in the state so it can be used when the transformation matrices are recalculated.
2012-01-09Remove unnecessary warning of dubious origin.Henry Stiles1-4/+0
CLUSTER_UNTESTED
2012-01-09The new ICC flow does not require CRD's and we now do not selectivelyHenry Stiles5-90/+13
choose halftones based on setting from the palette vs. the foreground, the latter, an implemented but never used feature.
2011-12-13Common subexpression elimination - no expected changes.Henry Stiles1-3/+7
2011-12-13Reorganize the initialization of the pen width and residual paletteHenry Stiles1-13/+15
color entries. In particular, the pen width initialization was incorrect, applying default pen widths to pens that shouldn't be reset. This changes result in progressions for the following files: tests_private/pcl/pcl5ccet/31-09.BIN tests_private/pcl/pcl5ccet/34-03.BIN tests_private/xl/pcl6cet3.0/C705.bin
2011-12-13Addresses 692051, the palette string's allocated size alwaysHenry Stiles1-13/+55
matches the number of entries in the palette times 3 (bytes).
2011-12-13Make fuction static.Henry Stiles1-1/+1
CLUSTER_UNTESTED
2011-12-13Fix long standing problem where too many palette entries wereHenry Stiles1-1/+2
initialized. This was not an issue with a fixed static palette but with the new dynamic palettes forthcoming this would cause writing past the end of the palette data string.
2011-12-13Back out valgrind workarounds to resize and initialize indexed colorHenry Stiles1-20/+0
spaces. A more complete solution is forthcoming.
2011-12-13Extra debugging support for PCL color spaces.Henry Stiles5-3/+135
CLUSTER_UNTESTED
2011-11-21Fix one of the casts from b6cd8ce7351fc7bb759b5b7dcea7e74b2abb3850Marcos H. Woehrmann1-8/+8
The cast in the calls to hpgl_args_add_int() in pcl/pgconfig.c:hpgl_IR() was wrong. The entire second argument needed to be cast to int32, not just the results of the division. This caused regressions in a bunch of the nightly/cluster test files, e.g.: main/obj/pcl6 -sDEVICE=ppmraw -r75 -o test.ppm fts.1930
2011-11-18The indeterminism in the test file TIFFOffsetA4PL.pcl was caused byHenry Stiles1-0/+2
the new custom page size implementation. The new code updates the current page structure instead of creating a new one - later the page size logic doesn't recognize a page size change and doesn't clear the page (erasepage) properly. The custom page size implementation is less than ideal, but the simple fix here is to just erase the page unconditionally when the custom page size command is received. There was no bug reported for this problem.
2011-11-17Capitalize a symbolic constant.Henry Stiles1-18/+18
2011-11-17The "wide a4" state variable could be used unitialized when usingHenry Stiles1-1/+1
custom paper sizes.
2011-11-14Squash some more PCL warnings.Robin Watts1-1/+1
Implicit typecasts made explicit.
2011-11-11Fix 690417 - new PCL command "set logical page". This allows the userHenry Stiles2-1/+27
to provide arbitrary width, height and offsets which are then associated with the currently selected paper.
2011-11-10Squash warnings in pcl/pxl.Robin Watts21-82/+82
Mostly making type coercions explicit.
2011-11-10Squash warnings in MSVC build.Robin Watts2-4/+4
All self evident, really. Lots of char's that should be bytes etc.
2011-11-07Fix 692614 - the unsolid pattern should be used when the gl/2 whiteHenry Stiles1-2/+5
pattern is specified. Also, progressions noted in PCL5 CET 32-01.
2011-09-28Fixes 692544, an "off by one" error in the parser caused a pcl dataHenry Stiles1-1/+1
scanning command at the end of a stream to be skipped. No expected differences.
2011-09-28Change to new indenting style, no expected differences.Henry Stiles1-482/+500
2011-08-09Remove gserror.h, its contents have been moved to gserrors.h so weHenry Stiles2-2/+0
only need have one include file to use for error reporting.
2011-07-20Fix for missing ICCProfilesDir during some device init. Move profiledir to ↵Ray Johnston1-4/+0
gs_lib_ctx. The business of trying to keep the profile directory in the device and keeping it in sync with the value used in the icc_manager led to problems when some devices were initialized. This change moves the profiledir (and its len) into the gs_lib_ctx_t (pseudo- global) which is accessible by the icc_manager and devices via the gs_memory_t pointer. Remove the no longer needed functions to set and sync the profile in the device and replace gsicc_set_icc_directory with gs_lib_ctx_set_icc_directory. Thanks to Michael Vrhel for adding to this patch to make it build on linux and build the other parsers.
2011-07-06Shailesh Mistry's fix for 692311 - corrupt character rendering.Henry Stiles1-2/+11
In adaptive compression mode the seed row for delta row compression was not properly cleared. With this change the code is now compatible with HP monochrome printers, previously the Artifex code was compatible with HP Color Laserjets. We do not implement a device specific switch - for example the new code could be enabled if the current mode of emulation was PCL5E (mono PCL) and not PCL5C (color PCL) allowing emulation of both product types. However the corrupt character output of HP color printers is probably never an intended result.
2011-07-06Removes obsolete code.Henry Stiles1-6/+0
The is callback used to be used to delete all characters from the cache, we don't do that anymore.
2011-06-26Fix for icc directory and icc device profile initialization.Michael Vrhel1-0/+4
2011-06-03Deprecate CRDs in PCLHenry Stiles13-607/+17
2011-06-02Trivial warning fixesHenry Stiles2-1/+3
2011-06-02Make page size procedure robust against paper size table changes.Henry Stiles1-1/+8