Commit graph

5312 commits

Author SHA1 Message Date
Carl Worth
6fe93cbf5b Merge branch 'get-type' into cairo 2006-02-28 02:36:45 -08:00
Carl Worth
1dd6e417c1 Add testing for cairo_surface_get_type.
All test targets now list an expected cairo_surface_type_t. Add notes
on current limitations of PDF/PS/meta-surface support that causes
CAIRO_CONTENT_COLOR similar surfaces of PDF and PS surfaces to be
returned as image surfaces.

Add cairo_internal_surface_type_t for the meta, paginated, and various
test surfaces.
2006-02-28 00:55:27 -08:00
Carl Worth
cd84e2ab32 Add documentation for cairo_font_face_get_type,
cairo_scaled_font_get_type, cairo_surface_get_type, and
cairo_pattern_get_type.
2006-02-27 23:15:45 -08:00
Carl Worth
5797f81485 Implement cairo_pattern_get_type 2006-02-27 23:12:43 -08:00
Carl Worth
5ae0b9f912 Implement cairo_surface_get_type 2006-02-27 23:11:32 -08:00
Keith Packard
2984f60a3a Need cairo_analyze_surface_get_extents 2006-02-27 20:09:24 -08:00
Keith Packard
9ca67992a5 Support meta surface patterns 2006-02-27 20:05:57 -08:00
Keith Packard
ad247974eb Release pattern source image when done with it 2006-02-27 19:34:32 -08:00
Keith Packard
59e4a32d55 Primitive ps glyph support. Fix ps strokes to not leave path defined 2006-02-27 19:23:47 -08:00
Keith Packard
06b83b89fc Support image surface patterns 2006-02-27 17:49:53 -08:00
Carl Worth
1769830e6e Implement cairo_scaled_font_get_type 2006-02-27 17:22:45 -08:00
Carl Worth
f2245a7932 Remove unused RCS $Id:$ tags. 2006-02-27 17:07:22 -08:00
Carl Worth
ce683a2402 Drop gratuitous structure with single function pointer. Rename
paginated_set_mode to set_paginated_mode.
2006-02-27 15:12:15 -08:00
Carl Worth
aecb07a26d cairo_analysis_surface: Rename region_[un]supported() to get_[un]supported(). 2006-02-27 14:58:51 -08:00
Carl Worth
2660e79e67 Rename cairo_analyze_surface_t to cairo_analysis_surface_t. 2006-02-27 14:56:41 -08:00
Keith Packard
f9d4482137 rename evaluate surface to analyze surface, pull to separate files 2006-02-27 17:14:57 -05:00
Keith Packard
cb3a445150 Primitive "real" postscript output for stroke/fill/paint 2006-02-27 19:47:14 +01:00
Vladimir Vukicevic
1a14419126 Win32: Handle BitBlt in get_image failure and AlphaBlend not being supported
If the BitBlt in get_image fails, we pretty much can't do anything -- so
fill the destination with white and hope for the best.  This enables
somewhat accurate printing of complex operations.  Also, check the
destination device caps before calling AlphaBlend; return UNSUPPORTED if
the destination DC can't do AlphaBlend.
(cherry picked from 9831de538e347a624af5b0ca38242b198b64bd45 commit)
2006-02-27 13:47:31 +01:00
Vladimir Vukicevic
2d784815ff Win32: Set surface format based on device caps
If the DC is a display DC, inspect its depth and set out local format
appropriately.  If it's not a display DC, assume RGB24.
(cherry picked from 6dd0a70d271f93df95f4bcaff5073b9bf90cecb6 commit)
2006-02-27 13:47:27 +01:00
Vladimir Vukicevic
68ed40b6da Win32: Fix up src coords before calling AlphaBlend/BitBlt to avoid invalid calls
Fixes up src coords and width/height before calling AlphaBlend/BitBlt; it's
an error to try to use a region that extents outside of the source surface
as a source DC.

