Commit graph

1546 commits

Author SHA1 Message Date
Christian Biesinger
05a259d493 [beos] Fix build error
Rename cairo_rectangle_fixed_t to cairo_rectangle_int16_t
as needed per commit 746f66c3fc.
2006-10-26 21:47:16 +02:00
Adrian Johnson
bd0f991908 Add OpenType/CFF Subsetting 2006-10-27 00:00:24 +09:30
Adrian Johnson
e4c3da8080 PS: Use xshow/yshow/xyshow for strings of glyphs
Optimize show glyphs by looking for strings of glyphs from the same subset
and use the xyshow operator to display. As a further optimization the xshow
and yshow operators are used for displaying horizontal and vertical text.
2006-10-26 23:41:57 +09:30
Behdad Esfahbod
e1ded5b1e0 [PDF] Set CTM before path construction
The previous order is undefined according to the PDF spec.  The resulting PDF
was being misrendered using OS X Preview viewer.  This was reported in this
thread:

  http://lists.freedesktop.org/archives/cairo/2006-October/008271.html
2006-10-25 21:40:08 -04:00
Carl Worth
02096f66f3 Fix typo 2006-10-25 12:52:02 -07:00
Carl Worth
7955fe63cc Fix offset/extent bug in ps output for repeating source surface patterns
The bug was exposed by the recent addition of the paint-repeat test.
The ps output was crashing various interpreters by using infinite
extents for repeating patterns. Fixing that was easy enough, but
the offset of the repeating pattern was still being lost. The fix
for both involved imitating the style of emit_surface_pattern as
it exists in cairo-pdf-surface.c, (though the details are quite
different due to differences in the models of PS and PDF).
2006-10-25 12:52:02 -07:00
Carl Worth
7e9aad2289 Fix repeating source surface patterns with xlib backend.
This broke with the clone_similar optimization in
8d7a02ed58 The optimization added an
interest rectangle to clone_similar, but with a repeating source
pattern, the interest rectangle might not intersect the extents of the
surface at all.

The test suite caught this with the trap-clip case.

The fix here is to clone the entire surface if the pattern has an
extend mode of REPEAT.
2006-10-25 10:32:37 -07:00
Jinghua Luo
804e5b58cd glitz: further fix for clone_similar.
Don't try to get pixels outside image extent. The failure number of
tests cut down to 19 with this fix, not too bad;).
2006-10-25 13:29:06 +08:00
Ian Osgood
69f740913d bug: wrong xcb_copy_area param order 2006-10-24 08:24:30 -07:00
Carl Worth
8381e53cc7 8711: Fix transformed source surface patterns with xlib backend.
This broke with the clone_similar optimization in
	 8d7a02ed58
The optimization added an interest rectangle to clone_similar,
but the acquire_surface path was neglecting to transform its
rectangle by the pattern matrix.

The test suite did catch this, but apparently we were too
distracted by the performance improvements to notice. Only
backends other than image that implemented clone_similar
would be affected by the bug, (which meant I only saw xlib
failures in my testing).

This fixes bug #8711
2006-10-23 20:46:43 -07:00
Adrian Johnson
9e4a48557e type1 fallback: ensure all functions perform correct status checking 2006-10-23 23:17:06 +09:30
Christian Biesinger
bd5d7c1fb2 Don't return an uninitialized value if _cairo_output_stream_create fails 2006-10-22 20:10:02 +02:00
Christian Biesinger
153f2d1cad Actually return a value from _cairo_type1_fallback_init_* 2006-10-22 20:10:02 +02:00
Jinghua Luo
f29a1920b0 glitz: my previous changes in _cairo_glitz_surface_create_similar is
incorrect.
2006-10-22 12:31:40 +08:00
Ian Osgood
1a90d28c3f XCB: make create_internal match Xlib
minus font options and buggy repeat
plus some cleanup and removal of more Xlib diffs
2006-10-21 11:58:01 -07:00
Jinghua Luo
343d9ef030 glitz: don't go fackback path for bitmap glyphs.
Test case bitmap font still passes with changes and improves performance
 a lot.
