Commit 73c2eada authored by Carl Worth's avatar Carl Worth
Browse files

Remove pixman from SNAPSHOT_0_6_0

parents 01dd527e b9861b3e
2005-07-28 Carl Worth <cworth@cworth.org>
* NEWS: Added notes for snapshot 0.6.0
* configure.in: Increment CAIRO_VERSION to 0.6.0
2005-07-28 Carl Worth <cworth@cworth.org>
* src/cairo-ft-font.c: (_move_to), (_line_to), (_conic_to),
(_cubic_to): Remove const qualifiers that only make things happy
with a from-cvs version of freetype. Now we should be back to
being happy with a released version.
2005-07-28 Carl Worth <cworth@cworth.org>
* src/cairo-png.c (read_png): Add missing cast.
2005-07-28 Carl Worth <cworth@cworth.org>
* test/Makefile.am (EXTRA_DIST): Remove
text-antialias-subpixel-ref.png from the list since it doesn't
exist yet.
2005-07-28 Carl Worth <cworth@cworth.org>
* doc/public/tmpl/cairo.sgml: More doc/public/tmpl churn.
2005-07-28 Carl Worth <cworth@cworth.org>
* test/Makefile.am (EXTRA_DIST): Add
text-antialias-{gray|none|subpixel}-ref.png so they get
distributed.
2005-07-28 Dave Beckett <Dave.Beckett@bristol.ac.uk>
* test/cairo-test.c (cairo_test_create_surface_from_png): Use
cairo_surface_status(image) instead of testing for NULL from
cairo_image_surface_create_from_png to enable testing when srcdir
!= builddir again.
2005-07-28 Carl Worth <cworth@cworth.org>
* ROADMAP: Note that consistent error handling is done now.
2005-07-28 Carl Worth <cworth@cworth.org>
* src/cairo-image-surface.c: (cairo_image_surface_get_width),
(cairo_image_surface_get_height): Fix to call _cairo_error and
return 0 on surface-type mismatch.
2005-07-28 Owen Taylor <otaylor@redhat.com>
* configure.in Makefile.am: Skip tests/ directory if
libpng was disabled. (#3423, reported by Steve Chaplin)
2005-07-28 Carl Worth <cworth@cworth.org>
* src/cairo-png.c: (read_png),
(cairo_image_surface_create_from_png): Fix so that one of three
different error status values will be returned:
CAIRO_STATUS_NO_MEMORY
CAIRO_STATUS_FILE_NOT_FOUND
CAIRO_STATUS_READ_ERROR
* src/cairo.h:
* src/cairo.c: (cairo_status_to_string): Add new
CAIRO_STATUS_FILE_NOT_FOUND.
* src/cairoint.h:
* src/cairo-surface.c: Add new _cairo_surface_nil_read_error and
_cairo_surface_nil_file_not_found.
* test/create-from-png.c: (draw): Test the new FILE_NOT_FOUND
error.
2005-07-28 Stuart Parmenter <pavlov@pavlov.net>
* src/cairo-win32-font.c
* src/cairo-win32-surface.c
Use surface->base.status instead of just surface on
cairo_win32_surface_t *s
2005-07-28 Owen Taylor <otaylor@redhat.com>
* configure.in: Disable PS surface build if no freetype.
2005-07-28 Owen Taylor <otaylor@redhat.com>
* src/cairo-win32-font.c (_draw_glyphs_on_surface): Pass
-1 not 1 to RestoreDC to restore to the last SaveDC.
(#3905, Stuart Parmenter)
2005-07-16 Owen Taylor <otaylor@redhat.com>
Patch from Martin Kretzschmar <martink@gnome.org>, #3798
* src/cairo-xlib-surface.c (_get_image_surface): prevent
sign-extension of masks.*_mask on 64bit architectures.
* src/cairo-xcb-surface.c (_get_image_surface): ditto.
2005-07-28 Owen Taylor <otaylor@redhat.com>
* src/cairo-image-surface.c (_cairo_image_surface_acquire_source,dest_image)
src/cairo-quartz-surface.c (_cairo_quartz_surface_acquire_dest_image)
src/cairo-xcb-surface.c (_cairo_xcb_surface_acquire_source,dest_image):
src/cairo-xlib-surface.c (_cairo_xlib_surface_acquire_source,dest_image):
Set image_extra to NULL to avoid purify warnings. (#3777, Stuart Parmenter)
2005-07-27 Carl Worth <cworth@cworth.org>
* src/cairoint.h:
* src/cairo-path-data-private.h:
* src/cairo-path-data.c:
* src/cairo-pattern.c:
* src/cairo-surface.c:
Remove all create_in_error functions as they were just muddling up
the memory management semantics:
_cairo_path_data_create_in_error
_cairo_pattern_create_in_error
_cairo_surface_create_in_error
* src/cairo-gstate.c: (_cairo_gstate_mask),
(_composite_traps_intermediate_surface),
(_cairo_gstate_intersect_clip_mask), (_cairo_gstate_show_glyphs):
Don't bother with extra check of other->status to anticipate and
try to prevent cairo_surface_create_similar from returning through
cairo_surface_create_in_error.
* src/cairo-glitz-surface.c: (cairo_glitz_surface_create):
* src/cairo-image-surface.c: (cairo_image_surface_create),
(cairo_image_surface_create_for_data):
* src/cairo-png.c: (cairo_image_surface_create_from_png):
* src/cairo-surface.c: (_cairo_surface_create_similar_scratch),
(cairo_surface_create_similar),
(_cairo_surface_create_similar_solid):
* src/cairo-win32-surface.c: (_cairo_win32_surface_create_for_dc):
* src/cairo-xlib-surface.c: (cairo_xlib_surface_create):
* src/cairo.c: (cairo_get_source), (cairo_get_font_face):
(cairo_get_target), (cairo_copy_path), (cairo_copy_path_flat):
Just return &_cairo_surface|pattern|path_nil rather than
_cairo_surface|pattern|path_create_in_error.
* src/cairo-ft-font.c:
* src/cairo-glitz-surface.c:
* src/cairo-gstate.c:
* src/cairo-pattern.c:
* src/cairo-ps-surface.c:
* src/cairo-win32-font.c:
* src/cairo-win32-surface.c:
* src/cairo-xcb-surface.c:
* src/cairo-xlib-surface.c:
After checking surface->status from a cairo_<foo>_surface_create
function, just return CAIRO_STATUS_NO_MEMORY since that's the only
error we'll get from one of these create functions.
* src/cairo-gstate.c: (_cairo_gstate_get_target):
Remove unnecessary check for gstate == NULL;
* src/cairo-pattern.c:
(_cairo_pattern_acquire_surface_for_gradient): Fix old check for
image == NULL instead of image->base.status.
* src/cairo-quartz-surface.c:
(_cairo_quartz_surface_acquire_source_image):
Add missing check of surface->image_base.status after creating
surface->image.
* src/cairo-xcb-surface.c: (_cairo_xcb_surface_create_similar):
* src/cairo-xlib-surface.c: (_cairo_xlib_surface_create_similar):
Add missing check of surface->base.status after creating surface.
2005-07-27 Owen Taylor <otaylor@redhat.com>
* src/cairo-font.c src/cairoint.h: Define _cairo_font_face_nil.
(cairo_font_face_reference, cairo_font_face_destroy
cairo_font_face_set_user_data): Handle a nil font face.
(cairo_font_face_status): New function.
* src/cairo-font.c (_cairo_simple_font_face_create)
src/cairo-ft-font.c (cairo_ft_font_face_create_for_pattern):
src/cairo-ft-font.c (cairo_ft_font_face_create_for_ft_face):
src/cairo-win32-font.c (cairo_win32_font_face_create_for_logfontw):
Return _cairo_font_face_nil on out-of-memory.
* src/cairo-gstate.c (_cairo_gstate_select_font_face)
* src/cairo-gstate.c (_cairo_gstate_ensure_font_face): Check return
of _cairo_simple_font_face_create().
* src/cairo-gstate.c (_cairo_gstate_set_font_face): Error out
if font_face has a status.
* src/cairo-surface.c (cairo_surface_set_user_data): Handle a nil
surface.
2005-07-27 Owen Taylor <otaylor@redhat.com>
* test/Makefile.am (XFAIL_TESTS): Remove
text-antialias-none which is now fixed.
* test/text-antialias-none.c (main): No longer xfail.
2005-07-27 Owen Taylor <otaylor@redhat.com>
* src/cairo-win32-font.c (_win32_scaled_font_create):
* src/cairo-ft-font.c (_ft_scaled_font_create): Go back to
returning NULL.
* src/cairoint.h src/cairo-ft-font.c: Stop exporting
_cairo_scaled_font_nil, since we dont' need it publically
any more.
* src/cairo-surface.c (_cairo_surface_reset_clip): return
surface->status not status. (Fixes warning)
2005-07-26 Carl Worth <cworth@cworth.org>
* src/cairo.h: Add CAIRO_STATUS_INVALID_CONTENT,
CAIRO_STATUS_INVALID_FORMAT, and CAIRO_STATUS_INVALID_VISUAL.
Change functions to return type of void:
cairo_scaled_font_extents
cairo_surface_finish
Add new functions to query object status:
cairo_scaled_font_status
cairo_surface_status
* doc/public/tmpl/cairo.sgml:
* src/cairo-array.c:
* src/cairo-atsui-font.c:
* src/cairo-font.c:
* src/cairo-ft-font.c:
* src/cairo-glitz-surface.c:
* src/cairo-gstate.c:
* src/cairo-image-surface.c:
* src/cairo-meta-surface.c:
* src/cairo-path-data.c:
* src/cairo-pattern.c:
* src/cairo-pdf-surface.c:
* src/cairo-png.c:
* src/cairo-ps-surface.c:
* src/cairo-quartz-surface.c:
* src/cairo-surface.c:
* src/cairo-win32-font.c:
* src/cairo-win32-surface.c:
* src/cairo-xcb-surface.c:
* src/cairo-xlib-surface.c:
* src/cairo.c:
* src/cairoint.h: Implementation of new error handling scheme for
cairo_surface_t and cairo_scaled_font_t.
* test/surface-finish-twice.c: Track change in return value of
cairo_surface_finish.
2005-07-27 Owen Taylor <otaylor@redhat.com>
* src/cairo-xlib-surface.c (_cairo_xlib_surface_get_font_options):
Turn off antialiasing for rendering to alpha surfaces.
2005-07-27 Carl Worth <cworth@cworth.org>
* ROADMAP: Note that the XFAIL tests all need to be fixed before
1.0.
* test/.cvsignore:
* test/Makefile.am:
* test/text-antialias-gray-ref.png:
* test/text-antialias-gray.c: (draw), (main):
* test/text-antialias-none-ref.png:
* test/text-antialias-none.c: (draw), (main):
* test/text-antialias-subpixel.c: (draw), (main): Add three new
tests for testing the various antialiasing options for text
rendering.
2005-07-27 Carl Worth <cworth@cworth.org>
* src/cairo-png.c: (cairo_image_surface_create_from_png_stream):
Fix typo that caused cairo_image_surface_create_from_png_stream to
segfault. Closes bug #3863 (thanks to Steve Chaplin).
* test/.cvsignore:
* test/Makefile.am:
* test/create-from-png-stream-ref.png:
* test/create-from-png-stream.c:
* test/create-from-png.c: Add a test to actually call
cairo_image_surface_create_from_png_stream.
2005-07-27 Owen Taylor <otaylor@redhat.com>
* src/cairo-xlib-surface.c (_xlib_glyphset_cache_create_entry): Deal
with glyphs with entry->im->image NULL. (This can happen if fonts
have size-zero bitmaps for some characters, for example)
(http://bugzilla.gnome.org/show_bug.cgi?id=311709, Sangu Kim)
2005-07-27 Owen Taylor <otaylor@redhat.com>
* src/cairo-ft-font.c (_get_bitmap_surface): FreeType bitmaps may
only be padded out to 8-bit boundaries, not 32-bit boundaries.
(_render_glyph_bitmap): Fix sign error in using glyphslot->bitmap_left.
2005-07-27 David Reveman <davidr@novell.com>
* src/cairo-xlib-surface.c (_cairo_xlib_screen_from_visual): Trivial
fix for typo that caused infinite loop when using non-default visuals.
2005-07-25 Carl Worth <cworth@cworth.org>
* src/cairoint.h:
* src/cairo-font.c:
* src/cairo-ft-font.c:
* src/cairo-glitz-surface.c:
* src/cairo-pdf-surface.c: Replace all occurences of refcount with
ref_count.
* doc/public/language-bindings.xml: Replace refcounted with
reference-counted.
2005-07-25 Owen Taylor <otaylor@redhat.com>
reviewed by: cworth
* src/cairo.[ch] src/cairo-gstate-private.h src/cairo-gstate.c
src/cairoint.c: Add cairo_{get,set}_font_options().
* doc/public/Makefile.am (IGNORE_HFILES): Add cairo-xlib-private.h
* doc/public/cairo-sections.txt: Update
2005-07-24 Owen Taylor <otaylor@redhat.com>
* src/cairo-ft-font.c (_render_glyph_outline): Fix size of allocated buffer
for vertical subpixel rendering. (Reported by Fryderyk Dziarmagowski,
http://bugzilla.gnome.org/show_bug.cgi?id=310935)
(_get_pattern_load_flags): Fix a problem where we were OR'ing multiple
FT_LOAD_* flags together.
* src/cairo-xlib-screen.c (_cairo_xlib_init_screen_font_options): Fix
reversed check for subpixel or not.
2005-07-23 Malcolm Tredinnick <malcolm@commsecure.com.au>
* src/cairo-ft-font.c:
* src/cairo.h: Add some missing parameters for API docs.
2005-07-23 Owen Taylor <otaylor@redhat.com>
* src/cairo-xlib-private.h src/cairo-xlib-screen.c: Switch to using
Screen * not screen number to match surface code.
* src/cairo-xlib-screen.c: Get the screen info for the right screen
for the surface.
2005-07-22 Owen Taylor <otaylor@redhat.com>
* src/cairo-ft-font.c: Protect against division by zero in various places.
(http://bugzilla.gnome.org/show_bug.cgi?id=311299, reported by Ali Akcaagac)
2005-07-22 Owen Taylor <otaylor@redhat.com>
Patch from Tor Lillqvist <tml@novell.com>
* src/cairo-win32-font.c: Define TT_PRIM_CSPLINE if it wasn't in
the headers.
(_get_system_quality): Add missing variable smoothing_type.
2005-07-22 Carl Worth <cworth@cworth.org>
* src/cairoint.h: Get the case right. It's cairo, not Cairo.
2005-07-22 Carl Worth <cworth@cworth.org>
* ROADMAP: Note that sub-pixel text rendering is done now.
2005-07-21 Owen Taylor <otaylor@redhat.com>
* src/cairo-ft-font.c: The FT_LOAD_TARGET_* flags aren't separate
bitfields, but rather an embedded subfield, so test with
FT_LOAD_TARGET_MODE (val->key.flags) == FT_RENDER_LCD, and similar.
2005-07-21 Keith Packard <keithp@keithp.com>
reviewed by: cworth, otaylor
* src/cairo-ft-font.c: (_ft_font_cache_create_entry),
(_ft_unscaled_font_set_scale), (_native_byte_order_lsb),
(_get_bitmap_surface), (_render_glyph_outline),
(_render_glyph_bitmap), (_get_pattern_load_flags),
(_get_options_load_flags):
* src/cairo-xlib-surface.c: (cairo_xlib_surface_set_size),
(_native_byte_order_lsb), (_xlib_glyphset_cache_create_entry),
(_xlib_glyphset_cache_destroy_entry), (_get_glyphset_cache),
(_select_text_mask_format), (_cairo_xlib_surface_show_glyphs32),
(_cairo_xlib_surface_show_glyphs16),
(_cairo_xlib_surface_show_glyphs8):
* src/cairoint.h:
Add ARGB glyph support.
Change Bi-level glyph support to use A1 format.
Support bit/byte swapping of glyph image data in
the Xlib backend.
2005-07-21 Carl Worth <cworth@cworth.org>
* src/cairo-ft.h:
* src/cairo-quartz.h: Whitespace fixes.
2005-07-21 David Reveman <davidr@novell.com>
* src/cairo-glitz-surface.c (_cairo_glitz_area_move_out): Check if
empty area.
2005-07-21 Keith Packard <keithp@keithp.com>
reviewed by: otaylor, cworth
* ROADMAP:
* src/cairo-xlib-surface.c: (cairo_xlib_surface_set_drawable):
* src/cairo-xlib.h:
Add cairo_xlib_surface_set_drawable which changes the
target drawable for an xlib cairo_t to another which
shares the same format, screen and display.
2005-07-21 Carl Worth <cworth@cworth.org>
* ROADMAP: Note that cairo_font_options_t is done now.
2005-07-13 Owen Taylor <otaylor@redhat.com>
reviewed by: cworth
* src/cairo-font-options.c src/cairo.h src/cairoint.h
src/Makefile.am: Add an opaque cairo_font_options_t structure.
* src/cairo-font.c src/cairo.h src/cairoint.h: Add a
cairo_font_options_t object to cairo_scaled_font_create().
* src/cairo-surface.c src/cairoint.h: Add virtualized
cairo_surface_get_font_options() to get the font options for
a surface.
* src/cairo-gstate.c: Adapt to cairo_scaled_font_create() change.
* src/cairo-pdf-surface.c: Add an implementation of
get_font_options() that turns off metrics hinting.
* src/cairo-xlib-screen.c src/cairo-xlib-private.h: Add
a "screen info" structure that holds (for now) information
about the default font options for the screen.
* src/cairo-xlib-surface.c: Implement get_font_options()
* src/cairo-ft-font.c src/cairo-ft.h: Add functions to apply
a cairo_font_options_t to a FcPattern or get the load flags
for a cairo_font_options_t.
* src/cairo-ft-font.c: Adapt to font options additions.
Add support for non-antialiased rendering of scalable fonts.
Add support for turning off metrics hinting.
* src/cairo-win32-font.c: Adapt to font options additions.
* doc/public/Makefile.am doc/public/cairo-sections.txt: Update.
2005-07-21 Carl Worth <cworth@cworth.org>
* src/cairo-glitz-surface.c:
(_cairo_glitz_pattern_release_surface),
(_cairo_glitz_pattern_acquire_surfaces),
(_cairo_glitz_surface_composite),
(_cairo_glitz_surface_composite_trapezoids),
(_cairo_glitz_surface_show_glyphs): Finally grepped through and
fixed up the last remaining calls to
cairo_pattern_release_surface.
2005-07-21 Carl Worth <cworth@cworth.org>
* src/cairo-xcb-surface.c: (_cairo_xcb_surface_composite),
(_cairo_xcb_surface_composite_trapezoids): Fix yet another file
that I missed when I made the cairo_pattern_release_surface
change. You would think that I would have grepped for all uses of
this function by now.
2005-07-21 Carl Worth <cworth@cworth.org>
* ROADMAP: Mark cairo_xlib_surface_create as complete. Move
cairo_xlib_surface_set_drawable from 0.6 to 1.0 since it is an API
addition, not a change.
2005-07-20 Carl Worth <cworth@cworth.org>
reviewed by: keithp
* src/cairo.h (CAIRO_CONTENT_VALID): Fix macro to not consider
CAIRO_FORMAT_ARGB32 (==0) as a valid cairo_content_t.
2005-07-20 Keith Packard <keithp@keithp.com>
reviewed by: otaylor
* src/cairo-xlib-surface.c: (_cairo_xlib_surface_create_similar),
(_cairo_xlib_surface_same_screen),
(_cairo_xlib_surface_clone_similar), (_surfaces_compatible),
(_categorize_composite_operation),
(_cairo_xlib_surface_create_internal),
(_cairo_xlib_screen_from_visual), (cairo_xlib_surface_create),
(cairo_xlib_surface_create_for_bitmap),
(cairo_xlib_surface_create_with_xrender_format):
* src/cairo-xlib-xrender.h:
* src/cairo-xlib.h:
* test/cairo-test.c: (create_xlib_surface):
Add Screen* arguments to:
cairo_xlib_surface_create_with_xrender_format
cairo_xlib_surface_create_for_bitmap
Required to correctly identify when two Xlib surfaces are
compatible with Core and Render rendering requests.
cairo_xlib_surface_create can determine the screen given
the required Visual *
2005-07-20 Carl Worth <cworth@cworth.org>
* ROADMAP: Move all API changes from 1.0 to 0.6. Other 1.0 API
issues are strictly additions.
2005-07-18 Carl Worth <cworth@cworth.org>
* test/.valgrind-suppressions: Add valgrind suppressions for
libpng/libz use of uninitialized data. There are clearly bugs here
that are not cairo's fault as zeroing the buffer before writing
the png image actually causes more errors(!). And, notably,
setting all the data to random bytes usually makes the errors go
away.
* test/Makefile.am: Change the check-valgrind target to include
the .valgrind-suppresions file and to tee output into
valgrind.log.
2005-07-18 Carl Worth <cworth@cworth.org>
* configure.in: Add -head to CAIRO_VERSION after tagging with
SNAPSHOT_0_5_2.
2005-07-18 Carl Worth <cworth@cworth.org>
* src/cairo-quartz-surface.c:
......
SUBDIRS = src test doc
DIST_SUBDIRS = src test doc
SUBDIRS = src doc
# libpng is required for our test programs
if CAIRO_HAS_PNG_FUNCTIONS
SUBDIRS += test
endif
EXTRA_DIST = \
COPYING \
......
Snapshot 0.6.0 (2005-07-28 Carl Worth <cworth@cworth.org>)
==========================================================
API changes
-----------
* The prototypes of the following functions have changed:
cairo_xlib_surface_create_with_xrender_format
cairo_xlib_surface_create_for_bitmap
A Screen* parameter has been added to each. This allows the cairo
xlib backend to work correctly with multi-head X servers.
* The following function has been modified:
cairo_scaled_font_create
to accept a cairo_font_options_t*. See below fore more details.
* All opaque, reference-counted cairo objects have now been moved to a
standard error-handling scheme. The new objects to receive this
treatment are cairo_font_face_t, cairo_scaled_font_t, and
cairo_surface_t. (Previous snapshots already provided this scheme
for cairo_t, cairo_path_t, and cairo_pattern_t.)
This changes two functions to have a return type of void rather than
cairo_status_t:
cairo_scaled_font_extent
cairo_surface_finish
And significantly, none of the create functions for any of the
objects listed above will return NULL. The pointer returned from any
function will now always be a valid pointer and should always be
passed to the corresponding destroy function when finished
The simplest strategy for porting code is to switch from:
object = cairo_<object>_create ();
if (object == NULL)
goto BAILOUT;
/* act on object */
cairo_<object>_destroy (object);
to:
object = cairo_<object>_create ();
if (cairo_<object>_status (object))
goto BAILOUT;
/* act on object */
cairo_<object>_destroy (object);
But significantly, it is not required to check for an error status
before the "act on object" portions of the code above. All
operations on an object with an error status are, by definition,
no-ops without side effect. So new code might be written in an
easier-to-read style of:
object = cairo_<object>_create ();
/* act on object */
cairo_<object>_destroy (object);
with cairo_<object>_status checks placed only at strategic
locations. For example, passing an error object to another object,
(eg. cairo_set_source with an in-error pattern), will propagate the
error to the subsequent object (eg. the cairo_t). This means that
error checking can often be deferred even beyond the destruction of
a temporary object.
API additions
-------------
* New functions for checking the status of objects that have been
switched to the common error-handling scheme:
cairo_font_face_status
cairo_scaled_font_status
cairo_surface_status
* The _cairo_error function which was added in 0.5.1 has now been made
much more useful. In 0.5.1 only errors on cairo_t objects passed
through _cairo_error. Now, an error on any object should pass
through _cairo_error making it much more reliable as a debugging
mechanism for finding when an error first occurs.
* Added new font options support with a myriad of functions:
cairo_font_options_create