Age | Commit message (Collapse) | Author | Files | Lines |
|
PSSRC files are now in 'gs/psi'.
GLSRC files are now in 'gs/base'.
This is to facilitate build modularization and merging in the ghostpdl
tree.
NOTE: msvc32.mak is now in psi, not src.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@9048 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
linear color triangles (continued 6).
DETAILS :
This is an initial commit for decomposition of linear color triangles
that the target device can't handle while a clist playback.
The new code is not called with practical cases
because currently we have no devices
with an intrivial implementation of fill_linear_color_triangle.
We commit this code for future if someone will want
to implement that function in hardware with a smaller number of bits.
To force an execution of the new code
one can change this switch in gxclrast.c :
if 1 /* Disable to debug gx_fill_triangle_small. */
We debugged the new code with setting this switch to 0.
In this case the decomposition code starts, and calls
fill_linear_color_triangle again with same arguments
(except converting frac31 colors to 'float',
rather it doesn't miss precision with comparefiles).
This test works fine with comparefiles.
If the device method would request a further decomposition,
an earlier debugged code works, so we didn't test it now
(Testing it with available implementations would require an additional effort
for rejecting regular triangles by the target device).
For more details see comments in code.
Note the clist playback now calls gxshade6.c .
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@8132 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
linear color triangles (continued 5).
DETAILS :
This change is algorithmically equivalent.
It provides methods for decomposition of triangles written to clist.
The purpose is to fix possible gs_error_unregistered in gxclrast.c ln 1498.
The fix itself will be done separately.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@8129 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
and linear color triangles.
DETAILS :
This fixes the clist expansion problem for shadings.
1. New functions clist_fill_linear_color_trapezoid, clist_fill_linear_color_triangle
provide the writing of shading parts into clist
without a further decomposition into rectangles.
2. gxclrast.c is enhanced with reading the data from 1.
3. gxfill.c needs a special interaction with the clipper device
for passing the clipping path as a high level object.
The new request pattern_manage__handles_clip_path
checks whether the target device can handle a clipping path.
The clist writer can, so the graphics library first sends the
clipping path, and then decomposes the shading into
trapezoids without installing a clipper device.
Doing so because clipper device can't handle trapezoids.
See comments in gxclpath.c, gxfill.c .
4. The clist reader installs a clipper device when processes
trapezoids and linear color triangles.
The new flag clipper_dev_open controls that.
5. A new flag gx_device_clist_writer_s::cropping_by_path
controls an additional cropping of shading components,
which fall outside the shading path's bands.
See comment in gxclpath.c .
6. R_fill_rect_with_const_color is rewritten with linear color functions,
because the old implementation creates a rectangle, which is not clipped with
4,5. It gives an invisible slowdown for unbanded rasters.
There are few things, which need further improvements :
1. A better compression for frac31 values in clist.
Such values usually have many zeros in ending bits.
2. Crop bands with ybot, ytop, fa->ystart, fa->yend in
clist_write_fill_trapezoid.
3. The clist reader must handle cases when linear color functions return 0.
It must perform a decomposition of areas with calling
appropriate parts of gxshade6.c . The current code returns error,
which does not happen in practice.
EXPECTED DIFFERENCES :
There is a problem with pkmraw -r300 Bug689189.pdf
which has to be fixed separately.
This patch causes a minor raster difference with shadings :
with a banded rendering the shading area becomes some smaller
than the old banded rendering. It needs a further analyzis.
Here is a list of files with this problem :
"442-01.ps"
"446-01-fixed.ps"
"464-01-fixed.ps"
"470-01.ps"
"478-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"Bug689189.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"self-intersect2.ps"
"shading_prob_800.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"
This list may be related to bug 689338.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@8118 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
to Artifex Software, Inc.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@8022 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This partially improves performance for the test case of
the bug 689189 "PDF fails with /unregistered in --shfill--".
The test case includes multiple radial shadings,
which paint an extansion only.
This patch optimizes the case when the paint area is
strongly inside the radial shading extension.
In this case the shading rasterization is replaced with
painting a pure color.
1. The new function R_fill_rect_with_const_color is the main worker.
2. The old patch_color_to_device_color function is renamed into
patch_color_to_device_color_inline.
3. patch_color_to_device_color is made public for R_fill_rect_with_const_color.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@8006 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This partially improves performance for the test case of
the bug 689189 "PDF fails with /unregistered in --shfill--".
The old code limits the decomposition of a shading with 1 pixel.
It gives a good precision for low resolution devices,
such as display with 72dpi. However for high resolution devices the
decomposition limit may be bigger, because tinny parts are not visible.
Now we make it be dependent on the device resolution.
It speeds up the high resolution rendering with quickly varying colors.
The worker formula is :
decomposition_limit = float2fixed(HWResolution / 72)
With 300 dpi the file "self-intersect2.ps" renders a few worse
near the self-intersection. It may be visible when viewing the
ppmraw output with a monitor. We think it's a reasonable tradeof
for the performance. Actually the monitor performs
a significant zoom when viewing "actual pixels",
because the monitor's resolution is much smaller.
The quality degradation shouldn't be visible with a 300 dpi printer.
EXPECTED DIFFERENCES :
Minor difference in colors with most shadings :
"442-01.ps"
"446-01-fixed.ps"
"464-01-fixed.ps"
"478-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"BEST8-99-Path.fh7.pdf"
"Bug688631.pdf"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"self-intersect2.ps"
"SmoothShading.pdf"
"self-intersect2.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7936 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This partially improves performance for the test case of
the bug 689189 "PDF fails with /unregistered in --shfill--".
This change is algorithmically equivalent.
The old code redundantly converts client colors
to device colors. This patch implements a cache for
the conversion in the new module gscicach.h .
It works for contone devices only.
For the test case it reduces the number of color conversions
in 20+ times. However a rocket speeding up is not obtained.
This patch is an experimental one.
We have got an alternative approach,
which is more complicated but works for any device.
The alternative is to pass converted colors through the decomposition recursion.
We commit this now mainly for archiving purpose.
To disable it replace the call to gs_color_index_cache_create with NULL.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7908 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This partially improves performance for the test case of
the bug 689189 "PDF fails with /unregistered in --shfill--".
The old code wrongly mapped shading function arguments
fro axial and radial shadings. It caused an
extra subdivision by U when the color function requires
to subdivide by V.
EXPECTED DIFFERENCES :
A minor difference in shading color :
"CompareFiles\shadings\442-01.ps"
"CompareFiles\shadings\464-01-fixed.ps"
"CompareFiles\shadings\483-01.ps"
"CompareFiles\shadings\chilis_black.pdf"
"CompareFiles\shadings\Clarke Tate Manns Chinese.ai"
"CompareFiles\shadings\STEUER-RollingMesh 1(linear).ai"
"CompareFiles\shadings\STEUER-RollingMesh 2(radial).ai"
"CompareFiles\shadings\STEUER-RollingMesh 3(Final).ai"
"CompareFiles\shadings\Bug688631.pdf"
"CET\shading\09-47A.PS"
"CET\shading\09-47B.PS"
"CET\shading\09-47D.PS"
"CET\shading\09-47E.PS"
"CET\shading\09-47F.PS"
"CET\shading\09-47H.PS"
"CET\shading\09-47I.PS"
"CET\shading\12-14A.PS"
"CET\shading\12-14H.PS"
"CET\shading\12-14I.PS"
"CET\shading\12-14J.PS"
"CET\shading\12-14L.PS"
"CET\shading\12-14M.PS"
"CET\shading\12-14R.PS"
"CET\shading\12-14S.PS"
"CET\shading\12-14T.PS"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7895 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This is the 7th step of fixing the bug 688955
"64K stack overflows with shadings".
This change is algorithmically equivalent.
We hope this is the last step, which closes the bug.
1. Optimize reserve_colors_inline;
2. Remove 'assert'.
3. Disable the consistency check in release_colors_inline for faster sesult and smaller code.
4. Provide a consistency check at end of a shading fill in term_patch_fill_state.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7193 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This is the 6th step of fixing the bug 688955
"64K stack overflows with shadings".
This change is algorithmically equivalent.
1. Remove the color_stack_ptr0 argument from various functions.
2. Rename the color_stack_ptr1 variable into color_stack_ptr.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7192 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This is the 4th step of fixing the bug 688955
"64K stack overflows with shadings".
This change is algorithmically equivalent.
Providing a color stack pointer field in the shading fill state structure.
When some colors are reserved, we advance the color stack pointer.
A new function release_colors work for releasing them.
This patch inserts some asserts, which to be removed soon.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7190 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This is the 3nd step of fixing the bug 688955
"64K stack overflows with shadings".
This change is algorithmically equivalent.
1. New functions reserve_colors_inline, reserve_colors work with
the color stack in heap.
2. Currently the color stack pointer is saved at each
recursion level for simplifying the debugging.
We intend t move it later to the shading fill state structure.
Currently it is passed via most function calls as a new argument.
3. In automatic data the colors change type
from a structure to pointer.
4. Since we want to keep colors be constant while
the heavy decompositioin recursion, we made
the local color pointers point to const data.
Therefore a new argument is added to some functions,
which construct colors and therefore need
a non-conmst access. Thise changes are commented with
"providing a non-const access".
5. Minor change : cs_is_linear changes the 1st argument type to 'const'
(gscspace.c, gxcspace.h).
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7189 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This is the 2nd step of the preparation for fixing
the bug 688955 "64K stack overflows with shadings".
This change is algorithmically equivalent.
1. Ading fields into patch_fill_state_t for representing a color stack in heap.
2. Initialize and finalize them in gxshade6.c .
Currently they work idle.
3. Provide a single patch_fill_state_t instance for all
meshes/patches of a shgading (gxshade1.c).
It allows to handle a single color stack
for all meshes/patches of a shading.
3. Document the shortened color representation in gxshade4.h .
Most subclasses of shading_fill_state_common are now rudiments,
but we keep them for a while to minimize the patch.
Note A_fill_state_s is not longer a subclass of it.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@7184 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@6651 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
As a rudiment of the old shading algorithm,
mesh_fill_state_common defined a big data field,
which was placed on C stack and vever accessed.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@6598 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This change is algorithmically equivalent.
1. Removed the obsolete code
NEW_SHADINGS 0 and NEW_RADIAL_SHADINGS 0,
which was disabled a long ago.
2. Removed stacks and few other unused fields from
Fb_fill_state_s, A_fill_state_s, R_fill_state_s.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5857 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
It's another partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".
The old code computed a shading clipping box
as an transform of the shading BBox
to device coordinates. However with a rotation matrix
it significantly expanded the box,
so that more shading parts appear inside the paint region.
The new code sets clipping box equal to the bbox
of the clipping path, so that the rasterization
covers a smaller part of the shading, and the
shading becomes faster.
SHADING_FILL_RECTANGLE_PROC changes the prototype.
The new prototype adds a clipping rectangle in device coordinates,
which provides a stronger clipping of the paint region.
Probably we could drop the old argument "prect",
but leaving it untill the NEW_SHADINGS cleanup.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5854 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
It's a partial fix for the bug 687948
"Performance of shading fill much worse than 8.00".
If an axial or radial shading use a sampled function
with many samples, the shading speeds up in 1.2 - 2.5 times.
1. The old code returned an unknown monotonity when the
interval covers several cells of a sampled function.
The new code summarizes the monotonity through multiple cells.
Rather shadings need 1- and 2-dimensional functions only,
we developed an N-dimensional algorithm for
a future use with color spaces and color renderings.
1.1. Generalized the function sample cache to linear functions
(the old code cached cubic ones only).
1.2. Made the branch POLE_CACHE to be permanent.
1.3. The new function is_lattice_monotonic
summarizes the monotonity through multiple cells.
1.4. The virtual function is_monotonic
now returns a mask about a monotonity by each coordinate.
2. The shading decomposition is adopted to the new monotonity check.
2.1. When decomposing a patch into stripes,
the color monotonity doesn't matter,
because further decomposition accounts it.
2.2. When decomposing a quadrangle,
the decomposition axis is being chosen according
to the function monotonity along each axis.
3. In the shading decomposition,
cached the monotonity separately from the linearity
with a new flag linear_color.
EXPECTED DIFFERENCES :
A minor difference in shading color with all devices and resolutions :
"442-01.ps"
"446-01-fixed.ps"
"464-01-fixed.ps"
"478-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"Altona_Visual_bb_1v1_x3.pdf"
"Altona_Visual_sb_1v1_x3.pdf"
"Bug687840.pdf"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"Openhuis_pdf_zw.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5853 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
devices (continued).
DETAILS :
1. In pdf_copy_color_data, allowed the new value 2 for the parameter for_pattern.
In this case non-lossless filters are allowed.
2. In gdev_pdf_fill_path, fixed the grouping of clip paths for all
meshes|patches of a shading.
3. In gdev_pdf_fill_path, used the shading BBox to minimize
the size of the raster image.
4. In gdevpdfp.c allowed CompatibilityLevel=1.1 .
Now this is done mainly for debug purpose,
but likely we'll use it in ps2write when the target doesn't handle TT fonts.
5. The new function gx_dc_pattern2_get_bbox works for (3).
6. The function shade_bbox_transform2fixed has been renamed into
gx_dc_pattern2_shade_bbox_transform2fixed with making its scope bigger
to work for (5). It has been moved into gsptype2.c,
which is mode fundamental than gxshade.c .
The following changes happened due to that : gsptype2.c, gsptype2.h,
gsshade.c, gxshade.c, gxshade1.c, gxshade4.c.
We would like to do more cleanup with replacing it with
gx_dc_pattern2_get_bbox, but currently we delay that to simplify this patch.
7. Introduced a new field patch_curve_t::straight to know whether a patch
boundary is a straight line. patch_fill uses it when passing the
shading coverage area.
8. mesh_triangle now passes the coverage area.
An auxiliary function mesh_triangle_rec is factored out for that.
9. patch_fill checks for self-overlapoped patches
and prints a warning is the patch appears suspicious.
Comments in patch_fill about that have been improved.
10. patch_fill and mesh_triangle check the sign odf the coverage area,
and change the contour direction for making all contours be positive.
This works for proper clipping.
11. Fixed compressed streams in opdfread.ps .
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5666 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. Implemented gx_shade_background with a compatible INTERPATCH_PADDING logic
for filling a background.
2. The clipping logic in gdevdsha.c must be "any ppart of pixel inside",
as it is in other places.
3. Dont need adjust_swapped_boundary for clipping rectangles (gxshade6.c).
4. INTERPATCH_PADDING is enlarged to half pixel. See comment in code.
5. Optimized with a better clipping in gx_shade_trapezoid.
Completes the fix for 687585 "A shading renders narrower than its background".
EXPECTED DIFFERENCES :
Shadings render slightly different :
"442-01.ps"
"446-01-fixed.ps"
"464-01.ps"
"478-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"Altona-Testsuite_p2_S_x3.pdf"
"BEST8-99-Path.fh7.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"S2_Digitalproof-Forum_x3k.pdf"
"self-intersect2.ps"
"shading_prob_800.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5332 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Propagate error codes from shade_bbox_transform2fixed.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5319 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
Switching new radial shadings on.
Radial shadings render in 3...10 times faster.
Radial shadings are not longer restricted with 8bpc.
EXPECTED DIFFERENCES :
"442-01.ps"
"483-01.ps"
"Clarke Tate Manns Chinese.ai"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 2(radial).ai"
"STEUER-RollingMesh 3(Final).ai"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5024 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
In the enabled code :
1. Non-linear color quadrangles are subdivided into quadrangles.
This complies the color approximation with the specified smoothness.
2. Skipped quadrangles and triangles outside the clipping area.
3. Fixed the 'midpoint' formula. It was wrong and coused excessive subdivision.
In the disabled code (NEW_RADIAL_SHADINGS 0 in gxshade4.h) :
1. Debugged Extensions.
2. mesh_padding and wedges with zero length sides were tested.
3. Skipped painting outside the clipping area.
4. Optimized for constant color.
Known problems left :
1. With self-intersecting patches, outer wedges may paint in a wrong order.
This can cause such dropout that a lower part of the patch penetrates
through the upper part in single pixels.
EXPECTED DIFFERENCES :
"442-01.ps"
"446-01.ps"
"464-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"chilis_black.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"self-intersect2.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5022 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h .
The old implementation of the radial shading extensions appears
incompatible with the tensor representation of the radial shading
due to different spatial subdivision. Collisions at extension
boundaries caused dropouts.
Besides that, the old implementation
can't handle the case in which circles contact each another and one
circle is inside another. Also we suspect that with the old implementation
the trailing extension can overlap the shading when represented as "triangles".
This patch implements extensions with tensor patches.
Rather they have a constant color, we need the wedge logics
to work with them. Also we reworked the analyzis of
special cases of mutual placement of the base circles.
The new code works, but there are known problems :
1. Extensions to be tested systematically.
2. Debug mesh_padding and wedges with zero length sides.
3. Skip painting outside the clipping area.
4. Optimize for constant color.
5. Why "STEUER-RollingMesh 2(radial).ai-.pdf" generates so many triangles ?
6. Outer wedges may break the order of painting.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5021 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. Another continuation for the bug in LAZY_WEDGES of the step 65 :
"color was desynchronized with vertices when filling a wedge."
Previous attempts to fix it appear wrong.
This one implements entirely different logics.
The division count is now a property of a division point.
2. Fixed the wrong order of colors in ln 2800 in the function "triangles".
EXPECTED DIFFERENCES :
"442-01.ps"
"483-01.ps"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5020 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Fixing a bug in fill_wedge_from_list_rec :
wedge vertices can't identify by their coordinates,
because dividing a short bar could get same coordinates as one of its end.
wedge_vertex_list_elem_t::level now works for the identification.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5012 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Implementing radial shading with tensor shadings.
The new code is disabled with NEW_RADIAL_SHADINGS in gxshade4.h .
The new code works but it discovered a problem in fill_wedge_from_list_rec :
wedge vertices can't identify by their coordinates.
The problem appears an important bug to be fixed separately.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5011 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
Switching linear color device fucntions on.
EXPECTED DIFFERENCES :
"442-01.ps"
"446-01.ps"
"464-01.ps"
"478-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"BEST8-99-Path.fh7.pdf"
"chilis_black.pdf"
"chilis_red.pdf"
"Clarke Tate Manns Chinese.ai"
"gradmesh.ai"
"Openhuis_pdf_zw.pdf"
"self-intersect2.ps"
"SmoothShading.pdf"
"STEUER-RollingMesh 1(linear).ai"
"STEUER-RollingMesh 3(Final).ai"
"Testform.v1.0.2.pdf"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5007 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
A bug in LAZY_WEDGES :
color was desynchronized with vertices when filling a wedge.
The bug was not detected because
the color difference appears small due to small wedges.
It appears big with USE_LINEAR_COLOR_PROCS 1 with -r300 483-01.ps.
EXPECTED DIFFERENCES :
300dpi :
"442-01.ps"
"446-01.ps"
"464-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"gradmesh.ai"
"SmoothShading.pdf"
"STEUER-RollingMesh 3(Final).ai"
"442-01.ps"
72dpi:
"442-01.ps"
"446-01.ps"
"483-01.ps"
"483-05-fixed.ps"
"483-05.ps"
"gradmesh.ai"
"SmoothShading.pdf"
"STEUER-RollingMesh 3(Final).ai"
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@5004 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. Implemented gx_cspace_is_linear_in_line and applied it for
checking the stripe transversal color lnearity.
2. Generalized 'is_halftoned' to 'unlinear'.
3. is_color_span_v_linear must not apply when 'unlinear'.
The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4993 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
1. Likely QUADRANGLES 1 appears unusefil. Documenting that.
2. Implementing mesh_padding with linear color.
3. Minor improvements to conmments.
4. Stronger conditions against color stairs in triangle_by_4, color_change_small.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4976 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
The previous patch appears incomplete. Now fixed.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4975 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. gx_default_fill_linear_color_triangle wrongly checked for a large color span.
2. fill_linear_color_* procs were not set for clip devices.
3. cs_is_linear were defined with a wrong argument list.
4. Optimized the prototype of cs_proc_is_linear.
5. Gradient buffers were not allocated in gxdtfill.h .
6. Attaching fill_linear_color_triangle to triangle_by_4 in shadings.
The new code is disabled with USE_LINEAR_COLOR_PROCS in gxshade4.h .
The new code is not debugged yet.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4968 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Removing a code of dead development branches.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4964 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. An optimization :
If an area has a monotonic color,
each subarea has a monotonic color as well,
so the color monotonity doesn't need to recompute.
Doing so because the color monotonity function is not fast
when appied to a ShadingType 1 with a bicubic color interpolation.
2. Bug: is_color_monotonic returned 'true' when the intrval
has zero width by the 1st coordinate.
This is wrong for with ShadingType 1, which uses a 2-argument function.
( The check was a rudiment from a 1 month old implementation of fn_Sd_is_monotonic,
which returned 'false' when the low boundary is at the end of some cell,
and the upper boundary is at the beginning of the next cell.
Actually this case is a zero width interval and the function must return true.
)
EXPECTED DIFFERENCES :
A minor difference in colors :
442-01.ps
464-01.ps
Clarke Tate Manns Chinese.ai
STEUER-RollingMesh 1(linear).ai
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4902 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. Improved various constraints for patch size,
which are caused by the arithmetic precision.
Now all them are collected in curve_samples.
2. Improved the documentation about secondary branches.
3. Fixed minor bugs in secondary branches.
3. Improved the formatting with easier distinguishing
a multiplication " * x" from dereferencing " *x".
It was important for finding arithmetic constraints.
EXPECTED DIFFERENCES :
SmoothShading.pdf at 300dpi.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4833 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Implemented lazy wedges : do not create a wedge,
if both neighbours of a line were divided at same point.
It reduces the number of constant color triangles to fill.
Since this algorithm consumes an exponential RAM of the wedge nesting,
we restrict the wedge nesting with 9. For doing that we enforce
subdivision of large patches into chunks with <=512 pixels length sides
- see LAZY_WEDGES_MAX_LEVEL.
EXPECTED DIFFERENCES :
72dpi :
289-01.ps
442-01.ps
446-01.ps
464-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
300dpi:
442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4829 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Improving the ShadingType 1 with applying the generic algorithm.
The generic algorithm is extended for 2-argument functions.
Also fixing the configuration switch DIVIDE_BY_PARALLELS,
which was unintentionally set to 1 by the previous patch.
EXPECTED DIFFERENCES :
289-01.ps
442-01.ps
446-01.ps
464-01.ps
478-01.ps
483-01.ps
483-05.ps
gradmesh.ai
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4827 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Improves the performance of radial shadings :
For a faster painting, we apply fill adjustment to outer annula only.
Inner annula are painted with no fill adjustment.
It can't cause a dropout, because the outer side of an annulus
gets same flattening as the inner side of the neighbour outer annulus.
For other shadings this chande is algorithmically equivalent.
EXPECTED DIFFERENCES :
A minor difference with axial shadings :
442-01.ps
446-01.ps
483-01.ps
483-05.ps
Altona-Testsuite_p2_S_x3.pdf
Clarke Tate Manns Chinese.ai
gradmesh.ai
S2_Digitalproof-Forum_x3k.pdf
shading_prob_800.ps
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 2(radial).ai
STEUER-RollingMesh 3(Final).ai
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4824 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. Implemented axial shading with a Coons patch.
It gives more regularity with area decomposition and trapping.
2. Optimized tensor shadings for the case when the gradient is
parallel to the quadrangle sides.
Note that the old code applies 1/2 pixels fill adjustment when
painting stripes of the shading, generating overlapped stripes.
Instead that the new code generates non-overlapping stripes,
and applies a trapping emulation at the shading boundaries with 1/8 pixels.
EXPECTED DIFFERENCES :
A minor difference with axial shadings :
442-01.ps
446-01.ps
464-01.ps
483-01.ps
483-05.ps
BEST8-99-Path.fh7.pdf
chilis_black.pdf
chilis_red.pdf
gradmesh.ai
Openhuis_pdf_zw.pdf
SmoothShading.pdf
STEUER-RollingMesh 1(linear).ai
STEUER-RollingMesh 3(Final).ai
Testform.v1.0.2.pdf
An area shift in Testform.v1.0.2.pdf at 72dpi appears due to
the fill adjustment is replaced with the trapping emulation.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4819 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. Removed an undefined macro call (a portability bug).
2. Disabled some unused functions.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4816 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
1. Triangle meshes were passed to the rasterizer with no color resolved.
It is assumed to be resolved in advance (a bug).
2. Improved external names with adding a scope prefix.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4815 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Switching to the new implementation.
It fixes a number of bugs, works 2.5 times faster and produces a better view.
Also documented secondary development branches.
Bug 687291 "problems in patch_fill".
Bug 687310 "Wrong color interpolation with ShadingType 4,5.".
EXPECTED DIFFERENCES :
446-01.ps
483-05.ps
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4812 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
Removing debug helpers.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4811 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
The patch
http://www.ghostscript.com/pipermail/gs-cvs/2004-February/004243.html
unintentionally switched on the new code.
Now switching it back to the old one.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4806 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This patch changes a disabled code only.
It implements a division of a triangle into 4 triangles,
like the old code does. This appears some slower, but
gives a better view when the smooothness is smaller
than the color resolution.
Minor changes :
- Implemented VD_TRACE_DOWN to gxshade6.c;
- Changed some visual trace commands;
- COLOR_CONTIGUITY specifies a coefficient for divide_triangle_by_parallels.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4803 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This change is algorithmically equivalent.
It simplifies intermodule interfaces with using
shading_vertex_t instead a pair of a point and a color.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4791 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This patch changes a disabled code only.
In the disabled code it fixes the bug 687310
"Wrong color interpolation with ShadingType 4,5.".
In the old code the interpolation is still done in the color space rather than
in the function domain.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4790 a1074d23-0009-0410-80fe-cf8c14f379e6
|
|
DETAILS :
This patch changes a disabled code only.
Optimized the patch decomposition.
1. Triangles are divided along the color gradient.
Since the color gradient is vector, actually we divide
along the gradient of the Manhattan"s color norm.
2. Rectangles are divided into 2 triangles by the diagonal
with smaller color difference.
3. Improved conditions for compiling wedge_buf.
4. Implemented VD_TRACE_TRIANGLE_PATCH.
This revision appears faster than the old code NEW_SHADINGS 0
in about 1.4 times.
A code optimization is wanted. See "fixme" comments.
EXPECTED DIFFERENCES :
None.
git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@4789 a1074d23-0009-0410-80fe-cf8c14f379e6
|