2006-10-21 17:27:28 +08:00
Jinghua Luo
3b1d0d3519 glitz: fix test case glyph-cache-pressure.
Glitz backend need freeze glyph cache as xlib backend otherwise it'll
crash, let's fix it now.
2006-10-21 17:23:11 +08:00
Jinghua Luo
f3c5835071 glitz: fix for clone similar.
This corrects mosts of changes in clone similar commit. But it's
still a problem in _cairo_glitz_surface_set_image, it'll crash if
source region is outside image extents.
2006-10-21 17:18:51 +08:00
Jinghua Luo
2ef9c7d9e8 glitz: fix a crash in _cairo_glitz_surface_get_image.
The previous changes in _cairo_glitz_surface_get_image causes test
clip-fill-rule-pixel-aligned and clip-fill-rule fail with a pretty
crash, this fix that.
2006-10-21 17:07:19 +08:00
Ian Osgood
a34a4a2bd7 XCB: bring composite, trapezoids up-to-date with Xlib
Categorize & recategorize
Distinguish DO_COPYAREA and DO_XTILE
Create trapezoid mask
Fixup unbounded
2006-10-20 11:17:03 -07:00
Carl Worth
b1944e1672 Fix bug in _cairo_clip_init_deep_copy (fixes clip-push-group crash)
Thanks to Miklós Erdélyi <erdelyim@gmail.com> for reporting
the original problem and suggesting the fix.
2006-10-19 15:48:13 -07:00
Ian Osgood
8d2f036752 XCB: implement subimage_copy fix
Needs further testing and review.
2006-10-19 13:42:04 -07:00
Christopher (Monty) Montgomery
8d7a02ed58 Add extents to clone_similar (fixing subimage_copy performance bug)
This fixes a huge performance bug (entire image was being pushed to X
server in order to copy a tiny piece of it). I see up to 50x improvement
from subimage_copy (which was designed to expose this problem) but also
a 5x improvement in some text performance cases.

 xlib-rgba              subimage_copy-512    3.93 2.46% ->   0.07 2.71%: 52.91x faster
███████████████████████████████████████████████████▉
 xlib-rgb               subimage_copy-512    4.03 1.97% ->   0.09 2.61%: 44.74x faster
███████████████████████████████████████████▊
 xlib-rgba              subimage_copy-256    1.02 2.25% ->   0.07 0.56%: 14.42x faster
█████████████▍
 xlib-rgba        text_image_rgb_over-256   63.21 1.53% ->  11.87 2.17%:  5.33x faster
████▍
 xlib-rgba       text_image_rgba_over-256   62.31 0.72% ->  11.87 2.82%:  5.25x faster
████▎
 xlib-rgba     text_image_rgba_source-256   67.97 0.85% ->  16.48 2.23%:  4.13x faster
███▏
 xlib-rgba      text_image_rgb_source-256   68.82 0.55% ->  16.93 2.10%:  4.07x faster
███▏
 xlib-rgba              subimage_copy-128    0.19 1.72% ->   0.06 0.85%:  3.10x faster
