Commit graph

1642 commits

Author SHA1 Message Date
Carl Worth
bcfe344608 Optimize the implementation of _cairo_lzw_compress.
This switches the implementation of _cairo_lzw_compress from using
cairo-hash.c to a custom implementation of the same algorithm that
takes advantage of the specific details of what is needed here.

This final version now has comparable performance to the libtiff code,
but should hopefully be easier to understand.

Add a bunch of comments explaining how the various pieces work.
2006-03-23 15:27:00 -08:00
Carl Worth
639c2fe4df cairo-lzw: Replace LZW code from libtiff with an original implementation.
This new implementation is an entirely original work directly from the
description of the LZWDecode filter in the PostScript Language
Reference, (and in spite of the bugs in the examples provided in that
reference).

This implementation uses the existing cairo-hash.c for the symbol
table. This implementation is somewhat easier to read than the libtiff
code, and avoids any code that may have an advertising clause
attached. This new implementation is the simplest thing I could
implement. It is not as efficient as the libtiff code, (though I did
expect better things from cairo-hash.c).
2006-03-23 15:23:29 -08:00
Carl Worth
ec60bb0a60 Rename _cairo_compress_lzw to _cairo_lzw_compress and tighten the parameter list. 2006-03-23 15:00:40 -08:00
Carl Worth
cabe94a15c Make all hash/cache keys_equal function accept const pointers. 2006-03-22 23:12:23 -08:00
Emmanuel Pacaud
a193f70b94 SVG: return len in _cairo_svg_document_write when operation succeed. 2006-03-22 11:48:44 +01:00
Christian Biesinger
ef04471b1b More consistent naming for the BeOS surface functions 2006-03-18 18:08:20 +01:00
Christian Biesinger
69acfa6576 Don't link to C++ libraries on non-BeOS systems 2006-03-17 21:26:27 +01:00
Behdad Esfahbod
0623f8a7d1 Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo 2006-03-15 15:25:59 -05:00
Behdad Esfahbod
26b06b3638 Clarify that git tag -s does GPG signing.
(cherry picked from e942518615 commit)
2006-03-15 15:25:10 -05:00
Behdad Esfahbod
f5013b6dc6 Add a release-publish-message target to only get the message.
(cherry picked from 98facc6c2d commit)
2006-03-15 15:25:03 -05:00
Behdad Esfahbod
46e5ed66d3 Note using "git diff" instead of "git status" as the latter is a bit tricky when it says nothing to commit...
(cherry picked from a1621eadb6 commit)
2006-03-15 15:24:45 -05:00
Behdad Esfahbod
f00a183334 Update release infra to reflect git transition.
(cherry picked from 508b0be5f2 commit)
2006-03-15 15:24:35 -05:00
Behdad Esfahbod
037732cac9 Add make bits to autogenerate ChangeLog
(cherry picked from 393000021c commit)
2006-03-15 15:24:18 -05:00
Alexander Larsson
a7f58f8862 Add LZW image compression and ASCII85 encoding for PostScript image output.
* src/Makefile.am:
Add cairo-lzw.c to sources
Remove erronous space at start of line

* src/cairo-lzw.c:
New file implementing _cairo_compress_lzw which does Lempel-Ziv & Welch
compression as used by postscript. Based on code from libtiff.

* src/cairo-output-stream.c:
Add _cairo_output_stream_write_base85_string which implements
an encoder for the ASCII85Decode postscript filter.

* src/cairoint.h:
Add _cairo_compress_lzw and _cairo_output_stream_write_base85_string.

* src/cairo-ps-surface.c:
Write Images LZW + Base85 encoded.
Change ps level to 2 (we only needed level 3 for FlateDecode).
Change DocumentData to Clean7Bit as we don't include binary data
anymore.
2006-03-15 10:47:10 -08:00
Carl Worth
d6f8df7417 Remove annoyinc RCS magic lines that are not being used, but cause conflicts. 2006-03-15 10:47:09 -08:00
Emmanuel Pacaud
2af29f720f SVG: use xmlOutputBuffer for file creation, instead of dumping xml tree in a memory buffer. 2006-03-14 23:02:39 +01:00
Carl Worth
5d89faf6b3 fbCompositeTrans_0888xnx0888: Fix suspicious logical negation of pointer value.
Surely, the ! instead of ~ here was just a typo. I'd feel better if I
had a failing test case for this though, (time to break out gcov
again).

Fixes bug #6185:

	Strange pointer operations in fbCompositeTrans_0888xnx0888 (pixman/src/fbpict.c)
	https://bugs.freedesktop.org/show_bug.cgi?id=6185
2006-03-13 13:20:29 -08:00
Carl Worth
6f0d8eedc5 _clip_and_composite_trapezoids: Avoid NULL pointer dereference due to OOM.
This closes bug #6197:

	Null pointer dereference on OOM in _clip_and_composite_trapezoids()
	https://bugs.freedesktop.org/show_bug.cgi?id=6197
2006-03-13 12:25:25 -08:00
Carl Worth
79075b2cb1 cairo-clip: Fix memory leak during OOM handling.
This closes bug #6196:

	Memory leak in _cairo_clip_intersect_path (src/cairo-clip.c)
	https://bugs.freedesktop.org/show_bug.cgi?id=6196
2006-03-13 12:20:23 -08:00
Carl Worth
fc51a78a1e cairo-pdf-surface: Close memory leak during OOM handling.
This fixes bug #6186:

	Memory leak in emit_image_rgb_data (src/cairo-pdf-surface.c)
	https://bugs.freedesktop.org/show_bug.cgi?id=6186
