Commit graph

8269 commits

Author SHA1 Message Date
Owen Taylor
608a52ff93 Update composite-over-white code to use a pattern, not a surface. (to match _cairo_surface_composite API change.) 2005-01-30 11:37:48 +00:00
Owen Taylor
dca785faaf Fixes from David Reveman:
Don't save to surface part of the union when the pattern isn't a surface pattern. (_cairo_pattern_get_surface): Create the new surface at the width and height of the source.
Add cairo-ft-private.h
2005-01-30 11:28:14 +00:00
Kristian Høgsberg
a24f2f909e Update prototype to eliminate warning.
Remember to reference surfaces when copying patterns.
Don't call _gstate_create_pattern for internally created patterns. (_cairo_gstate_show_surface): Don't change the surface matrix here, it's done later when we set it up as a pattern.
Correct clip_twice-ref.png filename.
Add these.
Fix broken intersection code.
2005-01-28 12:27:23 +00:00
Kristian Høgsberg
4c329eecb9 Make sure we always return a surface similar to dst in the gradient case. 2005-01-27 21:14:04 +00:00
Kristian Høgsberg
79c8b29c3b Fold _cairo_pattern_get_image into _cairo_pattern_get_surface and make sure we always return a surface of the same type as dest.
Use _cairo_pattern_get_surface instead of _cairo_pattern_get_image.
Remove use of _cairo_xlib_surface_clone_similar since _cairo_pattern_get_surface always gives us an xlib surface for the pattern. Clean up error handling code in _cairo_xlib_surface_show_glyphs.
Add missing cairo_surface_destroy and tidy up offset calculations as suggested by Owen.
Simplify code for computing the extents of clipping area, by introducing a couple of cairo_rectangle_t functions.
2005-01-27 19:57:31 +00:00
Kristian Høgsberg
8e90ae2f65 Simplify code for computing the extents of clipping area, by introducing a couple of cairo_rectangle_t functions. 2005-01-27 17:21:13 +00:00
Owen Taylor
e0de000336 src/cairo.[ch] src/cairo_font.c src/cairo_ft_font.c src/cairo_ps_surface.c src/cairo_xlib_surface.c: Move docs from docs/reference, with a fair bit of addition and rewriting.
Remove old-format docs.
Add a AC_PREREQ(2.54) (Jason Dorje Short)
2005-01-27 15:46:16 +00:00
Owen Taylor
0f5b7d82de configure.in Makefile.am docs/Makefile.am docs/public/*: Add framework for doing docs via gtk-doc.
src/cairo.[ch] src/cairo-matrix.c: Add some inline docs for arcs and matrices.
gtk-doc.m4 acinclude.m4: Check in files from gtk-doc to make the dependency on gtk-doc optional.
Add --enable-gtk-doc to the default args.
2005-01-27 11:35:25 +00:00
Kristian Høgsberg
17ec6f1482 The overall idea of this rewrite is that we want to pass the source pattern all the way down into the backends. The motivation for this is that not all backends want a surface for the source operand, and by passing the pattern down, backends can choose to convert it to a surface if they need that.
The patch removes the create_surface function pointer from the surface vtable and moves much of that code into a couple of helper functions. The composite, compsite_trapezoids, and show_glyphs backend functions are updated to take a cairo_pattern_t instead of a surface as the source.
Change these functions to not create a surface for the pattern and just pass the pattern down to the backend functions.
New function to translate a set of trapezoids.
Break out the code to adjust and restore surface transformation and repeat settings into _cairo_pattern_prepare_surface and _cairo_pattern_restore_surface.
Split cairo_pattern_create_for_surface into an init function and a create function.
Utility functions to create a surface from a pattern.
Update these backends to work with the new pattern API. Glitz work by David Reveman.
Update these to pass through the new set of args.
Update this reference image as we now render it correctly.
2005-01-27 10:46:20 +00:00
Alexander Larsson
dfee909d51 Fix access to uninitialized data
key must be first element in cache entry
2005-01-26 06:49:16 +00:00
David Reveman
e5e0880d67 Update mail address 2005-01-25 12:25:29 +00:00
David Reveman
b35c7a3ee5 Track changes to glitz 2005-01-25 12:21:32 +00:00
David Reveman
71f65cbad2 Add missing include directive so xcb backend compile again 2005-01-25 12:11:02 +00:00
Carl Worth
b321202d18 Fixed rounding of glyph positioning. 2005-01-25 11:48:59 +00:00
Owen Taylor
a812c7a066 Chec pdf_font for NULL, not font. 2005-01-25 10:56:50 +00:00
Alexander Larsson
55a8b62ec4 Fix typo that made cairo-ft.h not get installed 2005-01-25 06:50:33 +00:00
Carl Worth
e2afdd1458 Conditionally install header files only for backends that are compiled. Thanks to Shawn T. Amundson <amundson@gtk.org>. 2005-01-24 09:10:51 +00:00
Carl Worth
31f05254ff Qualify color argument as const. Closes bug #2336. 2005-01-24 09:01:52 +00:00
Dave Beckett
c58f6a4bcf Protect switch on hintstyle with #ifdef FC_HINT_STYLE. 2005-01-23 15:16:57 +00:00
Carl Worth
7114a77ce1 Add instructions for handling the new -head suffix of CAIRO_VERSION at release-time.
Append -head to CAIRO_VERSION to indicate state between snapshots.
2005-01-23 12:49:56 +00:00
Owen Taylor
7275be538b Call _cairo_gstate_ensure_font(). Don't reference the returned font. 2005-01-21 15:43:55 +00:00
Owen Taylor
e613961f94 Make dependence on FC_HINT_STYLE conditional. (reported by Abraham Egnor)
Use FT_LOAD_MONOCHROME if FT_LOAD_TARGET_MONO isn't defined for compatibility with older FreeType.
2005-01-21 15:31:15 +00:00
Owen Taylor
97424a3c2a Change cairo_font_t to refer to a font scaled to a particular output device resolution.
src/cairoint.h src/cairo_font.c src/cairo_ft_font.c src/cairo_xlib_surface.c src/cairo_pdf_surface.c src/cairo_gstate.c src/cairo.c: Switch many internal methods from handling cairo_unscaled_font_t and cairo_font_scale_t pairs to handling cairo_font_t.
src/cairo-ft-private.h src/cairo_ft_fontc: Add some internal interfaces for use by the FreeType backend.
Clear the gstate's current font when the transform or target surface changes.
src/cairo.h src/cairo_ft_font.c: Rename cairo_ft_font_pattern to cairo_ft_font_get_pattern().
src/cairo.h src/cairo_ft_font.c: Make cairo_ft_font_create() and cairo_ft_font_create_for_ft_face() take a font scale; make the latter take load_flags for FT_Load_Glyph() as well. Change cairo_ft_font_face() to Xft-style cairo_ft_font_lock_face, cairo_ft_font_unlock_face.
Remove the name/slant/weight=>unscaled font cache, it didn't work with the new cairo_font_t setup. If it turns out to be needed, it can be added back in some other form.
src/cairoint.h src/cairo_font.c: Add a 'flags' field to cairo_glyph_cache_key_t, we use it for load flags with freetype backend.
Switch the caching to be from resolved fontconfig pattern => file; keep only a fixed number of FT_Face objects open at once, similar to FreeType.
src/cairo_gstate.c src/cairoint.h: Add public cairo_font_glyph_extents, use it to implement _cairo_gstate_glyph_extents().
Add refcounting for glyph cache elements; there was an bug where elements got ejected from the cache and freed before they could be used.
src/cairoint.h src/cairo_cache.c (_cairo_cache_random_entry()) New function to return a random entry in the cache matching a predicate; reuse the internals for the previous _random_live_entry().
src/cairoint.h src/cairo_cache.c (_cairo_cache_lookup()): Add an optional created_entry return value.
src/cairo_ft_font.c src/cairo_xlib_surface.c: Adapt to _cairo_cache_lookup() change.
Support max_memory == 0 to indicate an unbounded cache.
src/cairoint.h src/cairo_cache.c (_cairo_cache_remove()): Add a function to manually remove entries from the cache.
Update for changes, document cairo_matrix_t, cairo_glyph_t, etc.
src/cairo.h src/cairo-atsui.h src/cairo-ft.h src/cairo-glitz.h src/cairo-pdf.h src/cairo-png.h src/cairo-ps.h src/cairo-quartz.h src/cairo-xcb.h src/cairo-xlib.h: Add CAIRO_BEGIN/END_DECLS for extern "C", use it on all public headers. Move header guards outermost.
Fix encoding.
2005-01-21 14:33:47 +00:00
Carl Worth
0ad3789985 Created new public header cairo-atsui.h.
Build fixes for Quartz backend courtesy of Geoff Norton <gnorton@customerdna.com>:
Fix check for atsui font backend.
Add conditional compilation for cairo_atsui_font.c and cairo_ft_font.c.
Add missing include of cairo-quartz.h.
Add include of Carbon/Carbon.h.
Advertise availability of Quartz surface.
Install cairo-quartz.h, and conditionally compile cairo_quartz_surface.c.
Add autofoo checks to detect quartz backend.
2005-01-20 20:36:25 +00:00
Carl Worth
b646ecfe08 Track various renamings.
Insert new includes for backend-specific header files.
Remove redundant include of cairo-features.h.
Rename header-exclusion macro from _CAIRO_H_ to CAIRO_H. 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).
Remove deprecated
Remove printf.
Convert to utf-8. Use the proper name for multiple-header exclusion (CAIRO_FEATURES_H). Track rename of FREETYPE_FONT_FEATURE to FT_FONT_FEATURE.
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.
Rename CAIRO_HAS_FREETYPE_FONT to CAIRO_HAS_FT_FONT, (to match cairo_ft_font functions and cairo-ft.h).
Update for public header files now in /cairo.
2005-01-20 08:28:54 +00:00
Carl Worth
68d5ba661d 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. 2005-01-19 12:12:42 +00:00
Carl Worth
429c1f42b5 Fix int* vs. size_t* confusion, (currently in favor of int* but only because that's easier to implement). Thanks to John Ellson <ellson@research.att.com>. Closes bug #2328. 2005-01-19 11:39:06 +00:00
Kristian Høgsberg
6fb833a84c Add byteswap macros missing for bigendian architectures. 2005-01-19 08:03:53 +00:00
Carl Worth
27532eda85 Remove const qualifiers from the header file as well. 2005-01-19 07:11:14 +00:00
Carl Worth
8605b6ae5a Remove useless const qualifier from functions returning simple values, (quiets the warning in gcc4). Thanks to John Ellson <ellson@research.att.com>. Closes bug #2299. 2005-01-19 07:07:00 +00:00
Kristian Høgsberg
e1eec5cf0e 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 14:59:49 +00:00
Kristian Høgsberg
2c6939b7ac Add preliminary text support, including support for truetype font subsetting.
Change type of 'surface' argument in show_glyphs to void * as it is for all other surface virtual functions.
Update accordingly.
Add check for endianess.
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 09:40:00 +00:00
Kristian Høgsberg
be7b745a43 Take image_rotate-ref.png out of EXTRA_DIST until we can actually render it correctly. (XFAIL_TESTS): Update with new known bugs.
Add font backend selection options.
2005-01-17 09:18:37 +00:00
Marco Pesenti Gritti
0e2e28c717 Add native Mac OS X support. 2005-01-16 08:35:14 +00:00
John Ellson
4358135bc9 Was using the wrong extents variable.
reviewed by: Keith Packard <keithp@keithp.com>
2005-01-15 10:53:13 +00:00
David Reveman
3ae8c1ca65 Replace struct cairo_surface_backend with cairo_surface_backend_t 2005-01-13 14:48:15 +00:00
Carl Worth
a2af89b04a 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-13 06:50:23 +00:00
Carl Worth
5235dbb80f A NULL cairo_t * is not sane.
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).
Add several items culled from recent mailing list discussions.
Add bugs on cache locking and surface pattern scaling.
2005-01-12 14:40:14 +00:00
Keith Packard
72832b9760 Scale factors shouldn't include mirroring.
int32x32_64_mul and int64x64_128_mul are different from their unsigned compatriots
2005-01-11 14:52:16 +00:00
Øyvind Kolås
18680d494b renamed CAIRO_COLOR_DEFAULT to CAIRO_COLOR_WHITE 2005-01-11 13:50:13 +00:00
Øyvind Kolås
c7e80e6bff reverted accidental change 2005-01-11 13:36:41 +00:00
Øyvind Kolås
7dd4d7aad4 changed default paint color to opaque black 2005-01-11 13:28:50 +00:00
Keith Packard
ad2225c6f4 Fix math library detection to use autotools helper
Remove cache memory usage assertions as single objects can be larger than the cache size
Decompose font matrix transformations into a couple of helper routines. Return all metrics in font space.
Eliminate compiler warning
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.
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.
Change license to LGPL Mark int32x32_64_mul as broken (which it still is)
Ensure each glyph is located as close to the specified position as possible
interface change to _cairo_matrix_compute_scale_factors
2005-01-11 10:03:01 +00:00
Kristian Høgsberg
a850136805 Add -lz to CAIRO_LIBS when compiling the PDF backend.
Don't use compressBound, since it's only available in zlib 1.2 and newer.
2005-01-06 23:20:07 +00:00
Kristian Høgsberg
c9f545672a Implement image compression (taken from cairo_ps_surface.c). 2005-01-05 17:46:31 +00:00
Kristian Høgsberg
b1ec8ae13e New PDF backend.
Add PDF surface constructors.
New file - generic array implementation.
Add cairo_array prototypes.
Add cairo_array.c and cairo_pdf_surface.c.
2005-01-05 14:29:31 +00:00
Carl Worth
7a5a3cb208 Remove unused CAIRO_TRAPS_GROWTH_INC.
Resize arrays by doubling rather than by linear increments.
Add new bug exposed centi_unfinished.svg.
2004-12-23 13:49:56 +00:00
Carl Worth
e5d48545e0 Rename __internal_linkage to cairo_private and move it to the beginning of the line for function declarations. Also, drop unneeded "extern" from function declarations. 2004-12-21 13:22:44 +00:00
Carl Worth
1a21b8289f With thanks to Kristian Høgsberg <krh@bitplanet.net>:
Tag a few private functions/data that were missing __internal_linkage.
Mark cache backends as static.
2004-12-21 13:14:45 +00:00
Alexander Larsson
153bf60b3a Fix bug in earlier change. 2004-12-20 12:22:50 +00:00