Doesn't repair the extra region relative to the operator -- e.g. regions
outside of an ARGB source surface with SOURCE operator should be cleared
to fully transparent black in the destination.
(cherry picked from bc19c5b64b0e38e9d20045907d7b47d79f6afc60 commit)
2006-02-27 13:47:20 +01:00
Vladimir Vukicevic
0852cd4492 Win32: rename cairo_surface_create_dib to cairo_surface_create_with_dib
Also adds some documentation for the win32 creation functions.
(cherry picked from 3a148bd620d709237d98a72f65118759bfc5a76d commit)
2006-02-27 12:53:38 +01:00
Vladimir Vukicevic
0fe8a93d95 Win32: expose win32 DIB (image) surface creation function, and DC getter
Adds cairo_win32_surface_create_dib() for creating a win32 DIB-backed
surface with a particular format.  Also exposes
cairo_win32_surface_get_dc() to obtain the DC of a win32 surface.
(cherry picked from 0813a1b9b6f35d786fe8cb0d4748771023956cde commit)
2006-02-27 12:53:36 +01:00
Vladimir Vukicevic
f4b34df6b6 Have mark_dirty always invalidate the last clip set on the surface
mark_dirty will force cairo to set its own clip the next time the cairo clip
is applied after mark_dirty; otherwise we run the risk of cairo's cached
clip and the device clip getting out of sync if any clip-related functions
are used on the native device back-end.
(cherry picked from 1935a28949da8569f924e37714ec19571fa95987 commit)
(cherry picked from ef8b472f0ffab7b8b828d7297c7e454bb22bd5ec commit)
2006-02-27 12:24:09 +01:00
Vladimir Vukicevic
e0f4eecb91 Win32: Rework clip and extents handling
- Save extents at surface creation and always return these
- Simplify clipping paths
(cherry picked from a67722b3d7280e6c2375778c2d46556cca261bfc commit)
(cherry picked from 7ce09732a978749a4da814feb77f50161dc42c91 commit)
2006-02-27 12:23:23 +01:00
Vladimir Vukicevic
f6b4fabaf5 Misc compilation fixes (C++-style comments, M_PI decls, etc.)
(cherry picked from d0cc56b9a24fa59febc15ac5de073da0e785e1cc commit)
(cherry picked from a6a054abe45287eb950c294e20366594313138f5 commit)
2006-02-27 12:22:33 +01:00
Christian Biesinger
dba214b944 Use C-style comments rather than C++-style 2006-02-26 11:13:42 +01:00
Carl Worth
5a3c30eafe Implement cairo_font_face_get_type.
Add font type to font_face_backend.
Also export new CAIRO_FONT_TYPE_TOY.
2006-02-24 15:32:26 -08:00
Carl Worth
5928d03b49 Remove private cairo_pattern_type in favor of new public one. Rename
all values to now include TYPE. Drop _GRADIENT from LINEAR and RADIAL.
2006-02-24 15:25:19 -08:00
Carl Worth
f58f39d7af cairo.h: Fix typo (thanks to Torsten Schoenfeld) 2006-02-24 15:06:50 -08:00
Carl Worth
2fc9fd79e7 cairo.h: Fix two typos in the documentation. 2006-02-24 11:37:50 -08:00
Carl Worth
9287d60d60 Add get_type functions: cairo_surface_get_type,
cairo_pattern_get_type, cairo_font_face_get_type, and
cairo_scaled_font_get_type.
2006-02-24 11:24:03 -08:00
Carl Worth
cb778760cb cairo_close_path: Document that there will be a current point after
cairo_close_path.
2006-02-23 22:07:13 -08:00
Carl Worth
1dc1b57b4e cairo_new_sub_path: Making cairo_arc easier to use and more.
This adds a new function which has as its only effect the elimination
of
the current point. This makes it much easier to use the various
cairo_arc calls when the initial line_to is not actually desired.