2006-03-13 12:14:47 -08:00
Carl Worth
25cccaaa1f Merge branch 'cairo-origin' into cairo 2006-03-13 12:05:37 -08:00
Carl Worth
c780f4a562 cairo-output-stream: Don't dereference a NULL pointer due to OOM.
This close bug #6176:

	Null pointer dereference on OOM in _cairo_output_stream_create_for_file()
	https://bugs.freedesktop.org/show_bug.cgi?id=6176
2006-03-13 12:05:13 -08:00
Emmanuel Pacaud
118f71b438 Merge branch 'master' of git+ssh://emmanuel@git.cairographics.org/git/cairo 2006-03-12 19:30:29 +01:00
Emmanuel Pacaud
66599911e0 Don't duplicate unmodified SVG surfaces 2006-03-09 22:09:14 +01:00
Mart Raudsepp
92e09ee72f Complete the CAIRO_PATTERN_TYPE renaming
This fixes compilation of the glitz backend, and also fixes missing
renames in win32, atsui, and directfb backends.
2006-03-09 08:23:43 -08:00
Carl Worth
1cffb39ff0 cairo_show_glyphs: Do nothing if num_glyphs == 0 2006-03-08 08:16:49 -08:00
Emmanuel Pacaud
7563a23921 Fix self-copy test 2006-03-05 23:49:38 +01:00
Carl Worth
3333bba82d Merge branch 'show-glyphs-many' into cairo 2006-03-03 15:41:14 -08:00
Carl Worth
3370cd6318 _cairo_xlib_surface_old_show_glyphs: Break up rendering into chunks to fit
into X max request length protocol limits.

This fixes bug #5528:

	_XError from XRenderCompositeText8
	https://bugs.freedesktop.org/show_bug.cgi?id=5528
(cherry picked from 7d498ca912 commit)
2006-03-03 15:40:58 -08:00
Carl Worth
34a4ad1e5b test/show-glyphs-many: New test case to demonstrate bug #5528
This demonstrates an Xlib crash when rendering many glyphs. See:

	_XError from XRenderCompositeText8
	https://bugs.freedesktop.org/show_bug.cgi?id=5528

for more details.
2006-03-02 10:32:38 -08:00
Emmanuel Pacaud
62812b25c7 Fix gcc 4.0 signedness warnings 2006-03-02 14:54:37 +01:00
Christian Biesinger
3490ed9896 Remove trailing comma in enumeration
This fixes a gcc -pedantic warning and compilation with the xlc compiler.
2006-03-01 19:17:00 +01:00
Vladimir Vukicevic
2fb016c75b Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo 2006-03-01 11:26:48 +01:00
Vladimir Vukicevic
8176c93bc4 Revert "Remove ft-font's usage of device offset surface fields for storing bearings"
Bogus fix; misunderstood the relationship between the font bearings
and the computed device offsets.  Real fix on my device offsets branch.

This reverts 49b4fe10d0 commit.
2006-03-01 11:26:30 +01:00
Vladimir Vukicevic
f5566c9b20 Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo 2006-02-28 16:29:45 +01:00
Christian Biesinger
d985a9d669 Fixing BeOS surface part II 2006-03-01 00:40:35 +01:00
Christian Biesinger
566bb18dfe Updating BeOS surface per the get_type changes 2006-03-01 00:06:43 +01:00
manu
a69b3f2116 s/CAIRO_PATTERN/CAIRO_PATTERN_TYPE/ 2006-02-28 23:44:01 +01:00
manu
0341305fd2 Revert "Git test"
This reverts ef1c5c3961 commit.
2006-02-28 23:33:00 +01:00
manu
ef1c5c3961 Git test 2006-02-28 22:52:45 +01:00
Vladimir Vukicevic
49b4fe10d0 Remove ft-font's usage of device offset surface fields for storing bearings
cairo-ft-font was being naughty and storing glyph bearings in the
surface device_[xy]_offset fields -- this had no effect previously,
because _cairo_surface_composite ignored those fields, but once it
starts handling device offsets itself, this causes ft text rendering
to break.
2006-02-28 16:23:14 +01:00
Carl Worth
6fe93cbf5b Merge branch 'get-type' into cairo 2006-02-28 02:36:45 -08:00
Carl Worth
210dd59a74 Add some basic testing of cairo_font_face_get_type and
cairo_scaled_font_get_type.
2006-02-28 02:30:27 -08:00
Carl Worth
bd2136a23f Correct copyright date 2006-02-28 01:31:15 -08:00
Carl Worth
f9534c856a test/pattern-get-type: Add new test case for cairo_pattern_get_type. 2006-02-28 01:30:58 -08:00
Carl Worth
1dd6e417c1 Add testing for cairo_surface_get_type.
All test targets now list an expected cairo_surface_type_t. Add notes
on current limitations of PDF/PS/meta-surface support that causes
CAIRO_CONTENT_COLOR similar surfaces of PDF and PS surfaces to be
returned as image surfaces.

Add cairo_internal_surface_type_t for the meta, paginated, and various
test surfaces.
2006-02-28 00:55:27 -08:00
Carl Worth
cd84e2ab32 Add documentation for cairo_font_face_get_type,
cairo_scaled_font_get_type, cairo_surface_get_type, and
cairo_pattern_get_type.
2006-02-27 23:15:45 -08:00
Carl Worth
5797f81485 Implement cairo_pattern_get_type 2006-02-27 23:12:43 -08:00
Carl Worth
5ae0b9f912 Implement cairo_surface_get_type 2006-02-27 23:11:32 -08:00
Carl Worth
1769830e6e Implement cairo_scaled_font_get_type 2006-02-27 17:22:45 -08:00