██▏
2006-10-18 17:06:23 -07:00
Carl Worth
e21c155e73 Merge branch '8379' into cairo 2006-10-18 15:03:04 -07:00
Carl Worth
10cd23d51f Fix infinite-join test case (bug #8379)
The trick for this was to carefully ensure that the pen always has
at least 4 vertices. There was a previous attempt at this in the
code already but the test case had a combination of matrix and radius
that resulted in a value that was just able to sneak past the previous
check.
2006-10-18 15:02:12 -07:00
Ian Osgood
968ceeec1d XCB: find_standard_format using wrong enumeration.
Requires latest xcb/util/renderutil library from git.
2006-10-18 08:14:55 -07:00
Ian Osgood
e2a0c57c1f XCB: glyph rendering support
todo: get_font_options, testing
2006-10-17 08:09:29 -07:00
Jamey Sharp
25353fdb57 XCB: Move slim_hidden_def to cairo-xcb-surface.c, not cairo-xcb-xrender.h.
I didn't understand that the _def does not need to be public any more
than the _proto does.
2006-10-16 11:44:08 -07:00
Ian Osgood
aa017161a5 Move XCB sections next to XLIB sections. 2006-10-16 11:24:25 -07:00
Jamey Sharp
8dabfc7ffe XCB: Add the have_clip_rects field to cairo_xcb_surface, to match the Xlib surface.
Correction to my previous commit. *sigh*
2006-10-16 11:23:38 -07:00
Ian Osgood
7988f2cc6a XCB: Remove unnecessary differences with the Xlib surface. 2006-10-16 11:10:29 -07:00
Carl Worth
b62710d4f8 Bug #7497: Change _cairo_color_compute_shorts to not rely on any particular floating-point epsilon value. 2006-10-16 09:10:07 -07:00
Christian Biesinger
6c95083406 Fix win32 build when pthreads are available
_cairo_win32_initialize always needs a definition.
2006-10-16 17:51:41 +02:00
Christian Biesinger
7d13686438 [win32] Add missing void
This fixes a GCC compile warning
2006-10-16 17:30:30 +02:00
Jamey Sharp
445251cc79 [slim] hide cairo_version_string()
Adrian's recent commits broke PLT hiding by calling cairo_version_string
from inside cairo. Add slim_hidden_def and slim_hidden_proto for it.
2006-10-15 17:24:25 -07:00
Adrian Johnson
830804c7ae PDF: Add cairo version to document info dictionary 2006-10-15 23:11:30 +09:30
Adrian Johnson
5aaa1988c7 PS: Add cairo version to PS header 2006-10-15 23:11:01 +09:30
Adrian Johnson
753763ff25 Type1 subsetting: Don't put .notdef in Encoding when there are 256 glyphs
Type1 subsetting adds the .notdef glyph to the subset because the Type 1
spec requires that it be defined. However if the subset already has
256 glyphs, this will cause the Encoding vector to have 257 entries
which ghostscript does not like.
2006-10-15 23:09:35 +09:30
Adrian Johnson
216c759d46 Type 1 fallback fonts - use binary encoding in PDF files
PDF files require that embedded Type 1 fonts have the encrypted
portion of the font encoded in binary.
2006-10-15 23:07:38 +09:30
Adrian Johnson
d1fb02b5b9 Correct an unsigned to signed conversion problem in truetype subsetting bbox 2006-10-15 23:02:20 +09:30
Adrian Johnson
9ee0c15941 cairo-type1-fallback.c: return correct error status 2006-10-15 22:48:43 +09:30
Jamey Sharp
20375d5cef XCB: add slim_hidden_proto and slim_hidden_def for cairo_xcb_surface_create_with_xrender_format. 2006-10-11 22:20:27 -07:00
Ian Osgood
7d0ff885df Update XCB names for XCB 1.0 RC2 release.
New names are in line with cairo naming standards.
XIDs are now typedefs not structs.
xcb_generate_id replaces *_new functions.
Also fixed all warnings (one const, new enums in switch statements).
2006-10-11 21:52:49 -07:00
Behdad Esfahbod
f6a2811c87 [slim] hide cairo_glitz_surface_create() (#8551) 2006-10-08 17:07:17 -04:00
Behdad Esfahbod
a13d58ff3a [slim] hide cairo_pattern_status() #8551 2006-10-08 17:06:44 -04:00
Carl Worth
f1db013547 Fix typo that was resulting in device glyph_extents of INT16_MAX in some cases. 2006-10-05 12:31:50 -07:00
Behdad Esfahbod
2041db9196 [Makefile.am] Pass srcdir down to the tests 2006-10-05 11:53:06 -04:00
Carl Worth
ad02773e9b Remove unused variable 2006-10-04 17:14:12 -07:00
Carl Worth
783b69a8d3 Rename the create_for_status pattern to create_in_error. 2006-10-04 17:14:12 -07:00
Carl Worth
01502471e3 Add new _cairo_pattern_create_for_status so that patterns properly propagate errors.
In particular, many possible error values on a surface provided
to cairo_pattern_create_for_surface were previously being swallowed
and a nil pattern was returned that erroneously reported
CAIRO_STATUS_NO_MEMORY.
2006-10-04 17:14:12 -07:00