This function also unifies and generalizes the long-existing behavior
of cairo_line_to being treated as cairo_move_to when there is no
current point. With the addition of cairo_new_sub_path this becomes a
documented feature with similar behavior in cairo_curve_to as well.
2006-02-23 22:01:07 -08:00
Christian Biesinger
07205ddc4b Mark private functions as cairo_private
(cherry picked from a1c72cd8f244e97d4b6fe3e5d3efa622c8b3f7f9 commit)
2006-02-24 01:38:27 +01:00
Christian Biesinger
0fc25c9853 Don't call _cairo_error when returning an error
Only return it when returning a nil surface.
2006-02-18 21:45:58 +01:00
Christian Biesinger
5c5ea6d523 Fix typo. 2006-02-18 19:36:18 +01:00
Christian Biesinger
f4d9e55962 Use TRUE/FALSE instead of 1/0 for boolean values
(cherry picked from e1703520169e0cf972a6edcaa8660d14806d8c6f commit)
2006-02-16 23:56:16 +01:00
Carl Worth
57edf3f28f Normalize indentation after previous commit. 2006-02-16 09:05:52 -08:00
Carl Worth
0152bd3a56 Allow _get_bitmap_surface to work for 0x0 glyphs, (fix for bug #5734).
Patch from: Behdad Esfahbod <freedesktop@behdad.org>
Reviewed by: Carl Worth <cworth@cworth.org>
2006-02-16 09:02:29 -08:00
Carl Worth
d88c19071f Rename .cvsignore to .gitignore. Add *~ and *.o. 2006-02-15 15:00:26 -08:00
Emmanuel Pacaud
f4270b3dfc convert _cairo_svg_surface_old_show_glyphs to _cairo_svg_surface_show_glyphs. 2006-02-13 14:11:36 +00:00
Emmanuel Pacaud
921dcc16f9 Add mask support and switch to SVG 1.2 for compositing operators.
return xml node instead of cairo status. (emit_composite_svg_pattern): ditto. (emit_composite_pattern): ditto. (emit_operator): use SVG 1.2 operators, since feComposite filter always composite resulting surface to current canvas. (_cairo_svg_surface_composite): removed. (_cairo_svg_surface_fill_rectangles): removed. (intersect): removed. (_cairo_svg_surface_composite_trapezoids): removed. (emit_paint): new. (_cairo_svg_surface_paint): new. (_cairo_svg_surface_mask): new. (_cairo_svg_surface_stroke): emit operator.
2006-02-13 12:41:10 +00:00
Emmanuel Pacaud
be7b6251f3 fix offset of pattern stops. 2006-01-29 13:25:10 +00:00
Behdad Esfahbod
d6ff77c297 Add cairo_scaled_font_text_extents.
New function.
Improve documentation.
2006-01-22 02:33:26 +00:00
Christian Biesinger
2afe78c0c2 Don't mix declarations and code. This makes the code valid ISO C, fixes a gcc -pedantic warning, and unbreaks the build with the compiler Zeta ships with. 2006-01-21 09:39:10 +00:00
Carl Worth
f1fd1cc7a9 Add getter functions for cairo_scaled_font_t. 2006-01-20 15:25:54 +00:00
Carl Worth
13511972b6 Check font_face->status and return a nil scaled font if it is in an error state. (Thanks to Christian Biesinger and sunmoon1997 who pointed this out as part of bug #4674).
With this bug fix, the ft-font-create-for-ft-face test fails (as it should) since it is abusing fontconfig.
2006-01-20 14:48:07 +00:00
Carl Worth
074f886c00 Rip the cairo_content_t argument out of ps/pdf_surface_create as per discussion on cairo mailing list. Instead these surface will behave as if CONTENT_COLOR_ALPHA had been passed (that is, compositing operators will behave as if destination alpha were available).
This also has the benefit of preserving the API that has been in place for PS/PDF surface since the (experimental) stuff in 1.0.0.
Track API change.
Continue testing PS/PDF surfaces in the CAIRO_CONTENT_COLOR mode but do it by rendering to an intermediate similar surface rather than constructing the target surface differently.
2006-01-19 17:48:22 +00:00
Carl Worth
ec45efa57c Fix compilation-breaking typo. 2006-01-18 16:44:19 +00:00
Carl Worth
c634e54775 Change documentation to recommend cairo_paint rather than cairo_rectangle;cairo_fill for clearing a surface.
Add documentation. Add a cairo_content_t argument to PDF surface constructors.
Add documentation. Add a cairo_content_t argument to PS surface constructors.
Track changes in PS/PDF surface constructor API.
2006-01-18 16:40:17 +00:00