Commit graph

47 commits

Author SHA1 Message Date
Brian Ewins
12feb1f986 [quartz] apply ctm to text (#9568)
Applies the ctm to text output on the quartz surface. This corrects
the text-pattern test, and also corrects the size of text when the
ctm includes a scale.
2007-03-19 18:22:44 +00:00
Behdad Esfahbod
74e6a24e98 [Quartz] Don't include cairo-private.h 2007-03-13 05:14:19 -04:00
Brian Ewins
9032bf4e2d [quartz] rename remaining nquartz symbols to quartz.
Renaming any nquartz symbols and files left to quartz.
2007-03-06 23:24:33 +00:00
Brian Ewins
e15bb8efe6 [quartz] remove unnecessary flushes
Removing calls to CGContextFlush; these were slowing down the
mac and on other platforms it is up to the client to flush
the surface.
2007-03-06 00:40:56 +00:00
Brian Ewins
a724f816e1 [quartz,atsui] separate the quartz surface and atsui font backend
Make it possible to use the --enable-quartz and --enable-atsui
independently. Quartz on its own will use the ft font backend.
2007-03-05 23:19:24 +00:00
Behdad Esfahbod
83fcce0e93 [quartz] Make utility functions static 2007-03-05 17:56:57 -05:00
Vladimir Vukicevic
ab1887f4b0 [quartz] Bug 3939 - Fix Quartz backend endianness problem
Add kCGBitmapByteOrder32Host to CGImageCreate call in release_dest_image
of Quartz surface.
2007-03-02 13:46:31 -08:00
Carl Worth
712447856d Fix yet another backend (quartz) for the gradient renaming
So it looks like it took us three commits before we finally got
all of the users of inner/outer switched to c1/c2. Hopefully
someday we'll have the compiler passing over all of cairo's
source code even if the backends aren't available to be run
on a particular system.
2007-03-02 03:15:35 -08:00
Behdad Esfahbod
d64b194a45 [quartz] Remove comment syntax that is recognized by gtkdoc from regular comments 2007-02-27 20:03:26 -05:00
Vladimir Vukicevic
363b1a40b5 [quartz] Remove (disabled) support for rendering via AGL/CGGL 2007-02-20 16:18:27 -08:00
Vladimir Vukicevic
e4a1410514 [quartz] Rename public function parameter from surf -> surface 2007-02-20 16:16:18 -08:00
Vladimir Vukicevic
be451cd83d [quartz] rename NQUARTZ -> QUARTZ in defines 2007-02-20 12:54:03 -08:00
Vladimir Vukicevic
4c201723ce [quartz] Rename nquartz to quartz 2007-02-20 12:15:35 -08:00
Carl Worth
746f66c3fc Fix bogus cairo_rectangle_fixed_t to be cairo_rectangle_int16_t.
This rectangle has regular integer values, not fixed-point values.
So the old name was horribly wrong and misleading, (and yes I think
it was even I that had suggested it).
2006-06-06 16:54:03 -07:00
Carl Worth
ef10a0403a Remove initial, final, and duplicate blank lines.
This patch was produced by running git-stripspace on all *.[ch] files
within cairo. Note that this script would have also created all the changes
from the previous commits to remove trailing whitespace.
2006-06-06 15:50:33 -07:00
Carl Worth
5278de0997 Remove all remaining trailing whitespace.
This patch was produced with the following (GNU) sed script:

	sed -i -r -e 's/[ \t]+$//'

run on all *.[ch] files within cairo.

Note that the above script would have also created all the changes
from the previous commits to remove trailing whitespace.
2006-06-06 15:41:31 -07:00
Carl Worth
80b8deb1e4 Remove extraneous whitespace from "blank" lines.
This patch was produced with the following (GNU) sed script:

	sed -i -r -e 's/^[ \t]+$//'

run on all *.[ch] files within cairo.
2006-06-06 15:25:49 -07:00
Carl Worth
d0dd3b822e New API: Add new function cairo_surface_get_content
This assumes that the directfb, glitz, and quartz backends
always create surfaces with content of COLOR_ALPHA which might
be totally wrong.
2006-05-24 17:19:00 -07:00
Robert O'Callahan
7bcf957b4e Rename cairo_rectangle_t to cairo_rectangle_fixed_t.
This is in preparation for a later function addition for extracting
clip rectangles from a cairo_t, (which will add a public
cairo_rectangle_t).
2006-05-04 03:43:34 -07:00
Anders Carlsson
1e5f5aed07 Make the API more like Vlad's new API.# 2006-04-11 01:07:33 +02:00
Anders Carlsson
3ed576522d Remove unused function 2006-04-10 22:29:51 +02:00
Anders Carlsson
8ba59b0336 Rework the quartz backend to not always hold an image but instead to create it on demand.# 2006-04-10 22:24:02 +02:00
Anders Carlsson
bfd467453c * Fix build
* Add shortcut to cairo-atsui-font.c for the common case.
2006-04-07 17:40:30 +02:00
Christian Biesinger
dba214b944 Use C-style comments rather than C++-style 2006-02-26 11:13:42 +01:00
Anders Carlsson
ae807fc936 Add cairo-quartz-private.h
If the destination surface is a quartz surface, get the clip mask from it.
Added.
Keep a copy of the clip mask around.
(_cairo_surface_is_quartz): New function which determines if a given surface is a quartz surface.
2006-01-10 05:28:59 +00:00
Anders Carlsson
a16d93f367 If the surface is flipped, flip the CG coordinate system before drawing the images.
(cairo_quartz_surface_create):
Add "flipped" argument to cairo_quartz_surface_create.
2005-11-14 12:57:31 +00:00
Carl Worth
719334c52c Rename surface->backend->show_glyphs to surface->backend->old_show_glyphs.
Move show_glyphs fallback from gstate to surface where it belongs.
Reviewed by: keithp
2005-11-01 16:40:37 +00:00
Carl Worth
ff9654e677 Fix to not leak surface->cgImage on out-of-memory (thanks to Josh Aas <joshmoz@gmail.com>). 2005-08-18 14:34:10 +00:00
Billy Biggs
b4ae3371b3 Cast away the const on the nil surface to avoid a compiler warning. 2005-07-31 11:03:35 +00:00
Tor Lillqvist
ef4209a8a1 src/cairo-quartz-surface.c (_cairo_quartz_surface_acquire_dest_image): Minor updates to keep quartz backend limping along. 2005-07-29 15:31:48 +00:00
Owen Taylor
02c6aec91d 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-28 09:54:03 +00:00
Carl Worth
5d7c796c18 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
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.
Just return &_cairo_surface|pattern|path_nil rather than _cairo_surface|pattern|path_create_in_error.
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.
Remove unnecessary check for gstate == NULL;
Fix old check for image == NULL instead of image->base.status.
Add missing check of surface->image_base.status after creating surface->image.
Add missing check of surface->base.status after creating surface.
2005-07-28 09:46:38 +00:00
Carl Worth
2b5d9c8e00 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
Implementation of new error handling scheme for cairo_surface_t and cairo_scaled_font_t.
Track change in return value of cairo_surface_finish.
2005-07-27 15:39:34 +00:00
Carl Worth
0e40baa9a7 Fix the quartz backend so that it at least compiles again. This change is slipped in before 0.5.2 was pushed out and tagged. 2005-07-18 09:23:33 +00:00
Carl Worth
9a2ba48b29 Give enum tags an underscore prefix to match the style of the struct tags. Add new cairo_content_t and change cairo_surface_create_similar to accept a cairo_content_t rather than a cairo_format_t.
Change surface backend create_similar call to accept a cairo_content_t rather than a cairo_format_t.
Fix all calls into create_similar to pass a cairo_content_t rather than a cairo_format_t.
2005-07-08 10:12:28 +00:00
Kristian Høgsberg
476fe9a66e Implement path clipping and refactor _cairo_gstate_clip() out in three different functions corresponding to the three different clipping modes.
Add NULL pointers for intersect_clip_path.
New test case to exercise PDF clipping code.
2005-06-14 19:45:22 +00:00
Carl Worth
663e39a63c Remove Boolean 'drawable' parameter from the create_similar surface backend function since nothing anywhere is actually using this parameter. 2005-06-14 15:38:15 +00:00
Tor Lillqvist
3be31fee9a Revive quartz backend. 2005-05-11 15:39:26 +00:00
Carl Worth
d6fc5ee5e9 Remove cairo_set_target_surface and all other backend-specific cairo_set_target functions. Require a cairo_surface_t* to call cairo_create.
Port to use new cairo_create interface.
Rewrite all tests that were using cairo_set_target_surface to instead create a temporary cairo_t, (eventually to be replaced with cairo_begin_group).
2005-05-06 13:23:41 +00:00
Carl Worth
9c10b54e5e Add new cairo_paint function.
Add new get_extents function to the surface backend interface.
Add function to query current clip_extents.
Implement the new get_extents function for each backend.
Save the clip extents from set_clip_region and implement _cairo_surface_get_clip_extents.
Abstract away the evil XGetGeometry roundtrip in _cairo_xlib_surface_get_size.
Rewrite a couple of tests to call cairo_paint.
2005-04-19 16:29:04 +00:00
Carl Worth
9bef5b6f14 Change to allow NULL backend function pointers to indicate unsupported functions.
Eliminate stub functions and replace with NULL in surface backend table.
2005-04-07 14:25:00 +00:00
Carl Worth
027057bf62 Drop cairo_default_matrix since it is now always identical to cairo_identity_matrix.
Remove gstate->pixels_per inch. Change default matrix to always be the identity matrix.
Drop pixels_per_inch function from surface backend interface as it is no longer needed.
2005-04-04 06:49:19 +00:00
Tor Lillqvist
78b022b1d1 Update quartz backend to compilable/workable version and re-enable. 2005-03-29 11:24:10 +00:00
Owen Taylor
2ad590a0ee doc fix - 90 degrees is MI_PI/2 radians.
src/cairo.c src/cairo_matrix.c src/cairo_ft_font.c src/cairo_ps_surface.c src/cairo_quartz_surface.c src/cairo_win32_font.c src/cairo_win32_surface.c src/cairo_xlib_surface.c: Cairo is only capitalized at the beginning of sentences.
2005-03-17 13:27:26 +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
Marco Pesenti Gritti
0e2e28c717 Add native Mac OS X support. 2005-01-16 08:35:14 +00:00