Commit graph

3594 commits

Author SHA1 Message Date
Behdad Esfahbod
ea817c560c [cairo-mutex] Remove unneeded #undef CAIRO_MUTEX_EXTERNAL 2007-04-19 16:07:15 -04:00
Behdad Esfahbod
0b281085b5 [cairo-mutex] Err on unintended inclusion of cairo-mutex-list-private.h 2007-04-19 16:07:15 -04:00
Behdad Esfahbod
47be7280bf [cairo-mutex] Remove multiple-inclusion guards from cairo-mutex-list-private.h
This is a list header file.  We should not prevent it from multiple
inclusions.
2007-04-19 16:07:15 -04:00
Chris Wilson
55ea0466e2 Embed simple clip XRectangles in cairo_xlib_surface_t
Toolkits like GTK+ almost always set a simple rectangular clip mask before
any cairo operation, so avoid the allocation for this simple case by
embedding a small number of XRectangles into the surface structure.
2007-04-19 20:37:06 +01:00
Mathias Hasselmann
7906a99340 Define INT32 limits on MSVC as noticed by Hans-Jürgen Schäler 2007-04-19 14:54:30 +02:00
Mathias Hasselmann
cc8841645c Properly use CAIRO_MUTEX_{INIT,FINI} and remove CAIRO_MUTEX_LIST_PRIVATE_H sentinal before explicitly including the mutex list. 2007-04-19 13:47:45 +02:00
Mathias Hasselmann
39a633a8f3 Reintroduce DllMain as deterministic mutex initialization path 2007-04-19 13:38:26 +02:00
Mathias Hasselmann
9b348929b5 Introduce CAIRO_MUTEX_FINALIZE as counter-part for CAIRO_MUTEX_INITIALIZE 2007-04-19 13:38:26 +02:00
Mathias Hasselmann
67767afa09 Update _cairo_mutex_initialized during initialization. 2007-04-19 13:38:25 +02:00
Chris Wilson
41c6eebcd1 Optionally provide a pattern to use for creating a similar solid surface.
_cairo_surface_create_similar_solid() creates a fresh pattern to wrap
color, however sometimes the caller already has that pattern available.
In those circumstances we can pass the pattern as well as the color and
avoid the extra allocation.
2007-04-19 11:56:15 +01:00
Chris Wilson
ef60e7c651 cairo-xlib-surface - track picture properties.
By tracking picture properties we can dramatically reduce the amount of
X11 traffic by avoiding redundant changes.
2007-04-19 10:54:02 +01:00
Chris Wilson
9cf0955633 Create opaque similar solid surfaces when possible.
For opaque surfaces the backends may use simpler code paths - for
example, the xlib backend may be able to use the Core protocol rather
than Render. So we only generate a surface with an alpha component if
the color is not opaque.
2007-04-19 09:30:28 +01:00
Chris Wilson
f7b6fc4746 Define a CAIRO_ALPHA_IS_OPAQUE variant that operates on uint16.
Introducing this variant also fixed a bug in _gradient_is_opaque()
which was using the fractional test on a uint16.
2007-04-19 09:30:15 +01:00
Behdad Esfahbod
157074c794 [boilerplate] Add cairo_boilerplate_get/free_targets
This means, test and perf suites now share the same target handling
code, including parsing CAIRO_TEST_TARGET.
2007-04-18 19:46:30 -04:00
Behdad Esfahbod
47c02a6bd6 [boilerplate] s/_cairo_test_content_name/cairo_boilerplate_content_name/g 2007-04-18 19:15:16 -04:00
Behdad Esfahbod
b9026d0b13 [perf] Make targets more consistent with the test suite
That is:
1) no VALGRING vs VG abbreviations
2) setting TARGETS and ITERS on the make command line works now
2007-04-18 19:09:53 -04:00
Behdad Esfahbod
9f3e0694e6 [test] Allow bypassing all test targets by setting CAIRO_TEST_TARGET=" " 2007-04-18 19:08:54 -04:00
Behdad Esfahbod
52d4e0f319 [doc] Make section title capitalization more consistent 2007-04-18 18:28:43 -04:00
Behdad Esfahbod
beadcdf9bd Rename cairo-font.c to cairo-font-face.c 2007-04-18 18:24:09 -04:00
Behdad Esfahbod
f56582ef06 Put back __inline definition for MSC compilers, in both cairo and pixman
Apparently it's too much to expect people compiling on windows to fill
in sensible values for config.h... /sigh
2007-04-18 17:55:05 -04:00
Behdad Esfahbod
a54b6ed078 [pixman] Rename icint.h to pixmanint.h 2007-04-18 17:54:57 -04:00
Behdad Esfahbod
48121e97ac [cairoint.h] Define WARN_UNUSED_RESULT if undefined 2007-04-18 17:06:48 -04:00
Chris Wilson
a396e0b057 cairo-perf - add the missing newline.
Oops, missed out the newline for the fprintf in the previous commit.
2007-04-18 14:24:10 +01:00
Chris Wilson
383e9d5368 cairo-perf - Check that the surface is created.
Exit(1) if we fail to create the target surface.
2007-04-18 14:13:42 +01:00
Dave Yeo
7131f4e6ae [OS2] Fix #include "cairo-mutex-list-private.h" 2007-04-17 15:30:20 -04:00
Mathias Hasselmann
f7a2787685 Merge branch 'master' of git+ssh://hasselmm@git.freedesktop.org/git/cairo 2007-04-16 23:05:10 +02:00
Chris Wilson
cab4d41cae create-for-stream - free resources after test failure.
create-for-stream often fails whilst running under valgrind due to the
postscript output containing a CreationDate with seconds resolution,
hence the visibility of the resource leaks during failure.
2007-04-16 16:57:24 +01:00
Chris Wilson
9d435d5fbf Add suppression for leak from XauFileName.
The string is statically allocated by XauFileName() and so ignore the fact
that is not freed upon termination.
2007-04-16 15:44:28 +01:00
Chris Wilson
3a3fb0031d Update .gitignore
Add .*.sw? (vim swapfiles).
Add *~ (backup files).
Add *.gcno and *.gcda (gcov intermediates).
2007-04-16 15:08:54 +01:00
Kouhei Sutou
7ff95c7230 Support MinGW DLL compilation 2007-04-16 02:48:14 -04:00
Chris Wilson
ca9df759b4 Change of email address.
Update to my new email address and drop my old work one.
2007-04-14 15:28:29 +01:00
Carl Worth
96ee8d5ebe Update version to 1.4.5 after the 1.4.4 release 2007-04-13 17:47:25 -07:00
Carl Worth
ebba4a6d14 Increment version to 1.4.4 (and library versioning to 13:2:11) 2007-04-13 17:37:14 -07:00
Carl Worth
e21a58ce4c NEWS: Add notes for cairo 1.4.4 2007-04-13 17:36:31 -07:00
Carl Worth
e1a1f6ff25 AUTHORS: Update descriptions for Mathias Hasselmann and Chris Wilson
Both have contributed a tremendous amount of effort to cairo 1.4.4.
Well done!
2007-04-13 16:37:52 -07:00
Carl Worth
ef3e13337e cairo-perf-diff: Use median not minimum to report differences
Ideally, the minimum value would indicate the best possible performance,
but I've encountered situations where a bogus minimum value gets lodged
into the cached results for some reason, (and yet doesn't also get
discarded as an outlier). The downside of that situation is that running
more iterations never changes the result, so it's hard to fix the problem,
(resulting in cairo-perf-diff feeling just plain broken as more runs
change nothing).

