Commit 0b5ac24b authored by Carl Worth's avatar Carl Worth
Browse files

Remove pixman and revert tessellation bug from SNAPSHOT_0_3_0

parents db163fcc 90689370
......@@ -7,6 +7,8 @@ Richard Henderson <> "slim" macros for better shared libraries
James Henstridge <> Build fixes related to freetype
Graydon Hoare <> Support for non-render X server, first real text support
Thomas Hunger <> Initial version of cairo_in_stroke/fill
Kristian Høgsberg <> PDF backend
Alexander Larsson <> Profiling and performance fixes.
Jordi Mas <> Bug fix for cairo_show_text
Keith Packard <> Original concept, polygon tessellation, dashing
Christof Petig <> Build fixes related to freetype
cairo_surface_create_for_image is claiming ownership of the user's data.
cairo_font_set_transform should be renamed cairo_font_set_matrix
cairo_font_current_transform should be renamed cairo_font_get_matrix
Alexis Georges reports a segfault on AMD64 with a simple program,
(that works in a 32bit chroot).
The caches need to have some locking (see: [cairo] Static caches and thread-safety)
Scaling of surface patterns is all broken, (try xsvg
gradPatt-pattern-BE-07.svg and zoom in and out).
centi_unfinished.svg has big black portions when drawn with svg2png,
(but not when drawn with xsvg).
The caches need to be invalidated at font destruction time.
cairo_clip is really slow, (with at least the Xlib and image
backends). An accelerated implementation of the IN operator would
probably help a lot here.
......@@ -92,3 +124,15 @@ move_to_show_surface (see cairo/test):
* call to cairo_move_to to any coordinate other than 0,0. A little
* bit of poking around suggests this isn't a regression, (at least
* not since the last pixman snapshot).
cairo falls over with XFree86 4.2 (probably braindead depth handling
The caches abort when asked for a too-large item, (should be possible
to trigger by asking for a giant font, "cairo_scale_font (cr, 2000)"
perhaps). Even if the caches don't want to hold them, we need to be
able to allocate these objects.
......@@ -2,7 +2,7 @@ Cairo is free software.
Every source file in the implementation of cairo is available to be
redistributed and/or modified under the terms of either the GNU Lesser
General Public License (LPGL) version 2.1 or the Mozilla Public
General Public License (LGPL) version 2.1 or the Mozilla Public
License (MPL) version 1.1. Some files are available under more
liberal terms, but we believe that in all cases, each file may be used
under either the LGPL or the MPL.
2005-01-21 Carl Worth <>
* Increment CAIRO_VERSION to 0.3.0
* NEWS: Add notes for snapshot 0.3.0
* test/fill_rule-ref.png:
* test/leaky_polygon-ref.png:
* test/line_width-ref.png: Update reference images for new
rasterization in libpixman 0.1.3.
* (RELEASE_UPLOAD_DIR): Update since directory changed
after server compromise.
2005-01-20 Carl Worth <>
* test/cairo_test.c: Add a bunch of missing include directives,
(now that cairo.h has been cleaned up).
2005-01-20 Carl Worth <>
* src/cairo-atsui.h: Created new public header cairo-atsui.h.
Build fixes for Quartz backend courtesy of
Geoff Norton <>:
* Fix check for atsui font backend.
* src/ Add conditional compilation for
cairo_atsui_font.c and cairo_ft_font.c.
* src/cairo_quartz_surface.c: Add missing include of
* src/cairo-quartz.h: Add include of Carbon/Carbon.h.
* src/ Advertise availability of Quartz
* src/ Install cairo-quartz.h, and conditionally
compile cairo_quartz_surface.c.
* Add autofoo checks to detect quartz
2005-01-20 Carl Worth <>
* src/cairoint.h: Track various renamings.
* src/cairo_xlib_surface.c:
* src/cairo_ps_surface.c:
* src/cairo_png_surface.c:
* src/cairo_pdf_surface.c:
* src/cairo_glitz_surface.c:
* src/cairo_ft_font.c: Insert new includes for backend-specific
header files.
* src/cairo_gdip_surface.cpp:
* src/cairo_gdip_font.cpp: Remove redundant include of
* src/cairo.h (CAIRO_H): Rename header-exclusion macro from
Remove platform-specific grubbing for cairo-features.h and
pixman.h in odd places.
Remove all backend-specific prototypes, (as they are now in their
own header files).
* src/cairo.c (cairo_sane_state): Remove printf.
* src/ Convert to utf-8. Use the proper name
for multiple-header exclusion (CAIRO_FEATURES_H). Track rename of
* src/ (cairoinclude_HEADERS): Split cairo.h up into
cairo.h, cairo-ft.h, cairo-glitz.h, cairo-pdf.h, cairo-png.h,
cairo-ps.h, cairo-xcb.h, cairo-xlib.h.
Update for rename of cairo_wideint.h to cairo-wideint.h.
CAIRO_HAS_FT_FONT, (to match cairo_ft_font functions and
* (Cflags): Update for public header files now in
2005-01-19 Carl Worth <>
* src/cairo_matrix.c (cairo_matrix_get_affine):
* src/cairo_gstate.c (_cairo_gstate_current_point):
* src/cairo_color.c (_cairo_color_get_rgb): Allow NULL values for
return pointers so that the user can easily get partial results
from cairo_matrix_get_affine, cairo_current_point, and
cairo_current_color_rgb as needed.
* src/cairo_ft_font.c (_utf8_to_ucs4): Fix int* vs. size_t*
confusion, (currently in favor of int* but only because that's
easier to implement). Thanks to John Ellson
<>. Closes bug #2328.
2005-01-19 Kristian Høgsberg <>
* src/cairo_pdf_surface.c: Add byteswap macros missing for
bigendian architectures.
2005-01-19 Carl Worth <>
* test/ (XFAIL_TESTS): Remove fill_rule and
leaky_polygon from expected failures list. Both of these bugs have
fixes, (fill_rule is fixed by reverting cairo_traps.c to 1.16, and
leaky_polygon is fixed in a newer libpixman).
* src/cairo_wideint.h: Remove const qualifiers from the header
file as well.
* src/cairo_wideint.c: Remove useless const qualifier from
functions returning simple values, (quiets the warning in
gcc4). Thanks to John Ellson <>. Closes bug
* BUGS: Add bugs on cairo_surface_create_for_image, bad names for
cairo_font_set_transform and cairo_font_current_transform,
segfault on AMD64.
2005-01-17 Kristian Høgsberg <>
* src/cairo_pdf_surface.c (_cairo_pdf_document_get_font): Fix
double free in error path.
(cairo_pdf_ft_font_create): Reference the unscaled font to keep
the FT_Face around.
(cairo_pdf_ft_font_generate): Initialize end to avoid compiler
warning; bail out if table write fails. Fixes from Owen.
2005-01-17 Kristian Høgsberg <>
* src/cairo_pdf_surface.c: Add preliminary text support, including
support for truetype font subsetting.
* src/cairoint.h: Change type of 'surface' argument in show_glyphs
to void * as it is for all other surface virtual functions.
* src/cairo_xlib_surface.c (_cairo_xlib_surface_show_glyphs):
Update accordingly.
* Add check for endianess.
* src/cairo_array.c (_cairo_array_grow_by): Fix bug in array
growing loop.
(_cairo_array_append): Accept NULL for elements argument, in which
case we just allocate space in the array.
2005-01-17 Kristian Høgsberg <>
* test/ (EXTRA_DIST): Take image_rotate-ref.png out of
EXTRA_DIST until we can actually render it correctly.
(XFAIL_TESTS): Update with new known bugs.
* src/
* src/cairo.h:
* src/cairoint.h:
* Add font backend selection options.
2005-01-15 John Ellson <>
reviewed by: Keith Packard <>
* src/cairo_gstate.c: (_cairo_gstate_glyph_extents):
Was using the wrong extents variable.
2005-01-13 David Reveman <>
* src/cairo_xcb_surface.c: Replace struct cairo_surface_backend with
2005-01-13 Carl Worth <>
* test/leaky_polygon.c:
* test/
* test/.cvsignore: Add leaky_polygon test for trapezoid
rasterization corner case.
* src/cairo_xlib_surface.c:
* src/cairo_glitz_surface.c:
* src/cairo_ft_font.c:
* src/cairo_font.c:
* src/cairoint.h:
* src/cairo.h: Replace all structure tags to have _ prefix.
struct cairo_foo -> struct _cairo_foo
Also, prefer cairo_foo_t over struct _cairo_foo in .c files.
2005-01-12 Carl Worth <>
* test/fill_rule.c: Add big_star_path which shows we still have
fill bugs, (even now that little_star_path is working).
* src/cairo.c (cairo_sane_state): A NULL cairo_t * is not sane.
* (Libs,Cflags): Add freetype flags so that things
work with freetype in a non-standard location, (a little extra
work here since freetype doesn't use pkg-config).
* TODO: Add several items culled from recent mailing list
* BUGS: Add bugs on cache locking and surface pattern scaling.
2005-01-11 Keith Packard <>
* src/cairo_matrix.c: (_cairo_matrix_compute_scale_factors):
Scale factors shouldn't include mirroring.
* src/cairo_wideint.c: (_cairo_int32x32_64_mul),
* src/cairo_wideint.h:
int32x32_64_mul and int64x64_128_mul are different from their
unsigned compatriots
2005-01-11 Øyvind Kolås <>
* src/cairo_color.c: renamed CAIRO_COLOR_DEFAULT to CAIRO_COLOR_WHITE,
and made it white again.
2005-01-11 Øyvind Kolås <>
* src/cairo_xlib_surface.c: (_cairo_xlib_surface_composite): removed
accidental addition of debug printf in previous commit.
2005-01-11 Øyvind Kolås <>
* src/cairo_color.c:
* src/cairo_gstate.c: (_cairo_gstate_init):
Changed default paint color from opaque white to opaque black.
2005-01-11 Keith Packard <>
* src/
Fix math library detection to use autotools helper
* src/cairo_cache.c: (_cache_sane_state), (_cairo_cache_lookup):
Remove cache memory usage assertions as single objects can
be larger than the cache size
* src/cairo_ft_font.c: (_cairo_ft_font_compute_transform),
(_cairo_ft_font_install_transform), (_install_font_scale),
(_cairo_ft_font_font_extents), (_cairo_ft_font_glyph_extents),
Decompose font matrix transformations into a couple of
helper routines.
Return all metrics in font space.
* src/cairo_glitz_surface.c: (_glitz_format):
Eliminate compiler warning
* src/cairo_gstate.c: (_cairo_gstate_current_font_extents),
(_cairo_gstate_text_to_glyphs), (_cairo_gstate_glyph_extents):
Expect glyph metrics to be in font space. Compute text extents
by fetching one glyph metric at a time, transforming to user
space and computing the overall bounding box.
* src/cairo_matrix.c: (_cairo_matrix_set_rotate),
use 'sincos' where available.
Scale factors now ensure the non-scale transform is area preserving.
Scale factors requires another parameter to mark the fixed axis.
* src/cairo_wideint.c:
* src/cairo_wideint.h:
Change license to LGPL
Mark int32x32_64_mul as broken (which it still is)
* src/cairo_xlib_surface.c: (_cairo_xlib_surface_show_glyphs32),
Ensure each glyph is located as close to the specified position
as possible
* src/cairoint.h:
interface change to _cairo_matrix_compute_scale_factors
2005-01-07 Kristian Høgsberg <>
* Add -lz to CAIRO_LIBS when compiling the PDF
* src/cairo_pdf_surface.c (emit_image_data): Don't use
compressBound, since it's only available in zlib 1.2 and newer.
2005-01-07 Carl Worth <>
* TODO: Add Owen's new equation to fix clipping:
((src Op dest) In clip) Add (dest Out clip)
2005-01-06 Carl Worth <>
* TODO: Added some TODO items from mailing list traffic.
Added cairo_show_surface_mask and note about clipping problems.
2005-01-05 Kristian Høgsberg <>
* src/cairo_pdf_surface.c: (emit_image_data): Implement image
compression (taken from cairo_ps_surface.c).
* src/cairo_pdf_surface.c: New PDF backend.
* src/cairo.h: Add PDF surface constructors.
* src/cairo_array.c: New file - generic array implementation.
* src/cairoint.h: Add cairo_array prototypes.
* src/ (libcairo_la_SOURCES):
Add cairo_array.c and cairo_pdf_surface.c.
2004-12-23 Carl Worth <>
* src/cairo_traps.c: Remove unused CAIRO_TRAPS_GROWTH_INC.
* src/cairo_spline.c (_cairo_spline_add_point):
* src/cairo_polygon.c (_cairo_polygon_add_edge): Resize arrays by
doubling rather than by linear increments.
* BUGS: Add new bug exposed centi_unfinished.svg.
2004-12-21 Carl Worth <>
* src/cairoint.h:
* src/cairo_wideint.h: Rename __internal_linkage to cairo_private
and move it to the beginning of the line for function
declarations. Also, drop unneeded "extern" from function
2004-12-21 Carl Worth <>
With thanks to Kristian Høgsberg <>:
* src/cairoint.h:
* src/cairo_wideint.h: Tag a few private functions/data that were
missing __internal_linkage.
* src/cairo_xlib_surface.c:
* src/cairo_ft_font.c:
* src/cairo_font.c: Mark cache backends as static.
2004-12-20 Carl Worth <>
* (LANG): Change "head -1" to more standard "head -n
2004-12-20 Alexander Larsson <>
* src/cairo_xlib_surface.c (_cairo_xlib_surface_create_with_size):
Fix bug in earlier change.
2004-12-20 Carl Worth <>
* src/cairoint.h: Re-enabled __internal_linkage for all internal
functions. Now avoid the warning by moving the * from the return
type after the __internal_linkage macro. It looks awaful, but it
keeps the compiler quiet.
2004-12-20 Alexander Larsson <>
* src/cairoint.h:
Add _cairo_gstate_restore_external_state, _cairo_fixed_integer_floor
and _cairo_fixed_integer_ceil.
* src/cairo.c: (cairo_restore):
Call _cairo_gstate_restore_external_state on restore.
* src/cairo_cache.c: (_cache_lookup):
Fix cache-misses.
* src/cairo_fixed.c: (_cairo_fixed_integer_floor),
Implement floor and ceil
* src/cairo_gstate.c:
Restore surface clip region on restroe.
(_cairo_gstate_show_surface), (_cairo_gstate_show_glyphs):
Create intermediate clip surfaces of the minimal required
2004-12-20 Carl Worth <>
* AUTHORS: Add Alexander Larsson to AUTHORS list.
* src/cairo_xlib_surface.c (_cairo_xlib_surface_create_with_size):
Split off from _cairo_xlib_surface_create to avoid roundtrip when
size is already known.
(cairo_xlib_surface_create): Simplified to just call XGetGeometry
that defer to _cairo_xlib_surface_create_with_size. Add comment
about remaining roundtrip and possible plans to eliminate it later
with a new interface requiring width/height.
Thanks to Alexander Larsson <>.
* test/text_cache_crash.c (draw): Disabled test that was killing
my machine for some reason. Scary.
2004-12-20 Carl Worth <>
* src/cairo_image_surface.c
(_cairo_image_abstract_surface_create_pattern): Change return
value from cairo_status_t to cairo_int_status_t to match
definition in cairo_surface_backend_t.
* BUGS: Add bug about gcc 3.4 warning: '__visibility__' attribute
ignored on non-class types.
* src/cairoint.h: Remove __internal_linkage macro from all
functions returning pointers to shut up warning from gcc 3.4.
2004-12-17 Carl Worth <>
* test/cairo_test.c (cairo_test): Fix to find reference images in
local directory when run directly, (rather than by "make check").
* BUGS: Add bug about invalidating font caches.
2004-12-02 David Reveman <>
* src/cairo_gstate.c (_cairo_gstate_clip): Revert the "return early"
change so that rectangular clipping works with backends that
don't support clipping regions.
2004-11-29 Carl Worth <>
* COPYING: Fix typo: LPGL->LGPL.
* src/cairo_ps_surface.c (cairo_ps_surface_create): Remove
unintentional copyright statement from user-generated output
2004-11-23 Carl Worth <>
* test/ (XFAIL_TESTS): Note that text_cache_crash is
expected to fail.
* test/text_cache_crash.c (draw): Add test to demonstrate bug when
item is too big for cache.
* src/cairo_cache.c (_cache_sane_state): Really remove that
refcount assertion this time.
* test/text_cache_crash.c: Add note that bug has been fixed.
(main): Instrumentation code for testing cache destruction.
* test/cairo_test.c (cairo_test): Support tests that produce no
output, (don't check image if (width,height) == (0,0)).
* src/cairoint.h: Add #include <assert.h> here rather than in
multiple .c files.
* src/cairo_cache.c: Add const qualifier to static
cache_arrangements table.
(_cache_sane_state): Remove refcount assertion as it it false
during the cairo_cache_destroy.
(_cache_sane_state): #include <assert.h> moved up to cairoint.h
(_entry_destroy): Fix bug in assertion (used_memory >=
entry->memory), not >.
(_cairo_cache_destroy): Fix timing of refcount decrement so that
the destroy function actually works.
2004-11-14 Carl Worth <>
* src/cairo_gstate.c (_cairo_gstate_select_font): Don't destroy a
NULL font.
2004-11-13 Carl Worth <>
* src/cairo_gstate.c (_cairo_gstate_select_font): Unconditionally
destroy the old font, (otherwise, if the same font was selected
twice in a row, a reference was lost to it, leading to assertion
2004-11-12 Stuart Parmenter <>
* src/cairo_gdip_font.cpp:
* src/cairo_gdip_surface.cpp: Added GDI+ backend to Cairo.
2004-11-12 Carl Worth <>
* src/cairo_font.c (_font_cache_hash, _font_cache_create_entry):
* src/cairo_ft_font.c (_cairo_ft_font_text_to_glyphs): Move
declarations above statements to satisfy pre-C99 compilers. Thanks
to Michael Johnson <>.
2004-11-09 Carl Worth <>
* test/text_rotate.c (NUM_TEXT): Increase size and increase number
of different angles drawn.
(draw): Fix broken usage of extents (missing bearings), add
stroked bounding box (shifted out by 0.5 units to just abut the
text), and increase position adjustments to make room for this
larger box.
(draw): Move x_off, y_off calculation outside of loop to emphasize
2004-11-08 Dave Beckett <>
* require libpixman 0.1.2 since
src/cairo_glitz_surface.c depends on two new functions of 0.1.2 -
pixman_format_get_masks and pixman_image_get_format
2004-11-05 Graydon Hoare <>
* src/cairo_ft_font.c: Change the signs of a variety of
metrics, which were backwards.
* src/cairo_gstate.c (_cairo_gstate_clip): Return early if we
found a rectangular clip at all, not just in error case.
* src/cairo_xlib_surface.c
(_xlib_glyphset_cache_create_entry): Give render glyphset entry the
negative bbox offsets it wants, not the bearings.
2004-11-04 Carl Worth <>
* test/text_cache_crash.c: Add new test demonstrating assertion
failure in cairo_cache_lookup.
* test/text_rotate.c: Add new test showing problems with rotated
2004-11-04 David Reveman <>
* src/cairo_glitz_surface.c (cairo_set_target_glitz):
cairo_glitz_surface_create now takes a reference to the glitz
surface, so it shouldn't be done here anymore.
Removed feature_mask from cairo_glitz_surface_t.
Removed support for CAIRO_OPERATOR_SATURATE.
(cairo_glitz_surface_create): Take a reference to the glitz
surface and no need to get surface features anymore.
Tracking changes to glitz.
* Require version 0.3.0 of glitz.
* src/cairo_gstate.c (_cairo_gstate_clip): Fixed return status.
2004-11-01 Olivier Andrieu <>
* src/cairo.h: remove cairo_ft_font_destroy() prototype.
2004-10-28 Carl Worth <>
* (release-verify-newer): Abort release-publish if
there's already a published tar file with the current version.
(release-publish): Add code to update the LATEST-package-version
2004-10-27 Carl Worth <>
* Increment CAIRO_VERSION to 0.2.0.
......@@ -479,7 +1027,7 @@
* src/cairo.h: replaced ct with cr in public headers to keep
usage consistent.
2004-07-24 Jamey Sharp <>
2004-07-24 Jamey Sharp <>
* src/cairo_xcb_surface.c:
Updating for XCB API change around iterators.
......@@ -2062,7 +2610,7 @@
(_cairo_font_font_extents): These internal functions can never be
called with a NULL font.
2003-10-23 Graydon Hoare <>
2003-10-23 Graydon Hoare <>
* src/cairo_ft_font.c: New file.
* src/ Add cairo_ft_font.c
......@@ -2312,7 +2860,7 @@
* src/ (libcairo_la_SOURCES): Added cairo_fixed.c
2003-09-05 Keith Packard <>
2003-09-05 Keith Packard <>
* src/cairo_path_stroke.c: comment face computations, check for
reflecting transformation to select correct face orientations
......@@ -2368,7 +2916,7 @@
called before cairo_set_target and SEGV if cairo_fill called
before cairo_set_rgb_color)
2003-09-04 Keith Packard <>
2003-09-04 Keith Packard <>
* src/cairo_path_stroke.c: added comments describing miter
join code and miter limit computation. Replace XFoo with cairo_foo
......@@ -14,7 +14,8 @@ pkgconfig_DATA = cairo.pc
# make release-check
# or make release-publish