Commit graph

7375 commits

Author SHA1 Message Date
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
Carl Worth
c9c259903d Cast to squelch warning message 2006-10-04 17:14:12 -07:00
Carl Worth
4d2b54a271 Fix cairo_image_surface_create to report INVALID_FORMAT errors.
This adds a new nil cairo_image_surface to hold CAIRO_STATUS_INVALID_FORMAT.
Previously the detected error was being lost and a nil surface was
returned that erroneously reported CAIRO_STATUS_NO_MEMORY.
2006-10-04 17:14:12 -07:00
Behdad Esfahbod
1e0e207509 [check-headers.sh] Don't use '\>' regexp syntax 2006-10-02 14:35:35 -04:00
Carl Worth
3b58d92f5a Add missing 'Since: 1.4' tags to documentation of 'clip getter' functions.
The following documented symbols were missing this tag:

	cairo_clip_extents
	cairo_copy_clip_rectangles
	CAIRO_STATUS_INVALID_INDEX
	cairo_rectangle_t
	cairo_rectangle_list_t
2006-09-29 17:47:01 -07:00
Carl Worth
9cacced88f Add documentation for cairo_rectangle_list_destroy 2006-09-29 17:44:34 -07:00
Carl Worth
beb778f482 Use consistent wording to document cairo_in_fill, cairo_in_stroke, cairo_fill_extents, and cairo_stroke_extents. 2006-09-29 16:56:36 -07:00
Carl Worth
b99d41a0b0 Fix typo in documentation of cairo_in_fill (thanks to Jonathan Watt) and clarify a bit. 2006-09-29 16:46:39 -07:00
Vladimir Vukicevic
b05400b559 [nquartz] Return correct values from operation setup function
Leftovers from an old half-completed patch that was breaking the world.
This fixes the world, or at least one tiny part of it.
2006-09-28 14:58:49 -07:00
Robert O'Callahan
17eeacfba8 Remove redundant call to _cairo_surface_get_extents
We called it just above with the same parameters.
2006-09-26 15:48:06 -07:00
Carl Worth
5f833c134b Fix cairo_copy_path and cairo_copy_path_flat to propagate errors.
One of these functions was already documented to be doing this, and
the other one should have been. Now the documentation and behavior
for both are consistent, (and the path-data test case verifies this).
2006-09-26 15:48:06 -07:00
Kristian Høgsberg
f9165638bf Compute right index when looking up left side bearing.
When looking up the short entries in the second part of
the hmtx table, compute the size of the first part correctly.

Fix from Adrian, see:

  https://bugs.freedesktop.org/show_bug.cgi?id=8180#c12
2006-09-26 17:33:29 -04:00
Behdad Esfahbod
7c3062240a [configure] Print out whether SVG and PDF surfaces can be tested 2006-09-26 13:54:28 -04:00
Robert O'Callahan
191e108b93 Add clip getters API + tests
Add new public API methods:

void cairo_clip_extents (cairo_t *cr,                                               double *x1, double *y1,
    double *x2, double *y2);
cairo_rectangle_list_t *cairo_copy_clip_rectangles (cairo_t *);
void cairo_rectangle_list_destroy (cairo_rectangle_list_t *);

Also add 'get-clip' and 'get-path-extents' tests.
2006-09-25 23:22:45 -07:00
Robert O'Callahan
a8ca155f83 Fix stroke/fill extents bounding boxes
Correctly return the transformed bounding box for stroke/fill extents,
instead of just transforming the two corners separately.
2006-09-25 23:16:54 -07:00
Robert O'Callahan
37fa632e59 Fix _cairo_matrix_transform_bounding_box to return tightness info
Add return is_tight value to the internal function, indicating whether
the transformed bounds still remain axis-aligned.
2006-09-25 23:14:43 -07:00
Carl Worth
5492a7c761 Add assert statement so the infinite-join test simply exits rather than looping infinitely. 2006-09-21 15:15:02 -07:00
Vladimir Vukicevic
303b529195 dash and pattern getter functions
Adds API functions for inspecting the current dash state, as well as
the contents of pattern objects:

  cairo_get_dash
  cairo_get_dash_count
  cairo_pattern_get_rgba
  cairo_pattern_get_surface
  cairo_pattern_get_color_stop_rgba
  cairo_pattern_get_color_stop_count
  cairo_pattern_get_linear_points
  cairo_pattern_get_radial_circles
2006-09-19 12:19:21 -07:00
Vladimir Vukicevic
a56b962428 Add win32 output files to gitignore 2006-09-19 12:19:21 -07:00
Behdad Esfahbod
42a0c6bd59 check-def.sh: Only allow _cairo_.*_test_.* symbols, not all _cairo.* ones 2006-09-19 13:05:29 -04:00
Behdad Esfahbod
ae355453d8 cairo-nquartz.h: Add missing cairo_public decorators. 2006-09-18 13:32:41 -04:00
Behdad Esfahbod
6c01b2ffb3 cairo-directfb.h: Add missing cairo_public decorators 2006-09-18 13:32:19 -04:00