So let's try using the median time instead.
2007-04-13 13:36:49 -07:00
Behdad Esfahbod
7ead3e64f1 [ROADMAP] Put back bug 10508 into 1.4.4 roadmap and mark it fixed
Yay!
2007-04-13 16:34:31 -04:00
Behdad Esfahbod
84c10a79ff [cairo-pattern] Slightly hackish fix for bug #10508
The so-attributed-to-X-server bug was that cairo maps the drawing
region to the pattern space, rounds the box, and uploads only that
part of the source surface to the X server.  Well, this only works for
NEAREST filter as any more sophisticated filter needs to sneak a peek
at the neighboring pixels around the edges too.

The right fix involves taking into account the filter used, and the
pattern matrix, but for most cases, a single pixel should be enough.
Not sure about scaling down...

Anyway, this is just a workaround to get 1.4.4 out of the door.  I'll
commit a proper fix soon.
2007-04-13 16:33:33 -04:00
Carl Worth
fcf49a5613 boilerplate: Cleanup conditional compilation ofcairo-quartz-boilerplate.c
It's much nicer to use automake to conditionally compile a file,
instead of always compiling it and conditionally having the compiler
see an empty file.
2007-04-13 12:02:11 -07:00
Carl Worth
cea107c980 Punt bug #10508 off of 1.4.4
It looks like this is an X server bug, and we don't have an
imminent fix. Meanwhile, the bug is avoidable by preferring
to use xlib surface sources for transformed rendering to xlib
instead of using image surface sources.
2007-04-13 11:29:09 -07:00
Behdad Esfahbod
4e3be54861 [cairo-pattern] Add a TODO item to code 2007-04-12 21:38:25 -04:00
Carl Worth
ec639449de Fix typo in loop control for computation of std. deviation
Thanks to Chris Wilson for pointing out this problem.
2007-04-12 18:16:52 -07:00
Carl Worth
537a795b3b Remove ft-text-vertical-layout-type1
This test can fail if the wrong font is loaded, but that's no
different than many other text tests---so it doesn't really
deserve special XFAIL treatment because of that.
2007-04-12 18:13:50 -07:00
Behdad Esfahbod
04164c996c [cairo-surface] Make sure cairo_surface_get_font_options() fully initializes
the font_options passed in.
2007-04-12 20:14:23 -04:00
Behdad Esfahbod
7224e1a6e6 [image] Set hint-metrics on in default font options 2007-04-12 18:49:38 -04:00
Behdad Esfahbod
57434e249a [xlib] Turn metrics-hinting on by default 2007-04-12 18:49:38 -04:00
Chris Wilson
8a4c108a4b Add a reference count to cairo_xlib_screen_info_t
Due to the interaction between multiple threads showing glyphs and
asynchronous CloseDisplays, it is possible for a font to maintain a
cairo_xlib_screen_info_t beyond the CloseDisplay. The simple solution
is to add a reference count in order to track the lifetime of the
cairo_xlib_screen_info_t correctly.
2007-04-12 23:31:37 +01:00
Carl Worth
50ef5bcf7b Revert cairo_public_warn addition to cairo.h
This new feature isn't appropriate for a minor cairo release,
(we're between 1.4.2 and 1.4.4 right now), but will make a
lot of sense during 1.5.

The code being reverted here was originally added with the
following commit:

	46eab95698

but this change reverts only the public-facing parts of it.
2007-04-12 13:46:03 -07:00
Chris Wilson
35bb2152c0 Hold the scaled_font->mutex whilst operating on the shared members.
Obey the locking rules whilst resetting the scaled_font after a
CloseDisplay.
2007-04-12 21:44:08 +01:00
Chris Wilson
97d897a747 cairo_xlib_close_display - drop the mutex whilst calling the hooks
In order to avoid recursive dead-locks where whilst one thread holds the
scaled font lock and is waiting on the XLockDisplay() another thread catches
the CloseDisplay and then tries to acquire the scaled font lock, we drop
the list mutex whilst processing the callbacks.
2007-04-12 21:43:47 +01:00