summaryrefslogtreecommitdiff
path: root/source/fitz/draw-edge.c
AgeCommit message (Collapse)Author
2017-10-24Overprint support.Robin Watts
Introduce an fz_overprint bitmap (currently just a uint32_t, but it'll grow to be an array of them if FZ_MAX_COLOR is increased). Pointers to this are passed into all our painting routines. NULL means "Do what you've always done before, with no overprint". non NULL, means that every set bit means "don't ever alter this component". We therefore set the overprint bitmap up according to the input color/colorspace/colorparams before calling each routine.
2017-08-28Remove code that no longer compiles.Sebastian Rasmussen
fz_dump_gel() was removed in commit 9a725130b9b16daa332f8502e24eac9cab4cf9b2.
2017-06-22Move rasterizer/anti-alias choices into the draw device.Robin Watts
We still use the fz_context versions as the default, but these can be overridden with draw device options.
2017-06-13Introduce fz_rasterizer encapsulationRobin Watts
This is intended to be a way to allow us to implement compiletime/runtime selection of different scan converter implementations.
2017-04-27Remove debug printing code.Tor Andersson
It's not used, so prone to bit rot. Better to purge it.
2017-04-27Include required system headers.Tor Andersson
2017-04-26Tweak gel bbox calculation.Robin Watts
2017-04-13Scan converter; simplify API.Robin Watts
In all cases, we sort the gel before scan converting it. So just roll the sort call into the scan convert call.
2016-11-10Add minimum line width configuration option.Robin Watts
2016-10-14Drop all contexts the same way.Sebastian Rasmussen
* Handle multiple calls to fz_drop_colorspace_context() and fz_drop_font_context(). * Allow missing context in call to fz_drop_aa_context() and fz_drop_glyph_cache_context(). * Only drop font context objects when dropping the last reference. * Avoid unnecessary NULL checks.
2016-07-08git stripspaceTor Andersson
2016-05-30Add config.h include file.Robin Watts
Introduce FZ_PLOTTER defines to set which defines we required. Add FZ_ENABLE define to set which document handlers are built by default.
2016-05-29Split draw-paint.c plotters out into separate functions.Robin Watts
Again, mainly so profiling works nicely.
2016-05-24fz_pixmap revamp: add stride and make alpha optionalRobin Watts
fz_pixmaps now have an explicit stride value. By default no change from before, but code all copes with extra gaps at the end of the line. The alpha data in fz_pixmaps is no longer compulsory. mudraw: use rgb not rgba (ppmraw), cmyk not cmyka (pkmraw). Update halftone code to not expect alpha plane. Update PNG writing to cope with alpha less input. Also hide repeated params within the png output context. ARM code needs updating.
2016-04-26Allow text/graphics aa levels to be controlled separately.Robin Watts
2016-04-12Silence some warnings in release builds.Robin Watts
2016-03-11Fix various warnings.Robin Watts
"Defined but not used" and "Set but not used" as seen with ndk-build.
2015-04-07Fix whitespace.Tor Andersson
2015-04-06Add some simple debug code to dump fz_gels.Robin Watts
Just for internal use, no external interface.
2015-04-06Bug 694367: Attempt to avoid dropouts of rectangles.Robin Watts
This is not a complete general fix for features dropping out of rendered line art, but merely a fix for one of the more common cases. When rendering rectangles (currently, specifically only those rectangles that are actually defined as rectangles within the path structure), if they are axis aligned, then ensure that they always fill the subpixel line they are on.
2015-02-17Add ctx parameter and remove embedded contexts for API regularity.Tor Andersson
Purge several embedded contexts: Remove embedded context in fz_output. Remove embedded context in fz_stream. Remove embedded context in fz_device. Remove fz_rebind_stream (since it is no longer necessary). Remove embedded context in svg_device. Remove embedded context in XML parser. Add ctx argument to fz_document functions. Remove embedded context in fz_document. Remove embedded context in pdf_document. Remove embedded context in pdf_obj. Make fz_page independent of fz_document in the interface. We shouldn't need to pass the document to all functions handling a page. If a page is tied to the source document, it's redundant; otherwise it's just pointless. Fix reference counting oddity in fz_new_image_from_pixmap.
2015-02-17Rename fz_close_* and fz_free_* to fz_drop_*.Tor Andersson
Rename fz_close to fz_drop_stream. Rename fz_close_archive to fz_drop_archive. Rename fz_close_output to fz_drop_output. Rename fz_free_* to fz_drop_*. Rename pdf_free_* to pdf_drop_*. Rename xps_free_* to xps_drop_*.
2014-05-22Fix 695247: Use exponential realloc pattern and qsort for huge paths.Tor Andersson
Grow the edge list using an exponential realloc pattern. Use qsort for huge paths and only fall back to the simple shell sort for small paths.
2014-01-08Fix fuzzing bug due to float representation limitations.Robin Watts
The gel bbox was being stored internally as floats (despite only holding ints). This means that as numbers get large the bbox can become approximate, rather than exact. If the bbox becomes smaller than it should, this causes crashes in the scanline filling code. This is seen with: tests_private/fuzzing/mupdf2/17f8aee51ac776994af0b36195cdadd7_signal_sigsegv_5607be_7308_5912.pdf The solution is simply to use ints rather than floats. Thanks to Mateusz Jurczyk and Gynvael Coldwind of the Google Security Team for providing the example files.
2013-10-11prevent potential heap access violationSimon Bünzli
fz_reset_gel fails to reset the length of active edges, which could (AFAICT) lead to pointers in gel->active pointing to memory that's been previously freed by fz_resize_array.
2013-09-30Bug 694526: Fix hang in stroking path.Robin Watts
The first file of this bug (hang-66.pdf) hangs while stroking a VERY long line segment; so long that 'used' is sufficinetly large that: used += dash_segment_len doesn't result in a change in the value of used. The fix is to clip strokes to the edge of the gel's clip area, meaning that this should never occur.
2013-09-13Fix various compile warnings spotted by the cluster.Robin Watts
2013-07-24Fix memory overwrites when plotting glyphs that are completely clipped.Robin Watts
This bug has been in here for ages, but was masked by a bug in the gel clipping that was fixed by Tor earlier.
2013-07-24Fix MIN/MAX confusion in edge list clipping.Tor Andersson
The case with infinite scissor didn't work.
2013-06-20Rearrange source files.Tor Andersson