Commit graph

3506 commits

Author SHA1 Message Date
Behdad Esfahbod
e8072e6e0a [test,perf] Make them rebuild boilerplate when src is changed 2007-04-08 22:03:46 -04:00
Behdad Esfahbod
6f93092217 Rename pixman_region_uninit to pixman_region_fini 2007-04-08 22:03:38 -04:00
Behdad Esfahbod
4f8a04b1c9 [pixman-image] Simply initialization given that there is no clip 2007-04-08 21:55:45 -04:00
Mathias Hasselmann
df9ea31df5 [pixman-region] Separate pixman_region_init
Most of the time pixman_region_init is called without any extents, and
followed by a pixman_region_union_rect, used to used to initialize
rectangular regions. pixman_region_union_rect is not that cheap, but
the sequence is called quite often. So it should be worth introducing
a specialized and fast function for this sequence.

This introduces pixman_region_init_rect.  This new function makes
_cairo_region_init_from_rectangle obsolete.

Also removes the extent argument from pixman_region_init as it was
called with NULL most of the time.  A pixman_region_init_with_extents
is added for the general case.
2007-04-08 21:49:46 -04:00
Mathias Hasselmann
9436959a83 Update function map 2007-04-08 21:36:34 -04:00
Mathias Hasselmann
99f4bfada8 Remove abdoned pixman_region_{create,destroy} 2007-04-08 21:36:06 -04:00
Mathias Hasselmann
4532c023e0 Make clientClip region static, remove abdoned CT_PIXMAP code paths 2007-04-08 21:35:58 -04:00
Mathias Hasselmann
65f269f3a4 Avoid pixman_region_create in pixman_composite{,General} 2007-04-08 21:34:10 -04:00
Mathias Hasselmann
82cc451148 Make clip regions of pixman_image_t static 2007-04-08 21:32:52 -04:00
Mathias Hasselmann
0413715337 Avoid pixman_region_create in pixman_color_rects 2007-04-08 21:27:34 -04:00
Mathias Hasselmann
5a6ca4794b Replace pixman_region_create_simple by pixman_region_init 2007-04-08 21:25:25 -04:00
Mathias Hasselmann
f9057f2752 Avoid pixman_create_region in glitz-surface 2007-04-08 21:24:35 -04:00
Mathias Hasselmann
82cbb6886c Remove redundant _cairo_clip_fini function 2007-04-08 21:23:47 -04:00
Mathias Hasselmann
5ae309c456 Avoid pixman_region_create in _cairo_traps_extract_region 2007-04-08 21:23:13 -04:00
Mathias Hasselmann
241482b550 Avoid malloc in _cairo_region_create_from_rectangle 2007-04-08 21:12:02 -04:00
Mathias Hasselmann
efc9775149 Make sure clip->region is always initialized 2007-04-08 21:10:58 -04:00
Mathias Hasselmann
0e7df34e07 Make region of cairo_clip_t static 2007-04-08 21:10:12 -04:00
Mathias Hasselmann
ced7b4a4ab Make pixman_region_{init,uninit} public 2007-04-08 20:38:32 -04:00
Mathias Hasselmann
4d9065fceb Move struct pixman_region16 to pixman.h 2007-04-08 20:38:17 -04:00
Behdad Esfahbod
dce3e5e6b5 [TODO] Add 4945 Cairo doesn't support 8-bit pseudocolor visuals 2007-04-06 17:20:49 -04:00
Chris Wilson
8bb0e5939c _get_bitmap_surface - check for calloc failure 2007-04-06 12:34:17 -07:00
Chris Wilson
b95577a931 Protect boilerplate_xlib_synchronize from alloc failure.
Don't call XDestroyImage on a NULL image.
2007-04-06 12:18:49 -07:00
Chris Wilson
2a74fd5c7f Propagate one error return through pdf. 2007-04-06 11:50:00 -07:00
Behdad Esfahbod
a2a8f2ce7a [ROADMAP] Move David Turner's cairo-ft rewrite to 1.6. 2007-04-05 20:03:51 -04:00
Carl Worth
94460a9790 ROADMAP/TODO: Update with 1.4.4 and 1.6 items from recent meeting 2007-04-05 16:35:17 -07:00
Robert O'Callahan
d801aa59f8 [quartz] fix floating point precision issue (#10531)
This ensures that error due to double-to-float conversion
does not accumulate; the position of any glyph will be off by
at most one double-to-float conversion error.
2007-04-06 00:00:33 +01:00
Carl Worth
106f859045 Move misplaced CLEANUP_FONT label to avoid crash.
Previously, a failure in _cairo_win32_scaled_font_init_glyph_path leading
to the CLEANUP_FONT label would set the path into the glyph, then destroy
the path, and return an error status, (which in turn would cause a double
free when the glyph was destroyed).

The double-free apparently leads to a crash in some cases, as described
here:

	 SVG/Cairo related crash when opening specific webpage
	https://bugzilla.mozilla.org/show_bug.cgi?id=376498

This should eliminate the double-free, but does not address the original
error case, (attempting to get a path from a bitmap font?).
2007-04-05 14:44:15 -07:00
Chris Wilson
5c24711ee6 Restore gcov functionality
Add -lgcov to the shared library else the test programs fail to link.
Add a couple of lcov convenience targets to generate the coverage reports.
2007-04-04 10:13:13 +01:00
Behdad Esfahbod
59e5189818 [Makefile.am] Distribute BIBLIOGRAPHY
Also include all automatically distributed CAPITAL files in there,
to remove any doubts.
2007-04-03 20:46:14 -04:00
Behdad Esfahbod
a1287e483c [pixman/src/check-config.sh] Test that all source files #include <config.h>
as their first include.
2007-04-03 20:30:30 -04:00
Behdad Esfahbod
8fbf50d31d [src] Make sure all source files #include "cairoint.h" as their first include
This is necessary to avoid many portability problems as cairoint.h includes
config.h.  Without a test, we will regress again, hence add it.

The inclusion idiom for cairo now is:

	#include "cairoint.h"

	#include "cairo-something.h"
	#include "cairo-anotherthing-private.h"

	#include <some-library.h>
	#include <other-library/other-file.h>

Moreover, some standard headers files are included from cairoint.h and need
not be included again.
2007-04-03 20:28:11 -04:00
Behdad Esfahbod
ffc7d06da0 [src/check-cairoint.h] Test to check that all source files #include "cairoint.h"
as their first include.
2007-04-03 20:27:24 -04:00
Brian Ewins
3646839060 [boilerplate] split quartz out to avoid symbol clash.
Quartz and Xlib both define Picture and Cursor, and clashed in
cairo-boilerplate.c. Splitting quartz out allows a single mac 
build with --enable-quartz --enable-atsui.
2007-04-04 01:16:30 +01:00
Behdad Esfahbod
174ebc43fe [pixman] Make sure all source files include config.h
as their first include.
2007-04-03 20:02:48 -04:00
Behdad Esfahbod
208c32b245 [cairoint.h] Remove inline definition for MS compilers
Such things should go to config.h.  For one thing, cairoint.h is not
included in pixman.
2007-04-03 20:02:40 -04:00
Behdad Esfahbod
313a6f7321 [pixman] Cleanup inline mess (#10150)
Simply use "inline" instead of "INLINE" or "__inline__" and let
configure figure out what to use.
2007-04-03 20:02:10 -04:00
Behdad Esfahbod
88dc0c5f19 Make sure all nil objects start with _cairo_
Previously, the convention was that static ones started with cairo_, but
renamed to start with _cairo_ when they were needed from other files and
became cairo_private instead of static...

This is error prune indeed, and two symbols were already violating.  Now
all nil objects start with _cairo_.
2007-04-03 19:26:18 -04:00
Behdad Esfahbod
114be945db [test] Add svg2pdf 2007-04-03 16:47:39 -04:00
Behdad Esfahbod
b121468f14 [configure.in] Bump version up to 1.4.3, oops!
Supposed to be done after 1.4.2 was out, but apparently didn't happen.
2007-04-03 16:27:50 -04:00
Behdad Esfahbod
9710c48df3 [doc] Update Headers.mk 2007-04-03 16:26:48 -04:00
Behdad Esfahbod
040c68cb2c [test] Make pdf2svg build (and distributed) 2007-04-03 16:23:35 -04:00
Behdad Esfahbod
17f5706d17 [pdiff] Make stdint.h inclusion portable (#10441)
by copying magic bits from cairo-wideint-private.h.
2007-04-03 16:04:04 -04:00
Benjamin Berg
c2b1908f9b Fix typo in cairo_arc_negative() docs (#10497) 2007-04-03 15:46:51 -04:00
Behdad Esfahbod
814295f5fa [autogen.sh] Add --enable-test-surfaces to configure flags
Also remove --enable-maintainer-mode since we removed AM_MAINTAINER_MODE
from configure.in in b0d05f7421.
2007-04-03 15:37:40 -04:00
Chris Wilson
38c9909e29 [autogen.sh] Borrow version comparison from GNOME autogen.sh (#9566)
Our previous version check code was thinking that 1.10 is older than 1.7
2007-04-03 15:34:30 -04:00
Brian Ewins
00cc443737 [test/degenerate-path] remove quartz reference image
The reference image is no longer the correct size, so isn't
providing a comparison at all. In the absence of a better
replacement, removing it at least gives us diffs.
2007-03-26 21:44:33 +01:00
Chris Wilson
256f3e09a8 Destroy the current pattern before replacing with cairo_set_source().
Frequently cairo_set_source_rgb[a]() is used to replace the current
solid-pattern source with a new one of a different colour. The current
pattern is very likely to be unshared and unmodified and so it is likely
just to be immediately freed [or rather simply moved to recently freed
cache]. However as the last active pattern it is likely to cache-warm and
suitable to satisfy the forthcoming allocation. So by setting the current
pattern to 'none' we can move the pattern to the freed list before we
create the new pattern and hopefully immediately reuse it.
2007-03-26 20:58:14 +01:00
Chris Wilson
38442d4948 Back out the solid-pattern-cache from 9b53bc7c65.
Unfortunately one cannot cache live patterns and return a fresh reference
instead of creating new ones as patterns can be modified by the user and
so cannot be transparently shared between different users. However,
solid colour allocation is still a frequent operation, so we maintain a
small cache of recently freed patterns to reduce the malloc pressure.
2007-03-26 20:57:53 +01:00
Brian Ewins
c8e37af4b0 [quartz] fix order of fields in matrix conversion
There was a typo flipping the xy and yx fields when a 
cairo matrix was converted to a quartz matrix.
2007-03-25 23:31:40 +01:00
Brian Ewins
d2cdd5eba8 [atsui] fix scaling of glyph surfaces (#9568)
Atsui glyph surface were clipped incorrectly when the text is scaled,
visible in the text-pattern test.
2007-03-24 13:25:03 +00:00