Bug 287416 - update to libpixman 0.1.4, cairo 0.4.0.

This commit is contained in:
tor%cs.brown.edu 2005-03-23 19:53:40 +00:00
parent d9c1f1fec4
commit 8a2429d209
181 changed files with 27397 additions and 6904 deletions

View File

@ -5,18 +5,13 @@ file included in this directory.
VERSIONS:
cairo 0.3.0
libpixman 0.1.3
cairo 0.4.0
libpixman 0.1.4
PATCHES:
quartz-surface.diff - quartz backend get/set surface behave
differently than cairo expects, so partially transparent objects
tend to blend towards opaque the more that is drawn. Short term
inefficient workaround of clearing the buffer on each set.
subdirs.diff - don't build test/ or doc/.
font-backend.diff - upstream patch to configure.in to make sure
that a font backend is available.
stdint.diff - select between inttypes.h and stdint.h for AIX.
stdint.diff - add checking for appropriate stdint.h/inttypes.h
header to include. Needed for AIX.
quartz.diff - update cairo quartz/atsui backend for 0.4.0, reenable.

View File

@ -1,6 +1,7 @@
Shawn T. Amundson <amundson@gtk.org> Build fix
Olivier Andrieu <oliv__a@users.sourceforge.net> PNG backend
Peter Dennis Bartok <peter@novonyx.com> Bug fix for clipping
Dave Beckett <dave.beckett@bristol.ac.uk> Track rename of libpixman, build fixes
Dave Beckett <dajobe@debian.org> Build fixes, Debian packaging
Andrew Chant <andrew.chant@utoronto.ca> Adding const where needed
John Ellson <ellson@research.att.com> First font/glyph extents functions
Richard Henderson <rth@twiddle.net> "slim" macros for better shared libraries
@ -10,11 +11,13 @@ Thomas Hunger <info@teh-web.de> Initial version of cairo_in_stroke/fill
Kristian Høgsberg <krh@redhat.com> PDF backend
Alexander Larsson <alexl@redhat.com> Profiling and performance fixes.
Jordi Mas <jordi@ximian.com> Bug fix for cairo_show_text
Keith Packard <keithp@keithp.com> Original concept, polygon tessellation, dashing
Keith Packard <keithp@keithp.com> Original concept, polygon tessellation, dashing, font metrics rewrite
Christof Petig <christof@petig-baender.de> Build fixes related to freetype
David Reveman <davidr@freedesktop.org> New pattern API, OpenGL backend
David Reveman <davidr@novell.com> New pattern API, glitz backend
Calum Robinson <calumr@mac.com> Quartz backend
Jamey Sharp <jamey@minilop.net> Surface/font backend virtualization, XCB backend
Bill Spitzak <spitzak@d2.com> Build fix to find Xrender.h without xrender.pc
Owen Taylor <otaylor@redhat.com> Font support rewrite
Sasha Vasko <sasha@aftercode.net> Build fix to compile without xlib backend
Vladimir Vukicevic <vladimir@pobox.com> Bug fix for clipping
Carl Worth <cworth@isi.edu> Original library, support for paths, images

View File

@ -1,3 +1,972 @@
2005-03-08 Carl Worth <cworth@cworth.org>
* gtk-doc.make (dist-check-gtkdoc): Commit workaround to prevent
make distcheck from making bogus complaints that gtk-doc is not
enabled.
* test/cairo_test.c (cairo_test_create_png_pattern): Look for png
images in ${srcdir}/filename as well, so that make distcheck can
still find them.
* test/Makefile.am (EXTRA_DIST): Add romedalen.png to EXTRA_DIST
so the tests can pass from the tar file.
* doc/public/cairo-sections.txt: Fix typo: cairo-win3 ->
cairo-win32.
* doc/public/cairo-docs.xml: Add cairo-win32.xml to the list, so
it gets generated as well.
* NEWS (http): Add pointer to new win32 documentation.
* configure.in: Increment CAIRO_VERSION to 0.4.0
* NEWS: Added notes for snapshot 0.4.0
2005-03-08 Carl Worth <cworth@cworth.org>
* test/cairo_test.c (xunlink): Shared function for checking unlink
errrors.
(cairo_test): Move all error messages to test-specific log files
for quieter test output.
* test/Makefile.am (XFAIL_TESTS): Make pixman_rotate an expected
failure.
* configure.in: Require libpixman >= 0.1.4.
2005-03-08 Kristian Høgsberg <krh@redhat.com>
* src/cairo_pdf_surface.c (_cairo_pdf_surface_composite): Return
CAIRO_STATUS_SUCCESS even if we don't implement masks yet, so we
don't set cr->status to CAIRO_INT_STATUS_UNSUPPORTED.
2005-03-07 Carl Worth <cworth@cworth.org>
* src/cairo_traps.c: Disable the "new" intersection code so that
the incorrect fill problems (test/fill_rule) go away.
* configure.in: Make configure fail if no font backend is
available. Point the user at freetype and fontconfig.
2005-03-06 Owen Taylor <otaylor@redhat.com>
* src/cairo_pattern.c (_cairo_image_data_set_linear): Comment
and clean up the gradient computation.
(_cairo_linear_pattern_classify): Determine if a linear
gradient is horizontal or vertical.
(_cairo_pattern_acquire_surface_for_gradient): Optimize
horizontal/vertical gradients with a repeating surface.
* test/linear_gradient.c: Test case for linear gradients
at angles and with a rotated pattern matrix.
2005-03-06 David Reveman <davidr@novell.com>
* src/cairo_glitz_surface.c (_cairo_glitz_pattern_acquire_surface):
Do not allow acceleration of gradients when color stops have different
alpha. Add note about the current state of glitz's gradient
acceleration. CAIRO_FILTER_GOOD and CAIRO_FILTER_BEST is ok.
(_cairo_glitz_surface_composite_trapezoids): Use unsigned short for
alpha.
2005-03-04 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_font.c src/cairo_win32_surface.c: Update
for recent backend interface changes.
* configure.in: Reenable win32 backend by default.
2005-03-04 Carl Worth <cworth@cworth.org>
* src/cairo_glitz_surface.c
(_cairo_glitz_pattern_acquire_surface): Fix accidental reversal of
condition in previous patch.
2005-03-04 Owen Taylor <otaylor@redhat.com>
* src/cairoint.h src/cairo_pattern.c src/cairo_glitz_surface.c:
Add _cairo_pattern_is_opaque, use it rather than
pattern->alpha == 1.0.
2005-03-04 David Reveman <davidr@novell.com>
* configure.in: Enable xcb backend.
* src/cairo_xcb_surface.c: Update xcb backend.
* configure.in: Fixed variable assignments.
* src/cairo_glitz_surface.c: Add overall alpha acceleration
to a few cases not covered by _cairo_pattern_acquire_surfaces but
possible to accelerate by glitz.
* src/cairo_pattern.c:
(_cairo_pattern_acquire_surfaces): Add overall alpha acceleration
using mask surface.
* src/cairoint.h:
Add convenience function _cairo_pattern_acquire_surfaces.
* src/cairo_xlib_surface.c:
* src/cairo_surface.c:
* src/cairo_ps_surface.c:
* src/cairo_png_surface.c:
* src/cairo_pdf_surface.c:
* src/cairo_pattern.c:
* src/cairo_image_surface.c:
* src/cairo_gstate.c:
* src/cairo_glitz_surface.c:
* src/cairo_ft_font.c (_cairo_ft_font_show_glyphs): Mask to composite
operation is now passed as a pattern.
* src/cairoint.h:
* src/cairo_xlib_surface.c:
(_cairo_xlib_surface_set_matrix): Setting identity transform should
always be successful.
* src/cairo_surface.c:
* src/cairo_ps_surface.c:
* src/cairo_png_surface.c:
* src/cairo_pdf_surface.c:
* src/cairo_image_surface.c:
* src/cairo_glitz_surface.c: Removed surface backend functions
set_matrix, set_filter, set_repeat.
* configure.in: Enabled glitz backend.
* src/cairo_glitz_surface.c: Major update to glitz backend. The output
quality should now be just as good as the image and xlib backends.
* configure.in: Disabled win32 and quartz backends as they are now
temporarily out of sync.
* src/cairoint.h: Replaced old cairo_pattern_t struct with new
cairo_surface_t like structure of cairo_pattern_t.
Added new function prototypes for acquiring a source surface from
a pattern.
* src/cairo_xlib_surface.c:
(_cairo_xlib_surface_composite): Removed fast path that used XCopyArea.
* src/cairo_ps_surface.c:
* src/cairo_pdf_surface.c:
* src/cairo_image_surface.c:
* src/cairo_gstate.c: Switched to cairo_surface_t like structure
of cairo_pattern_t and new interface for acquiring a source
surface from a pattern.
* src/cairo_pattern.c: New implementations of many functions. This was
necessary because of switch to cairo_surface_t like structure of
cairo_pattern_t. Includes new interface for acquiring a source
surface for a pattern. Things that didn't belong in cairoint.h have
been moved here.
* src/cairo_gstate.c (_cairo_gstate_show_surface): Inherit surface
attributes while surface attribute functions still exist.
2005-03-01 Carl Worth <cworth@cworth.org>
* TODO: Note that cairo_output_stream_t patch has been reviewed.
2005-03-01 Carl Worth <cworth@cworth.org>
* src/cairo_gstate.c (_cairo_gstate_show_surface): Fix
uninitialized value for status, (reported by Manish Singh).
2005-02-27 Kristian Høgsberg <krh@redhat.com>
* src/cairo_gstate.c (_cairo_rectangle_intersect): Fix this
function again. Problem with signed/unsigned types reported by
Jeff Muizelaar <jrmuizel@nit.ca>.
2005-02-27 Kristian Høgsberg <krh@redhat.com>
* src/cairo.h (cairo_fill_rule_t): Remove newline in comment which
was confusing gtk-doc.
* src/cairo_image_surface.c (cairo_image_surface_create_for_data)
(cairo_image_surface_create): Document these functions.
2005-02-25 Carl Worth <cworth@cworth.org>
* TODO: Note that "user data" and "setters and getters" patches
have been reviewed. Remove a few more TODO notes:
cleanup cairo_snippets: DONE
cairo_surface_finish: Now in API Shakeup
snapping code: Decided against this
2005-02-25 Carl Worth <cworth@cworth.org>
From David Reveman:
* src/cairo_matrix.c (_cairo_matrix_is_integer_translation):
Rewrite to use cairo_bool_t for legibility.
2005-02-25 Carl Worth <cworth@cworth.org>
From David Reveman:
* src/cairo_gstate.c (_cairo_gstate_show_surface): Simplify code
to eliminate a goto.
2005-02-25 Carl Worth <cworth@cworth.org>
From David Reveman:
* src/cairo_gstate.c (_cairo_gstate_pattern_init_copy):
(_cairo_gstate_clip_and_composite_trapezoids)
(_cairo_gstate_clip_and_composite_trapezoids)
(_cairo_gstate_show_surface, _cairo_gstate_show_glyphs)
(_cairo_gstate_show_glyphs): Clean up the mess that was
the misnamed _cairo_gstate_create_pattern.
2005-02-25 Carl Worth <cworth@cworth.org>
* src/cairo_pattern.c (_cairo_pattern_shader_init): Don't put an
off-by-one n_stops into cairo_shader_op_t.
(_cairo_shader_op_find_color_stops): Put search for two color
stops containing a given offset into its own function. Handle the
case of before first and after last stop by returning the nearest
stop twice.
(_cairo_pattern_calc_color_at_pixel): Handle case of no color
stops by returning a transparent pixel.
2005-02-24 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_surface.c: Remove a left-over debug printf.
2005-02-24 Carl Worth <cworth@cworth.org>
* src/cairo_pattern.c (cairo_pattern_add_color_stop): Fix memory
leak when realloc fails due to out-of-memory.
2005-02-24 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_surface.[ch]: Instead of counting
on ordering deletion to work (apparently it didn't on
older Windows), save the initial bitmap created
with the DC and reselect that into the DC. (Based
on a patch by Hans Breuer)
2005-02-24 Carl Worth <cworth@cworth.org>
* test/.cvsignore: Add pixman_rotate to ignore list.
2005-02-24 Carl Worth <cworth@cworth.org>
Fixes from David Reveman with minor cleanups by Carl Worth:
* src/cairo_gstate.c (_cairo_gstate_create): Handle new failure
possibility of _cairo_gstate_init.
(_cairo_gstate_init): Handle possible failure of
_cairo_pattern_create_solid.
(_cairo_gstate_set_pattern): Reference new pattern before
destroying existing pattern to handle the case where they are the
same.
(_cairo_gstate_set_rgb_color): Handle possible failure of
_cairo_pattern_create_solid.
2005-02-24 Carl Worth <cworth@cworth.org>
* src/cairo.h: Fix typo (pointed out by Kristian Høgsberg).
2005-02-24 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_surface.c (_cairo_win32_surface_destroy):
When we created a DC/bitmap pair, delete the DC before
the Bitmap so that the Bitmap will be released from the
DC and can be destroyed. (Reported by Hans Breuer)
* configure.in cairo.pc.in: Only require fontconfig
if building FreeType font backend.
* configure.in: Fix output when reporting Win32 font backend.
2005-02-24 Carl Worth c<worth@cworth.org>
* TODO: Remove many TODO items that have now been absorbed by the
API shakeup. Remove comparison with PostScript as there's nothing
interesting there left unimplemented, (and cairo is already
establishing its own conventions in naming and behavior that
deviate from PostScript).
* src/cairoint.h: Fix typo (pointed out by Mike Emmel)
2005-02-23 Carl Worth <cworth@cworth.org>
* TODO: Add entries from API Shakeup.
2005-02-22 Carl Worth <cworth@cworth.org>
* README:
* src/cairo-features.h.in:
* 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:
* src/cairo.c:
* src/cairo.h:
* src/cairo_color.c:
* src/cairo_fixed.c:
* src/cairo_font.c:
* src/cairo_gstate.c:
* src/cairo_hull.c:
* src/cairo_image_surface.c:
* src/cairo_matrix.c:
* src/cairo_path.c:
* src/cairo_path_bounds.c:
* src/cairo_path_fill.c:
* src/cairo_path_stroke.c:
* src/cairo_pen.c:
* src/cairo_png_surface.c:
* src/cairo_polygon.c:
* src/cairo_ps_surface.c:
* src/cairo_slope.c:
* src/cairo_spline.c:
* src/cairo_surface.c:
* src/cairo_traps.c:
* src/cairo_xcb_surface.c:
* src/cairo_xlib_surface.c:
* src/cairoint.h: Switch from broken cworth@isi.edu address to
canonical cworth@cworth.org address.
2005-02-22 Carl Worth <cworth@cworth.org>
* test/write_png.c:
* src/cairo-atsui.h:
* src/cairo_atsui_font.c: Convert to utf-8 encoding.
2005-02-22 Carl Worth <cworth@cworth.org>
* configure.in: Temporarily disable XCB backend by default.
2005-02-21 Carl Worth <cworth@cworth.org>
* src/cairo_pattern.c (cairo_pattern_reference):
* src/cairo.h: Revert accidental commit.
2005-02-21 Carl Worth <cworth@cworth.org>
* src/cairo_surface.c (_fallback_composite_trapezoids): Fix y
offset to use dst_y instead of dst_x, (caught by David Reveman).
2005-02-20 Owen Taylor <otaylor@redhat.com>
* src/cairo-win32.h: Fix line endings (reported by
Hans Breuer)
2005-02-16 Kristian Høgsberg <krh@redhat.com>
Patches from Mike Owens <etc@filespanker.com>:
* src/cairo_png_surface.c (_cairo_png_surface_copy_page): Free
rows if we fail early in this function.
* src/cairo_path.c (_cairo_path_init_copy): Clean up path if we
run out of memory.
2005-02-13 Kristian Høgsberg <krh@redhat.com>
* src/cairo_pdf_surface.c
(_cairo_pdf_surface_create_for_document): Initialize array element
size correctly.
2005-02-10 Kristian Høgsberg <krh@redhat.com>
Patches from Owen Taylor:
* src/cairo_pdf_surface.c
(_cairo_pdf_surface_show_glyphs): Emit text as octal escapes,
to avoid problems with \, \r, ), etc.
(_cairo_pdf_document_write_fonts): Change /Flags to be 4 (symbolic),
not 32 (non-symbolic), otherwise acroread gets confuse.
(cairo_pdf_ft_font_write_cmap_table): Use a 1,0 cmap subtable,
not a 0,0, to conform to the PDF spec.
2005-02-13 Carl Worth <cworth@cworth.org>
* autogen.sh (LC_NUMERIC): Use LC_NUMERIC=C so that decimal
separator works in version checks.
2005-02-12 Owen Taylor <otaylor@redhat.com>
* src/cairo_gstate.c (_cairo_gstate_clip_and_composite_trapezoids): Fix
x2/x1 typo.
2005-02-12 Carl Worth <cworth@cworth.org>
* src/cairo.c (cairo_text_extents): Return all-zero extents if
string is NULL.
2005-02-12 Kristian Høgsberg <krh@redhat.com>
* src/cairo_gstate.c
(_cairo_gstate_clip_and_composite_trapezoids): Make clipping fast
path fast. When we have a clipping region set, intersect it
against the drawing extents to determine the bounding box for the
visible drawing.
2005-02-10 Carl Worth <cworth@cworth.org>
* BUGS: Add bug for cairo_show_surface under non-default CTM.
2005-02-07 Kristian Høgsberg <krh@redhat.com>
* test/pixman_rotate.c, test/pixman_rotate-ref.png: New test case
which exposes off-by-one rotation error in pixman.
2005-02-06 Owen Taylor <otaylor@redhat.com>
* src/cairo_gstate.c src/cairo.c: Allow cairo_set_font (cr, NULL)
to unset the current font and return the cairo_t to the the
"use the font from cairo_select_font() state".
2005-02-06 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_font.c (_cairo_win32_font_text_to_glyphs):
Return the right status. (Reported by Hans Breuer.)
2005-02-06 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_font.c (_cairo_win32_font_text_to_glyphs): Free
glyph_indices, not glyphs. (Reported by Hans Breuer.)
2005-02-05 Carl Worth <cworth@cworth.org>
* configure.in: Add message stating why glitz backend is disabled.
2005-02-05 Owen Taylor <otaylor@redhat.com>
* src/cairo_ft_font.c (_cairo_ft_font_text_to_glyphs):
Don't free *glyphs when succeeding! (Reported by Øyvind Kolås)
* configure.in: Temporarily disable glitz by default.
2005-02-04 Carl Worth <cworth@cworth.org>
* src/Makefile.am: Generate an error during make install if old
cairo headers are found in includedir, (rather than
includedir/cairo where the new ones are going).
2005-02-03 Owen Taylor <otaylor@redhat.com>
* src/cairo_ft_font.c (_cairo_ft_font_text_to_glyphs,
_cairo_ft_font_create_glyph): Fix missing cairo_ft_font_unlock_face().
* src/cairo_cache.c (_cairo_cache_random_entry): Fix problem
when no entry could be found.
2005-02-03 Owen Taylor <otaylor@redhat.com>
* src/cairo_font.c src/cairo.h doc/public/cairo-sections.txt:
Add cairo_font_extents().
* src/cairo_win32_font.c src/cairo-win32.h doc/public/cairo-sections.txt:
Rename cairo_font_create_for_logfont() into
cairo_font_create_for_logfontw() to make clear what it takes.
Don't add cairo_font_create_for_logfonta() for now.
2005-02-02 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_font.c doc/public/cairo-sections.txt
doc/public/Makefile.am: Add windows functions to the docs.
2005-02-02 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_font.c (cairo_win32_font_select_font,
cairo_win32_release_font, cairo_win32_font_get_scale_factor):
Add some functions to select the font into a device context
with the intention to enable callers to use, e.g, Uniscribe.
* src/cairo_win32_font.c: Use 'hdc' not 'dc' for param/variable
name.
2005-02-02 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_font.c (cairo_win32_font_select_font,
cairo_win32_release_font, cairo_win32_font_get_scale_factor):
Add some functions to select the font into a device context
with the intention to enable callers to use, e.g, Uniscribe.
* src/cairo_win32_font.c: Use 'hdc' not 'dc' for param/variable
name.
* src/cairo_win32_font.c (_cairo_win32_font_show_glyphs): Return
immediately if height or width is 0.
2005-02-02 Owen Taylor <otaylor@redhat.com>
* src/cairo_win32_font.c: Mostly-functioning Win32 font backend;
no glyph paths yet.
* configure.in: Turn on building of the Win32 font backend.
* src/cairo-win32-private.h src/Makefile.am: Private header for
the Win32 backend.
* src/cairo-win32-private.h src/cairo_win32_surface.c:
Internally export _cairo_win32_print_gdi_error() for use
in the font code.
* src/cairo-win32-private.h src/cairo_win32_surface.c:
Add _cairo_win32_surface_create_dib to create a DIB surface.
src/cairo-win32-private.h src/cairo_win32_surface.c:
Add _cairo_surface_is_win32()
* configure.in: Check for vasnprintf.
* test/cairo_test.c (xasprintf): Add a simple fixed-buffer size
snprintf fallback in the absence of vasnprintf.
2005-02-01 Kristian Høgsberg <krh@redhat.com>
* src/cairo_pdf_surface.c (_cairo_pdf_surface_composite): Pretend
we support compositing of solid color or gradient patterns to
prevent image fallback.
(emit_pattern): New function, code factored out from
_cairo_pdf_surface_composite_trapezoids.
(_cairo_pdf_surface_show_glyphs): Use emit_pattern here so we get
pattern support for text.
* src/cairo_ft_font.c (_cairo_ft_font_get_unscaled_font): Fix typo.
2005-02-01 Owen Taylor <otaylor@redhat.com>
* src/cairo_unicode.c src/cairoint.h src/Makefile.am: Add
_cairo_utf8_to_utf16(), _cairo_utf8_to_ucs4() based on code from GLib.
* src/cairo.[ch]: Add CAIRO_STATUS_INVALID_STRING
* src/cairo_ft_font.c: Use _cairo_utf8_to_ucs4().
* src/cairo.h: Add cairo_bool_t
* src/cairoint.h: Add TRUE/FALSE definitions.
* src/cairo.[ch] src/cairoint.h src/cairo_gstate.c: switch
cairo_in_stroke/cairo_in_fill and all the functions used to
implement them over to cairo_bool_t.
2005-01-31 Owen Taylor <otaylor@redhat.com>
* configure.in src/cairo-features.h.in: Add a check for the
Windows platform and --enable-win32. Also add some (currently
always off) stubs for native Win32 fonts.
* configure.in: Make building the PDF backend conditional
on having FreeType.
* src/Makefile.am src/cairo_win32_surface.c src/cairo_win32_font.c
src/cairo-win32.h: Add a Win32 backend using GDI and software
fallbacks Font code is not yet there yet, but it works with the
fontconfig backend.
* src/cairo_gdip_font.cpp src/cairo_gdip_surface.cpp: Remove
remnants of a GDI+ based backend.
* src/cairoint.h: Prefer platform-specific font backends
to the fontconfig backend.
2005-01-31 Owen Taylor <otaylor@redhat.com>
* src/cairoint.h src/cairo_image_surface.c
src/cairo_pdf_surface.c src/cairo_png_surface.c
src/cairo_surface.c src/cairo_xlib_surface.c: Replace
the get_image()/set_image() backend operations with
a more specific {acquire,release}_{source,dest}_image()
and clone_similar().
* src/cairoint.h src/cairo_pattern.c: Replace
_cairo_pattern_get_surface() with a
_cairo_pattern_begin_draw()/_cairo_pattern_end_draw() pair.
* src/cairo_image_surface.c: Save the format for which
an image is created so we can access it later. (Needed
for the _cairo_xlib_surface_clone_similar())
* src/cairoint.h src/cairo_image_surface.c:
Add _cairo_surface_is_image().
* src/cairoint.h: Add CAIRO_OK(status) to check
for CAIRO_STATUS_SUCCESS.
* src/cairo_xlib_surface.c: In the absence of of
RENDER, make cairo_xlib_surface_create_similar()
return an image surface.
* src/cairo_xlib_surface.c: Don't try to use RENDER
to composite glyphs in the absence of the RENDER
extension.
2005-01-30 Owen Taylor <otaylor@redhat.com>
* src/cairo_ps_surface.c (_cairo_ps_surface_copy_page): Update
composite-over-white code to use a pattern, not a surface.
(to match _cairo_surface_composite API change.)
2005-01-30 Owen Taylor <otaylor@redhat.com>
Fixes from David Reveman:
* src/cairo_pattern.c (_cairo_pattern_save/restore_surface): 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.
* src/Makefile.am (libcairo_ft_sources): Add cairo-ft-private.h
2005-01-28 Kristian Høgsberg <krh@redhat.com>
* src/cairo_png_surface.c (_cairo_png_surface_composite): Update
prototype to eliminate warning.
* src/cairo_pattern.c (_cairo_pattern_init_copy): Remember to
reference surfaces when copying patterns.
* src/cairo_gstate.c: (_cairo_rectangle_intersect),
(_cairo_gstate_clip_and_composite_trapezoids),
(_cairo_gstate_clip), (_cairo_gstate_show_glyphs): 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.
* test/Makefile.am: Correct clip_twice-ref.png filename.
* src/cairoint.h (MIN, MAX): Add these.
* src/cairo_gstate.c (_cairo_rectangle_intersect): Fix broken
intersection code.
2005-01-27 Kristian Høgsberg <krh@redhat.com>
* src/cairo_pattern.c (_cairo_pattern_get_surface): Make sure we
always return a surface similar to dst in the gradient case.
* src/cairo_pattern.c (_cairo_pattern_get_surface): Fold
_cairo_pattern_get_image into _cairo_pattern_get_surface and make
sure we always return a surface of the same type as dest.
* src/cairo_glitz_surface.c (_cairo_glitz_composite),
(_cairo_glitz_surface_composite_trapezoids): Use
_cairo_pattern_get_surface instead of _cairo_pattern_get_image.
* src/cairo_xlib_surface.c (_cairo_xlib_surface_show_glyphs),
(_cairo_xlib_surface_composite)
(_cairo_xlib_surface_composite_trapezoids): 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.
* src/cairo_image_surface.c (_cairo_image_surface_composite):
(_cairo_image_surface_composite_trapezoids): Add missing
cairo_surface_destroy and tidy up offset calculations as suggested
by Owen.
* src/cairoint.h (cairo_clip_rect_t):
* src/cairo_gstate.c (_cairo_gstate_clip_and_composite_trapezoids)
(_cairo_gstate_clip, _cairo_gstate_show_glyphs): Simplify code for
computing the extents of clipping area, by introducing a couple of
cairo_rectangle_t functions.
2005-01-27 Owen Taylor <otaylor@redhat.com>
* 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.
* doc/reference/: Remove old-format docs.
* configure.in: Add a AC_PREREQ(2.54) (Jason Dorje Short)
2005-01-27 Kristian Høgsberg <krh@redhat.com>
* test/coverage-ref.png:
* test/clip_twice-ref.png:
Update these two once again, this time generated using
libpixman-0.1.3 without leaky circles.
2005-01-27 Owen Taylor <otaylor@redhat.com>
* 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.
* autogen.sh (LANG): Add --enable-gtk-doc to the default
args.
2005-01-27 Kristian Høgsberg <krh@redhat.com>
* test/write_png.c (unpremultiply_data):
* test/read_png.c (premultiply_data):
Fix missing rounding in these two functions.
* test/coverage-ref.png:
* test/clip_twice-ref.png:
Update these to versions with properly rounded alpha values.
* test/Makefile.am: Move clip_twice out of XFAIL now that rounding
works.
* test/.cvsignore: Add new test cases.
2005-01-27 Kristian Høgsberg <krh@redhat.com>
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.
* src/cairo_font.c: (_cairo_font_show_glyphs):
* src/cairo_gstate.c: (_cairo_gstate_create_pattern),
(_cairo_gstate_clip_and_composite_trapezoids),
(_cairo_gstate_clip), (_cairo_gstate_show_surface),
(_cairo_gstate_show_glyphs):
Change these functions to not create a surface for the pattern and
just pass the pattern down to the backend functions.
* src/cairo_gstate.c: (translate_traps):
New function to translate a set of trapezoids.
* src/cairo_pattern.c:
(_cairo_pattern_init),
(_cairo_pattern_init_copy),
(_cairo_pattern_prepare_surface),
(_cairo_pattern_restore_surface):
Break out the code to adjust and restore surface transformation
and repeat settings into _cairo_pattern_prepare_surface and
_cairo_pattern_restore_surface.
* src/cairo_pattern.c: (_cairo_pattern_fini),
(_cairo_pattern_init_for_surface),
(cairo_pattern_create_for_surface):
Split cairo_pattern_create_for_surface into an init function and a
create function.
* src/cairo_pattern.c: (_cairo_pattern_get_image),
(_cairo_pattern_get_surface):
Utility functions to create a surface from a pattern.
* src/cairo_ft_font.c:
* src/cairo_image_surface.c:
* src/cairo_pdf_surface.c:
* src/cairo_png_surface.c:
* src/cairo_ps_surface.c:
* src/cairo_xlib_surface.c:
* src/cairo_glitz_surface.c:
Update these backends to work with the new pattern API. Glitz
work by David Reveman.
* src/cairo_surface.c: (_cairo_surface_composite),
(_cairo_surface_composite_trapezoids),
(_cairo_surface_set_clip_region):
Update these to pass through the new set of args.
* test/coverage-ref.png:
Update this reference image as we now render it correctly.
2005-01-26 Kristian Høgsberg <krh@redhat.com>
* test/clip_twice.c, test/clip_twice-ref.png: New test case to
verify that the clip surface is correctly updated when extending
an existing clip path.
* test/coverage.c (draw): Set alpha to 1 before setting clip mask.
* test/coverage-ref.png: Added the right reference PNG. Running
test against stock 0.3.0 gives the expected results.
* test/Makefile.am, test/coverage.c, test/coverage-ref.png: New
test case, covering various combinations of pattern types, drawing
operations and clipping. Currently fails, for some combinations,
coverage-ref.png is just a placeholder.
* test/romedalen.png: Added this PNG from cairo-snippets to use
for pattern fills.
* test/cairo_test.c, test/cairo_test.h: expose PNG loading to test
cases.
2005-01-26 Alexander Larsson <alexl@redhat.com>
* src/cairo_ft_font.c: (_ft_unscaled_font_set_scale):
Fix access to uninitialized data
* src/cairo_xlib_surface.c:
key must be first element in cache entry
2005-01-25 David Reveman <davidr@novell.com>
* AUTHORS: Update mail address.
* src/cairo_glitz_surface.c: Update mail address.
* configure.in: Require version 0.4.0 of glitz.
* src/cairo_glitz_surface.c: Track changes to glitz.
* src/cairo_xcb_surface.c: Add missing include directive so xcb
backend compile again.
2005-01-25 Carl Worth <cworth@cworth.org>
* test/imagediff.c
* test/testsvg: Add new testsvg script and accompanying imagediff
program, (for interim SVG-based test suites while we wait for the
standard cairo test suite to mature).
* test/buffer_diff.c:
* test/cairo_test.c: Split buffer_diff out into its own file for
the purpose of imagediff.
* src/cairo_ft_font.c (_cairo_ft_font_show_glyphs): Fixed rounding
of glyph positioning.
2005-01-25 Owen Taylor <otaylor@redhat.com>
* src/cairo_pdf_surface.c (_cairo_pdf_document_get_font): Chec
pdf_font for NULL, not font.
2005-01-25 Alexander Larsson <alexl@redhat.com>
* src/Makefile.am:
Fix typo that made cairo-ft.h not get installed
2005-01-24 Carl Worth <cworth@cworth.org>
* AUTHORS: Add Shawn T. Amundson, Calum Robinson, and Owen Taylor.
* src/Makefile.am: Conditionally install header files only for
backends that are compiled. Thanks to Shawn T. Amundson
<amundson@gtk.org>.
* src/cairoint.h:
* src/cairo_color.c (_cairo_color_get_rgb): Qualify color argument
as const. Closes bug #2336.
2005-01-23 Dave Beckett <Dave.Beckett@bristol.ac.uk>
* src/cairo_ft_font.c (_get_load_flags): Protect switch on
hintstyle with #ifdef FC_HINT_STYLE.
2005-01-23 Carl Worth <cworth@cworth.org>
* RELEASING: Add instructions for handling the new "-head" suffix
of CAIRO_VERSION at release-time.
* configure.in: Append "-head" to CAIRO_VERSION to indicate state
between snapshots.
* src/cairo_gstate.c: Add missing prototype for _cairo_gstate_ensure_font.
(_cairo_gstate_current_font): Add missing declaration so things
compile again.
2005-01-21 Owen Taylor <otaylor@redhat.com>
* Call _cairo_gstate_ensure_font(). Don't reference
the returned font.
2005-01-21 Owen Taylor <otaylor@redhat.com>
* src/cairo_ft_font.c (_get_load_flags): Make dependence
on FC_HINT_STYLE conditional. (reported by Abraham Egnor)
* src/cairo_ft_font.c: Use FT_LOAD_MONOCHROME if
FT_LOAD_TARGET_MONO isn't defined for compatibility
with older FreeType.
2005-01-16 Owen Taylor <otaylor@redhat.com>
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.
* src/cairo_gstate.c: 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.
* src/cairo_font.c: 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.
* src/cairo_ft_font.c: 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_font.c (cairo_font_glyph_extents) src/cairo_gstate.c
src/cairoint.h: Add public cairo_font_glyph_extents, use it
to implement _cairo_gstate_glyph_extents().
* src/cairo_xlib_surface.c (_glyphset_cache_entry_reference):
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.
* src/cairo_cache.c (_cairo_cache_lookup()): 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.
* doc/reference: 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.
* src/cairo_quartz_surface.c: Fix encoding.
2005-01-21 Carl Worth <cworth@cworth.org>
* configure.in: Increment CAIRO_VERSION to 0.3.0

View File

@ -1,4 +1,4 @@
SUBDIRS = src test
SUBDIRS = src
EXTRA_DIST = \
COPYING \

View File

@ -43,7 +43,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
install-sh ltmain.sh missing mkinstalldirs
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@ -107,6 +108,10 @@ CAIRO_HAS_PS_SURFACE_FALSE = @CAIRO_HAS_PS_SURFACE_FALSE@
CAIRO_HAS_PS_SURFACE_TRUE = @CAIRO_HAS_PS_SURFACE_TRUE@
CAIRO_HAS_QUARTZ_SURFACE_FALSE = @CAIRO_HAS_QUARTZ_SURFACE_FALSE@
CAIRO_HAS_QUARTZ_SURFACE_TRUE = @CAIRO_HAS_QUARTZ_SURFACE_TRUE@
CAIRO_HAS_WIN32_FONT_FALSE = @CAIRO_HAS_WIN32_FONT_FALSE@
CAIRO_HAS_WIN32_FONT_TRUE = @CAIRO_HAS_WIN32_FONT_TRUE@
CAIRO_HAS_WIN32_SURFACE_FALSE = @CAIRO_HAS_WIN32_SURFACE_FALSE@
CAIRO_HAS_WIN32_SURFACE_TRUE = @CAIRO_HAS_WIN32_SURFACE_TRUE@
CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
@ -129,6 +134,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@
ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@ -137,11 +144,15 @@ FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_LIBS = @FREETYPE_LIBS@
FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_LIBS = @GLITZ_LIBS@
GLITZ_REQUIRES = @GLITZ_REQUIRES@
GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@
HTML_DIR = @HTML_DIR@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -183,6 +194,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
XCB_CFLAGS = @XCB_CFLAGS@
XCB_LIBS = @XCB_LIBS@
XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
@ -237,7 +250,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = src test
SUBDIRS = src
EXTRA_DIST = \
COPYING \
COPYING-LGPL-2.1 \

View File

@ -1,3 +1,129 @@
Snapshot 0.4.0 (2005-03-08 Carl Worth <cworth@cworth.org>)
==========================================================
New documentation
-----------------
Owen Taylor has converted cairo's documentation system to gtk-doc and
has begun some long-needed work on the documentation, which can now be
viewed online here:
http://cairographics.org/manual/
New backend: win32
------------------
This is the first snapshot to include a functional win32 backend,
(thanks to Owen Taylor). The interface is as follows:
#include <cairo-win32.h>
void
cairo_set_target_win32 (cairo_t *cr,
HDC hdc);
cairo_surface_t *
cairo_win32_surface_create (HDC hdc);
cairo_font_t *
cairo_win32_font_create_for_logfontw (LOGFONTW *logfont,
cairo_matrix_t *scale);
cairo_status_t
cairo_win32_font_select_font (cairo_font_t *font,
HDC hdc);
void
cairo_win32_font_done_font (cairo_font_t *font);
double
cairo_win32_font_get_scale_factor (cairo_font_t *font);
And see also the documentation at:
http://cairographics.org/manual/cairo-Microsoft-Windows-Backend.html
Disabled backend: quartz
------------------------
Unfortunately, the quartz backend code is currently out of date with
respect to some recent backend interface changes. So, the quartz
backend is disabled in this snapshot.
If the quartz backend is brought up-to-date before the next snapshot,
we would be glad to make a 0.4.1 snapshot that re-enables it, (we do
not expect many more big backend interface changes).
API Changes
-----------
The font system has been revamped, (as Owen Taylor's work with
integrating pango and cairo gave us the first serious usage of the
non-toy font API).
One fundamental, user-visible change is that the cairo_font_t object
now represents a font that is scaled to a particular device
resolution. Further changes are described below.
cairo.h
-------
Removed cairo_font_set_transform and cairo_font_current_transform.
Added cairo_font_extents and cairo_font_glyph_extents. See
documentation for details:
http://cairographics.org/manual/cairo-cairo-t.html#cairo-font-extents
cairo-ft.h
----------
The cairo_ft_font API changed considerably. Please see the
documentation for details:
http://cairographics.org/manual/cairo-FreeType-Fonts.html
Performance
-----------
Make the fast-path clipping (pixel-aligned rectangles) faster.
Add optimization for applying a constant alpha to a pattern.
Optimize gradients that are horizontal or vertical in device space.
Xlib: When RENDER is not available, use image surfaces for
intermediate surfaces rather than xlib surfaces.
Backend-specific changes
------------------------
Glitz
-----
Major update to glitz backend. The output quality should now be just
as good as the image and xlib backends.
Track changes to glitz 0.4.0.
PDF
---
Various improvements to produce more conformant output.
Internals
---------
David Reveman contributed a large re-work of the cairo_pattern_t
implementation, providing cleaner code and more optimization
opportunities.
Backend interface changes
-------------------------
Rework backend interface to accept patterns, not surfaces for source
and mask.
Remove set_matrix, set_filter, and set_repeat functions.
More sophisticated backend interface for image fallbacks,
({acquire,release}_{source,dest}_image() and clone_similar).
Bug fixes
---------
Only install header files for backends that have been compiled.
Fixed some rounding errors leading to incorrectly placed glyphs.
Many other minor fixes.
Snapshot 0.3.0 (2005-01-21 Carl Worth <cworth@cworth.org>)
==========================================================
Major API changes

View File

@ -43,7 +43,7 @@ model will help in understanding cairo.
History
-------
Cairo was originally developed by Carl Worth <cworth@isi.edu> and
Cairo was originally developed by Carl Worth <cworth@cworth.org> and
Keith Packard <keithp@keithp.com>. Many thanks are due to Lyle Ramshaw
without whose patient help our ignorance would be much more apparent.

View File

@ -1,51 +1,47 @@
API Shakeup work
----------------
Patch? Reviewed?
yes yes user data (was Re: [cairo] Patch improving fallbacks)
cairo_paint
yes yes setters and getters
cairo_current_matrix
Renaming the terms of the rendering equation
Making set_source consistent
Eliminating cairo_show_surface
cairo_mask
cairo_begin_group, cairo_end_group, cairo_get_group
yes yes cairo_output_stream_t and cairo_surface_finish()
cairo_create and eliminating cairo_set_target_surface
cairo_fill_preserve, cairo_stroke_preserve, cairo_clip_preserve
default matrix
cairo_current_path -> cairo_copy_path_data
cairo_surface_finish, cairo_surface_flush
cairo_<device>_surface_mark_dirty
Eliminating cairo_copy
Eliminating cairo_surface_set_repeat/matrix/filter
A hidden offset for the xlib backend
cairo_stroke_path -> cairo_stroke_to_path
Simplifying the operator set
Abbreviation hunt: cairo_init_clip and cairo_concat_matrix
Consistent error handling for all objects
* Add support for non-antialiased rendering. API ?
* Cleanup cairo_snippets so they operate in a more default cairo
environment, (particularly with a default CTM).
* Add one of cairo_surface_finish/_finalize/_close to resolve the
"reference counting vs garbage collection" thread.
* Shove experimental snapping code from libsvg-cairo down int cairo
proper.
* Clean up the cache code a bit, (there is at least one redundant
level of cacheing, and there are some minor style issues).
* Implement the parallel install stuff, (most importantly, push
cairo.h down into into one directory below $(includedir)).
* Add CAIRO_FILL_RULE_INVERSE_WINDING and CAIRO_FILL_RULE_INVERSE_EVEN_ODD
* Simplifying the operator set?
* Fix clipping to work for all operators. The equation we have come up
with is:
((src Op dest) In clip) Add (dest Out clip)
* Resolve the rest of the rendering equation. We need a fundamental
equation upon which more convenient operations are based, (at least
formally). Some of the common operations that should be convenient:
* display surface
* display surface multiplied by constant alpha
* display pattern masked by surface
So this involves deciding whether to expose a new mask object in the
graphics state, and deciding exactly what set_alpha means. It almost
certainly means adding cairo_show_surface_mask.
* Implement a hidden transform, (as per the result of the hidden
offset thread on the mailing list).
* Replace PNG backend with an image_surface function to save a PNG
image.
* Clean up the API in preparation for freezing and release.
* Implement a PDF backend.
* Make a more interesting PS backend, (other than the current
"giant-image for every page" approach).
@ -54,9 +50,6 @@
* Change stroke code to go through one giant polygon. This will fix
problems with stroking self-intersecting paths.
* Implement cairo_stroke_path, (very easy to do after the above change
is done).
* Re-work the backend clipping interface to use geometry rather than
images.
@ -90,17 +83,6 @@ do gradients the Right Way).
* Implement cairo_arc_to.
* Fix support for old X servers so that it is not swamped with image
transport. The key idea is to assume that nothing external to cairo
will be drawing to the same drawable after it is handed to
cairo. Beyond that, we might actually provide support for cooperating
with external entities by adding one or more of the following
functions:
cairo_flush
cairo_erase
cairo_mark_dirty
* Re-implement the trapezoid rasterization algorithm according to the
new "specification".
@ -146,134 +128,3 @@ functions:
* Verification, profiling, optimization.
centi_unfinished.svg may provide a good test case.
A comparison with PostScript
============================
Here's a list of several classes of PostScript operators indicating
which operators have rough equivalents in cairo and which do not. In
general, the name of a cairo function corresponding to a PostScript
operator can be obtained by inserting a '_' between each word and
prefixing it with "cairo_". For example, "cairo_move_to" corresponds
to the PostScript "moveto".
In cases where the name of the cairo function deviates from this
convention, or when the behavior of the cairo function is
significantly different, the change is noted in parentheses below.
This list is not exhaustive, (there are definitely some minor (major?)
semantic deviations that are not noted below). Also, this list is
almost certainly out of date with respect to the current cairo
implementation. Caveat lector.
Operators that are not yet in cairo, but probably should be: arcto,
strokepath, rectclip?, clipsave/restore?, setstrokeadjust?,
currentdash, grestoreall?, initgraphics?, currentgstate?, setgstate?,
erasepage?, setsmoothness?
Painting operators
------------------
in cairo: stroke, fill, eofill (set_fill_rule/fill), image
(show_surface)
not in cairo: erasepage, rectstroke, rectfill, shfill, colorimage,
imagemask
Path construction operators
---------------------------
in cairo: arc, arcn (arc_negative), newpath, moveto, rmoveto
(rel_move_to), lineto, rlineto (rel_line_to), curveto, rcurveto
(rel_curve_to), closepath, currentpoint, charpath (text_path),
pathforall (current_path), flattenpath (current_path_flat)
not in cairo: arct, arcto, reversepath, strokepath, clippath, pathbbox
Clipping
--------
in cairo: clip, eoclip (set_fill_rule/clip)
not in cairo: initclip, rectclip, clipsave, cliprestore
Graphics state operators
------------------------
in cairo: setlinewidth, currentlinewidth, setlinecap, currentlinecap,
setlinejoin, currentlinejoin, setmiterlimit, currentmiterlimit,
setdash
not in cairo: setstrokeadjust, currentstrokeadjust, currentdash
Color specification operators
-----------------------------
in cairo: setrgbcolor, currentcolor
not in cairo: setcolor, setgray, currentgray, currentrgbcolor,
sethsbcolor, currenthsbcolor, setcmykcolor, currentcmykcolor,
setcolorspace, currentcolorspace
Form and pattern operators
--------------------------
in cairo: setpattern, makepattern (lock_pattern)
not in cairo: execform
Whole-state manipulation
------------------------
in cairo: gsave (save), grestore (restore)
not in cairo: grestoreall, initgraphics, gstate, currentgstate,
setgstate
Coordinate system and matrix operators
--------------------------------------
in cairo: identmatrix (identity_matrix), initmatrix (default_matrix),
setmatrix, translate, scale, rotate, concatmatrix, currentmatrix,
transform (transform_point), dtransform (transform_distance)
not in cairo: matrix, defaultmatrix, concat, itransform, idtransform,
invertmatrix
Insideness testing
------------------
in cairo: infill, instroke, ineofill (set_fill_rule/in_fill)
not in cairo: inufill, inustroke, inueofill
Device setup
------------
in cairo: showpage, copypage
not in cairo: setpagedevice, currentpagedevice, nulldevice
Glyph and font operators
------------------------
in cairo: currentfont, definefont (font_create_for_ft_face),
undefine_font (font_destroy), findfont (font_create), makefont
(transform_font), setfont, scalefont, selectfont, show (show_text),
stringwidth (x/y in text_extents), xyshow (glyph_show -- but ignoring
current_point and using absolute positions)
not in cairo, (and likely not needed): composefont, rootfont, ashow,
widthshow, awidthshow, xshow, xyshow, yshow, glyphshow, cshow, kshow,
FontDirectory, GlobalFontDirectory, StandardEncoding,
ISOLatin1Encoding, findencoding, setcachedevice, setcachedevice2,
setcharwidth
Graphics state operators (device-dependent)
-------------------------------------------
in cairo: setflat (set_tolerance), currentflat (current_tolerance)
not in cairo: sethalftone, currenthalftone, setscreen, currentscreen,
setcolorscreen, currentcolorscreen, settransfer, currenttransfer,
setcolortransfer, currentcolortransfer, setblackgeneration,
currentblackgeneration, setundercolorremoval,
currentundercolorremoval, setcolorrendering, currentcolorrendering,
setoverprint, currentoverprint, setsmoothness, currentsmoothness
PostScript operators never to be in cairo
-----------------------------------------
Operator Stack Manipulation Operators, Arithmetic and Math Operators,
Array Operators, Packed Array Operators, Dictionary Operators, String
Operators, Rational,Boolean,and Bitwise Operators, Control Operators,
Type,Attribute,and Conversion Operators, File Operators, Resource
Operators, Virtual Memory Operators, Miscellaneous Operators,
Interpreter Parameter Operators, Errors, User Path Operators

View File

@ -0,0 +1,53 @@
dnl -*- mode: autoconf -*-
# serial 1
dnl Usage:
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
AC_DEFUN([GTK_DOC_CHECK],
[
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
dnl for overriding the documentation installation directory
AC_ARG_WITH(html-dir,
AC_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
[with_html_dir='${datadir}/gtk-doc/html'])
HTML_DIR="$with_html_dir"
AC_SUBST(HTML_DIR)
dnl enable/disable documentation building
AC_ARG_ENABLE(gtk-doc,
AC_HELP_STRING([--enable-gtk-doc],
[use gtk-doc to build documentation [default=no]]),,
enable_gtk_doc=no)
have_gtk_doc=no
if test x$enable_gtk_doc = xyes; then
if test -z "$PKG_CONFIG"; then
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
fi
if test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists gtk-doc; then
have_gtk_doc=yes
fi
dnl do we want to do a version check?
ifelse([$1],[],,
[gtk_doc_min_version=$1
if test "$have_gtk_doc" = yes; then
AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version])
if $PKG_CONFIG --atleast-version $gtk_doc_min_version gtk-doc; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
have_gtk_doc=no
fi
fi
])
if test "$have_gtk_doc" != yes; then
enable_gtk_doc=no
fi
fi
AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL")
])

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,6 @@ Name: cairo
Description: Multi-platform 2D graphics library
Version: @VERSION@
Requires: fontconfig libpixman @XRENDER_REQUIRES@ @PNG_REQUIRES@ @GLITZ_REQUIRES@
Requires: @FREETYPE_REQUIRES@ libpixman @XRENDER_REQUIRES@ @PNG_REQUIRES@ @GLITZ_REQUIRES@
Libs: @FREETYPE_LIBS@ -L${libdir} -lcairo
Cflags: @FREETYPE_CFLAGS@ -I${includedir}/cairo

View File

@ -39,6 +39,9 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `vasnprintf' function. */
#undef HAVE_VASNPRINTF
/* Name of package */
#undef PACKAGE

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,11 @@
AC_PREREQ(2.54)
AC_INIT(src/cairo.h)
dnl ===========================================================================
# Package version number, (as distinct from shared library version)
CAIRO_VERSION=0.3.0
CAIRO_VERSION=0.4.0
# libtool shared library version
@ -35,6 +37,8 @@ AM_PROG_LIBTOOL
AC_STDC_HEADERS
AC_C_BIGENDIAN
AC_CHECK_FUNCS(vasnprintf)
AC_CHECK_LIBM
LIBS="$LIBS $LIBM"
@ -120,6 +124,50 @@ AC_SUBST(XCB_SURFACE_FEATURE)
dnl ===========================================================================
AC_MSG_CHECKING([for some Win32 platform])
case "$host" in
*-*-mingw*|*-*-cygwin*)
cairo_platform_win32=yes
;;
*)
cairo_platform_win32=no
;;
esac
AC_MSG_RESULT([$cairo_platform_win32])
AC_ARG_ENABLE(win32,
[ --disable-win32 Disable cairo's Microsoft Windows backend],
[use_win32=$enableval], [use_win32="yes"])
if test "x$cairo_platform_win32" != "xyes" ; then
use_win32=no
fi
if test "x$use_win32" = "xyes"; then
CAIRO_LIBS="$CAIRO_LIBS -lgdi32 -lmsimg32"
fi
if test "x$use_win32" != "xyes"; then
WIN32_SURFACE_FEATURE=CAIRO_HAS_NO_WIN32_SURFACE
AM_CONDITIONAL(CAIRO_HAS_WIN32_SURFACE, false)
else
WIN32_SURFACE_FEATURE=CAIRO_HAS_WIN32_SURFACE
AM_CONDITIONAL(CAIRO_HAS_WIN32_SURFACE, true)
fi
if test "x$use_win32" != "xyes"; then
WIN32_FONT_FEATURE=CAIRO_HAS_NO_WIN32_FONT
AM_CONDITIONAL(CAIRO_HAS_WIN32_FONT, false)
else
WIN32_FONT_FEATURE=CAIRO_HAS_WIN32_FONT
AM_CONDITIONAL(CAIRO_HAS_WIN32_FONT, true)
fi
AC_SUBST(WIN32_SURFACE_FEATURE)
AC_SUBST(WIN32_FONT_FEATURE)
dnl ===========================================================================
AC_ARG_ENABLE(ps,
[ --disable-ps Disable cairo's PostScript backend],
[use_ps=$enableval], [use_ps=yes])
@ -140,37 +188,27 @@ AC_SUBST(PS_LIBS)
dnl ===========================================================================
AC_ARG_ENABLE(pdf,
[ --disable-pdf Disable cairo's PDF backend],
[use_pdf=$enableval], [use_pdf=yes])
if test "x$use_pdf" != "xyes"; then
PDF_SURFACE_FEATURE=CAIRO_HAS_NO_PDF_SURFACE
AM_CONDITIONAL(CAIRO_HAS_PDF_SURFACE, false)
else
PDF_SURFACE_FEATURE=CAIRO_HAS_PDF_SURFACE
PDF_LIBS=-lz
AM_CONDITIONAL(CAIRO_HAS_PDF_SURFACE, true)
fi
CAIRO_LIBS="$CAIRO_LIBS $PDF_LIBS"
AC_SUBST(PDF_SURFACE_FEATURE)
AC_SUBST(PDF_LIBS)
dnl ===========================================================================
AC_ARG_ENABLE(png,
[ --disable-png Disable cairo's PNG backend],
[use_png=$enableval], [use_png=yes])
if test "x$use_png" = "xyes"; then
PKG_CHECK_MODULES(PNG, libpng12, [
PNG_REQUIRES=libpng12
use_png=yes], [
PKG_CHECK_MODULES(PNG, libpng10, [
PNG_REQUIRES=libpng10
use_png=yes], [use_png="no (requires libpng http://www.libpng.org)"])])
use_png=no
# libpng13 is GnuWin32's libpng-1.2.8 :-(
for l in libpng12 libpng13 libpng10 ; do
if $PKG_CONFIG --exists $l ; then
PNG_REQUIRES=$l
use_png=yes
break
fi
done
if test "x$use_png" = "xyes" ; then
# Sets PNG_CFLAGS, PNG_LIBS
PKG_CHECK_MODULES(PNG, $PNG_REQUIRES)
else
AC_MSG_WARN([Could not find libpng in the pkg-config search path])
fi
fi
if test "x$use_png" != "xyes"; then
@ -194,7 +232,7 @@ AC_ARG_ENABLE(glitz,
[use_glitz=$enableval], [use_glitz=yes])
if test "x$use_glitz" = "xyes"; then
PKG_CHECK_MODULES(GLITZ, glitz >= 0.3.0, [
PKG_CHECK_MODULES(GLITZ, glitz >= 0.4.0, [
GLITZ_REQUIRES=glitz
use_glitz=yes], [use_glitz="no (requires glitz http://freedesktop.org/software/glitz)"])
fi
@ -229,7 +267,7 @@ AC_SUBST(SANITY_CHECKING_FEATURE)
dnl ===========================================================================
PKG_CHECK_MODULES(PIXMAN, libpixman >= 0.1.2)
PKG_CHECK_MODULES(PIXMAN, libpixman >= 0.1.4)
CAIRO_CFLAGS="$CAIRO_CFLAGS $PIXMAN_CFLAGS"
CAIRO_LIBS="$CAIRO_LIBS $PIXMAN_LIBS"
@ -285,9 +323,11 @@ if test "x$use_freetype" = "xyes"; then
AC_MSG_RESULT($FREETYPE_VERSION - OK)
FREETYPE_CFLAGS=`$FREETYPE_CONFIG --cflags`
FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
FREETYPE_REQUIRES=fontconfig
AC_SUBST(FREETYPE_CFLAGS)
AC_SUBST(FREETYPE_LIBS)
AC_SUBST(FREETYPE_REQUIRES)
fi
CAIRO_CFLAGS="$CAIRO_CFLAGS $FREETYPE_CFLAGS"
@ -304,6 +344,31 @@ AC_SUBST(FT_FONT_FEATURE)
dnl ===========================================================================
AC_ARG_ENABLE(pdf,
[ --disable-pdf Disable cairo's PDF backend],
[use_pdf=$enableval], [use_pdf=yes])
if test x"$use_freetype" != "xyes" ; then
AC_MSG_WARN([PDF backend requires FreeType, disabling])
use_pdf=no
fi
if test "x$use_pdf" != "xyes"; then
PDF_SURFACE_FEATURE=CAIRO_HAS_NO_PDF_SURFACE
AM_CONDITIONAL(CAIRO_HAS_PDF_SURFACE, false)
else
PDF_SURFACE_FEATURE=CAIRO_HAS_PDF_SURFACE
PDF_LIBS=-lz
AM_CONDITIONAL(CAIRO_HAS_PDF_SURFACE, true)
fi
CAIRO_LIBS="$CAIRO_LIBS $PDF_LIBS"
AC_SUBST(PDF_SURFACE_FEATURE)
AC_SUBST(PDF_LIBS)
dnl ===========================================================================
dnl This check should default to 'yes' once we have code to actually
dnl check for the atsui font backend.
@ -346,6 +411,9 @@ AC_SUBST(CAIRO_CFLAGS)
AC_SUBST(CAIRO_LIBS)
dnl ===========================================================================
dnl Check for gtk-doc and docbook
GTK_DOC_CHECK([1.3])
AC_OUTPUT([
cairo.pc
@ -353,6 +421,8 @@ Makefile
src/Makefile
src/cairo-features.h
test/Makefile
doc/Makefile
doc/public/Makefile
])
dnl ===========================================================================
@ -362,21 +432,25 @@ echo "cairo will be compiled with the following surface backends:"
echo " Xlib: $use_xlib"
echo " Quartz: $use_quartz"
echo " XCB: $use_xcb"
echo " Win32: $use_win32"
echo " PostScript: $use_ps"
echo " PDF: $use_pdf"
echo " PNG: $use_png"
echo " glitz: $use_glitz"
echo ""
echo "and the following font backends:"
echo " freetype: $use_freetype"
echo " atsui: $use_atsui"
echo " FreeType: $use_freetype"
echo " Win32: $use_win32"
echo " ATSUI: $use_atsui"
echo ""
if test x"$use_freetype" != "xyes" && \
test x"$use_win32" != "xyes" && \
test x"$use_atsui" != "xyes" ; then
AC_MSG_ERROR([Cairo requires at least one font backend.
Please install freetype and fontconfig, then try again:
http://freetype.org/ http://fontconfig.org/
])
Please install freetype and fontconfig, then try again:
http://freetype.org/ http://fontconfig.org/
])
fi

View File

@ -0,0 +1,2 @@
SUBDIRS=public

View File

@ -0,0 +1,526 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = doc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
install-recursive installcheck-recursive installdirs-recursive \
pdf-recursive ps-recursive uninstall-info-recursive \
uninstall-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_HAS_ATSUI_FONT_FALSE = @CAIRO_HAS_ATSUI_FONT_FALSE@
CAIRO_HAS_ATSUI_FONT_TRUE = @CAIRO_HAS_ATSUI_FONT_TRUE@
CAIRO_HAS_FT_FONT_FALSE = @CAIRO_HAS_FT_FONT_FALSE@
CAIRO_HAS_FT_FONT_TRUE = @CAIRO_HAS_FT_FONT_TRUE@
CAIRO_HAS_GLITZ_SURFACE_FALSE = @CAIRO_HAS_GLITZ_SURFACE_FALSE@
CAIRO_HAS_GLITZ_SURFACE_TRUE = @CAIRO_HAS_GLITZ_SURFACE_TRUE@
CAIRO_HAS_PDF_SURFACE_FALSE = @CAIRO_HAS_PDF_SURFACE_FALSE@
CAIRO_HAS_PDF_SURFACE_TRUE = @CAIRO_HAS_PDF_SURFACE_TRUE@
CAIRO_HAS_PNG_SURFACE_FALSE = @CAIRO_HAS_PNG_SURFACE_FALSE@
CAIRO_HAS_PNG_SURFACE_TRUE = @CAIRO_HAS_PNG_SURFACE_TRUE@
CAIRO_HAS_PS_SURFACE_FALSE = @CAIRO_HAS_PS_SURFACE_FALSE@
CAIRO_HAS_PS_SURFACE_TRUE = @CAIRO_HAS_PS_SURFACE_TRUE@
CAIRO_HAS_QUARTZ_SURFACE_FALSE = @CAIRO_HAS_QUARTZ_SURFACE_FALSE@
CAIRO_HAS_QUARTZ_SURFACE_TRUE = @CAIRO_HAS_QUARTZ_SURFACE_TRUE@
CAIRO_HAS_WIN32_FONT_FALSE = @CAIRO_HAS_WIN32_FONT_FALSE@
CAIRO_HAS_WIN32_FONT_TRUE = @CAIRO_HAS_WIN32_FONT_TRUE@
CAIRO_HAS_WIN32_SURFACE_FALSE = @CAIRO_HAS_WIN32_SURFACE_FALSE@
CAIRO_HAS_WIN32_SURFACE_TRUE = @CAIRO_HAS_WIN32_SURFACE_TRUE@
CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@
ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_LIBS = @FREETYPE_LIBS@
FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_LIBS = @GLITZ_LIBS@
GLITZ_REQUIRES = @GLITZ_REQUIRES@
GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@
HTML_DIR = @HTML_DIR@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDF_LIBS = @PDF_LIBS@
PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
PIXMAN_LIBS = @PIXMAN_LIBS@
PKG_CONFIG = @PKG_CONFIG@
PNG_CFLAGS = @PNG_CFLAGS@
PNG_LIBS = @PNG_LIBS@
PNG_REQUIRES = @PNG_REQUIRES@
PNG_SURFACE_FEATURE = @PNG_SURFACE_FEATURE@
PS_LIBS = @PS_LIBS@
PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SANITY_CHECKING_FEATURE = @SANITY_CHECKING_FEATURE@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
XCB_CFLAGS = @XCB_CFLAGS@
XCB_LIBS = @XCB_LIBS@
XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
XRENDER_CFLAGS = @XRENDER_CFLAGS@
XRENDER_LIBS = @XRENDER_LIBS@
XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
SUBDIRS = public
all: all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
distdir=`$(am__cd) $(distdir) && pwd`; \
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$top_distdir" \
distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-recursive
all-am: Makefile
installdirs: installdirs-recursive
installdirs-am:
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool \
distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
info: info-recursive
info-am:
install-data-am:
install-exec-am:
install-info: install-info-recursive
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
clean clean-generic clean-libtool clean-recursive ctags \
ctags-recursive distclean distclean-generic distclean-libtool \
distclean-recursive distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-man install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic maintainer-clean-recursive \
mostlyclean mostlyclean-generic mostlyclean-libtool \
mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,46 @@
## Process this file with automake to create Makefile.in.
AUTOMAKE_OPTIONS = 1.7
# The name of the module.
DOC_MODULE=cairo
# The top-level SGML file.
DOC_MAIN_SGML_FILE=cairo-docs.xml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS=--deprecated-guards="CAIRO_DISABLE_DEPRECATED"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR=../../src
# Used for dependencies
HFILE_GLOB=$(top_srcdir)/src/*.h
CFILE_GLOB=$(top_srcdir)/src/*.c $(top_srcdir)/src/*.h
# Headers to ignore
IGNORE_HFILES= \
cairo-features.h \
cairo-ft-private.h \
cairo-win32-private.h \
cairoint.h \
cairo-wideint.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
INCLUDES =
GTKDOC_LIBS =
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS=--sgml-mode --output-format=xml
# Non-autogenerated SGML files to be included in $(DOC_MAIN_SGML_FILE)
content_files =
# Images to copy into HTML directory
HTML_IMAGES =
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS=
include $(top_srcdir)/gtk-doc.make

View File

@ -0,0 +1,584 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
#
# *** NOTE *** this file is checked into CVS for convenience only.
# DO NOT EDIT. Rather get changes into upstream gtk-doc and then
# update this version from the gtk-doc version.
#
# -*- mode: makefile -*-
####################################
# Everything below here is generic #
####################################
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/gtk-doc.make
subdir = doc/public
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
ATSUI_FONT_FEATURE = @ATSUI_FONT_FEATURE@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_HAS_ATSUI_FONT_FALSE = @CAIRO_HAS_ATSUI_FONT_FALSE@
CAIRO_HAS_ATSUI_FONT_TRUE = @CAIRO_HAS_ATSUI_FONT_TRUE@
CAIRO_HAS_FT_FONT_FALSE = @CAIRO_HAS_FT_FONT_FALSE@
CAIRO_HAS_FT_FONT_TRUE = @CAIRO_HAS_FT_FONT_TRUE@
CAIRO_HAS_GLITZ_SURFACE_FALSE = @CAIRO_HAS_GLITZ_SURFACE_FALSE@
CAIRO_HAS_GLITZ_SURFACE_TRUE = @CAIRO_HAS_GLITZ_SURFACE_TRUE@
CAIRO_HAS_PDF_SURFACE_FALSE = @CAIRO_HAS_PDF_SURFACE_FALSE@
CAIRO_HAS_PDF_SURFACE_TRUE = @CAIRO_HAS_PDF_SURFACE_TRUE@
CAIRO_HAS_PNG_SURFACE_FALSE = @CAIRO_HAS_PNG_SURFACE_FALSE@
CAIRO_HAS_PNG_SURFACE_TRUE = @CAIRO_HAS_PNG_SURFACE_TRUE@
CAIRO_HAS_PS_SURFACE_FALSE = @CAIRO_HAS_PS_SURFACE_FALSE@
CAIRO_HAS_PS_SURFACE_TRUE = @CAIRO_HAS_PS_SURFACE_TRUE@
CAIRO_HAS_QUARTZ_SURFACE_FALSE = @CAIRO_HAS_QUARTZ_SURFACE_FALSE@
CAIRO_HAS_QUARTZ_SURFACE_TRUE = @CAIRO_HAS_QUARTZ_SURFACE_TRUE@
CAIRO_HAS_WIN32_FONT_FALSE = @CAIRO_HAS_WIN32_FONT_FALSE@
CAIRO_HAS_WIN32_FONT_TRUE = @CAIRO_HAS_WIN32_FONT_TRUE@
CAIRO_HAS_WIN32_SURFACE_FALSE = @CAIRO_HAS_WIN32_SURFACE_FALSE@
CAIRO_HAS_WIN32_SURFACE_TRUE = @CAIRO_HAS_WIN32_SURFACE_TRUE@
CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
CAIRO_HAS_XLIB_SURFACE_TRUE = @CAIRO_HAS_XLIB_SURFACE_TRUE@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@
ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_LIBS = @FREETYPE_LIBS@
FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_LIBS = @GLITZ_LIBS@
GLITZ_REQUIRES = @GLITZ_REQUIRES@
GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@
HTML_DIR = @HTML_DIR@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PDF_LIBS = @PDF_LIBS@
PDF_SURFACE_FEATURE = @PDF_SURFACE_FEATURE@
PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
PIXMAN_LIBS = @PIXMAN_LIBS@
PKG_CONFIG = @PKG_CONFIG@
PNG_CFLAGS = @PNG_CFLAGS@
PNG_LIBS = @PNG_LIBS@
PNG_REQUIRES = @PNG_REQUIRES@
PNG_SURFACE_FEATURE = @PNG_SURFACE_FEATURE@
PS_LIBS = @PS_LIBS@
PS_SURFACE_FEATURE = @PS_SURFACE_FEATURE@
QUARTZ_SURFACE_FEATURE = @QUARTZ_SURFACE_FEATURE@
RANLIB = @RANLIB@
SANITY_CHECKING_FEATURE = @SANITY_CHECKING_FEATURE@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
XCB_CFLAGS = @XCB_CFLAGS@
XCB_LIBS = @XCB_LIBS@
XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
XLIB_SURFACE_FEATURE = @XLIB_SURFACE_FEATURE@
XRENDER_CFLAGS = @XRENDER_CFLAGS@
XRENDER_LIBS = @XRENDER_LIBS@
XRENDER_REQUIRES = @XRENDER_REQUIRES@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
AUTOMAKE_OPTIONS = 1.7
# The name of the module.
DOC_MODULE = cairo
# The top-level SGML file.
DOC_MAIN_SGML_FILE = cairo-docs.xml
# Extra options to supply to gtkdoc-scan
SCAN_OPTIONS = --deprecated-guards="CAIRO_DISABLE_DEPRECATED"
# The directory containing the source code. Relative to $(srcdir)
DOC_SOURCE_DIR = ../../src
# Used for dependencies
HFILE_GLOB = $(top_srcdir)/src/*.h
CFILE_GLOB = $(top_srcdir)/src/*.c $(top_srcdir)/src/*.h
# Headers to ignore
IGNORE_HFILES = \
cairo-features.h \
cairo-ft-private.h \
cairo-win32-private.h \
cairoint.h \
cairo-wideint.h
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
INCLUDES =
GTKDOC_LIBS =
# Extra options to supply to gtkdoc-mkdb
MKDB_OPTIONS = --sgml-mode --output-format=xml
# Non-autogenerated SGML files to be included in $(DOC_MAIN_SGML_FILE)
content_files =
# Images to copy into HTML directory
HTML_IMAGES =
# Extra options to supply to gtkdoc-fixref
FIXXREF_OPTIONS =
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
@GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
@GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
# We set GPATH here; this gives us semantics for GNU make
# which are more like other make's VPATH, when it comes to
# whether a source that is a target of one rule is then
# searched for in VPATH/GPATH.
#
GPATH = $(srcdir)
TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)
EXTRA_DIST = \
$(content_files) \
$(HTML_IMAGES) \
$(DOC_MAIN_SGML_FILE) \
$(DOC_MODULE).types \
$(DOC_MODULE)-sections.txt \
$(DOC_MODULE)-overrides.txt
DOC_STAMPS = scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
$(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
SCANOBJ_FILES = \
$(DOC_MODULE).args \
$(DOC_MODULE).hierarchy \
$(DOC_MODULE).interfaces \
$(DOC_MODULE).prerequisites \
$(DOC_MODULE).signals
CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS)
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/public/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/public/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
$(mkdir_p) $(distdir)/../..
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" distdir="$(distdir)" \
dist-hook
check-am: all-am
check: check-am
all-am: Makefile all-local
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-local mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-data-local
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic \
maintainer-clean-local
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-local
.PHONY: all all-am all-local check check-am clean clean-generic \
clean-libtool clean-local dist-hook distclean \
distclean-generic distclean-libtool distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-data-local install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic \
maintainer-clean-local mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
uninstall-info-am uninstall-local
@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp
#### scan ####
@ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
@ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning header files ***'
@ENABLE_GTK_DOC_TRUE@ @-chmod -R u+w $(srcdir)
@ENABLE_GTK_DOC_TRUE@ if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \
@ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
@ENABLE_GTK_DOC_TRUE@ else \
@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) ; \
@ENABLE_GTK_DOC_TRUE@ for i in $(SCANOBJ_FILES) ; do \
@ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \
@ENABLE_GTK_DOC_TRUE@ done \
@ENABLE_GTK_DOC_TRUE@ fi
@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
@ENABLE_GTK_DOC_TRUE@ touch scan-build.stamp
@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
#### templates ####
@ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
@ENABLE_GTK_DOC_TRUE@ @echo '*** Rebuilding template files ***'
@ENABLE_GTK_DOC_TRUE@ @-chmod -R u+w $(srcdir)
@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
@ENABLE_GTK_DOC_TRUE@ touch tmpl-build.stamp
@ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
#### xml ####
@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml
@ENABLE_GTK_DOC_TRUE@ @echo '*** Building XML ***'
@ENABLE_GTK_DOC_TRUE@ @-chmod -R u+w $(srcdir)
@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && \
@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml $(MKDB_OPTIONS)
@ENABLE_GTK_DOC_TRUE@ touch sgml-build.stamp
@ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
#### html ####
@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
@ENABLE_GTK_DOC_TRUE@ @echo '*** Building HTML ***'
@ENABLE_GTK_DOC_TRUE@ @-chmod -R u+w $(srcdir)
@ENABLE_GTK_DOC_TRUE@ rm -rf $(srcdir)/html
@ENABLE_GTK_DOC_TRUE@ mkdir $(srcdir)/html
@ENABLE_GTK_DOC_TRUE@ cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
@ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
@ENABLE_GTK_DOC_TRUE@ @echo '-- Fixing Crossreferences'
@ENABLE_GTK_DOC_TRUE@ cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
@ENABLE_GTK_DOC_TRUE@ touch html-build.stamp
@ENABLE_GTK_DOC_FALSE@all-local:
##############
clean-local:
rm -f *~ *.bak
rm -rf .libs
maintainer-clean-local: clean
cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
install-data-local:
installfiles=`echo $(srcdir)/html/*`; \
if test "$$installfiles" = '$(srcdir)/html/*'; \
then echo '-- Nothing to install' ; \
else \
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \
for i in $$installfiles; do \
echo '-- Installing '$$i ; \
$(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
done; \
echo '-- Installing $(srcdir)/html/index.sgml' ; \
$(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \
fi
uninstall-local:
rm -f $(DESTDIR)$(TARGET_DIR)/*
#
# Require gtk-doc when making dist
#
@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc:
@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc:
@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist"
@ENABLE_GTK_DOC_FALSE@ @false
# XXX: Before this was:
# dist-hook: dist-check-gtkdoc dist-hook-local
# which seems reasonable, but for some reason the dist-check-gtkdoc
# was always failing on me, even though I do have gtk-doc installed
# and it is successfully building the documentation.
dist-hook: dist-hook-local
mkdir $(distdir)/tmpl
mkdir $(distdir)/xml
mkdir $(distdir)/html
-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-cp $(srcdir)/xml/*.xml $(distdir)/xml
-cp $(srcdir)/html/* $(distdir)/html
.PHONY : dist-hook-local
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,31 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book lang="en" id="libglade" xmlns:xi="http://www.w3.org/2003/XInclude">
<title>Cairo: A Vector Graphics Library</title>
<part>
<title>Tutorial</title>
</part>
<part>
<title>Reference</title>
<xi:include href="xml/cairo.xml"/>
<xi:include href="xml/cairo-surface.xml"/>
<xi:include href="xml/cairo-pattern.xml"/>
<xi:include href="xml/cairo-matrix.xml"/>
<xi:include href="xml/cairo-atsui.xml"/>
<xi:include href="xml/cairo-ft.xml"/>
<xi:include href="xml/cairo-glitz.xml"/>
<xi:include href="xml/cairo-pdf.xml"/>
<xi:include href="xml/cairo-png.xml"/>
<xi:include href="xml/cairo-ps.xml"/>
<xi:include href="xml/cairo-quartz.xml"/>
<xi:include href="xml/cairo-win32.xml"/>
<xi:include href="xml/cairo-xcb.xml"/>
<xi:include href="xml/cairo-xlib.xml"/>
</part>
</book>

View File

@ -0,0 +1,251 @@
<SECTION>
<FILE>cairo-atsui</FILE>
<TITLE>ATSUI Fonts</TITLE>
cairo_atsui_font_create
</SECTION>
<SECTION>
<FILE>cairo-ft</FILE>
<TITLE>FreeType Fonts</TITLE>
cairo_ft_font_create
cairo_ft_font_create_for_ft_face
cairo_ft_font_lock_face
cairo_ft_font_unlock_face
cairo_ft_font_get_pattern
</SECTION>
<SECTION>
<FILE>cairo-glitz</FILE>
<TITLE>Glitz backend</TITLE>
cairo_set_target_glitz
cairo_glitz_surface_create
</SECTION>
<SECTION>
<FILE>cairo-pdf</FILE>
<TITLE>PDF Backend</TITLE>
cairo_set_target_pdf
cairo_pdf_surface_create
</SECTION>
<SECTION>
<FILE>cairo-png</FILE>
<TITLE>PNG Backend</TITLE>
cairo_set_target_png
cairo_png_surface_create
</SECTION>
<SECTION>
<FILE>cairo-ps</FILE>
<TITLE>PS Backend</TITLE>
cairo_set_target_ps
cairo_ps_surface_create
</SECTION>
<SECTION>
<FILE>cairo-quartz</FILE>
<TITLE>Quartz Backend</TITLE>
cairo_set_target_quartz_context
cairo_quartz_surface_create
</SECTION>
<SECTION>
<FILE>cairo-win32</FILE>
<TITLE>Microsoft Windows Backend</TITLE>
cairo_set_target_win32
cairo_win32_surface_create
cairo_win32_font_create_for_logfontw
cairo_win32_font_select_font
cairo_win32_font_done_font
cairo_win32_font_get_scale_factor
</SECTION>
<SECTION>
<FILE>cairo-xcb</FILE>
<TITLE>XCB Backend</TITLE>
cairo_set_target_xcb
</SECTION>
<SECTION>
<FILE>cairo-xlib</FILE>
<TITLE>XLib Backend</TITLE>
cairo_set_target_drawable
cairo_xlib_surface_create
</SECTION>
<SECTION>
<FILE>cairo-surface</FILE>
<TITLE>cairo_surface_t</TITLE>
cairo_surface_t
cairo_surface_create_for_image
cairo_surface_create_similar
cairo_surface_reference
cairo_surface_destroy
cairo_surface_set_repeat
cairo_surface_set_matrix
cairo_surface_get_matrix
cairo_surface_set_filter
cairo_surface_get_filter
</SECTION>
<SECTION>
<FILE>cairo-pattern</FILE>
<TITLE>cairo_pattern_t</TITLE>
cairo_pattern_t
cairo_pattern_create_for_surface
cairo_pattern_create_linear
cairo_pattern_create_radial
cairo_pattern_reference
cairo_pattern_destroy
cairo_pattern_add_color_stop
cairo_pattern_set_matrix
cairo_pattern_get_matrix
cairo_extend_t
cairo_pattern_set_extend
cairo_pattern_get_extend
cairo_pattern_set_filter
cairo_pattern_get_filter
</SECTION>
<SECTION>
<FILE>cairo-matrix</FILE>
<TITLE>cairo_matrix_t</TITLE>
cairo_matrix_t
cairo_matrix_create
cairo_matrix_destroy
cairo_matrix_copy
cairo_matrix_set_identity
cairo_matrix_set_affine
cairo_matrix_get_affine
cairo_matrix_translate
cairo_matrix_scale
cairo_matrix_rotate
cairo_matrix_invert
cairo_matrix_multiply
cairo_matrix_transform_distance
cairo_matrix_transform_point
</SECTION>
<SECTION>
<FILE>cairo</FILE>
<TITLE>cairo_t</TITLE>
cairo_t
cairo_create
cairo_reference
cairo_destroy
cairo_save
cairo_restore
cairo_copy
cairo_set_target_surface
cairo_format_t
cairo_set_target_image
cairo_operator_t
cairo_set_operator
cairo_set_rgb_color
cairo_set_pattern
cairo_set_alpha
cairo_set_tolerance
cairo_fill_rule_t
cairo_set_fill_rule
cairo_set_line_width
cairo_line_cap_t
cairo_set_line_cap
cairo_line_join_t
cairo_set_line_join
cairo_set_dash
cairo_set_miter_limit
cairo_translate
cairo_scale
cairo_rotate
cairo_concat_matrix
cairo_set_matrix
cairo_default_matrix
cairo_identity_matrix
cairo_transform_point
cairo_transform_distance
cairo_inverse_transform_point
cairo_inverse_transform_distance
cairo_new_path
cairo_move_to
cairo_line_to
cairo_curve_to
cairo_arc
cairo_arc_negative
cairo_rel_move_to
cairo_rel_line_to
cairo_rel_curve_to
cairo_rectangle
cairo_close_path
cairo_stroke
cairo_fill
cairo_copy_page
cairo_show_page
cairo_in_stroke
cairo_in_fill
cairo_bool_t
cairo_stroke_extents
cairo_fill_extents
cairo_init_clip
cairo_clip
cairo_font_t
cairo_glyph_t
cairo_text_extents_t
cairo_font_extents_t
cairo_font_slant_t
cairo_font_weight_t
cairo_select_font
cairo_scale_font
cairo_transform_font
cairo_show_text
cairo_show_glyphs
cairo_current_font
cairo_current_font_extents
cairo_set_font
cairo_text_extents
cairo_glyph_extents
cairo_text_path
cairo_glyph_path
cairo_font_reference
cairo_font_destroy
cairo_font_extents
cairo_font_glyph_extents
cairo_show_surface
cairo_current_operator
cairo_current_rgb_color
cairo_current_pattern
cairo_current_alpha
cairo_current_tolerance
cairo_current_point
cairo_current_fill_rule
cairo_current_line_width
cairo_current_line_cap
cairo_current_line_join
cairo_current_miter_limit
cairo_current_matrix
cairo_current_target_surface
cairo_current_path
cairo_current_path_flat
cairo_status_t
cairo_status
cairo_status_string
cairo_filter_t
cairo_image_surface_create
cairo_image_surface_create_for_data
<SUBSECTION Private>
CAIRO_BEGIN_DECLS
CAIRO_END_DECLS
cairo_get_operator
cairo_get_rgb_color
cairo_get_alpha
cairo_get_tolerance
cairo_get_current_point
cairo_get_fill_rule
cairo_get_line_width
cairo_get_line_cap
cairo_get_line_join
cairo_get_miter_limit
cairo_get_matrix
cairo_get_target_surface
cairo_get_status
cairo_get_status_string
</SECTION>

View File

View File

@ -0,0 +1,14 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>ATSUI Fonts</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-cairo-matrix-t.html" title="cairo_matrix_t"><link rel="next" href="cairo-FreeType-Fonts.html" title="FreeType Fonts"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-cairo-matrix-t.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-FreeType-Fonts.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-ATSUI-Fonts"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">ATSUI Fonts</span></h2><p>ATSUI Fonts &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* <a href="cairo-ATSUI-Fonts.html#cairo-atsui-font-create">cairo_atsui_font_create</a> (ATSUStyle style);
</pre></div><div class="refsect1" lang="en"><a name="id2707012"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2698366"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2714083"></a><h3><a name="cairo-atsui-font-create"></a>cairo_atsui_font_create ()</h3><a class="indexterm" name="id2716792"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* cairo_atsui_font_create (ATSUStyle style);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>style</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-cairo-matrix-t.html"><b>&lt;&lt; cairo_matrix_t</b></a></td><td align="right"><a accesskey="n" href="cairo-FreeType-Fonts.html"><b>FreeType Fonts &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,114 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>FreeType Fonts</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-ATSUI-Fonts.html" title="ATSUI Fonts"><link rel="next" href="cairo-Glitz-backend.html" title="Glitz backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-ATSUI-Fonts.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-Glitz-backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-FreeType-Fonts"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">FreeType Fonts</span></h2><p>FreeType Fonts &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* <a href="cairo-FreeType-Fonts.html#cairo-ft-font-create">cairo_ft_font_create</a> (FcPattern *pattern,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *scale);
<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* <a href="cairo-FreeType-Fonts.html#cairo-ft-font-create-for-ft-face">cairo_ft_font_create_for_ft_face</a>
(FT_Face face,
int load_flags,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *scale);
FT_Face <a href="cairo-FreeType-Fonts.html#cairo-ft-font-lock-face">cairo_ft_font_lock_face</a> (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *ft_font);
void <a href="cairo-FreeType-Fonts.html#cairo-ft-font-unlock-face">cairo_ft_font_unlock_face</a> (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *ft_font);
FcPattern* <a href="cairo-FreeType-Fonts.html#cairo-ft-font-get-pattern">cairo_ft_font_get_pattern</a> (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *ft_font);
</pre></div><div class="refsect1" lang="en"><a name="id2733938"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2733947"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2733953"></a><h3><a name="cairo-ft-font-create"></a>cairo_ft_font_create ()</h3><a class="indexterm" name="id2733961"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* cairo_ft_font_create (FcPattern *pattern,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *scale);</pre><p>
Creates a new font for the FreeType font backend based on a
fontconfig pattern. This font can then be used with
<a href="cairo-cairo-t.html#cairo-set-font"><tt class="function">cairo_set_font()</tt></a>, <a href="cairo-cairo-t.html#cairo-font-glyph-extents"><tt class="function">cairo_font_glyph_extents()</tt></a>, or FreeType backend
specific functions like <a href="cairo-FreeType-Fonts.html#cairo-ft-font-lock-face"><tt class="function">cairo_ft_font_lock_face()</tt></a>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td> A fully resolved fontconfig
pattern. A pattern can be resolved, by, among other things, calling
<tt class="function">FcConfigSubstitute()</tt>, <tt class="function">FcDefaultSubstitute()</tt>, then
<tt class="function">FcFontMatch()</tt>. Cairo will call <tt class="function">FcPatternReference()</tt> on this
pattern, so you should not further modify the pattern, but you can
release your reference to the pattern with <tt class="function">FcPatternDestroy()</tt> if
you no longer need to access it.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>scale</tt></i> :</span></td><td> The scale at which this font will be used. The
scale is given by multiplying the font matrix (see
<a href="cairo-cairo-t.html#cairo-transform-font"><tt class="function">cairo_transform_font()</tt></a>) by the current transformation matrix.
The translation elements of the resulting matrix are ignored.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> a newly created <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a>. Free with
<a href="cairo-cairo-t.html#cairo-font-destroy"><tt class="function">cairo_font_destroy()</tt></a> when you are done using it.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2718712"></a><h3><a name="cairo-ft-font-create-for-ft-face"></a>cairo_ft_font_create_for_ft_face ()</h3><a class="indexterm" name="id2718720"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* cairo_ft_font_create_for_ft_face
(FT_Face face,
int load_flags,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *scale);</pre><p>
Creates a new font forthe FreeType font backend from a pre-opened
FreeType face. This font can then be used with <a href="cairo-cairo-t.html#cairo-set-font"><tt class="function">cairo_set_font()</tt></a>,
<a href="cairo-cairo-t.html#cairo-font-glyph-extents"><tt class="function">cairo_font_glyph_extents()</tt></a>, or FreeType backend specific
functions like <a href="cairo-FreeType-Fonts.html#cairo-ft-font-lock-face"><tt class="function">cairo_ft_font_lock_face()</tt></a> Cairo will determine the
pixel size and transformation from the <i class="parameter"><tt>scale</tt></i> parameter and call
<tt class="function">FT_Set_Transform()</tt> and <tt class="function">FT_Set_Pixel_Sizes()</tt>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>face</tt></i> :</span></td><td> A FreeType face object, already opened. This must
be kept around until the font object's refcount drops to
zero and it is freed. The font object can be kept alive by
internal caching, so it's safest to keep the face object
around forever.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>load_flags</tt></i> :</span></td><td> The flags to pass to FT_Load_Glyph when loading
glyphs from the font. These flags control aspects of
rendering such as hinting and antialiasing. See the FreeType
docs for full information.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>scale</tt></i> :</span></td><td> The scale at which this font will be used. The
scale is given by multiplying the font matrix (see
<a href="cairo-cairo-t.html#cairo-transform-font"><tt class="function">cairo_transform_font()</tt></a>) by the current transformation matrix.
The translation elements of the resulting matrix are ignored.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> a newly created <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a>. Free with
<a href="cairo-cairo-t.html#cairo-font-destroy"><tt class="function">cairo_font_destroy()</tt></a> when you are done using it.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2741214"></a><h3><a name="cairo-ft-font-lock-face"></a>cairo_ft_font_lock_face ()</h3><a class="indexterm" name="id2741222"></a><pre class="programlisting">FT_Face cairo_ft_font_lock_face (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *ft_font);</pre><p>
<a href="cairo-FreeType-Fonts.html#cairo-ft-font-lock-face"><tt class="function">cairo_ft_font_lock_face()</tt></a> gets the <span class="type">FT_Face</span> object from a FreeType
backend font and scales it appropriately for the font. You must
release the face with <a href="cairo-FreeType-Fonts.html#cairo-ft-font-unlock-face"><tt class="function">cairo_ft_font_unlock_face()</tt></a>
when you are done using it. Since the <span class="type">FT_Face</span> object can be
shared between multiple <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a> objects, you must not
lock any other font objects until you unlock this one. A count is
kept of the number of times <a href="cairo-FreeType-Fonts.html#cairo-ft-font-lock-face"><tt class="function">cairo_ft_font_lock_face()</tt></a> is
called. <a href="cairo-FreeType-Fonts.html#cairo-ft-font-unlock-face"><tt class="function">cairo_ft_font_unlock_face()</tt></a> must be called the same number
of times.
</p><p>
You must be careful when using this function in a library or in a
threaded application, because other threads may lock faces that
share the same <span class="type">FT_Face</span> object. For this reason, you must call
<tt class="function">cairo_ft_lock()</tt> before locking any face objects, and
<tt class="function">cairo_ft_unlock()</tt> after you are done. (These functions are not yet
implemented, so this function cannot be currently safely used in a
threaded application.)</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>ft_font</tt></i> :</span></td><td> A <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a> from the FreeType font backend. Such an
object can be created with <a href="cairo-FreeType-Fonts.html#cairo-ft-font-create"><tt class="function">cairo_ft_font_create()</tt></a> or
<a href="cairo-FreeType-Fonts.html#cairo-ft-font-create-for-ft-face"><tt class="function">cairo_ft_font_create_for_ft_face()</tt></a>. On some platforms the font from
<a href="cairo-cairo-t.html#cairo-current-font"><tt class="function">cairo_current_font()</tt></a> will also be a FreeType font, but using this
functionality with fonts you don't create yourself is not
recommended.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> The <span class="type">FT_Face</span> object for <i class="parameter"><tt>font</tt></i>, scaled appropriately.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2737382"></a><h3><a name="cairo-ft-font-unlock-face"></a>cairo_ft_font_unlock_face ()</h3><a class="indexterm" name="id2737391"></a><pre class="programlisting">void cairo_ft_font_unlock_face (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *ft_font);</pre><p>
Releases a face obtained with <a href="cairo-FreeType-Fonts.html#cairo-ft-font-lock-face"><tt class="function">cairo_ft_font_lock_face()</tt></a>. See the
documentation for that function for full details.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>ft_font</tt></i> :</span></td><td> A <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a> from the FreeType font backend. Such an
object can be created with <a href="cairo-FreeType-Fonts.html#cairo-ft-font-create"><tt class="function">cairo_ft_font_create()</tt></a> or
<a href="cairo-FreeType-Fonts.html#cairo-ft-font-create-for-ft-face"><tt class="function">cairo_ft_font_create_for_ft_face()</tt></a>. On some platforms the font from
<a href="cairo-cairo-t.html#cairo-current-font"><tt class="function">cairo_current_font()</tt></a> will also be a FreeType font, but using this
functionality with fonts you don't create yourself is not
recommended.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2737467"></a><h3><a name="cairo-ft-font-get-pattern"></a>cairo_ft_font_get_pattern ()</h3><a class="indexterm" name="id2737476"></a><pre class="programlisting">FcPattern* cairo_ft_font_get_pattern (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *ft_font);</pre><p>
<a href="cairo-FreeType-Fonts.html#cairo-ft-font-get-pattern"><tt class="function">cairo_ft_font_get_pattern()</tt></a> gets the <span class="type">FcPattern</span> for a FreeType
backend font.
</p><p>
Return value: The <span class="type">FcPattenr</span> for <i class="parameter"><tt>font</tt></i>. The return value is owned
by the font, so you must not modify it, and must call
<tt class="function">FcPatternReference()</tt> to keep a persistant reference to the
pattern. If the font was created with <a href="cairo-FreeType-Fonts.html#cairo-ft-font-create-for-ft-face"><tt class="function">cairo_ft_font_create_for_ft_face()</tt></a></p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>ft_font</tt></i> :</span></td><td> A <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a> from the FreeType font backend. Such an
object can be created with <a href="cairo-FreeType-Fonts.html#cairo-ft-font-create"><tt class="function">cairo_ft_font_create()</tt></a> or
<a href="cairo-FreeType-Fonts.html#cairo-ft-font-create-for-ft-face"><tt class="function">cairo_ft_font_create_for_ft_face()</tt></a>. On some platforms the font from
<a href="cairo-cairo-t.html#cairo-current-font"><tt class="function">cairo_current_font()</tt></a> will also be a FreeType font, but using this
functionality with fonts you don't create yourself is not
recommended.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">NULL</tt>.
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-ATSUI-Fonts.html"><b>&lt;&lt; ATSUI Fonts</b></a></td><td align="right"><a accesskey="n" href="cairo-Glitz-backend.html"><b>Glitz backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,23 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Glitz backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-FreeType-Fonts.html" title="FreeType Fonts"><link rel="next" href="cairo-PDF-Backend.html" title="PDF Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-FreeType-Fonts.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-PDF-Backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-Glitz-backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">Glitz backend</span></h2><p>Glitz backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-Glitz-backend.html#cairo-set-target-glitz">cairo_set_target_glitz</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
glitz_surface_t *surface);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-Glitz-backend.html#cairo-glitz-surface-create">cairo_glitz_surface_create</a> (glitz_surface_t *surface);
</pre></div><div class="refsect1" lang="en"><a name="id2691367"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2696554"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2696559"></a><h3><a name="cairo-set-target-glitz"></a>cairo_set_target_glitz ()</h3><a class="indexterm" name="id2696567"></a><pre class="programlisting">void cairo_set_target_glitz (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
glitz_surface_t *surface);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2741449"></a><h3><a name="cairo-glitz-surface-create"></a>cairo_glitz_surface_create ()</h3><a class="indexterm" name="id2741458"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_glitz_surface_create (glitz_surface_t *surface);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-FreeType-Fonts.html"><b>&lt;&lt; FreeType Fonts</b></a></td><td align="right"><a accesskey="n" href="cairo-PDF-Backend.html"><b>PDF Backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,83 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Microsoft Windows Backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-Quartz-Backend.html" title="Quartz Backend"><link rel="next" href="cairo-XCB-Backend.html" title="XCB Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-Quartz-Backend.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-XCB-Backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-Microsoft-Windows-Backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">Microsoft Windows Backend</span></h2><p>Microsoft Windows Backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-Microsoft-Windows-Backend.html#cairo-set-target-win32">cairo_set_target_win32</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
HDC hdc);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-surface-create">cairo_win32_surface_create</a> (HDC hdc);
<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-create-for-logfontw">cairo_win32_font_create_for_logfontw</a>
(LOGFONTW *logfont,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *scale);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-select-font">cairo_win32_font_select_font</a> (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *font,
HDC hdc);
void <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-done-font">cairo_win32_font_done_font</a> (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *font);
double <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-get-scale-factor">cairo_win32_font_get_scale_factor</a>
(<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *font);
</pre></div><div class="refsect1" lang="en"><a name="id2731014"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2731024"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2731029"></a><h3><a name="cairo-set-target-win32"></a>cairo_set_target_win32 ()</h3><a class="indexterm" name="id2731038"></a><pre class="programlisting">void cairo_set_target_win32 (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
HDC hdc);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hdc</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2731088"></a><h3><a name="cairo-win32-surface-create"></a>cairo_win32_surface_create ()</h3><a class="indexterm" name="id2731096"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_win32_surface_create (HDC hdc);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>hdc</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2735228"></a><h3><a name="cairo-win32-font-create-for-logfontw"></a>cairo_win32_font_create_for_logfontw ()</h3><a class="indexterm" name="id2735236"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a>* cairo_win32_font_create_for_logfontw
(LOGFONTW *logfont,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *scale);</pre><p>
Creates a new font for the Win32 font backend based on a
<span class="type">LOGFONT</span>. This font can then be used with
<a href="cairo-cairo-t.html#cairo-set-font"><tt class="function">cairo_set_font()</tt></a>, <a href="cairo-cairo-t.html#cairo-font-glyph-extents"><tt class="function">cairo_font_glyph_extents()</tt></a>, or FreeType backend
specific functions like <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-select-font"><tt class="function">cairo_win32_font_select_font()</tt></a>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>logfont</tt></i> :</span></td><td> A <span class="type">LOGFONTW</span> structure specifying the font to use.
The lfHeight, lfWidth, lfOrientation and lfEscapement
fields of this structure are ignored; information from
<i class="parameter"><tt>scale</tt></i> will be used instead.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>scale</tt></i> :</span></td><td> The scale at which this font will be used. The
scale is given by multiplying the font matrix (see
<a href="cairo-cairo-t.html#cairo-transform-font"><tt class="function">cairo_transform_font()</tt></a>) by the current transformation matrix.
The translation elements of the resulting matrix are ignored.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> a newly created <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a>. Free with
<a href="cairo-cairo-t.html#cairo-font-destroy"><tt class="function">cairo_font_destroy()</tt></a> when you are done using it.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2680481"></a><h3><a name="cairo-win32-font-select-font"></a>cairo_win32_font_select_font ()</h3><a class="indexterm" name="id2680492"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_win32_font_select_font (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *font,
HDC hdc);</pre><p>
Selects the font into the given device context and changes the
map mode and world transformation of the device context to match
that of the font. This function is intended for use when using
layout APIs such as Uniscribe to do text layout with the
Cairo font. After finishing using the device context, you must call
<a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-done-font"><tt class="function">cairo_win32_font_done_font()</tt></a> to release any resources allocated
by this function.
</p><p>
See <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-get-scale-factor"><tt class="function">cairo_win32_font_get_scale_factor()</tt></a> for converting logical
coordinates from the device context to font space.
</p><p>
Normally, calls to <tt class="function">SaveDC()</tt> and <tt class="function">RestoreDC()</tt> would be made around
the use of this function to preserve the original graphics state.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>font</tt></i> :</span></td><td> A <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a> from the Win32 font backend. Such an
object can be created with <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-create-for-logfontw"><tt class="function">cairo_win32_font_create_for_logfontw()</tt></a>.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>hdc</tt></i> :</span></td><td> a device context
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt> if the operation succeeded.
otherwise an error such as <tt class="literal">CAIRO_STATUS_NO_MEMORY</tt> and
the device context is unchanged.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2680622"></a><h3><a name="cairo-win32-font-done-font"></a>cairo_win32_font_done_font ()</h3><a class="indexterm" name="id2680631"></a><pre class="programlisting">void cairo_win32_font_done_font (<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *font);</pre><p>
Releases any resources allocated by <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-select-font"><tt class="function">cairo_win32_font_select_font()</tt></a></p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>font</tt></i> :</span></td><td> A <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a> from the Win32 font backend.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2680683"></a><h3><a name="cairo-win32-font-get-scale-factor"></a>cairo_win32_font_get_scale_factor ()</h3><a class="indexterm" name="id2680695"></a><pre class="programlisting">double cairo_win32_font_get_scale_factor
(<a href="cairo-cairo-t.html#cairo-font-t">cairo_font_t</a> *font);</pre><p>
Gets a scale factor between logical coordinates in the coordinate
space used by <a href="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-select-font"><tt class="function">cairo_win32_font_select_font()</tt></a> and font space coordinates.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>font</tt></i> :</span></td><td> a <a href="cairo-cairo-t.html#cairo-font-t"><span class="type">cairo_font_t</span></a> from the Win32 font backend
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> factor to multiply logical units by to get font space
coordinates.
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-Quartz-Backend.html"><b>&lt;&lt; Quartz Backend</b></a></td><td align="right"><a accesskey="n" href="cairo-XCB-Backend.html"><b>XCB Backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,47 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>PDF Backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-Glitz-backend.html" title="Glitz backend"><link rel="next" href="cairo-PNG-Backend.html" title="PNG Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-Glitz-backend.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-PNG-Backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-PDF-Backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">PDF Backend</span></h2><p>PDF Backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-PDF-Backend.html#cairo-set-target-pdf">cairo_set_target_pdf</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PDF-Backend.html#cairo-pdf-surface-create">cairo_pdf_surface_create</a> (FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);
</pre></div><div class="refsect1" lang="en"><a name="id2736241"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2736251"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2736256"></a><h3><a name="cairo-set-target-pdf"></a>cairo_set_target_pdf ()</h3><a class="indexterm" name="id2736264"></a><pre class="programlisting">void cairo_set_target_pdf (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width_inches</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height_inches</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>x_pixels_per_inch</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>y_pixels_per_inch</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2720822"></a><h3><a name="cairo-pdf-surface-create"></a>cairo_pdf_surface_create ()</h3><a class="indexterm" name="id2720830"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_pdf_surface_create (FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width_inches</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height_inches</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>x_pixels_per_inch</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>y_pixels_per_inch</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-Glitz-backend.html"><b>&lt;&lt; Glitz backend</b></a></td><td align="right"><a accesskey="n" href="cairo-PNG-Backend.html"><b>PNG Backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,41 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>PNG Backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-PDF-Backend.html" title="PDF Backend"><link rel="next" href="cairo-PS-Backend.html" title="PS Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-PDF-Backend.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-PS-Backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-PNG-Backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">PNG Backend</span></h2><p>PNG Backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-PNG-Backend.html#cairo-set-target-png">cairo_set_target_png</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
FILE *file,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PNG-Backend.html#cairo-png-surface-create">cairo_png_surface_create</a> (FILE *file,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height);
</pre></div><div class="refsect1" lang="en"><a name="id2730876"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2730885"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2730891"></a><h3><a name="cairo-set-target-png"></a>cairo_set_target_png ()</h3><a class="indexterm" name="id2730899"></a><pre class="programlisting">void cairo_set_target_png (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
FILE *file,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>format</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2742406"></a><h3><a name="cairo-png-surface-create"></a>cairo_png_surface_create ()</h3><a class="indexterm" name="id2742414"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_png_surface_create (FILE *file,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>format</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-PDF-Backend.html"><b>&lt;&lt; PDF Backend</b></a></td><td align="right"><a accesskey="n" href="cairo-PS-Backend.html"><b>PS Backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,51 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>PS Backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-PNG-Backend.html" title="PNG Backend"><link rel="next" href="cairo-Quartz-Backend.html" title="Quartz Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-PNG-Backend.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-Quartz-Backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-PS-Backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">PS Backend</span></h2><p>PS Backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-PS-Backend.html#cairo-set-target-ps">cairo_set_target_ps</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-PS-Backend.html#cairo-ps-surface-create">cairo_ps_surface_create</a> (FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);
</pre></div><div class="refsect1" lang="en"><a name="id2742152"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2742161"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2742167"></a><h3><a name="cairo-set-target-ps"></a>cairo_set_target_ps ()</h3><a class="indexterm" name="id2742175"></a><pre class="programlisting">void cairo_set_target_ps (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);</pre><p>
Directs output for a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> to a postscript file. The file must
be kept open until the <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> is destroyed or set to have a
different target, and then must be closed by the application.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td> a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td> an open, writeable file
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width_inches</tt></i> :</span></td><td> width of the output page, in inches
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height_inches</tt></i> :</span></td><td> height of the output page, in inches
</td></tr><tr><td><span class="term"><i class="parameter"><tt>x_pixels_per_inch</tt></i> :</span></td><td> X resolution to use for image fallbacks;
not all Cairo drawing can be represented in a postscript
file, so Cairo will write out images for some portions
of the output.
</td></tr><tr><td><span class="term"><i class="parameter"><tt>y_pixels_per_inch</tt></i> :</span></td><td> Y resolution to use for image fallbacks.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2741578"></a><h3><a name="cairo-ps-surface-create"></a>cairo_ps_surface_create ()</h3><a class="indexterm" name="id2741587"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_ps_surface_create (FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>file</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width_inches</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height_inches</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>x_pixels_per_inch</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>y_pixels_per_inch</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-PNG-Backend.html"><b>&lt;&lt; PNG Backend</b></a></td><td align="right"><a accesskey="n" href="cairo-Quartz-Backend.html"><b>Quartz Backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,37 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Quartz Backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-PS-Backend.html" title="PS Backend"><link rel="next" href="cairo-Microsoft-Windows-Backend.html" title="Microsoft Windows Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-PS-Backend.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-Microsoft-Windows-Backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-Quartz-Backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">Quartz Backend</span></h2><p>Quartz Backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-Quartz-Backend.html#cairo-set-target-quartz-context">cairo_set_target_quartz_context</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
CGContextRef context,
int width,
int height);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-Quartz-Backend.html#cairo-quartz-surface-create">cairo_quartz_surface_create</a>
(CGContextRef context,
int width,
int height);
</pre></div><div class="refsect1" lang="en"><a name="id2719460"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2719470"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2719475"></a><h3><a name="cairo-set-target-quartz-context"></a>cairo_set_target_quartz_context ()</h3><a class="indexterm" name="id2719484"></a><pre class="programlisting">void cairo_set_target_quartz_context (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
CGContextRef context,
int width,
int height);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2718783"></a><h3><a name="cairo-quartz-surface-create"></a>cairo_quartz_surface_create ()</h3><a class="indexterm" name="id2718791"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_quartz_surface_create
(CGContextRef context,
int width,
int height);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>context</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-PS-Backend.html"><b>&lt;&lt; PS Backend</b></a></td><td align="right"><a accesskey="n" href="cairo-Microsoft-Windows-Backend.html"><b>Microsoft Windows Backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,25 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>XCB Backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-Microsoft-Windows-Backend.html" title="Microsoft Windows Backend"><link rel="next" href="cairo-XLib-Backend.html" title="XLib Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-Microsoft-Windows-Backend.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-XLib-Backend.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-XCB-Backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">XCB Backend</span></h2><p>XCB Backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-XCB-Backend.html#cairo-set-target-xcb">cairo_set_target_xcb</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
XCBConnection *dpy,
XCBDRAWABLE drawable,
XCBVISUALTYPE *visual,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format);
</pre></div><div class="refsect1" lang="en"><a name="id2731419"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2682143"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2682148"></a><h3><a name="cairo-set-target-xcb"></a>cairo_set_target_xcb ()</h3><a class="indexterm" name="id2682156"></a><pre class="programlisting">void cairo_set_target_xcb (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
XCBConnection *dpy,
XCBDRAWABLE drawable,
XCBVISUALTYPE *visual,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>dpy</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>drawable</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>visual</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>format</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-Microsoft-Windows-Backend.html"><b>&lt;&lt; Microsoft Windows Backend</b></a></td><td align="right"><a accesskey="n" href="cairo-XLib-Backend.html"><b>XLib Backend &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,45 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>XLib Backend</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-XCB-Backend.html" title="XCB Backend"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-XCB-Backend.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th></tr></table><div class="refentry" lang="en"><a name="cairo-XLib-Backend"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">XLib Backend</span></h2><p>XLib Backend &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
void <a href="cairo-XLib-Backend.html#cairo-set-target-drawable">cairo_set_target_drawable</a> (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
Display *dpy,
Drawable drawable);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-XLib-Backend.html#cairo-xlib-surface-create">cairo_xlib_surface_create</a> (Display *dpy,
Drawable drawable,
Visual *visual,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
Colormap colormap);
</pre></div><div class="refsect1" lang="en"><a name="id2739388"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2739397"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2739403"></a><h3><a name="cairo-set-target-drawable"></a>cairo_set_target_drawable ()</h3><a class="indexterm" name="id2739411"></a><pre class="programlisting">void cairo_set_target_drawable (<a href="cairo-cairo-t.html#cairo-t">cairo_t</a> *cr,
Display *dpy,
Drawable drawable);</pre><p>
Directs output for a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> to an Xlib drawable. <i class="parameter"><tt>drawable</tt></i> must
be a Window or Pixmap on the default screen of <i class="parameter"><tt>dpy</tt></i> using the
default colormap and visual. Using this function is slow because
the function must retrieve information about <i class="parameter"><tt>drawable</tt></i> from the X
server.
The combination of <a href="cairo-XLib-Backend.html#cairo-xlib-surface-create"><tt class="function">cairo_xlib_surface_create()</tt></a> and
<a href="cairo-cairo-t.html#cairo-set-target-surface"><tt class="function">cairo_set_target_surface()</tt></a> is somewhat more flexible, although
it still is slow.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cr</tt></i> :</span></td><td> a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>dpy</tt></i> :</span></td><td> an X display
</td></tr><tr><td><span class="term"><i class="parameter"><tt>drawable</tt></i> :</span></td><td> a window or pixmap on the default screen of <i class="parameter"><tt>dpy</tt></i>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2681239"></a><h3><a name="cairo-xlib-surface-create"></a>cairo_xlib_surface_create ()</h3><a class="indexterm" name="id2681247"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_xlib_surface_create (Display *dpy,
Drawable drawable,
Visual *visual,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
Colormap colormap);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>dpy</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>drawable</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>visual</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>format</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>colormap</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-XCB-Backend.html"><b>&lt;&lt; XCB Backend</b></a></td><td align="right"></td></tr></table></body></html>

View File

@ -0,0 +1,220 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>cairo_matrix_t</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-cairo-pattern-t.html" title="cairo_pattern_t"><link rel="next" href="cairo-ATSUI-Fonts.html" title="ATSUI Fonts"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-cairo-pattern-t.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-ATSUI-Fonts.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-cairo-matrix-t"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">cairo_matrix_t</span></h2><p>cairo_matrix_t &#8212;
Transformation matrices</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
typedef <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a>;
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a>* <a href="cairo-cairo-matrix-t.html#cairo-matrix-create">cairo_matrix_create</a> (void);
void <a href="cairo-cairo-matrix-t.html#cairo-matrix-destroy">cairo_matrix_destroy</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-copy">cairo_matrix_copy</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *other);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-set-identity">cairo_matrix_set_identity</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-set-affine">cairo_matrix_set_affine</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double a,
double b,
double c,
double d,
double tx,
double ty);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-get-affine">cairo_matrix_get_affine</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double *a,
double *b,
double *c,
double *d,
double *tx,
double *ty);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-translate">cairo_matrix_translate</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double tx,
double ty);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-scale">cairo_matrix_scale</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double sx,
double sy);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-rotate">cairo_matrix_rotate</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double radians);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-invert">cairo_matrix_invert</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-multiply">cairo_matrix_multiply</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *result,
const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *a,
const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *b);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance">cairo_matrix_transform_distance</a>
(<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double *dx,
double *dy);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-matrix-t.html#cairo-matrix-transform-point">cairo_matrix_transform_point</a> (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double *x,
double *y);
</pre></div><div class="refsect1" lang="en"><a name="id2733267"></a><h2>Description</h2><p><a class="indexterm" name="id2733273"></a><a class="indexterm" name="id2733279"></a>
<span class="structname">cairo_matrix_t</span> is used throughout
Cairo to represents between different coordinates spaces.
A <span class="structname">cairo_matrix</span> holds an affine
transformation, such as a scale, rotation, or shear, or a
combination of those. Mathematically, the effect of an affine
transformation on a point (<tt class="literal">x</tt>,<tt class="literal">y</tt>) is given by:
</p><pre class="programlisting">
x_new = x * a + y * c + tx;
y_new = x * b + y * d + ty;
</pre><p>
The parameters <tt class="literal">a</tt>, <tt class="literal">b</tt>,
<tt class="literal">c</tt>, <tt class="literal">d</tt>, <tt class="literal">tx</tt>,
<tt class="literal">ty</tt> can be retrieved with
<a href="cairo-cairo-matrix-t.html#cairo-matrix-get-affine"><tt class="function">cairo_matrix_get_affine()</tt></a> and set with <a href="cairo-cairo-matrix-t.html#cairo-matrix-get-affine"><tt class="function">cairo_matrix_get_affine()</tt></a>.
</p><p>
The primary use of transformation matrices in Cairo is as the
current transformation matrix in a <a href="cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a>. The current
transformation matrix gives the transformation from user space
coordinates to device coordinates. See <a href="cairo-cairo-t.html#cairo-set-matrix"><tt class="function">cairo_set_matrix()</tt></a>,
<a href="cairo-cairo-t.html#cairo-current-matrix"><tt class="function">cairo_current_matrix()</tt></a>.
</p></div><div class="refsect1" lang="en"><a name="id2733367"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2733372"></a><h3><a name="cairo-matrix-t"></a>cairo_matrix_t</h3><a class="indexterm" name="id2733381"></a><pre class="programlisting">typedef struct _cairo_matrix cairo_matrix_t;
</pre><p>
A <a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a> holds an affine transformation, such as a scale,
rotation, or shear, or a combination of those.</p><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2733402"></a><h3><a name="cairo-matrix-create"></a>cairo_matrix_create ()</h3><a class="indexterm" name="id2733411"></a><pre class="programlisting"><a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a>* cairo_matrix_create (void);</pre><p>
Creates a new identity matrix.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> a newly created matrix; free with <a href="cairo-cairo-matrix-t.html#cairo-matrix-destroy"><tt class="function">cairo_matrix_destroy()</tt></a>,
or <tt class="literal">NULL</tt> if memory couldn't be allocated.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2733451"></a><h3><a name="cairo-matrix-destroy"></a>cairo_matrix_destroy ()</h3><a class="indexterm" name="id2733459"></a><pre class="programlisting">void cairo_matrix_destroy (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre><p>
Frees a matrix created with cairo_matrix_create.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2734685"></a><h3><a name="cairo-matrix-copy"></a>cairo_matrix_copy ()</h3><a class="indexterm" name="id2734693"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_copy (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *other);</pre><p>
Modifies <i class="parameter"><tt>matrix</tt></i> to be identical to <i class="parameter"><tt>other</tt></i>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>other</tt></i> :</span></td><td> another <span class="type">cairo_</span>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2734779"></a><h3><a name="cairo-matrix-set-identity"></a>cairo_matrix_set_identity ()</h3><a class="indexterm" name="id2734787"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_set_identity (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre><p>
Modifies <i class="parameter"><tt>matrix</tt></i> to be an identity transformation.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2734846"></a><h3><a name="cairo-matrix-set-affine"></a>cairo_matrix_set_affine ()</h3><a class="indexterm" name="id2734855"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_set_affine (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double a,
double b,
double c,
double d,
double tx,
double ty);</pre><p>
Sets <i class="parameter"><tt>matrix</tt></i> to be the affine transformation given by
<i class="parameter"><tt>a</tt></i>, b, <i class="parameter"><tt>c</tt></i>, <i class="parameter"><tt>d</tt></i>, <i class="parameter"><tt>tx</tt></i>, <i class="parameter"><tt>ty</tt></i>. The transformation is given
by:
</p><pre class="programlisting">
x_new = x * a + y * c + tx;
y_new = x * b + y * d + ty;
</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a cairo_matrix_t
</td></tr><tr><td><span class="term"><i class="parameter"><tt>a</tt></i> :</span></td><td> a component of the affine transformation
</td></tr><tr><td><span class="term"><i class="parameter"><tt>b</tt></i> :</span></td><td> b component of the affine transformation
</td></tr><tr><td><span class="term"><i class="parameter"><tt>c</tt></i> :</span></td><td> c component of the affine transformation
</td></tr><tr><td><span class="term"><i class="parameter"><tt>d</tt></i> :</span></td><td> d component of the affine transformation
</td></tr><tr><td><span class="term"><i class="parameter"><tt>tx</tt></i> :</span></td><td> X translation component of the affine transformation
</td></tr><tr><td><span class="term"><i class="parameter"><tt>ty</tt></i> :</span></td><td> Y translation component of the affine transformation
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2678925"></a><h3><a name="cairo-matrix-get-affine"></a>cairo_matrix_get_affine ()</h3><a class="indexterm" name="id2678933"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_get_affine (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double *a,
double *b,
double *c,
double *d,
double *tx,
double *ty);</pre><p>
Gets the matrix values for the affine tranformation that <i class="parameter"><tt>matrix</tt></i> represents.
See <a href="cairo-cairo-matrix-t.html#cairo-matrix-set-affine"><tt class="function">cairo_matrix_set_affine()</tt></a>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>a</tt></i> :</span></td><td> location to store a component of affine transformation, or <tt class="literal">NULL</tt>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>b</tt></i> :</span></td><td> location to store b component of affine transformation, or <tt class="literal">NULL</tt>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>c</tt></i> :</span></td><td> location to store c component of affine transformation, or <tt class="literal">NULL</tt>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>d</tt></i> :</span></td><td> location to store d component of affine transformation, or <tt class="literal">NULL</tt>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>tx</tt></i> :</span></td><td> location to store X-translation component of affine transformation, or <tt class="literal">NULL</tt>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>ty</tt></i> :</span></td><td> location to store Y-translation component of affine transformation, or <tt class="literal">NULL</tt>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2679124"></a><h3><a name="cairo-matrix-translate"></a>cairo_matrix_translate ()</h3><a class="indexterm" name="id2679133"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_translate (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double tx,
double ty);</pre><p>
Applies a translation by <i class="parameter"><tt>tx</tt></i>, <i class="parameter"><tt>ty</tt></i> to the transformation in
<i class="parameter"><tt>matrix</tt></i>. The new transformation is given by first translating by
<i class="parameter"><tt>tx</tt></i>, <i class="parameter"><tt>ty</tt></i> then applying the original transformation</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a cairo_matrix_t
</td></tr><tr><td><span class="term"><i class="parameter"><tt>tx</tt></i> :</span></td><td> amount to rotate in the X direction
</td></tr><tr><td><span class="term"><i class="parameter"><tt>ty</tt></i> :</span></td><td> amount to rotate in the Y direction
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2679235"></a><h3><a name="cairo-matrix-scale"></a>cairo_matrix_scale ()</h3><a class="indexterm" name="id2679243"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_scale (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double sx,
double sy);</pre><p>
Applies scaling by <i class="parameter"><tt>tx</tt></i>, <i class="parameter"><tt>ty</tt></i> to the transformation in
<i class="parameter"><tt>matrix</tt></i>. The new transformation is given by first scaling by <i class="parameter"><tt>sx</tt></i>
and <i class="parameter"><tt>sy</tt></i> then applying the original transformation</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <a href="cairo-cairo-matrix-t.html#cairo-matrix-t"><span class="type">cairo_matrix_t</span></a>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>sx</tt></i> :</span></td><td> Scale factor in the X direction
</td></tr><tr><td><span class="term"><i class="parameter"><tt>sy</tt></i> :</span></td><td> Scale factor in the Y direction
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2679353"></a><h3><a name="cairo-matrix-rotate"></a>cairo_matrix_rotate ()</h3><a class="indexterm" name="id2679361"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_rotate (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double radians);</pre><p>
Applies rotation by <i class="parameter"><tt>radians</tt></i> to the transformation in
<i class="parameter"><tt>matrix</tt></i>. The new transformation is given by first rotating by
<i class="parameter"><tt>radians</tt></i> then applying the original transformation</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>radians</tt></i> :</span></td><td> angle of rotation, in radians. Angles are defined
so that an angle of 90 degrees (<tt class="literal">M_PI</tt> radians) rotates the
positive X axis into the positive Y axis. With the default
Cairo choice of axis orientation, positive rotations are
clockwise.
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2679451"></a><h3><a name="cairo-matrix-invert"></a>cairo_matrix_invert ()</h3><a class="indexterm" name="id2679459"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_invert (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre><p>
Changes <i class="parameter"><tt>matrix</tt></i> to be the inverse of it's original value. Not
all transformation matrices have inverses; if the matrix
collapses points together (it is <i class="firstterm">degenerate</i>),
then it has no inverse and this function will fail.
</p><p>
Returns: If <i class="parameter"><tt>matrix</tt></i> has an inverse, modifies <i class="parameter"><tt>matrix</tt></i> to
be the inverse matrix and returns <tt class="literal">CAIRO_STATUS_SUCCESS</tt>. Otherwise,</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td><tt class="literal">CAIRO_STATUS_INVALID_MATRIX</tt>.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2679535"></a><h3><a name="cairo-matrix-multiply"></a>cairo_matrix_multiply ()</h3><a class="indexterm" name="id2679543"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_multiply (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *result,
const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *a,
const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *b);</pre><p>
Multiplies the affine transformations in <i class="parameter"><tt>a</tt></i> and <i class="parameter"><tt>b</tt></i> together
and stores the result in <i class="parameter"><tt>result</tt></i>. The resulting transformation
is given by first applying the transformation in <i class="parameter"><tt>b</tt></i> then
applying the transformation in <i class="parameter"><tt>a</tt></i>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>result</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i> in which to store the result
</td></tr><tr><td><span class="term"><i class="parameter"><tt>a</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>b</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2679658"></a><h3><a name="cairo-matrix-transform-distance"></a>cairo_matrix_transform_distance ()</h3><a class="indexterm" name="id2679669"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_transform_distance
(<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double *dx,
double *dy);</pre><p>
Transforms the vector (<i class="parameter"><tt>dx</tt></i>,<i class="parameter"><tt>dy</tt></i>) by <i class="parameter"><tt>matrix</tt></i>. Translation is
ignored. In terms of the components of the affine transformation:
</p><p>
</p><pre class="programlisting">
dx2 = dx1 * a + dy1 * c;
dy2 = dx1 * b + dy1 * d;
</pre><p>
</p><p>
Affine transformations are position invariant, so the same vector
always transforms to the same vector. If (<i class="parameter"><tt>x1</tt></i>,<i class="parameter"><tt>y1</tt></i>) transforms
to (<i class="parameter"><tt>x2</tt></i>,<i class="parameter"><tt>y2</tt></i>) then (<i class="parameter"><tt>x1</tt></i>+<i class="parameter"><tt>dx1</tt></i>,<i class="parameter"><tt>y1</tt></i>+<i class="parameter"><tt>dy1</tt></i>) will transform to
(<i class="parameter"><tt>x1</tt></i>+<i class="parameter"><tt>dx2</tt></i>,<i class="parameter"><tt>y1</tt></i>+<i class="parameter"><tt>dy2</tt></i>) for all values of <i class="parameter"><tt>x1</tt></i> and <i class="parameter"><tt>x2</tt></i>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>dx</tt></i> :</span></td><td> a distance in the X direction. An in/out parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>dy</tt></i> :</span></td><td> a distance in the Y direction. An in/out parameter
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2679828"></a><h3><a name="cairo-matrix-transform-point"></a>cairo_matrix_transform_point ()</h3><a class="indexterm" name="id2679839"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_matrix_transform_point (<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix,
double *x,
double *y);</pre><p>
Transforms the point (<i class="parameter"><tt>x</tt></i>, <i class="parameter"><tt>y</tt></i>) by <i class="parameter"><tt>matrix</tt></i>.</p><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td> a <i class="parameter"><tt>cairo_matrix_t</tt></i>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>x</tt></i> :</span></td><td> X position. An in/out parameter
</td></tr><tr><td><span class="term"><i class="parameter"><tt>y</tt></i> :</span></td><td> Y position. An in/out parameter
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td> <tt class="literal">CAIRO_STATUS_SUCCESS</tt>, always.
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-cairo-pattern-t.html"><b>&lt;&lt; cairo_pattern_t</b></a></td><td align="right"><a accesskey="n" href="cairo-ATSUI-Fonts.html"><b>ATSUI Fonts &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,158 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>cairo_pattern_t</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-cairo-surface-t.html" title="cairo_surface_t"><link rel="next" href="cairo-cairo-matrix-t.html" title="cairo_matrix_t"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-cairo-surface-t.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-cairo-matrix-t.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-cairo-pattern-t"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">cairo_pattern_t</span></h2><p>cairo_pattern_t &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
typedef <a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>;
<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface">cairo_pattern_create_for_surface</a>
(<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-cairo-pattern-t.html#cairo-pattern-create-linear">cairo_pattern_create_linear</a>
(double x0,
double y0,
double x1,
double y1);
<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>* <a href="cairo-cairo-pattern-t.html#cairo-pattern-create-radial">cairo_pattern_create_radial</a>
(double cx0,
double cy0,
double radius0,
double cx1,
double cy1,
double radius1);
void <a href="cairo-cairo-pattern-t.html#cairo-pattern-reference">cairo_pattern_reference</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
void <a href="cairo-cairo-pattern-t.html#cairo-pattern-destroy">cairo_pattern_destroy</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop">cairo_pattern_add_color_stop</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
double offset,
double red,
double green,
double blue,
double alpha);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix">cairo_pattern_set_matrix</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix">cairo_pattern_get_matrix</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
enum <a href="cairo-cairo-pattern-t.html#cairo-extend-t">cairo_extend_t</a>;
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-pattern-t.html#cairo-pattern-set-extend">cairo_pattern_set_extend</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-pattern-t.html#cairo-extend-t">cairo_extend_t</a> extend);
<a href="cairo-cairo-pattern-t.html#cairo-extend-t">cairo_extend_t</a> <a href="cairo-cairo-pattern-t.html#cairo-pattern-get-extend">cairo_pattern_get_extend</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-pattern-t.html#cairo-pattern-set-filter">cairo_pattern_set_filter</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> filter);
<a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> <a href="cairo-cairo-pattern-t.html#cairo-pattern-get-filter">cairo_pattern_get_filter</a> (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);
</pre></div><div class="refsect1" lang="en"><a name="id2735726"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2735736"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2735741"></a><h3><a name="cairo-pattern-t"></a>cairo_pattern_t</h3><a class="indexterm" name="id2735750"></a><pre class="programlisting">typedef struct _cairo_pattern cairo_pattern_t;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2735760"></a><h3><a name="cairo-pattern-create-for-surface"></a>cairo_pattern_create_for_surface ()</h3><a class="indexterm" name="id2735768"></a><pre class="programlisting"><a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_for_surface
(<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2735813"></a><h3><a name="cairo-pattern-create-linear"></a>cairo_pattern_create_linear ()</h3><a class="indexterm" name="id2735822"></a><pre class="programlisting"><a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_linear
(double x0,
double y0,
double x1,
double y1);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>x0</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>y0</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>x1</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>y1</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2735917"></a><h3><a name="cairo-pattern-create-radial"></a>cairo_pattern_create_radial ()</h3><a class="indexterm" name="id2735925"></a><pre class="programlisting"><a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a>* cairo_pattern_create_radial
(double cx0,
double cy0,
double radius0,
double cx1,
double cy1,
double radius1);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>cx0</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>cy0</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>radius0</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>cx1</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>cy1</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>radius1</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2617438"></a><h3><a name="cairo-pattern-reference"></a>cairo_pattern_reference ()</h3><a class="indexterm" name="id2617446"></a><pre class="programlisting">void cairo_pattern_reference (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2617480"></a><h3><a name="cairo-pattern-destroy"></a>cairo_pattern_destroy ()</h3><a class="indexterm" name="id2617488"></a><pre class="programlisting">void cairo_pattern_destroy (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2617522"></a><h3><a name="cairo-pattern-add-color-stop"></a>cairo_pattern_add_color_stop ()</h3><a class="indexterm" name="id2617533"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_pattern_add_color_stop (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
double offset,
double red,
double green,
double blue,
double alpha);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>offset</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>red</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>green</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>blue</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>alpha</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2740442"></a><h3><a name="cairo-pattern-set-matrix"></a>cairo_pattern_set_matrix ()</h3><a class="indexterm" name="id2740450"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_pattern_set_matrix (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2740510"></a><h3><a name="cairo-pattern-get-matrix"></a>cairo_pattern_get_matrix ()</h3><a class="indexterm" name="id2740519"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_pattern_get_matrix (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2740580"></a><h3><a name="cairo-extend-t"></a>enum cairo_extend_t</h3><a class="indexterm" name="id2740588"></a><pre class="programlisting">typedef enum {
CAIRO_EXTEND_NONE,
CAIRO_EXTEND_REPEAT,
CAIRO_EXTEND_REFLECT
} cairo_extend_t;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2740599"></a><h3><a name="cairo-pattern-set-extend"></a>cairo_pattern_set_extend ()</h3><a class="indexterm" name="id2740608"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_pattern_set_extend (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-pattern-t.html#cairo-extend-t">cairo_extend_t</a> extend);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>extend</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2740669"></a><h3><a name="cairo-pattern-get-extend"></a>cairo_pattern_get_extend ()</h3><a class="indexterm" name="id2740677"></a><pre class="programlisting"><a href="cairo-cairo-pattern-t.html#cairo-extend-t">cairo_extend_t</a> cairo_pattern_get_extend (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2740721"></a><h3><a name="cairo-pattern-set-filter"></a>cairo_pattern_set_filter ()</h3><a class="indexterm" name="id2740730"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_pattern_set_filter (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern,
<a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> filter);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>filter</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2740790"></a><h3><a name="cairo-pattern-get-filter"></a>cairo_pattern_get_filter ()</h3><a class="indexterm" name="id2740799"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> cairo_pattern_get_filter (<a href="cairo-cairo-pattern-t.html#cairo-pattern-t">cairo_pattern_t</a> *pattern);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>pattern</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-cairo-surface-t.html"><b>&lt;&lt; cairo_surface_t</b></a></td><td align="right"><a accesskey="n" href="cairo-cairo-matrix-t.html"><b>cairo_matrix_t &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,117 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>cairo_surface_t</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="pt02.html" title="Part II. Reference"><link rel="previous" href="cairo-cairo-t.html" title="cairo_t"><link rel="next" href="cairo-cairo-pattern-t.html" title="cairo_pattern_t"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-cairo-t.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="pt02.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-cairo-pattern-t.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="cairo-cairo-surface-t"></a><div class="titlepage"><div></div><div></div></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">cairo_surface_t</span></h2><p>cairo_surface_t &#8212; </p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
typedef <a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>;
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-cairo-surface-t.html#cairo-surface-create-for-image">cairo_surface_create_for_image</a>
(char *data,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height,
int stride);
<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* <a href="cairo-cairo-surface-t.html#cairo-surface-create-similar">cairo_surface_create_similar</a>
(<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *other,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height);
void <a href="cairo-cairo-surface-t.html#cairo-surface-reference">cairo_surface_reference</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
void <a href="cairo-cairo-surface-t.html#cairo-surface-destroy">cairo_surface_destroy</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-set-repeat">cairo_surface_set_repeat</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
int repeat);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-set-matrix">cairo_surface_set_matrix</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-get-matrix">cairo_surface_get_matrix</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);
<a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-set-filter">cairo_surface_set_filter</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
<a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> filter);
<a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> <a href="cairo-cairo-surface-t.html#cairo-surface-get-filter">cairo_surface_get_filter</a> (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);
</pre></div><div class="refsect1" lang="en"><a name="id2728748"></a><h2>Description</h2><p>
</p></div><div class="refsect1" lang="en"><a name="id2728757"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2728763"></a><h3><a name="cairo-surface-t"></a>cairo_surface_t</h3><a class="indexterm" name="id2728771"></a><pre class="programlisting">typedef struct _cairo_surface cairo_surface_t;
</pre><p>
A <a href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> represents an image, either as the destination
of a drawing operation or as source when drawing onto another
surface. There are different subtypes of cairo_surface_t for
different drawing backends; for example, <a href="cairo-cairo-t.html#cairo-image-surface-create"><tt class="function">cairo_image_surface_create()</tt></a>
creates a bitmap image in memory.
</p><p>
Memory management of <a href="cairo-cairo-surface-t.html#cairo-surface-t"><span class="type">cairo_surface_t</span></a> is done with
<a href="cairo-cairo-surface-t.html#cairo-surface-reference"><tt class="function">cairo_surface_reference()</tt></a> and <a href="cairo-cairo-surface-t.html#cairo-surface-destroy"><tt class="function">cairo_surface_destroy()</tt></a>.</p><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2728823"></a><h3><a name="cairo-surface-create-for-image"></a>cairo_surface_create_for_image ()</h3><a class="indexterm" name="id2616534"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_create_for_image
(char *data,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height,
int stride);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>format</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>stride</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2616646"></a><h3><a name="cairo-surface-create-similar"></a>cairo_surface_create_similar ()</h3><a class="indexterm" name="id2616655"></a><pre class="programlisting"><a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a>* cairo_surface_create_similar
(<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *other,
<a href="cairo-cairo-t.html#cairo-format-t">cairo_format_t</a> format,
int width,
int height);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>other</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>format</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>width</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>height</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2616752"></a><h3><a name="cairo-surface-reference"></a>cairo_surface_reference ()</h3><a class="indexterm" name="id2616760"></a><pre class="programlisting">void cairo_surface_reference (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2690242"></a><h3><a name="cairo-surface-destroy"></a>cairo_surface_destroy ()</h3><a class="indexterm" name="id2690250"></a><pre class="programlisting">void cairo_surface_destroy (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2690284"></a><h3><a name="cairo-surface-set-repeat"></a>cairo_surface_set_repeat ()</h3><a class="indexterm" name="id2690292"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_surface_set_repeat (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
int repeat);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>repeat</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2690353"></a><h3><a name="cairo-surface-set-matrix"></a>cairo_surface_set_matrix ()</h3><a class="indexterm" name="id2690361"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_surface_set_matrix (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2690422"></a><h3><a name="cairo-surface-get-matrix"></a>cairo_surface_get_matrix ()</h3><a class="indexterm" name="id2690431"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_surface_get_matrix (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
<a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *matrix);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>matrix</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2690492"></a><h3><a name="cairo-surface-set-filter"></a>cairo_surface_set_filter ()</h3><a class="indexterm" name="id2690500"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-status-t">cairo_status_t</a> cairo_surface_set_filter (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface,
<a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> filter);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>filter</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2738900"></a><h3><a name="cairo-surface-get-filter"></a>cairo_surface_get_filter ()</h3><a class="indexterm" name="id2738909"></a><pre class="programlisting"><a href="cairo-cairo-t.html#cairo-filter-t">cairo_filter_t</a> cairo_surface_get_filter (<a href="cairo-cairo-surface-t.html#cairo-surface-t">cairo_surface_t</a> *surface);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>surface</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="cairo-cairo-t.html"><b>&lt;&lt; cairo_t</b></a></td><td align="right"><a accesskey="n" href="cairo-cairo-pattern-t.html"><b>cairo_pattern_t &gt;&gt;</b></a></td></tr></table></body></html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,189 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<book xmlns="http://www.devhelp.net/book" title="" link="index.html" author="" name="cairo">
<chapters>
<sub name="Tutorial" link="pt01.html"/>
<sub name="Reference" link="pt02.html">
<sub name="cairo_t" link="cairo-cairo-t.html"/>
<sub name="cairo_surface_t" link="cairo-cairo-surface-t.html"/>
<sub name="cairo_pattern_t" link="cairo-cairo-pattern-t.html"/>
<sub name="cairo_matrix_t" link="cairo-cairo-matrix-t.html"/>
<sub name="ATSUI Fonts" link="cairo-ATSUI-Fonts.html"/>
<sub name="FreeType Fonts" link="cairo-FreeType-Fonts.html"/>
<sub name="Glitz backend" link="cairo-Glitz-backend.html"/>
<sub name="PDF Backend" link="cairo-PDF-Backend.html"/>
<sub name="PNG Backend" link="cairo-PNG-Backend.html"/>
<sub name="PS Backend" link="cairo-PS-Backend.html"/>
<sub name="Quartz Backend" link="cairo-Quartz-Backend.html"/>
<sub name="Microsoft Windows Backend" link="cairo-Microsoft-Windows-Backend.html"/>
<sub name="XCB Backend" link="cairo-XCB-Backend.html"/>
<sub name="XLib Backend" link="cairo-XLib-Backend.html"/>
</sub>
</chapters>
<functions>
<function name="cairo_t" link="cairo-cairo-t.html#cairo-t"/>
<function name="cairo_create ()" link="cairo-cairo-t.html#cairo-create"/>
<function name="cairo_reference ()" link="cairo-cairo-t.html#cairo-reference"/>
<function name="cairo_destroy ()" link="cairo-cairo-t.html#cairo-destroy"/>
<function name="cairo_save ()" link="cairo-cairo-t.html#cairo-save"/>
<function name="cairo_restore ()" link="cairo-cairo-t.html#cairo-restore"/>
<function name="cairo_copy ()" link="cairo-cairo-t.html#cairo-copy"/>
<function name="cairo_set_target_surface ()" link="cairo-cairo-t.html#cairo-set-target-surface"/>
<function name="enum cairo_format_t" link="cairo-cairo-t.html#cairo-format-t"/>
<function name="cairo_set_target_image ()" link="cairo-cairo-t.html#cairo-set-target-image"/>
<function name="enum cairo_operator_t" link="cairo-cairo-t.html#cairo-operator-t"/>
<function name="cairo_set_operator ()" link="cairo-cairo-t.html#cairo-set-operator"/>
<function name="cairo_set_rgb_color ()" link="cairo-cairo-t.html#cairo-set-rgb-color"/>
<function name="cairo_set_pattern ()" link="cairo-cairo-t.html#cairo-set-pattern"/>
<function name="cairo_set_alpha ()" link="cairo-cairo-t.html#cairo-set-alpha"/>
<function name="cairo_set_tolerance ()" link="cairo-cairo-t.html#cairo-set-tolerance"/>
<function name="enum cairo_fill_rule_t" link="cairo-cairo-t.html#cairo-fill-rule-t"/>
<function name="cairo_set_fill_rule ()" link="cairo-cairo-t.html#cairo-set-fill-rule"/>
<function name="cairo_set_line_width ()" link="cairo-cairo-t.html#cairo-set-line-width"/>
<function name="enum cairo_line_cap_t" link="cairo-cairo-t.html#cairo-line-cap-t"/>
<function name="cairo_set_line_cap ()" link="cairo-cairo-t.html#cairo-set-line-cap"/>
<function name="enum cairo_line_join_t" link="cairo-cairo-t.html#cairo-line-join-t"/>
<function name="cairo_set_line_join ()" link="cairo-cairo-t.html#cairo-set-line-join"/>
<function name="cairo_set_dash ()" link="cairo-cairo-t.html#cairo-set-dash"/>
<function name="cairo_set_miter_limit ()" link="cairo-cairo-t.html#cairo-set-miter-limit"/>
<function name="cairo_translate ()" link="cairo-cairo-t.html#cairo-translate"/>
<function name="cairo_scale ()" link="cairo-cairo-t.html#cairo-scale"/>
<function name="cairo_rotate ()" link="cairo-cairo-t.html#cairo-rotate"/>
<function name="cairo_concat_matrix ()" link="cairo-cairo-t.html#cairo-concat-matrix"/>
<function name="cairo_set_matrix ()" link="cairo-cairo-t.html#cairo-set-matrix"/>
<function name="cairo_default_matrix ()" link="cairo-cairo-t.html#cairo-default-matrix"/>
<function name="cairo_identity_matrix ()" link="cairo-cairo-t.html#cairo-identity-matrix"/>
<function name="cairo_transform_point ()" link="cairo-cairo-t.html#cairo-transform-point"/>
<function name="cairo_transform_distance ()" link="cairo-cairo-t.html#cairo-transform-distance"/>
<function name="cairo_inverse_transform_point ()" link="cairo-cairo-t.html#cairo-inverse-transform-point"/>
<function name="cairo_inverse_transform_distance ()" link="cairo-cairo-t.html#cairo-inverse-transform-distance"/>
<function name="cairo_new_path ()" link="cairo-cairo-t.html#cairo-new-path"/>
<function name="cairo_move_to ()" link="cairo-cairo-t.html#cairo-move-to"/>
<function name="cairo_line_to ()" link="cairo-cairo-t.html#cairo-line-to"/>
<function name="cairo_curve_to ()" link="cairo-cairo-t.html#cairo-curve-to"/>
<function name="cairo_arc ()" link="cairo-cairo-t.html#cairo-arc"/>
<function name="cairo_arc_negative ()" link="cairo-cairo-t.html#cairo-arc-negative"/>
<function name="cairo_rel_move_to ()" link="cairo-cairo-t.html#cairo-rel-move-to"/>
<function name="cairo_rel_line_to ()" link="cairo-cairo-t.html#cairo-rel-line-to"/>
<function name="cairo_rel_curve_to ()" link="cairo-cairo-t.html#cairo-rel-curve-to"/>
<function name="cairo_rectangle ()" link="cairo-cairo-t.html#cairo-rectangle"/>
<function name="cairo_close_path ()" link="cairo-cairo-t.html#cairo-close-path"/>
<function name="cairo_stroke ()" link="cairo-cairo-t.html#cairo-stroke"/>
<function name="cairo_fill ()" link="cairo-cairo-t.html#cairo-fill"/>
<function name="cairo_copy_page ()" link="cairo-cairo-t.html#cairo-copy-page"/>
<function name="cairo_show_page ()" link="cairo-cairo-t.html#cairo-show-page"/>
<function name="cairo_in_stroke ()" link="cairo-cairo-t.html#cairo-in-stroke"/>
<function name="cairo_in_fill ()" link="cairo-cairo-t.html#cairo-in-fill"/>
<function name="cairo_bool_t" link="cairo-cairo-t.html#cairo-bool-t"/>
<function name="cairo_stroke_extents ()" link="cairo-cairo-t.html#cairo-stroke-extents"/>
<function name="cairo_fill_extents ()" link="cairo-cairo-t.html#cairo-fill-extents"/>
<function name="cairo_init_clip ()" link="cairo-cairo-t.html#cairo-init-clip"/>
<function name="cairo_clip ()" link="cairo-cairo-t.html#cairo-clip"/>
<function name="cairo_font_t" link="cairo-cairo-t.html#cairo-font-t"/>
<function name="cairo_glyph_t" link="cairo-cairo-t.html#cairo-glyph-t"/>
<function name="cairo_text_extents_t" link="cairo-cairo-t.html#cairo-text-extents-t"/>
<function name="cairo_font_extents_t" link="cairo-cairo-t.html#cairo-font-extents-t"/>
<function name="enum cairo_font_slant_t" link="cairo-cairo-t.html#cairo-font-slant-t"/>
<function name="enum cairo_font_weight_t" link="cairo-cairo-t.html#cairo-font-weight-t"/>
<function name="cairo_select_font ()" link="cairo-cairo-t.html#cairo-select-font"/>
<function name="cairo_scale_font ()" link="cairo-cairo-t.html#cairo-scale-font"/>
<function name="cairo_transform_font ()" link="cairo-cairo-t.html#cairo-transform-font"/>
<function name="cairo_show_text ()" link="cairo-cairo-t.html#cairo-show-text"/>
<function name="cairo_show_glyphs ()" link="cairo-cairo-t.html#cairo-show-glyphs"/>
<function name="cairo_current_font ()" link="cairo-cairo-t.html#cairo-current-font"/>
<function name="cairo_current_font_extents ()" link="cairo-cairo-t.html#cairo-current-font-extents"/>
<function name="cairo_set_font ()" link="cairo-cairo-t.html#cairo-set-font"/>
<function name="cairo_text_extents ()" link="cairo-cairo-t.html#cairo-text-extents"/>
<function name="cairo_glyph_extents ()" link="cairo-cairo-t.html#cairo-glyph-extents"/>
<function name="cairo_text_path ()" link="cairo-cairo-t.html#cairo-text-path"/>
<function name="cairo_glyph_path ()" link="cairo-cairo-t.html#cairo-glyph-path"/>
<function name="cairo_font_reference ()" link="cairo-cairo-t.html#cairo-font-reference"/>
<function name="cairo_font_destroy ()" link="cairo-cairo-t.html#cairo-font-destroy"/>
<function name="cairo_font_extents ()" link="cairo-cairo-t.html#cairo-font-extents"/>
<function name="cairo_font_glyph_extents ()" link="cairo-cairo-t.html#cairo-font-glyph-extents"/>
<function name="cairo_show_surface ()" link="cairo-cairo-t.html#cairo-show-surface"/>
<function name="cairo_current_operator ()" link="cairo-cairo-t.html#cairo-current-operator"/>
<function name="cairo_current_rgb_color ()" link="cairo-cairo-t.html#cairo-current-rgb-color"/>
<function name="cairo_current_pattern ()" link="cairo-cairo-t.html#cairo-current-pattern"/>
<function name="cairo_current_alpha ()" link="cairo-cairo-t.html#cairo-current-alpha"/>
<function name="cairo_current_tolerance ()" link="cairo-cairo-t.html#cairo-current-tolerance"/>
<function name="cairo_current_point ()" link="cairo-cairo-t.html#cairo-current-point"/>
<function name="cairo_current_fill_rule ()" link="cairo-cairo-t.html#cairo-current-fill-rule"/>
<function name="cairo_current_line_width ()" link="cairo-cairo-t.html#cairo-current-line-width"/>
<function name="cairo_current_line_cap ()" link="cairo-cairo-t.html#cairo-current-line-cap"/>
<function name="cairo_current_line_join ()" link="cairo-cairo-t.html#cairo-current-line-join"/>
<function name="cairo_current_miter_limit ()" link="cairo-cairo-t.html#cairo-current-miter-limit"/>
<function name="cairo_current_matrix ()" link="cairo-cairo-t.html#cairo-current-matrix"/>
<function name="cairo_current_target_surface ()" link="cairo-cairo-t.html#cairo-current-target-surface"/>
<function name="cairo_current_path ()" link="cairo-cairo-t.html#cairo-current-path"/>
<function name="cairo_current_path_flat ()" link="cairo-cairo-t.html#cairo-current-path-flat"/>
<function name="enum cairo_status_t" link="cairo-cairo-t.html#cairo-status-t"/>
<function name="cairo_status ()" link="cairo-cairo-t.html#cairo-status"/>
<function name="cairo_status_string ()" link="cairo-cairo-t.html#cairo-status-string"/>
<function name="enum cairo_filter_t" link="cairo-cairo-t.html#cairo-filter-t"/>
<function name="cairo_image_surface_create ()" link="cairo-cairo-t.html#cairo-image-surface-create"/>
<function name="cairo_image_surface_create_for_data ()" link="cairo-cairo-t.html#cairo-image-surface-create-for-data"/>
<function name="cairo_surface_t" link="cairo-cairo-surface-t.html#cairo-surface-t"/>
<function name="cairo_surface_create_for_image ()" link="cairo-cairo-surface-t.html#cairo-surface-create-for-image"/>
<function name="cairo_surface_create_similar ()" link="cairo-cairo-surface-t.html#cairo-surface-create-similar"/>
<function name="cairo_surface_reference ()" link="cairo-cairo-surface-t.html#cairo-surface-reference"/>
<function name="cairo_surface_destroy ()" link="cairo-cairo-surface-t.html#cairo-surface-destroy"/>
<function name="cairo_surface_set_repeat ()" link="cairo-cairo-surface-t.html#cairo-surface-set-repeat"/>
<function name="cairo_surface_set_matrix ()" link="cairo-cairo-surface-t.html#cairo-surface-set-matrix"/>
<function name="cairo_surface_get_matrix ()" link="cairo-cairo-surface-t.html#cairo-surface-get-matrix"/>
<function name="cairo_surface_set_filter ()" link="cairo-cairo-surface-t.html#cairo-surface-set-filter"/>
<function name="cairo_surface_get_filter ()" link="cairo-cairo-surface-t.html#cairo-surface-get-filter"/>
<function name="cairo_pattern_t" link="cairo-cairo-pattern-t.html#cairo-pattern-t"/>
<function name="cairo_pattern_create_for_surface ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface"/>
<function name="cairo_pattern_create_linear ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-linear"/>
<function name="cairo_pattern_create_radial ()" link="cairo-cairo-pattern-t.html#cairo-pattern-create-radial"/>
<function name="cairo_pattern_reference ()" link="cairo-cairo-pattern-t.html#cairo-pattern-reference"/>
<function name="cairo_pattern_destroy ()" link="cairo-cairo-pattern-t.html#cairo-pattern-destroy"/>
<function name="cairo_pattern_add_color_stop ()" link="cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop"/>
<function name="cairo_pattern_set_matrix ()" link="cairo-cairo-pattern-t.html#cairo-pattern-set-matrix"/>
<function name="cairo_pattern_get_matrix ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-matrix"/>
<function name="enum cairo_extend_t" link="cairo-cairo-pattern-t.html#cairo-extend-t"/>
<function name="cairo_pattern_set_extend ()" link="cairo-cairo-pattern-t.html#cairo-pattern-set-extend"/>
<function name="cairo_pattern_get_extend ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-extend"/>
<function name="cairo_pattern_set_filter ()" link="cairo-cairo-pattern-t.html#cairo-pattern-set-filter"/>
<function name="cairo_pattern_get_filter ()" link="cairo-cairo-pattern-t.html#cairo-pattern-get-filter"/>
<function name="cairo_matrix_t" link="cairo-cairo-matrix-t.html#cairo-matrix-t"/>
<function name="cairo_matrix_create ()" link="cairo-cairo-matrix-t.html#cairo-matrix-create"/>
<function name="cairo_matrix_destroy ()" link="cairo-cairo-matrix-t.html#cairo-matrix-destroy"/>
<function name="cairo_matrix_copy ()" link="cairo-cairo-matrix-t.html#cairo-matrix-copy"/>
<function name="cairo_matrix_set_identity ()" link="cairo-cairo-matrix-t.html#cairo-matrix-set-identity"/>
<function name="cairo_matrix_set_affine ()" link="cairo-cairo-matrix-t.html#cairo-matrix-set-affine"/>
<function name="cairo_matrix_get_affine ()" link="cairo-cairo-matrix-t.html#cairo-matrix-get-affine"/>
<function name="cairo_matrix_translate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-translate"/>
<function name="cairo_matrix_scale ()" link="cairo-cairo-matrix-t.html#cairo-matrix-scale"/>
<function name="cairo_matrix_rotate ()" link="cairo-cairo-matrix-t.html#cairo-matrix-rotate"/>
<function name="cairo_matrix_invert ()" link="cairo-cairo-matrix-t.html#cairo-matrix-invert"/>
<function name="cairo_matrix_multiply ()" link="cairo-cairo-matrix-t.html#cairo-matrix-multiply"/>
<function name="cairo_matrix_transform_distance ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-distance"/>
<function name="cairo_matrix_transform_point ()" link="cairo-cairo-matrix-t.html#cairo-matrix-transform-point"/>
<function name="cairo_atsui_font_create ()" link="cairo-ATSUI-Fonts.html#cairo-atsui-font-create"/>
<function name="cairo_ft_font_create ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-create"/>
<function name="cairo_ft_font_create_for_ft_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-create-for-ft-face"/>
<function name="cairo_ft_font_lock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-lock-face"/>
<function name="cairo_ft_font_unlock_face ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-unlock-face"/>
<function name="cairo_ft_font_get_pattern ()" link="cairo-FreeType-Fonts.html#cairo-ft-font-get-pattern"/>
<function name="cairo_set_target_glitz ()" link="cairo-Glitz-backend.html#cairo-set-target-glitz"/>
<function name="cairo_glitz_surface_create ()" link="cairo-Glitz-backend.html#cairo-glitz-surface-create"/>
<function name="cairo_set_target_pdf ()" link="cairo-PDF-Backend.html#cairo-set-target-pdf"/>
<function name="cairo_pdf_surface_create ()" link="cairo-PDF-Backend.html#cairo-pdf-surface-create"/>
<function name="cairo_set_target_png ()" link="cairo-PNG-Backend.html#cairo-set-target-png"/>
<function name="cairo_png_surface_create ()" link="cairo-PNG-Backend.html#cairo-png-surface-create"/>
<function name="cairo_set_target_ps ()" link="cairo-PS-Backend.html#cairo-set-target-ps"/>
<function name="cairo_ps_surface_create ()" link="cairo-PS-Backend.html#cairo-ps-surface-create"/>
<function name="cairo_set_target_quartz_context ()" link="cairo-Quartz-Backend.html#cairo-set-target-quartz-context"/>
<function name="cairo_quartz_surface_create ()" link="cairo-Quartz-Backend.html#cairo-quartz-surface-create"/>
<function name="cairo_set_target_win32 ()" link="cairo-Microsoft-Windows-Backend.html#cairo-set-target-win32"/>
<function name="cairo_win32_surface_create ()" link="cairo-Microsoft-Windows-Backend.html#cairo-win32-surface-create"/>
<function name="cairo_win32_font_create_for_logfontw ()" link="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-create-for-logfontw"/>
<function name="cairo_win32_font_select_font ()" link="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-select-font"/>
<function name="cairo_win32_font_done_font ()" link="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-done-font"/>
<function name="cairo_win32_font_get_scale_factor ()" link="cairo-Microsoft-Windows-Backend.html#cairo-win32-font-get-scale-factor"/>
<function name="cairo_set_target_xcb ()" link="cairo-XCB-Backend.html#cairo-set-target-xcb"/>
<function name="cairo_set_target_drawable ()" link="cairo-XLib-Backend.html#cairo-set-target-drawable"/>
<function name="cairo_xlib_surface_create ()" link="cairo-XLib-Backend.html#cairo-xlib-surface-create"/>
</functions>
</book>

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

View File

@ -0,0 +1,2 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Cairo: A Vector Graphics Library</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="next" href="pt01.html" title="Part I. Tutorial"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><table class="navigation" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Cairo: A Vector Graphics Library</p></th></tr></table></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="part"><a href="pt01.html">I. Tutorial</a></span></dt><dt><span class="part"><a href="pt02.html">II. Reference</a></span></dt><dd><dl><dt><a href="cairo-cairo-t.html">cairo_t</a> - Drawing contexts.</dt><dt><a href="cairo-cairo-surface-t.html">cairo_surface_t</a> - </dt><dt><a href="cairo-cairo-pattern-t.html">cairo_pattern_t</a> - </dt><dt><a href="cairo-cairo-matrix-t.html">cairo_matrix_t</a> -
Transformation matrices</dt><dt><a href="cairo-ATSUI-Fonts.html">ATSUI Fonts</a> - </dt><dt><a href="cairo-FreeType-Fonts.html">FreeType Fonts</a> - </dt><dt><a href="cairo-Glitz-backend.html">Glitz backend</a> - </dt><dt><a href="cairo-PDF-Backend.html">PDF Backend</a> - </dt><dt><a href="cairo-PNG-Backend.html">PNG Backend</a> - </dt><dt><a href="cairo-PS-Backend.html">PS Backend</a> - </dt><dt><a href="cairo-Quartz-Backend.html">Quartz Backend</a> - </dt><dt><a href="cairo-Microsoft-Windows-Backend.html">Microsoft Windows Backend</a> - </dt><dt><a href="cairo-XCB-Backend.html">XCB Backend</a> - </dt><dt><a href="cairo-XLib-Backend.html">XLib Backend</a> - </dt></dl></dd></dl></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"></td><td align="right"><a accesskey="n" href="pt01.html"><b>Part I. Tutorial &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1,179 @@
<ANCHOR id="cairo-cairo-t" href="cairo/cairo-cairo-t.html">
<ANCHOR id="cairo-t" href="cairo/cairo-cairo-t.html#cairo-t">
<ANCHOR id="cairo-create" href="cairo/cairo-cairo-t.html#cairo-create">
<ANCHOR id="cairo-reference" href="cairo/cairo-cairo-t.html#cairo-reference">
<ANCHOR id="cairo-destroy" href="cairo/cairo-cairo-t.html#cairo-destroy">
<ANCHOR id="cairo-save" href="cairo/cairo-cairo-t.html#cairo-save">
<ANCHOR id="cairo-restore" href="cairo/cairo-cairo-t.html#cairo-restore">
<ANCHOR id="cairo-copy" href="cairo/cairo-cairo-t.html#cairo-copy">
<ANCHOR id="cairo-set-target-surface" href="cairo/cairo-cairo-t.html#cairo-set-target-surface">
<ANCHOR id="cairo-format-t" href="cairo/cairo-cairo-t.html#cairo-format-t">
<ANCHOR id="cairo-set-target-image" href="cairo/cairo-cairo-t.html#cairo-set-target-image">
<ANCHOR id="cairo-operator-t" href="cairo/cairo-cairo-t.html#cairo-operator-t">
<ANCHOR id="cairo-set-operator" href="cairo/cairo-cairo-t.html#cairo-set-operator">
<ANCHOR id="cairo-set-rgb-color" href="cairo/cairo-cairo-t.html#cairo-set-rgb-color">
<ANCHOR id="cairo-set-pattern" href="cairo/cairo-cairo-t.html#cairo-set-pattern">
<ANCHOR id="cairo-set-alpha" href="cairo/cairo-cairo-t.html#cairo-set-alpha">
<ANCHOR id="cairo-set-tolerance" href="cairo/cairo-cairo-t.html#cairo-set-tolerance">
<ANCHOR id="cairo-fill-rule-t" href="cairo/cairo-cairo-t.html#cairo-fill-rule-t">
<ANCHOR id="cairo-set-fill-rule" href="cairo/cairo-cairo-t.html#cairo-set-fill-rule">
<ANCHOR id="cairo-set-line-width" href="cairo/cairo-cairo-t.html#cairo-set-line-width">
<ANCHOR id="cairo-line-cap-t" href="cairo/cairo-cairo-t.html#cairo-line-cap-t">
<ANCHOR id="cairo-set-line-cap" href="cairo/cairo-cairo-t.html#cairo-set-line-cap">
<ANCHOR id="cairo-line-join-t" href="cairo/cairo-cairo-t.html#cairo-line-join-t">
<ANCHOR id="cairo-set-line-join" href="cairo/cairo-cairo-t.html#cairo-set-line-join">
<ANCHOR id="cairo-set-dash" href="cairo/cairo-cairo-t.html#cairo-set-dash">
<ANCHOR id="cairo-set-miter-limit" href="cairo/cairo-cairo-t.html#cairo-set-miter-limit">
<ANCHOR id="cairo-translate" href="cairo/cairo-cairo-t.html#cairo-translate">
<ANCHOR id="cairo-scale" href="cairo/cairo-cairo-t.html#cairo-scale">
<ANCHOR id="cairo-rotate" href="cairo/cairo-cairo-t.html#cairo-rotate">
<ANCHOR id="cairo-concat-matrix" href="cairo/cairo-cairo-t.html#cairo-concat-matrix">
<ANCHOR id="cairo-set-matrix" href="cairo/cairo-cairo-t.html#cairo-set-matrix">
<ANCHOR id="cairo-default-matrix" href="cairo/cairo-cairo-t.html#cairo-default-matrix">
<ANCHOR id="cairo-identity-matrix" href="cairo/cairo-cairo-t.html#cairo-identity-matrix">
<ANCHOR id="cairo-transform-point" href="cairo/cairo-cairo-t.html#cairo-transform-point">
<ANCHOR id="cairo-transform-distance" href="cairo/cairo-cairo-t.html#cairo-transform-distance">
<ANCHOR id="cairo-inverse-transform-point" href="cairo/cairo-cairo-t.html#cairo-inverse-transform-point">
<ANCHOR id="cairo-inverse-transform-distance" href="cairo/cairo-cairo-t.html#cairo-inverse-transform-distance">
<ANCHOR id="cairo-new-path" href="cairo/cairo-cairo-t.html#cairo-new-path">
<ANCHOR id="cairo-move-to" href="cairo/cairo-cairo-t.html#cairo-move-to">
<ANCHOR id="cairo-line-to" href="cairo/cairo-cairo-t.html#cairo-line-to">
<ANCHOR id="cairo-curve-to" href="cairo/cairo-cairo-t.html#cairo-curve-to">
<ANCHOR id="cairo-arc" href="cairo/cairo-cairo-t.html#cairo-arc">
<ANCHOR id="cairo-arc-negative" href="cairo/cairo-cairo-t.html#cairo-arc-negative">
<ANCHOR id="cairo-rel-move-to" href="cairo/cairo-cairo-t.html#cairo-rel-move-to">
<ANCHOR id="cairo-rel-line-to" href="cairo/cairo-cairo-t.html#cairo-rel-line-to">
<ANCHOR id="cairo-rel-curve-to" href="cairo/cairo-cairo-t.html#cairo-rel-curve-to">
<ANCHOR id="cairo-rectangle" href="cairo/cairo-cairo-t.html#cairo-rectangle">
<ANCHOR id="cairo-close-path" href="cairo/cairo-cairo-t.html#cairo-close-path">
<ANCHOR id="cairo-stroke" href="cairo/cairo-cairo-t.html#cairo-stroke">
<ANCHOR id="cairo-fill" href="cairo/cairo-cairo-t.html#cairo-fill">
<ANCHOR id="cairo-copy-page" href="cairo/cairo-cairo-t.html#cairo-copy-page">
<ANCHOR id="cairo-show-page" href="cairo/cairo-cairo-t.html#cairo-show-page">
<ANCHOR id="cairo-in-stroke" href="cairo/cairo-cairo-t.html#cairo-in-stroke">
<ANCHOR id="cairo-in-fill" href="cairo/cairo-cairo-t.html#cairo-in-fill">
<ANCHOR id="cairo-bool-t" href="cairo/cairo-cairo-t.html#cairo-bool-t">
<ANCHOR id="cairo-stroke-extents" href="cairo/cairo-cairo-t.html#cairo-stroke-extents">
<ANCHOR id="cairo-fill-extents" href="cairo/cairo-cairo-t.html#cairo-fill-extents">
<ANCHOR id="cairo-init-clip" href="cairo/cairo-cairo-t.html#cairo-init-clip">
<ANCHOR id="cairo-clip" href="cairo/cairo-cairo-t.html#cairo-clip">
<ANCHOR id="cairo-font-t" href="cairo/cairo-cairo-t.html#cairo-font-t">
<ANCHOR id="cairo-glyph-t" href="cairo/cairo-cairo-t.html#cairo-glyph-t">
<ANCHOR id="cairo-text-extents-t" href="cairo/cairo-cairo-t.html#cairo-text-extents-t">
<ANCHOR id="cairo-font-extents-t" href="cairo/cairo-cairo-t.html#cairo-font-extents-t">
<ANCHOR id="cairo-font-slant-t" href="cairo/cairo-cairo-t.html#cairo-font-slant-t">
<ANCHOR id="cairo-font-weight-t" href="cairo/cairo-cairo-t.html#cairo-font-weight-t">
<ANCHOR id="cairo-select-font" href="cairo/cairo-cairo-t.html#cairo-select-font">
<ANCHOR id="cairo-scale-font" href="cairo/cairo-cairo-t.html#cairo-scale-font">
<ANCHOR id="cairo-transform-font" href="cairo/cairo-cairo-t.html#cairo-transform-font">
<ANCHOR id="cairo-show-text" href="cairo/cairo-cairo-t.html#cairo-show-text">
<ANCHOR id="cairo-show-glyphs" href="cairo/cairo-cairo-t.html#cairo-show-glyphs">
<ANCHOR id="cairo-current-font" href="cairo/cairo-cairo-t.html#cairo-current-font">
<ANCHOR id="cairo-current-font-extents" href="cairo/cairo-cairo-t.html#cairo-current-font-extents">
<ANCHOR id="cairo-set-font" href="cairo/cairo-cairo-t.html#cairo-set-font">
<ANCHOR id="cairo-text-extents" href="cairo/cairo-cairo-t.html#cairo-text-extents">
<ANCHOR id="cairo-glyph-extents" href="cairo/cairo-cairo-t.html#cairo-glyph-extents">
<ANCHOR id="cairo-text-path" href="cairo/cairo-cairo-t.html#cairo-text-path">
<ANCHOR id="cairo-glyph-path" href="cairo/cairo-cairo-t.html#cairo-glyph-path">
<ANCHOR id="cairo-font-reference" href="cairo/cairo-cairo-t.html#cairo-font-reference">
<ANCHOR id="cairo-font-destroy" href="cairo/cairo-cairo-t.html#cairo-font-destroy">
<ANCHOR id="cairo-font-extents" href="cairo/cairo-cairo-t.html#cairo-font-extents">
<ANCHOR id="cairo-font-glyph-extents" href="cairo/cairo-cairo-t.html#cairo-font-glyph-extents">
<ANCHOR id="cairo-show-surface" href="cairo/cairo-cairo-t.html#cairo-show-surface">
<ANCHOR id="cairo-current-operator" href="cairo/cairo-cairo-t.html#cairo-current-operator">
<ANCHOR id="cairo-current-rgb-color" href="cairo/cairo-cairo-t.html#cairo-current-rgb-color">
<ANCHOR id="cairo-current-pattern" href="cairo/cairo-cairo-t.html#cairo-current-pattern">
<ANCHOR id="cairo-current-alpha" href="cairo/cairo-cairo-t.html#cairo-current-alpha">
<ANCHOR id="cairo-current-tolerance" href="cairo/cairo-cairo-t.html#cairo-current-tolerance">
<ANCHOR id="cairo-current-point" href="cairo/cairo-cairo-t.html#cairo-current-point">
<ANCHOR id="cairo-current-fill-rule" href="cairo/cairo-cairo-t.html#cairo-current-fill-rule">
<ANCHOR id="cairo-current-line-width" href="cairo/cairo-cairo-t.html#cairo-current-line-width">
<ANCHOR id="cairo-current-line-cap" href="cairo/cairo-cairo-t.html#cairo-current-line-cap">
<ANCHOR id="cairo-current-line-join" href="cairo/cairo-cairo-t.html#cairo-current-line-join">
<ANCHOR id="cairo-current-miter-limit" href="cairo/cairo-cairo-t.html#cairo-current-miter-limit">
<ANCHOR id="cairo-current-matrix" href="cairo/cairo-cairo-t.html#cairo-current-matrix">
<ANCHOR id="cairo-current-target-surface" href="cairo/cairo-cairo-t.html#cairo-current-target-surface">
<ANCHOR id="cairo-current-path" href="cairo/cairo-cairo-t.html#cairo-current-path">
<ANCHOR id="cairo-current-path-flat" href="cairo/cairo-cairo-t.html#cairo-current-path-flat">
<ANCHOR id="cairo-status-t" href="cairo/cairo-cairo-t.html#cairo-status-t">
<ANCHOR id="cairo-status" href="cairo/cairo-cairo-t.html#cairo-status">
<ANCHOR id="cairo-status-string" href="cairo/cairo-cairo-t.html#cairo-status-string">
<ANCHOR id="cairo-filter-t" href="cairo/cairo-cairo-t.html#cairo-filter-t">
<ANCHOR id="cairo-image-surface-create" href="cairo/cairo-cairo-t.html#cairo-image-surface-create">
<ANCHOR id="cairo-image-surface-create-for-data" href="cairo/cairo-cairo-t.html#cairo-image-surface-create-for-data">
<ANCHOR id="cairo-cairo-surface-t" href="cairo/cairo-cairo-surface-t.html">
<ANCHOR id="cairo-surface-t" href="cairo/cairo-cairo-surface-t.html#cairo-surface-t">
<ANCHOR id="cairo-surface-create-for-image" href="cairo/cairo-cairo-surface-t.html#cairo-surface-create-for-image">
<ANCHOR id="cairo-surface-create-similar" href="cairo/cairo-cairo-surface-t.html#cairo-surface-create-similar">
<ANCHOR id="cairo-surface-reference" href="cairo/cairo-cairo-surface-t.html#cairo-surface-reference">
<ANCHOR id="cairo-surface-destroy" href="cairo/cairo-cairo-surface-t.html#cairo-surface-destroy">
<ANCHOR id="cairo-surface-set-repeat" href="cairo/cairo-cairo-surface-t.html#cairo-surface-set-repeat">
<ANCHOR id="cairo-surface-set-matrix" href="cairo/cairo-cairo-surface-t.html#cairo-surface-set-matrix">
<ANCHOR id="cairo-surface-get-matrix" href="cairo/cairo-cairo-surface-t.html#cairo-surface-get-matrix">
<ANCHOR id="cairo-surface-set-filter" href="cairo/cairo-cairo-surface-t.html#cairo-surface-set-filter">
<ANCHOR id="cairo-surface-get-filter" href="cairo/cairo-cairo-surface-t.html#cairo-surface-get-filter">
<ANCHOR id="cairo-cairo-pattern-t" href="cairo/cairo-cairo-pattern-t.html">
<ANCHOR id="cairo-pattern-t" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-t">
<ANCHOR id="cairo-pattern-create-for-surface" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-create-for-surface">
<ANCHOR id="cairo-pattern-create-linear" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-create-linear">
<ANCHOR id="cairo-pattern-create-radial" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-create-radial">
<ANCHOR id="cairo-pattern-reference" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-reference">
<ANCHOR id="cairo-pattern-destroy" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-destroy">
<ANCHOR id="cairo-pattern-add-color-stop" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-add-color-stop">
<ANCHOR id="cairo-pattern-set-matrix" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-set-matrix">
<ANCHOR id="cairo-pattern-get-matrix" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-get-matrix">
<ANCHOR id="cairo-extend-t" href="cairo/cairo-cairo-pattern-t.html#cairo-extend-t">
<ANCHOR id="cairo-pattern-set-extend" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-set-extend">
<ANCHOR id="cairo-pattern-get-extend" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-get-extend">
<ANCHOR id="cairo-pattern-set-filter" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-set-filter">
<ANCHOR id="cairo-pattern-get-filter" href="cairo/cairo-cairo-pattern-t.html#cairo-pattern-get-filter">
<ANCHOR id="cairo-cairo-matrix-t" href="cairo/cairo-cairo-matrix-t.html">
<ANCHOR id="cairo-matrix-t" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-t">
<ANCHOR id="cairo-matrix-create" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-create">
<ANCHOR id="cairo-matrix-destroy" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-destroy">
<ANCHOR id="cairo-matrix-copy" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-copy">
<ANCHOR id="cairo-matrix-set-identity" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-set-identity">
<ANCHOR id="cairo-matrix-set-affine" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-set-affine">
<ANCHOR id="cairo-matrix-get-affine" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-get-affine">
<ANCHOR id="cairo-matrix-translate" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-translate">
<ANCHOR id="cairo-matrix-scale" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-scale">
<ANCHOR id="cairo-matrix-rotate" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-rotate">
<ANCHOR id="cairo-matrix-invert" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-invert">
<ANCHOR id="cairo-matrix-multiply" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-multiply">
<ANCHOR id="cairo-matrix-transform-distance" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-transform-distance">
<ANCHOR id="cairo-matrix-transform-point" href="cairo/cairo-cairo-matrix-t.html#cairo-matrix-transform-point">
<ANCHOR id="cairo-ATSUI-Fonts" href="cairo/cairo-ATSUI-Fonts.html">
<ANCHOR id="cairo-atsui-font-create" href="cairo/cairo-ATSUI-Fonts.html#cairo-atsui-font-create">
<ANCHOR id="cairo-FreeType-Fonts" href="cairo/cairo-FreeType-Fonts.html">
<ANCHOR id="cairo-ft-font-create" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-create">
<ANCHOR id="cairo-ft-font-create-for-ft-face" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-create-for-ft-face">
<ANCHOR id="cairo-ft-font-lock-face" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-lock-face">
<ANCHOR id="cairo-ft-font-unlock-face" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-unlock-face">
<ANCHOR id="cairo-ft-font-get-pattern" href="cairo/cairo-FreeType-Fonts.html#cairo-ft-font-get-pattern">
<ANCHOR id="cairo-Glitz-backend" href="cairo/cairo-Glitz-backend.html">
<ANCHOR id="cairo-set-target-glitz" href="cairo/cairo-Glitz-backend.html#cairo-set-target-glitz">
<ANCHOR id="cairo-glitz-surface-create" href="cairo/cairo-Glitz-backend.html#cairo-glitz-surface-create">
<ANCHOR id="cairo-PDF-Backend" href="cairo/cairo-PDF-Backend.html">
<ANCHOR id="cairo-set-target-pdf" href="cairo/cairo-PDF-Backend.html#cairo-set-target-pdf">
<ANCHOR id="cairo-pdf-surface-create" href="cairo/cairo-PDF-Backend.html#cairo-pdf-surface-create">
<ANCHOR id="cairo-PNG-Backend" href="cairo/cairo-PNG-Backend.html">
<ANCHOR id="cairo-set-target-png" href="cairo/cairo-PNG-Backend.html#cairo-set-target-png">
<ANCHOR id="cairo-png-surface-create" href="cairo/cairo-PNG-Backend.html#cairo-png-surface-create">
<ANCHOR id="cairo-PS-Backend" href="cairo/cairo-PS-Backend.html">
<ANCHOR id="cairo-set-target-ps" href="cairo/cairo-PS-Backend.html#cairo-set-target-ps">
<ANCHOR id="cairo-ps-surface-create" href="cairo/cairo-PS-Backend.html#cairo-ps-surface-create">
<ANCHOR id="cairo-Quartz-Backend" href="cairo/cairo-Quartz-Backend.html">
<ANCHOR id="cairo-set-target-quartz-context" href="cairo/cairo-Quartz-Backend.html#cairo-set-target-quartz-context">
<ANCHOR id="cairo-quartz-surface-create" href="cairo/cairo-Quartz-Backend.html#cairo-quartz-surface-create">
<ANCHOR id="cairo-Microsoft-Windows-Backend" href="cairo/cairo-Microsoft-Windows-Backend.html">
<ANCHOR id="cairo-set-target-win32" href="cairo/cairo-Microsoft-Windows-Backend.html#cairo-set-target-win32">
<ANCHOR id="cairo-win32-surface-create" href="cairo/cairo-Microsoft-Windows-Backend.html#cairo-win32-surface-create">
<ANCHOR id="cairo-win32-font-create-for-logfontw" href="cairo/cairo-Microsoft-Windows-Backend.html#cairo-win32-font-create-for-logfontw">
<ANCHOR id="cairo-win32-font-select-font" href="cairo/cairo-Microsoft-Windows-Backend.html#cairo-win32-font-select-font">
<ANCHOR id="cairo-win32-font-done-font" href="cairo/cairo-Microsoft-Windows-Backend.html#cairo-win32-font-done-font">
<ANCHOR id="cairo-win32-font-get-scale-factor" href="cairo/cairo-Microsoft-Windows-Backend.html#cairo-win32-font-get-scale-factor">
<ANCHOR id="cairo-XCB-Backend" href="cairo/cairo-XCB-Backend.html">
<ANCHOR id="cairo-set-target-xcb" href="cairo/cairo-XCB-Backend.html#cairo-set-target-xcb">
<ANCHOR id="cairo-XLib-Backend" href="cairo/cairo-XLib-Backend.html">
<ANCHOR id="cairo-set-target-drawable" href="cairo/cairo-XLib-Backend.html#cairo-set-target-drawable">
<ANCHOR id="cairo-xlib-surface-create" href="cairo/cairo-XLib-Backend.html#cairo-xlib-surface-create">

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

View File

@ -0,0 +1 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part I. Tutorial</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="previous" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="next" href="pt02.html" title="Part II. Reference"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="pt02.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2677864"></a>Tutorial</h1></div></div><div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="index.html"><b>&lt;&lt; Cairo: A Vector Graphics Library</b></a></td><td align="right"><a accesskey="n" href="pt02.html"><b>Part II. Reference &gt;&gt;</b></a></td></tr></table></body></html>

View File

@ -0,0 +1 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part II. Reference</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="previous" href="pt01.html" title="Part I. Tutorial"><link rel="next" href="cairo-cairo-t.html" title="cairo_t"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="pt01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-cairo-t.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2618448"></a>Reference</h1></div></div><div></div></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="pt01.html"><b>&lt;&lt; Part I. Tutorial</b></a></td><td align="right"><a accesskey="n" href="cairo-cairo-t.html"><b>cairo_t &gt;&gt;</b></a></td></tr></table></body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

View File

@ -0,0 +1,66 @@
.synopsis, .classsynopsis
{
background: #eeeeee;
border: solid 1px #aaaaaa;
padding: 0.5em;
}
.programlisting
{
background: #eeeeff;
border: solid 1px #aaaaff;
padding: 0.5em;
}
.variablelist
{
padding: 4px;
margin-left: 3em;
}
.variablelist td:first-child
{
vertical-align: top;
}
table.navigation
{
background: #ffeeee;
border: solid 1px #ffaaaa;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.navigation a
{
color: #770000;
}
.navigation a:visited
{
color: #550000;
}
.navigation .title
{
font-size: 200%;
}
div.refnamediv
{
margin-top: 2em;
}
div.gallery-float
{
float: left;
padding: 10px;
}
div.gallery-float img
{
border-style: none;
}
div.gallery-spacer
{
clear: both;
}
a
{
text-decoration: none;
}
a:hover
{
text-decoration: underline;
color: #FF0000;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

View File

@ -0,0 +1,25 @@
<!-- ##### SECTION Title ##### -->
ATSUI Fonts
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_atsui_font_create ##### -->
<para>
</para>
@style:
@Returns:

View File

@ -0,0 +1,63 @@
<!-- ##### SECTION Title ##### -->
FreeType Fonts
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_ft_font_create ##### -->
<para>
</para>
@pattern:
@scale:
@Returns:
<!-- ##### FUNCTION cairo_ft_font_create_for_ft_face ##### -->
<para>
</para>
@face:
@load_flags:
@scale:
@Returns:
<!-- ##### FUNCTION cairo_ft_font_lock_face ##### -->
<para>
</para>
@ft_font:
@Returns:
<!-- ##### FUNCTION cairo_ft_font_unlock_face ##### -->
<para>
</para>
@ft_font:
<!-- ##### FUNCTION cairo_ft_font_get_pattern ##### -->
<para>
</para>
@ft_font:
@Returns:

View File

@ -0,0 +1,34 @@
<!-- ##### SECTION Title ##### -->
Glitz backend
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_set_target_glitz ##### -->
<para>
</para>
@cr:
@surface:
<!-- ##### FUNCTION cairo_glitz_surface_create ##### -->
<para>
</para>
@surface:
@Returns:

View File

@ -0,0 +1,193 @@
<!-- ##### SECTION Title ##### -->
cairo_matrix_t
<!-- ##### SECTION Short_Description ##### -->
Transformation matrices
<!-- ##### SECTION Long_Description ##### -->
<para><indexterm><primary>types</primary><secondary>cairo_matrix</secondary></indexterm><indexterm><primary/></indexterm>
<structname>cairo_matrix_t</structname> is used throughout
Cairo to represents between different coordinates spaces.
A <structname>cairo_matrix</structname> holds an affine
transformation, such as a scale, rotation, or shear, or a
combination of those. Mathematically, the effect of an affine
transformation on a point (<literal>x</literal>,<literal>y</literal>) is given by:
</para>
<programlisting>
x_new = x * a + y * c + tx;
y_new = x * b + y * d + ty;
</programlisting>
<para>
The parameters <literal>a</literal>, <literal>b</literal>,
<literal>c</literal>, <literal>d</literal>, <literal>tx</literal>,
<literal>ty</literal> can be retrieved with
cairo_matrix_get_affine() and set with cairo_matrix_get_affine().
</para>
<para>
The primary use of transformation matrices in Cairo is as the
current transformation matrix in a #cairo_t. The current
transformation matrix gives the transformation from user space
coordinates to device coordinates. See cairo_set_matrix(),
cairo_current_matrix().
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### TYPEDEF cairo_matrix_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_matrix_create ##### -->
<para>
</para>
@Returns:
<!-- ##### FUNCTION cairo_matrix_destroy ##### -->
<para>
</para>
@matrix:
<!-- ##### FUNCTION cairo_matrix_copy ##### -->
<para>
</para>
@matrix:
@other:
@Returns:
<!-- ##### FUNCTION cairo_matrix_set_identity ##### -->
<para>
</para>
@matrix:
@Returns:
<!-- ##### FUNCTION cairo_matrix_set_affine ##### -->
<para>
</para>
@matrix:
@a:
@b:
@c:
@d:
@tx:
@ty:
@Returns:
<!-- # Unused Parameters # -->
@cr:
<!-- ##### FUNCTION cairo_matrix_get_affine ##### -->
<para>
</para>
@matrix:
@a:
@b:
@c:
@d:
@tx:
@ty:
@Returns:
<!-- ##### FUNCTION cairo_matrix_translate ##### -->
<para>
</para>
@matrix:
@tx:
@ty:
@Returns:
<!-- ##### FUNCTION cairo_matrix_scale ##### -->
<para>
</para>
@matrix:
@sx:
@sy:
@Returns:
<!-- ##### FUNCTION cairo_matrix_rotate ##### -->
<para>
</para>
@matrix:
@radians:
@Returns:
<!-- ##### FUNCTION cairo_matrix_invert ##### -->
<para>
</para>
@matrix:
@Returns:
<!-- ##### FUNCTION cairo_matrix_multiply ##### -->
<para>
</para>
@result:
@a:
@b:
@Returns:
<!-- ##### FUNCTION cairo_matrix_transform_distance ##### -->
<para>
</para>
@matrix:
@dx:
@dy:
@Returns:
<!-- ##### FUNCTION cairo_matrix_transform_point ##### -->
<para>
</para>
@matrix:
@x:
@y:
@Returns:
<!--
Local variables:
mode: sgml
sgml-parent-document: ("../cairo-docs.xml" "book" "refsect2" "")
End:
-->

View File

@ -0,0 +1,154 @@
<!-- ##### SECTION Title ##### -->
cairo_pattern_t
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### TYPEDEF cairo_pattern_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_pattern_create_for_surface ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_pattern_create_linear ##### -->
<para>
</para>
@x0:
@y0:
@x1:
@y1:
@Returns:
<!-- ##### FUNCTION cairo_pattern_create_radial ##### -->
<para>
</para>
@cx0:
@cy0:
@radius0:
@cx1:
@cy1:
@radius1:
@Returns:
<!-- ##### FUNCTION cairo_pattern_reference ##### -->
<para>
</para>
@pattern:
<!-- ##### FUNCTION cairo_pattern_destroy ##### -->
<para>
</para>
@pattern:
<!-- ##### FUNCTION cairo_pattern_add_color_stop ##### -->
<para>
</para>
@pattern:
@offset:
@red:
@green:
@blue:
@alpha:
@Returns:
<!-- ##### FUNCTION cairo_pattern_set_matrix ##### -->
<para>
</para>
@pattern:
@matrix:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_matrix ##### -->
<para>
</para>
@pattern:
@matrix:
@Returns:
<!-- ##### ENUM cairo_extend_t ##### -->
<para>
</para>
@CAIRO_EXTEND_NONE:
@CAIRO_EXTEND_REPEAT:
@CAIRO_EXTEND_REFLECT:
<!-- ##### FUNCTION cairo_pattern_set_extend ##### -->
<para>
</para>
@pattern:
@extend:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_extend ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### FUNCTION cairo_pattern_set_filter ##### -->
<para>
</para>
@pattern:
@filter:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_filter ##### -->
<para>
</para>
@pattern:
@Returns:

View File

@ -0,0 +1,42 @@
<!-- ##### SECTION Title ##### -->
PDF Backend
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_set_target_pdf ##### -->
<para>
</para>
@cr:
@file:
@width_inches:
@height_inches:
@x_pixels_per_inch:
@y_pixels_per_inch:
<!-- ##### FUNCTION cairo_pdf_surface_create ##### -->
<para>
</para>
@file:
@width_inches:
@height_inches:
@x_pixels_per_inch:
@y_pixels_per_inch:
@Returns:

View File

@ -0,0 +1,40 @@
<!-- ##### SECTION Title ##### -->
PNG Backend
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_set_target_png ##### -->
<para>
</para>
@cr:
@file:
@format:
@width:
@height:
<!-- ##### FUNCTION cairo_png_surface_create ##### -->
<para>
</para>
@file:
@format:
@width:
@height:
@Returns:

View File

@ -0,0 +1,42 @@
<!-- ##### SECTION Title ##### -->
PS Backend
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_set_target_ps ##### -->
<para>
</para>
@cr:
@file:
@width_inches:
@height_inches:
@x_pixels_per_inch:
@y_pixels_per_inch:
<!-- ##### FUNCTION cairo_ps_surface_create ##### -->
<para>
</para>
@file:
@width_inches:
@height_inches:
@x_pixels_per_inch:
@y_pixels_per_inch:
@Returns:

View File

@ -0,0 +1,38 @@
<!-- ##### SECTION Title ##### -->
Quartz Backend
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_set_target_quartz_context ##### -->
<para>
</para>
@cr:
@context:
@width:
@height:
<!-- ##### FUNCTION cairo_quartz_surface_create ##### -->
<para>
</para>
@context:
@width:
@height:
@Returns:

View File

@ -0,0 +1,112 @@
<!-- ##### SECTION Title ##### -->
cairo_surface_t
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### TYPEDEF cairo_surface_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_surface_create_for_image ##### -->
<para>
</para>
@data:
@format:
@width:
@height:
@stride:
@Returns:
<!-- ##### FUNCTION cairo_surface_create_similar ##### -->
<para>
</para>
@other:
@format:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_surface_reference ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_destroy ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_set_repeat ##### -->
<para>
</para>
@surface:
@repeat:
@Returns:
<!-- ##### FUNCTION cairo_surface_set_matrix ##### -->
<para>
</para>
@surface:
@matrix:
@Returns:
<!-- ##### FUNCTION cairo_surface_get_matrix ##### -->
<para>
</para>
@surface:
@matrix:
@Returns:
<!-- ##### FUNCTION cairo_surface_set_filter ##### -->
<para>
</para>
@surface:
@filter:
@Returns:
<!-- ##### FUNCTION cairo_surface_get_filter ##### -->
<para>
</para>
@surface:
@Returns:

View File

@ -0,0 +1,28 @@
<!-- ##### SECTION Title ##### -->
XCB Backend
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_set_target_xcb ##### -->
<para>
</para>
@cr:
@dpy:
@drawable:
@visual:
@format:

View File

@ -0,0 +1,39 @@
<!-- ##### SECTION Title ##### -->
XLib Backend
<!-- ##### SECTION Short_Description ##### -->
<!-- ##### SECTION Long_Description ##### -->
<para>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_set_target_drawable ##### -->
<para>
</para>
@cr:
@dpy:
@drawable:
<!-- ##### FUNCTION cairo_xlib_surface_create ##### -->
<para>
</para>
@dpy:
@drawable:
@visual:
@format:
@colormap:
@Returns:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,62 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-ATSUI-Fonts">
<refmeta>
<refentrytitle>ATSUI Fonts</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>ATSUI Fonts</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="cairo-font-t">cairo_font_t</link>* <link linkend="cairo-atsui-font-create">cairo_atsui_font_create</link> (<link linkend="ATSUStyle">ATSUStyle</link> style);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-atsui-font-create"/>cairo_atsui_font_create ()</title>
<indexterm><primary>cairo_atsui_font_create</primary></indexterm><programlisting><link linkend="cairo-font-t">cairo_font_t</link>* cairo_atsui_font_create (<link linkend="ATSUStyle">ATSUStyle</link> style);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>style</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,206 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-FreeType-Fonts">
<refmeta>
<refentrytitle>FreeType Fonts</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>FreeType Fonts</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="cairo-font-t">cairo_font_t</link>* <link linkend="cairo-ft-font-create">cairo_ft_font_create</link> (<link linkend="FcPattern">FcPattern</link> *pattern,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);
<link linkend="cairo-font-t">cairo_font_t</link>* <link linkend="cairo-ft-font-create-for-ft-face">cairo_ft_font_create_for_ft_face</link>
(<link linkend="FT-Face">FT_Face</link> face,
<link linkend="int">int</link> load_flags,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);
<link linkend="FT-Face">FT_Face</link> <link linkend="cairo-ft-font-lock-face">cairo_ft_font_lock_face</link> (<link linkend="cairo-font-t">cairo_font_t</link> *ft_font);
<link linkend="void">void</link> <link linkend="cairo-ft-font-unlock-face">cairo_ft_font_unlock_face</link> (<link linkend="cairo-font-t">cairo_font_t</link> *ft_font);
<link linkend="FcPattern">FcPattern</link>* <link linkend="cairo-ft-font-get-pattern">cairo_ft_font_get_pattern</link> (<link linkend="cairo-font-t">cairo_font_t</link> *ft_font);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-ft-font-create"/>cairo_ft_font_create ()</title>
<indexterm><primary>cairo_ft_font_create</primary></indexterm><programlisting><link linkend="cairo-font-t">cairo_font_t</link>* cairo_ft_font_create (<link linkend="FcPattern">FcPattern</link> *pattern,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);</programlisting>
<para>
Creates a new font for the FreeType font backend based on a
fontconfig pattern. This font can then be used with
<link linkend="cairo-set-font"><function>cairo_set_font()</function></link>, <link linkend="cairo-font-glyph-extents"><function>cairo_font_glyph_extents()</function></link>, or FreeType backend
specific functions like <link linkend="cairo-ft-font-lock-face"><function>cairo_ft_font_lock_face()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara> A fully resolved fontconfig
pattern. A pattern can be resolved, by, among other things, calling
<link linkend="FcConfigSubstitute"><function>FcConfigSubstitute()</function></link>, <link linkend="FcDefaultSubstitute"><function>FcDefaultSubstitute()</function></link>, then
<link linkend="FcFontMatch"><function>FcFontMatch()</function></link>. Cairo will call <link linkend="FcPatternReference"><function>FcPatternReference()</function></link> on this
pattern, so you should not further modify the pattern, but you can
release your reference to the pattern with <link linkend="FcPatternDestroy"><function>FcPatternDestroy()</function></link> if
you no longer need to access it.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scale</parameter>&nbsp;:</term>
<listitem><simpara> The scale at which this font will be used. The
scale is given by multiplying the font matrix (see
<link linkend="cairo-transform-font"><function>cairo_transform_font()</function></link>) by the current transformation matrix.
The translation elements of the resulting matrix are ignored.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a newly created <link linkend="cairo-font-t"><type>cairo_font_t</type></link>. Free with
<link linkend="cairo-font-destroy"><function>cairo_font_destroy()</function></link> when you are done using it.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-ft-font-create-for-ft-face"/>cairo_ft_font_create_for_ft_face ()</title>
<indexterm><primary>cairo_ft_font_create_for_ft_face</primary></indexterm><programlisting><link linkend="cairo-font-t">cairo_font_t</link>* cairo_ft_font_create_for_ft_face
(<link linkend="FT-Face">FT_Face</link> face,
<link linkend="int">int</link> load_flags,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);</programlisting>
<para>
Creates a new font forthe FreeType font backend from a pre-opened
FreeType face. This font can then be used with <link linkend="cairo-set-font"><function>cairo_set_font()</function></link>,
<link linkend="cairo-font-glyph-extents"><function>cairo_font_glyph_extents()</function></link>, or FreeType backend specific
functions like <link linkend="cairo-ft-font-lock-face"><function>cairo_ft_font_lock_face()</function></link> Cairo will determine the
pixel size and transformation from the <parameter>scale</parameter> parameter and call
<link linkend="FT-Set-Transform"><function>FT_Set_Transform()</function></link> and <link linkend="FT-Set-Pixel-Sizes"><function>FT_Set_Pixel_Sizes()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>face</parameter>&nbsp;:</term>
<listitem><simpara> A FreeType face object, already opened. This must
be kept around until the font object's refcount drops to
zero and it is freed. The font object can be kept alive by
internal caching, so it's safest to keep the face object
around forever.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>load_flags</parameter>&nbsp;:</term>
<listitem><simpara> The flags to pass to FT_Load_Glyph when loading
glyphs from the font. These flags control aspects of
rendering such as hinting and antialiasing. See the FreeType
docs for full information.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scale</parameter>&nbsp;:</term>
<listitem><simpara> The scale at which this font will be used. The
scale is given by multiplying the font matrix (see
<link linkend="cairo-transform-font"><function>cairo_transform_font()</function></link>) by the current transformation matrix.
The translation elements of the resulting matrix are ignored.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a newly created <link linkend="cairo-font-t"><type>cairo_font_t</type></link>. Free with
<link linkend="cairo-font-destroy"><function>cairo_font_destroy()</function></link> when you are done using it.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-ft-font-lock-face"/>cairo_ft_font_lock_face ()</title>
<indexterm><primary>cairo_ft_font_lock_face</primary></indexterm><programlisting><link linkend="FT-Face">FT_Face</link> cairo_ft_font_lock_face (<link linkend="cairo-font-t">cairo_font_t</link> *ft_font);</programlisting>
<para>
<link linkend="cairo-ft-font-lock-face"><function>cairo_ft_font_lock_face()</function></link> gets the <link linkend="FT-Face"><type>FT_Face</type></link> object from a FreeType
backend font and scales it appropriately for the font. You must
release the face with <link linkend="cairo-ft-font-unlock-face"><function>cairo_ft_font_unlock_face()</function></link>
when you are done using it. Since the <link linkend="FT-Face"><type>FT_Face</type></link> object can be
shared between multiple <link linkend="cairo-font-t"><type>cairo_font_t</type></link> objects, you must not
lock any other font objects until you unlock this one. A count is
kept of the number of times <link linkend="cairo-ft-font-lock-face"><function>cairo_ft_font_lock_face()</function></link> is
called. <link linkend="cairo-ft-font-unlock-face"><function>cairo_ft_font_unlock_face()</function></link> must be called the same number
of times.
</para>
<para>
You must be careful when using this function in a library or in a
threaded application, because other threads may lock faces that
share the same <link linkend="FT-Face"><type>FT_Face</type></link> object. For this reason, you must call
<link linkend="cairo-ft-lock"><function>cairo_ft_lock()</function></link> before locking any face objects, and
<link linkend="cairo-ft-unlock"><function>cairo_ft_unlock()</function></link> after you are done. (These functions are not yet
implemented, so this function cannot be currently safely used in a
threaded application.)</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>ft_font</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the FreeType font backend. Such an
object can be created with <link linkend="cairo-ft-font-create"><function>cairo_ft_font_create()</function></link> or
<link linkend="cairo-ft-font-create-for-ft-face"><function>cairo_ft_font_create_for_ft_face()</function></link>. On some platforms the font from
<link linkend="cairo-current-font"><function>cairo_current_font()</function></link> will also be a FreeType font, but using this
functionality with fonts you don't create yourself is not
recommended.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> The <link linkend="FT-Face"><type>FT_Face</type></link> object for <parameter>font</parameter>, scaled appropriately.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-ft-font-unlock-face"/>cairo_ft_font_unlock_face ()</title>
<indexterm><primary>cairo_ft_font_unlock_face</primary></indexterm><programlisting><link linkend="void">void</link> cairo_ft_font_unlock_face (<link linkend="cairo-font-t">cairo_font_t</link> *ft_font);</programlisting>
<para>
Releases a face obtained with <link linkend="cairo-ft-font-lock-face"><function>cairo_ft_font_lock_face()</function></link>. See the
documentation for that function for full details.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>ft_font</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the FreeType font backend. Such an
object can be created with <link linkend="cairo-ft-font-create"><function>cairo_ft_font_create()</function></link> or
<link linkend="cairo-ft-font-create-for-ft-face"><function>cairo_ft_font_create_for_ft_face()</function></link>. On some platforms the font from
<link linkend="cairo-current-font"><function>cairo_current_font()</function></link> will also be a FreeType font, but using this
functionality with fonts you don't create yourself is not
recommended.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-ft-font-get-pattern"/>cairo_ft_font_get_pattern ()</title>
<indexterm><primary>cairo_ft_font_get_pattern</primary></indexterm><programlisting><link linkend="FcPattern">FcPattern</link>* cairo_ft_font_get_pattern (<link linkend="cairo-font-t">cairo_font_t</link> *ft_font);</programlisting>
<para>
<link linkend="cairo-ft-font-get-pattern"><function>cairo_ft_font_get_pattern()</function></link> gets the <link linkend="FcPattern"><type>FcPattern</type></link> for a FreeType
backend font.
</para>
<para>
Return value: The <link linkend="FcPattenr"><type>FcPattenr</type></link> for <parameter>font</parameter>. The return value is owned
by the font, so you must not modify it, and must call
<link linkend="FcPatternReference"><function>FcPatternReference()</function></link> to keep a persistant reference to the
pattern. If the font was created with <link linkend="cairo-ft-font-create-for-ft-face"><function>cairo_ft_font_create_for_ft_face()</function></link></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>ft_font</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the FreeType font backend. Such an
object can be created with <link linkend="cairo-ft-font-create"><function>cairo_ft_font_create()</function></link> or
<link linkend="cairo-ft-font-create-for-ft-face"><function>cairo_ft_font_create_for_ft_face()</function></link>. On some platforms the font from
<link linkend="cairo-current-font"><function>cairo_current_font()</function></link> will also be a FreeType font, but using this
functionality with fonts you don't create yourself is not
recommended.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara><literal>NULL</literal>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,80 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-Glitz-backend">
<refmeta>
<refentrytitle>Glitz backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Glitz backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-glitz">cairo_set_target_glitz</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="glitz-surface-t">glitz_surface_t</link> *surface);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-glitz-surface-create">cairo_glitz_surface_create</link> (<link linkend="glitz-surface-t">glitz_surface_t</link> *surface);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-glitz"/>cairo_set_target_glitz ()</title>
<indexterm><primary>cairo_set_target_glitz</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_glitz (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="glitz-surface-t">glitz_surface_t</link> *surface);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-glitz-surface-create"/>cairo_glitz_surface_create ()</title>
<indexterm><primary>cairo_glitz_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_glitz_surface_create (<link linkend="glitz-surface-t">glitz_surface_t</link> *surface);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,434 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-cairo-matrix-t">
<refmeta>
<refentrytitle>cairo_matrix_t</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>cairo_matrix_t</refname><refpurpose>
Transformation matrices</refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
typedef <link linkend="cairo-matrix-t">cairo_matrix_t</link>;
<link linkend="cairo-matrix-t">cairo_matrix_t</link>* <link linkend="cairo-matrix-create">cairo_matrix_create</link> (void);
<link linkend="void">void</link> <link linkend="cairo-matrix-destroy">cairo_matrix_destroy</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-copy">cairo_matrix_copy</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *other);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-set-identity">cairo_matrix_set_identity</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-set-affine">cairo_matrix_set_affine</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> a,
<link linkend="double">double</link> b,
<link linkend="double">double</link> c,
<link linkend="double">double</link> d,
<link linkend="double">double</link> tx,
<link linkend="double">double</link> ty);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-get-affine">cairo_matrix_get_affine</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> *a,
<link linkend="double">double</link> *b,
<link linkend="double">double</link> *c,
<link linkend="double">double</link> *d,
<link linkend="double">double</link> *tx,
<link linkend="double">double</link> *ty);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-translate">cairo_matrix_translate</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> tx,
<link linkend="double">double</link> ty);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-scale">cairo_matrix_scale</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> sx,
<link linkend="double">double</link> sy);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-rotate">cairo_matrix_rotate</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> radians);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-invert">cairo_matrix_invert</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-multiply">cairo_matrix_multiply</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *result,
const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *a,
const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *b);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-transform-distance">cairo_matrix_transform_distance</link>
(<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> *dx,
<link linkend="double">double</link> *dy);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-matrix-transform-point">cairo_matrix_transform_point</link> (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> *x,
<link linkend="double">double</link> *y);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><indexterm><primary>types</primary><secondary>cairo_matrix</secondary></indexterm><indexterm><primary/></indexterm>
<structname>cairo_matrix_t</structname> is used throughout
Cairo to represents between different coordinates spaces.
A <structname>cairo_matrix</structname> holds an affine
transformation, such as a scale, rotation, or shear, or a
combination of those. Mathematically, the effect of an affine
transformation on a point (<literal>x</literal>,<literal>y</literal>) is given by:
</para>
<programlisting>
x_new = x * a + y * c + tx;
y_new = x * b + y * d + ty;
</programlisting>
<para>
The parameters <literal>a</literal>, <literal>b</literal>,
<literal>c</literal>, <literal>d</literal>, <literal>tx</literal>,
<literal>ty</literal> can be retrieved with
<link linkend="cairo-matrix-get-affine"><function>cairo_matrix_get_affine()</function></link> and set with <link linkend="cairo-matrix-get-affine"><function>cairo_matrix_get_affine()</function></link>.
</para>
<para>
The primary use of transformation matrices in Cairo is as the
current transformation matrix in a <link linkend="cairo-t"><type>cairo_t</type></link>. The current
transformation matrix gives the transformation from user space
coordinates to device coordinates. See <link linkend="cairo-set-matrix"><function>cairo_set_matrix()</function></link>,
<link linkend="cairo-current-matrix"><function>cairo_current_matrix()</function></link>.
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-matrix-t"/>cairo_matrix_t</title>
<indexterm><primary>cairo_matrix_t</primary></indexterm><programlisting>typedef struct _cairo_matrix cairo_matrix_t;
</programlisting>
<para>
A <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link> holds an affine transformation, such as a scale,
rotation, or shear, or a combination of those.</para>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-create"/>cairo_matrix_create ()</title>
<indexterm><primary>cairo_matrix_create</primary></indexterm><programlisting><link linkend="cairo-matrix-t">cairo_matrix_t</link>* cairo_matrix_create (void);</programlisting>
<para>
Creates a new identity matrix.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a newly created matrix; free with <link linkend="cairo-matrix-destroy"><function>cairo_matrix_destroy()</function></link>,
or <literal>NULL</literal> if memory couldn't be allocated.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-destroy"/>cairo_matrix_destroy ()</title>
<indexterm><primary>cairo_matrix_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_matrix_destroy (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
<para>
Frees a matrix created with cairo_matrix_create.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-copy"/>cairo_matrix_copy ()</title>
<indexterm><primary>cairo_matrix_copy</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_copy (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *other);</programlisting>
<para>
Modifies <parameter>matrix</parameter> to be identical to <parameter>other</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>other</parameter>&nbsp;:</term>
<listitem><simpara> another <link linkend="cairo-"><type>cairo_</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-set-identity"/>cairo_matrix_set_identity ()</title>
<indexterm><primary>cairo_matrix_set_identity</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_set_identity (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
<para>
Modifies <parameter>matrix</parameter> to be an identity transformation.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-set-affine"/>cairo_matrix_set_affine ()</title>
<indexterm><primary>cairo_matrix_set_affine</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_set_affine (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> a,
<link linkend="double">double</link> b,
<link linkend="double">double</link> c,
<link linkend="double">double</link> d,
<link linkend="double">double</link> tx,
<link linkend="double">double</link> ty);</programlisting>
<para>
Sets <parameter>matrix</parameter> to be the affine transformation given by
<parameter>a</parameter>, b, <parameter>c</parameter>, <parameter>d</parameter>, <parameter>tx</parameter>, <parameter>ty</parameter>. The transformation is given
by:
<programlisting>
x_new = x * a + y * c + tx;
y_new = x * b + y * d + ty;
</programlisting></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a cairo_matrix_t
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>a</parameter>&nbsp;:</term>
<listitem><simpara> a component of the affine transformation
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>b</parameter>&nbsp;:</term>
<listitem><simpara> b component of the affine transformation
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>c</parameter>&nbsp;:</term>
<listitem><simpara> c component of the affine transformation
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>d</parameter>&nbsp;:</term>
<listitem><simpara> d component of the affine transformation
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>tx</parameter>&nbsp;:</term>
<listitem><simpara> X translation component of the affine transformation
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ty</parameter>&nbsp;:</term>
<listitem><simpara> Y translation component of the affine transformation
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-get-affine"/>cairo_matrix_get_affine ()</title>
<indexterm><primary>cairo_matrix_get_affine</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_get_affine (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> *a,
<link linkend="double">double</link> *b,
<link linkend="double">double</link> *c,
<link linkend="double">double</link> *d,
<link linkend="double">double</link> *tx,
<link linkend="double">double</link> *ty);</programlisting>
<para>
Gets the matrix values for the affine tranformation that <parameter>matrix</parameter> represents.
See <link linkend="cairo-matrix-set-affine"><function>cairo_matrix_set_affine()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>a</parameter>&nbsp;:</term>
<listitem><simpara> location to store a component of affine transformation, or <literal>NULL</literal>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>b</parameter>&nbsp;:</term>
<listitem><simpara> location to store b component of affine transformation, or <literal>NULL</literal>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>c</parameter>&nbsp;:</term>
<listitem><simpara> location to store c component of affine transformation, or <literal>NULL</literal>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>d</parameter>&nbsp;:</term>
<listitem><simpara> location to store d component of affine transformation, or <literal>NULL</literal>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>tx</parameter>&nbsp;:</term>
<listitem><simpara> location to store X-translation component of affine transformation, or <literal>NULL</literal>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ty</parameter>&nbsp;:</term>
<listitem><simpara> location to store Y-translation component of affine transformation, or <literal>NULL</literal>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-translate"/>cairo_matrix_translate ()</title>
<indexterm><primary>cairo_matrix_translate</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_translate (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> tx,
<link linkend="double">double</link> ty);</programlisting>
<para>
Applies a translation by <parameter>tx</parameter>, <parameter>ty</parameter> to the transformation in
<parameter>matrix</parameter>. The new transformation is given by first translating by
<parameter>tx</parameter>, <parameter>ty</parameter> then applying the original transformation</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a cairo_matrix_t
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>tx</parameter>&nbsp;:</term>
<listitem><simpara> amount to rotate in the X direction
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>ty</parameter>&nbsp;:</term>
<listitem><simpara> amount to rotate in the Y direction
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-scale"/>cairo_matrix_scale ()</title>
<indexterm><primary>cairo_matrix_scale</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_scale (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> sx,
<link linkend="double">double</link> sy);</programlisting>
<para>
Applies scaling by <parameter>tx</parameter>, <parameter>ty</parameter> to the transformation in
<parameter>matrix</parameter>. The new transformation is given by first scaling by <parameter>sx</parameter>
and <parameter>sy</parameter> then applying the original transformation</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-matrix-t"><type>cairo_matrix_t</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sx</parameter>&nbsp;:</term>
<listitem><simpara> Scale factor in the X direction
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sy</parameter>&nbsp;:</term>
<listitem><simpara> Scale factor in the Y direction
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-rotate"/>cairo_matrix_rotate ()</title>
<indexterm><primary>cairo_matrix_rotate</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_rotate (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> radians);</programlisting>
<para>
Applies rotation by <parameter>radians</parameter> to the transformation in
<parameter>matrix</parameter>. The new transformation is given by first rotating by
<parameter>radians</parameter> then applying the original transformation</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>radians</parameter>&nbsp;:</term>
<listitem><simpara> angle of rotation, in radians. Angles are defined
so that an angle of 90 degrees (<literal>M_PI</literal> radians) rotates the
positive X axis into the positive Y axis. With the default
Cairo choice of axis orientation, positive rotations are
clockwise.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-invert"/>cairo_matrix_invert ()</title>
<indexterm><primary>cairo_matrix_invert</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_invert (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
<para>
Changes <parameter>matrix</parameter> to be the inverse of it's original value. Not
all transformation matrices have inverses; if the matrix
collapses points together (it is <firstterm>degenerate</firstterm>),
then it has no inverse and this function will fail.
</para>
<para>
Returns: If <parameter>matrix</parameter> has an inverse, modifies <parameter>matrix</parameter> to
be the inverse matrix and returns <literal>CAIRO_STATUS_SUCCESS</literal>. Otherwise,</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara><literal>CAIRO_STATUS_INVALID_MATRIX</literal>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-multiply"/>cairo_matrix_multiply ()</title>
<indexterm><primary>cairo_matrix_multiply</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_multiply (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *result,
const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *a,
const <link linkend="cairo-matrix-t">cairo_matrix_t</link> *b);</programlisting>
<para>
Multiplies the affine transformations in <parameter>a</parameter> and <parameter>b</parameter> together
and stores the result in <parameter>result</parameter>. The resulting transformation
is given by first applying the transformation in <parameter>b</parameter> then
applying the transformation in <parameter>a</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>result</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter> in which to store the result
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>a</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>b</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-transform-distance"/>cairo_matrix_transform_distance ()</title>
<indexterm><primary>cairo_matrix_transform_distance</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_transform_distance
(<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> *dx,
<link linkend="double">double</link> *dy);</programlisting>
<para>
Transforms the vector (<parameter>dx</parameter>,<parameter>dy</parameter>) by <parameter>matrix</parameter>. Translation is
ignored. In terms of the components of the affine transformation:
</para>
<para>
<programlisting>
dx2 = dx1 * a + dy1 * c;
dy2 = dx1 * b + dy1 * d;
</programlisting>
</para>
<para>
Affine transformations are position invariant, so the same vector
always transforms to the same vector. If (<parameter>x1</parameter>,<parameter>y1</parameter>) transforms
to (<parameter>x2</parameter>,<parameter>y2</parameter>) then (<parameter>x1</parameter>+<parameter>dx1</parameter>,<parameter>y1</parameter>+<parameter>dy1</parameter>) will transform to
(<parameter>x1</parameter>+<parameter>dx2</parameter>,<parameter>y1</parameter>+<parameter>dy2</parameter>) for all values of <parameter>x1</parameter> and <parameter>x2</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>dx</parameter>&nbsp;:</term>
<listitem><simpara> a distance in the X direction. An in/out parameter
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>dy</parameter>&nbsp;:</term>
<listitem><simpara> a distance in the Y direction. An in/out parameter
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-matrix-transform-point"/>cairo_matrix_transform_point ()</title>
<indexterm><primary>cairo_matrix_transform_point</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_matrix_transform_point (<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix,
<link linkend="double">double</link> *x,
<link linkend="double">double</link> *y);</programlisting>
<para>
Transforms the point (<parameter>x</parameter>, <parameter>y</parameter>) by <parameter>matrix</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara> a <parameter>cairo_matrix_t</parameter>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>x</parameter>&nbsp;:</term>
<listitem><simpara> X position. An in/out parameter
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>y</parameter>&nbsp;:</term>
<listitem><simpara> Y position. An in/out parameter
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal>, always.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,334 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-cairo-pattern-t">
<refmeta>
<refentrytitle>cairo_pattern_t</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>cairo_pattern_t</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
typedef <link linkend="cairo-pattern-t">cairo_pattern_t</link>;
<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-for-surface">cairo_pattern_create_for_surface</link>
(<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-linear">cairo_pattern_create_linear</link>
(<link linkend="double">double</link> x0,
<link linkend="double">double</link> y0,
<link linkend="double">double</link> x1,
<link linkend="double">double</link> y1);
<link linkend="cairo-pattern-t">cairo_pattern_t</link>* <link linkend="cairo-pattern-create-radial">cairo_pattern_create_radial</link>
(<link linkend="double">double</link> cx0,
<link linkend="double">double</link> cy0,
<link linkend="double">double</link> radius0,
<link linkend="double">double</link> cx1,
<link linkend="double">double</link> cy1,
<link linkend="double">double</link> radius1);
<link linkend="void">void</link> <link linkend="cairo-pattern-reference">cairo_pattern_reference</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
<link linkend="void">void</link> <link linkend="cairo-pattern-destroy">cairo_pattern_destroy</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-pattern-add-color-stop">cairo_pattern_add_color_stop</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="double">double</link> offset,
<link linkend="double">double</link> red,
<link linkend="double">double</link> green,
<link linkend="double">double</link> blue,
<link linkend="double">double</link> alpha);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-pattern-set-matrix">cairo_pattern_set_matrix</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-pattern-get-matrix">cairo_pattern_get_matrix</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
enum <link linkend="cairo-extend-t">cairo_extend_t</link>;
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-pattern-set-extend">cairo_pattern_set_extend</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-extend-t">cairo_extend_t</link> extend);
<link linkend="cairo-extend-t">cairo_extend_t</link> <link linkend="cairo-pattern-get-extend">cairo_pattern_get_extend</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-pattern-set-filter">cairo_pattern_set_filter</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-filter-t">cairo_filter_t</link> filter);
<link linkend="cairo-filter-t">cairo_filter_t</link> <link linkend="cairo-pattern-get-filter">cairo_pattern_get_filter</link> (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-pattern-t"/>cairo_pattern_t</title>
<indexterm><primary>cairo_pattern_t</primary></indexterm><programlisting>typedef struct _cairo_pattern cairo_pattern_t;
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-create-for-surface"/>cairo_pattern_create_for_surface ()</title>
<indexterm><primary>cairo_pattern_create_for_surface</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_for_surface
(<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-create-linear"/>cairo_pattern_create_linear ()</title>
<indexterm><primary>cairo_pattern_create_linear</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_linear
(<link linkend="double">double</link> x0,
<link linkend="double">double</link> y0,
<link linkend="double">double</link> x1,
<link linkend="double">double</link> y1);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>x0</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>y0</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>x1</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>y1</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-create-radial"/>cairo_pattern_create_radial ()</title>
<indexterm><primary>cairo_pattern_create_radial</primary></indexterm><programlisting><link linkend="cairo-pattern-t">cairo_pattern_t</link>* cairo_pattern_create_radial
(<link linkend="double">double</link> cx0,
<link linkend="double">double</link> cy0,
<link linkend="double">double</link> radius0,
<link linkend="double">double</link> cx1,
<link linkend="double">double</link> cy1,
<link linkend="double">double</link> radius1);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cx0</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cy0</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>radius0</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cx1</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>cy1</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>radius1</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-reference"/>cairo_pattern_reference ()</title>
<indexterm><primary>cairo_pattern_reference</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_reference (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-destroy"/>cairo_pattern_destroy ()</title>
<indexterm><primary>cairo_pattern_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_pattern_destroy (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-add-color-stop"/>cairo_pattern_add_color_stop ()</title>
<indexterm><primary>cairo_pattern_add_color_stop</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_pattern_add_color_stop (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="double">double</link> offset,
<link linkend="double">double</link> red,
<link linkend="double">double</link> green,
<link linkend="double">double</link> blue,
<link linkend="double">double</link> alpha);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>offset</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>red</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>green</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>blue</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>alpha</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-set-matrix"/>cairo_pattern_set_matrix ()</title>
<indexterm><primary>cairo_pattern_set_matrix</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_pattern_set_matrix (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-get-matrix"/>cairo_pattern_get_matrix ()</title>
<indexterm><primary>cairo_pattern_get_matrix</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_pattern_get_matrix (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-extend-t"/>enum cairo_extend_t</title>
<indexterm><primary>cairo_extend_t</primary></indexterm><programlisting>typedef enum {
CAIRO_EXTEND_NONE,
CAIRO_EXTEND_REPEAT,
CAIRO_EXTEND_REFLECT
} cairo_extend_t;
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-set-extend"/>cairo_pattern_set_extend ()</title>
<indexterm><primary>cairo_pattern_set_extend</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_pattern_set_extend (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-extend-t">cairo_extend_t</link> extend);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>extend</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-get-extend"/>cairo_pattern_get_extend ()</title>
<indexterm><primary>cairo_pattern_get_extend</primary></indexterm><programlisting><link linkend="cairo-extend-t">cairo_extend_t</link> cairo_pattern_get_extend (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-set-filter"/>cairo_pattern_set_filter ()</title>
<indexterm><primary>cairo_pattern_set_filter</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_pattern_set_filter (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern,
<link linkend="cairo-filter-t">cairo_filter_t</link> filter);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>filter</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pattern-get-filter"/>cairo_pattern_get_filter ()</title>
<indexterm><primary>cairo_pattern_get_filter</primary></indexterm><programlisting><link linkend="cairo-filter-t">cairo_filter_t</link> cairo_pattern_get_filter (<link linkend="cairo-pattern-t">cairo_pattern_t</link> *pattern);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>pattern</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,120 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-PDF-Backend">
<refmeta>
<refentrytitle>PDF Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>PDF Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-pdf">cairo_set_target_pdf</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-pdf-surface-create">cairo_pdf_surface_create</link> (<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-pdf"/>cairo_set_target_pdf ()</title>
<indexterm><primary>cairo_set_target_pdf</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_pdf (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>file</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width_inches</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height_inches</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>x_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>y_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-pdf-surface-create"/>cairo_pdf_surface_create ()</title>
<indexterm><primary>cairo_pdf_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_pdf_surface_create (<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>file</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width_inches</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height_inches</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>x_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>y_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,110 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-PNG-Backend">
<refmeta>
<refentrytitle>PNG Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>PNG Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-png">cairo_set_target_png</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-png-surface-create">cairo_png_surface_create</link> (<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-png"/>cairo_set_target_png ()</title>
<indexterm><primary>cairo_set_target_png</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_png (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>file</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>format</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-png-surface-create"/>cairo_png_surface_create ()</title>
<indexterm><primary>cairo_png_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_png_surface_create (<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>file</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>format</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,125 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-PS-Backend">
<refmeta>
<refentrytitle>PS Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>PS Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-ps">cairo_set_target_ps</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-ps-surface-create">cairo_ps_surface_create</link> (<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-ps"/>cairo_set_target_ps ()</title>
<indexterm><primary>cairo_set_target_ps</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_ps (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);</programlisting>
<para>
Directs output for a <link linkend="cairo-t"><type>cairo_t</type></link> to a postscript file. The file must
be kept open until the <link linkend="cairo-t"><type>cairo_t</type></link> is destroyed or set to have a
different target, and then must be closed by the application.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-t"><type>cairo_t</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>file</parameter>&nbsp;:</term>
<listitem><simpara> an open, writeable file
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width_inches</parameter>&nbsp;:</term>
<listitem><simpara> width of the output page, in inches
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height_inches</parameter>&nbsp;:</term>
<listitem><simpara> height of the output page, in inches
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>x_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara> X resolution to use for image fallbacks;
not all Cairo drawing can be represented in a postscript
file, so Cairo will write out images for some portions
of the output.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>y_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara> Y resolution to use for image fallbacks.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-ps-surface-create"/>cairo_ps_surface_create ()</title>
<indexterm><primary>cairo_ps_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_ps_surface_create (<link linkend="FILE:CAPS">FILE</link> *file,
<link linkend="double">double</link> width_inches,
<link linkend="double">double</link> height_inches,
<link linkend="double">double</link> x_pixels_per_inch,
<link linkend="double">double</link> y_pixels_per_inch);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>file</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width_inches</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height_inches</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>x_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>y_pixels_per_inch</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,102 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-Quartz-Backend">
<refmeta>
<refentrytitle>Quartz Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Quartz Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-quartz-context">cairo_set_target_quartz_context</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="CGContextRef">CGContextRef</link> context,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-quartz-surface-create">cairo_quartz_surface_create</link>
(<link linkend="CGContextRef">CGContextRef</link> context,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-quartz-context"/>cairo_set_target_quartz_context ()</title>
<indexterm><primary>cairo_set_target_quartz_context</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_quartz_context (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="CGContextRef">CGContextRef</link> context,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>context</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-quartz-surface-create"/>cairo_quartz_surface_create ()</title>
<indexterm><primary>cairo_quartz_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_quartz_surface_create
(<link linkend="CGContextRef">CGContextRef</link> context,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>context</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,255 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-cairo-surface-t">
<refmeta>
<refentrytitle>cairo_surface_t</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>cairo_surface_t</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
typedef <link linkend="cairo-surface-t">cairo_surface_t</link>;
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-surface-create-for-image">cairo_surface_create_for_image</link>
(<link linkend="char">char</link> *data,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height,
<link linkend="int">int</link> stride);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-surface-create-similar">cairo_surface_create_similar</link>
(<link linkend="cairo-surface-t">cairo_surface_t</link> *other,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);
<link linkend="void">void</link> <link linkend="cairo-surface-reference">cairo_surface_reference</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
<link linkend="void">void</link> <link linkend="cairo-surface-destroy">cairo_surface_destroy</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-set-repeat">cairo_surface_set_repeat</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="int">int</link> repeat);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-set-matrix">cairo_surface_set_matrix</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-get-matrix">cairo_surface_get_matrix</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-surface-set-filter">cairo_surface_set_filter</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="cairo-filter-t">cairo_filter_t</link> filter);
<link linkend="cairo-filter-t">cairo_filter_t</link> <link linkend="cairo-surface-get-filter">cairo_surface_get_filter</link> (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-surface-t"/>cairo_surface_t</title>
<indexterm><primary>cairo_surface_t</primary></indexterm><programlisting>typedef struct _cairo_surface cairo_surface_t;
</programlisting>
<para>
A <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> represents an image, either as the destination
of a drawing operation or as source when drawing onto another
surface. There are different subtypes of cairo_surface_t for
different drawing backends; for example, <link linkend="cairo-image-surface-create"><function>cairo_image_surface_create()</function></link>
creates a bitmap image in memory.
</para>
<para>
Memory management of <link linkend="cairo-surface-t"><type>cairo_surface_t</type></link> is done with
<link linkend="cairo-surface-reference"><function>cairo_surface_reference()</function></link> and <link linkend="cairo-surface-destroy"><function>cairo_surface_destroy()</function></link>.</para>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="cairo-surface-create-for-image"/>cairo_surface_create_for_image ()</title>
<indexterm><primary>cairo_surface_create_for_image</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_surface_create_for_image
(<link linkend="char">char</link> *data,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height,
<link linkend="int">int</link> stride);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>data</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>format</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>stride</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-create-similar"/>cairo_surface_create_similar ()</title>
<indexterm><primary>cairo_surface_create_similar</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_surface_create_similar
(<link linkend="cairo-surface-t">cairo_surface_t</link> *other,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="int">int</link> width,
<link linkend="int">int</link> height);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>other</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>format</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>width</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>height</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-reference"/>cairo_surface_reference ()</title>
<indexterm><primary>cairo_surface_reference</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_reference (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-destroy"/>cairo_surface_destroy ()</title>
<indexterm><primary>cairo_surface_destroy</primary></indexterm><programlisting><link linkend="void">void</link> cairo_surface_destroy (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-set-repeat"/>cairo_surface_set_repeat ()</title>
<indexterm><primary>cairo_surface_set_repeat</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_set_repeat (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="int">int</link> repeat);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>repeat</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-set-matrix"/>cairo_surface_set_matrix ()</title>
<indexterm><primary>cairo_surface_set_matrix</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_set_matrix (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-get-matrix"/>cairo_surface_get_matrix ()</title>
<indexterm><primary>cairo_surface_get_matrix</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_get_matrix (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *matrix);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>matrix</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-set-filter"/>cairo_surface_set_filter ()</title>
<indexterm><primary>cairo_surface_set_filter</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_surface_set_filter (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface,
<link linkend="cairo-filter-t">cairo_filter_t</link> filter);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>filter</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-surface-get-filter"/>cairo_surface_get_filter ()</title>
<indexterm><primary>cairo_surface_get_filter</primary></indexterm><programlisting><link linkend="cairo-filter-t">cairo_filter_t</link> cairo_surface_get_filter (<link linkend="cairo-surface-t">cairo_surface_t</link> *surface);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>surface</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,181 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-Microsoft-Windows-Backend">
<refmeta>
<refentrytitle>Microsoft Windows Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Microsoft Windows Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-win32">cairo_set_target_win32</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="HDC:CAPS">HDC</link> hdc);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-win32-surface-create">cairo_win32_surface_create</link> (<link linkend="HDC:CAPS">HDC</link> hdc);
<link linkend="cairo-font-t">cairo_font_t</link>* <link linkend="cairo-win32-font-create-for-logfontw">cairo_win32_font_create_for_logfontw</link>
(<link linkend="LOGFONTW:CAPS">LOGFONTW</link> *logfont,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-win32-font-select-font">cairo_win32_font_select_font</link> (<link linkend="cairo-font-t">cairo_font_t</link> *font,
<link linkend="HDC:CAPS">HDC</link> hdc);
<link linkend="void">void</link> <link linkend="cairo-win32-font-done-font">cairo_win32_font_done_font</link> (<link linkend="cairo-font-t">cairo_font_t</link> *font);
<link linkend="double">double</link> <link linkend="cairo-win32-font-get-scale-factor">cairo_win32_font_get_scale_factor</link>
(<link linkend="cairo-font-t">cairo_font_t</link> *font);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-win32"/>cairo_set_target_win32 ()</title>
<indexterm><primary>cairo_set_target_win32</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_win32 (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>hdc</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-surface-create"/>cairo_win32_surface_create ()</title>
<indexterm><primary>cairo_win32_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_win32_surface_create (<link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>hdc</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-create-for-logfontw"/>cairo_win32_font_create_for_logfontw ()</title>
<indexterm><primary>cairo_win32_font_create_for_logfontw</primary></indexterm><programlisting><link linkend="cairo-font-t">cairo_font_t</link>* cairo_win32_font_create_for_logfontw
(<link linkend="LOGFONTW:CAPS">LOGFONTW</link> *logfont,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);</programlisting>
<para>
Creates a new font for the Win32 font backend based on a
<link linkend="LOGFONT:CAPS"><type>LOGFONT</type></link>. This font can then be used with
<link linkend="cairo-set-font"><function>cairo_set_font()</function></link>, <link linkend="cairo-font-glyph-extents"><function>cairo_font_glyph_extents()</function></link>, or FreeType backend
specific functions like <link linkend="cairo-win32-font-select-font"><function>cairo_win32_font_select_font()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>logfont</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="LOGFONTW:CAPS"><type>LOGFONTW</type></link> structure specifying the font to use.
The lfHeight, lfWidth, lfOrientation and lfEscapement
fields of this structure are ignored; information from
<parameter>scale</parameter> will be used instead.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scale</parameter>&nbsp;:</term>
<listitem><simpara> The scale at which this font will be used. The
scale is given by multiplying the font matrix (see
<link linkend="cairo-transform-font"><function>cairo_transform_font()</function></link>) by the current transformation matrix.
The translation elements of the resulting matrix are ignored.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a newly created <link linkend="cairo-font-t"><type>cairo_font_t</type></link>. Free with
<link linkend="cairo-font-destroy"><function>cairo_font_destroy()</function></link> when you are done using it.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-select-font"/>cairo_win32_font_select_font ()</title>
<indexterm><primary>cairo_win32_font_select_font</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_win32_font_select_font (<link linkend="cairo-font-t">cairo_font_t</link> *font,
<link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
<para>
Selects the font into the given device context and changes the
map mode and world transformation of the device context to match
that of the font. This function is intended for use when using
layout APIs such as Uniscribe to do text layout with the
Cairo font. After finishing using the device context, you must call
<link linkend="cairo-win32-font-done-font"><function>cairo_win32_font_done_font()</function></link> to release any resources allocated
by this function.
</para>
<para>
See <link linkend="cairo-win32-font-get-scale-factor"><function>cairo_win32_font_get_scale_factor()</function></link> for converting logical
coordinates from the device context to font space.
</para>
<para>
Normally, calls to <link linkend="SaveDC"><function>SaveDC()</function></link> and <link linkend="RestoreDC"><function>RestoreDC()</function></link> would be made around
the use of this function to preserve the original graphics state.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>font</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the Win32 font backend. Such an
object can be created with <link linkend="cairo-win32-font-create-for-logfontw"><function>cairo_win32_font_create_for_logfontw()</function></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>hdc</parameter>&nbsp;:</term>
<listitem><simpara> a device context
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal> if the operation succeeded.
otherwise an error such as <literal>CAIRO_STATUS_NO_MEMORY</literal> and
the device context is unchanged.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-done-font"/>cairo_win32_font_done_font ()</title>
<indexterm><primary>cairo_win32_font_done_font</primary></indexterm><programlisting><link linkend="void">void</link> cairo_win32_font_done_font (<link linkend="cairo-font-t">cairo_font_t</link> *font);</programlisting>
<para>
Releases any resources allocated by <link linkend="cairo-win32-font-select-font"><function>cairo_win32_font_select_font()</function></link></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>font</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the Win32 font backend.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-get-scale-factor"/>cairo_win32_font_get_scale_factor ()</title>
<indexterm><primary>cairo_win32_font_get_scale_factor</primary></indexterm><programlisting><link linkend="double">double</link> cairo_win32_font_get_scale_factor
(<link linkend="cairo-font-t">cairo_font_t</link> *font);</programlisting>
<para>
Gets a scale factor between logical coordinates in the coordinate
space used by <link linkend="cairo-win32-font-select-font"><function>cairo_win32_font_select_font()</function></link> and font space coordinates.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>font</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the Win32 font backend
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> factor to multiply logical units by to get font space
coordinates.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,181 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-Microsoft-Windows-Backend">
<refmeta>
<refentrytitle>Microsoft Windows Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Microsoft Windows Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-win32">cairo_set_target_win32</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="HDC:CAPS">HDC</link> hdc);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-win32-surface-create">cairo_win32_surface_create</link> (<link linkend="HDC:CAPS">HDC</link> hdc);
<link linkend="cairo-font-t">cairo_font_t</link>* <link linkend="cairo-win32-font-create-for-logfontw">cairo_win32_font_create_for_logfontw</link>
(<link linkend="LOGFONTW:CAPS">LOGFONTW</link> *logfont,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);
<link linkend="cairo-status-t">cairo_status_t</link> <link linkend="cairo-win32-font-select-font">cairo_win32_font_select_font</link> (<link linkend="cairo-font-t">cairo_font_t</link> *font,
<link linkend="HDC:CAPS">HDC</link> hdc);
<link linkend="void">void</link> <link linkend="cairo-win32-font-done-font">cairo_win32_font_done_font</link> (<link linkend="cairo-font-t">cairo_font_t</link> *font);
<link linkend="double">double</link> <link linkend="cairo-win32-font-get-scale-factor">cairo_win32_font_get_scale_factor</link>
(<link linkend="cairo-font-t">cairo_font_t</link> *font);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-win32"/>cairo_set_target_win32 ()</title>
<indexterm><primary>cairo_set_target_win32</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_win32 (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>hdc</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-surface-create"/>cairo_win32_surface_create ()</title>
<indexterm><primary>cairo_win32_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_win32_surface_create (<link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>hdc</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-create-for-logfontw"/>cairo_win32_font_create_for_logfontw ()</title>
<indexterm><primary>cairo_win32_font_create_for_logfontw</primary></indexterm><programlisting><link linkend="cairo-font-t">cairo_font_t</link>* cairo_win32_font_create_for_logfontw
(<link linkend="LOGFONTW:CAPS">LOGFONTW</link> *logfont,
<link linkend="cairo-matrix-t">cairo_matrix_t</link> *scale);</programlisting>
<para>
Creates a new font for the Win32 font backend based on a
<link linkend="LOGFONT:CAPS"><type>LOGFONT</type></link>. This font can then be used with
<link linkend="cairo-set-font"><function>cairo_set_font()</function></link>, <link linkend="cairo-font-glyph-extents"><function>cairo_font_glyph_extents()</function></link>, or FreeType backend
specific functions like <link linkend="cairo-win32-font-select-font"><function>cairo_win32_font_select_font()</function></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>logfont</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="LOGFONTW:CAPS"><type>LOGFONTW</type></link> structure specifying the font to use.
The lfHeight, lfWidth, lfOrientation and lfEscapement
fields of this structure are ignored; information from
<parameter>scale</parameter> will be used instead.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>scale</parameter>&nbsp;:</term>
<listitem><simpara> The scale at which this font will be used. The
scale is given by multiplying the font matrix (see
<link linkend="cairo-transform-font"><function>cairo_transform_font()</function></link>) by the current transformation matrix.
The translation elements of the resulting matrix are ignored.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> a newly created <link linkend="cairo-font-t"><type>cairo_font_t</type></link>. Free with
<link linkend="cairo-font-destroy"><function>cairo_font_destroy()</function></link> when you are done using it.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-select-font"/>cairo_win32_font_select_font ()</title>
<indexterm><primary>cairo_win32_font_select_font</primary></indexterm><programlisting><link linkend="cairo-status-t">cairo_status_t</link> cairo_win32_font_select_font (<link linkend="cairo-font-t">cairo_font_t</link> *font,
<link linkend="HDC:CAPS">HDC</link> hdc);</programlisting>
<para>
Selects the font into the given device context and changes the
map mode and world transformation of the device context to match
that of the font. This function is intended for use when using
layout APIs such as Uniscribe to do text layout with the
Cairo font. After finishing using the device context, you must call
<link linkend="cairo-win32-font-done-font"><function>cairo_win32_font_done_font()</function></link> to release any resources allocated
by this function.
</para>
<para>
See <link linkend="cairo-win32-font-get-scale-factor"><function>cairo_win32_font_get_scale_factor()</function></link> for converting logical
coordinates from the device context to font space.
</para>
<para>
Normally, calls to <link linkend="SaveDC"><function>SaveDC()</function></link> and <link linkend="RestoreDC"><function>RestoreDC()</function></link> would be made around
the use of this function to preserve the original graphics state.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>font</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the Win32 font backend. Such an
object can be created with <link linkend="cairo-win32-font-create-for-logfontw"><function>cairo_win32_font_create_for_logfontw()</function></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>hdc</parameter>&nbsp;:</term>
<listitem><simpara> a device context
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> <literal>CAIRO_STATUS_SUCCESS</literal> if the operation succeeded.
otherwise an error such as <literal>CAIRO_STATUS_NO_MEMORY</literal> and
the device context is unchanged.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-done-font"/>cairo_win32_font_done_font ()</title>
<indexterm><primary>cairo_win32_font_done_font</primary></indexterm><programlisting><link linkend="void">void</link> cairo_win32_font_done_font (<link linkend="cairo-font-t">cairo_font_t</link> *font);</programlisting>
<para>
Releases any resources allocated by <link linkend="cairo-win32-font-select-font"><function>cairo_win32_font_select_font()</function></link></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>font</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the Win32 font backend.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-win32-font-get-scale-factor"/>cairo_win32_font_get_scale_factor ()</title>
<indexterm><primary>cairo_win32_font_get_scale_factor</primary></indexterm><programlisting><link linkend="double">double</link> cairo_win32_font_get_scale_factor
(<link linkend="cairo-font-t">cairo_font_t</link> *font);</programlisting>
<para>
Gets a scale factor between logical coordinates in the coordinate
space used by <link linkend="cairo-win32-font-select-font"><function>cairo_win32_font_select_font()</function></link> and font space coordinates.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>font</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-font-t"><type>cairo_font_t</type></link> from the Win32 font backend
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> factor to multiply logical units by to get font space
coordinates.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,80 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-XCB-Backend">
<refmeta>
<refentrytitle>XCB Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>XCB Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-xcb">cairo_set_target_xcb</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="XCBConnection">XCBConnection</link> *dpy,
<link linkend="XCBDRAWABLE:CAPS">XCBDRAWABLE</link> drawable,
<link linkend="XCBVISUALTYPE:CAPS">XCBVISUALTYPE</link> *visual,
<link linkend="cairo-format-t">cairo_format_t</link> format);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-xcb"/>cairo_set_target_xcb ()</title>
<indexterm><primary>cairo_set_target_xcb</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_xcb (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="XCBConnection">XCBConnection</link> *dpy,
<link linkend="XCBDRAWABLE:CAPS">XCBDRAWABLE</link> drawable,
<link linkend="XCBVISUALTYPE:CAPS">XCBVISUALTYPE</link> *visual,
<link linkend="cairo-format-t">cairo_format_t</link> format);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>dpy</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>drawable</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>visual</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>format</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

View File

@ -0,0 +1,113 @@
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="cairo-XLib-Backend">
<refmeta>
<refentrytitle>XLib Backend</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>CAIRO Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>XLib Backend</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<synopsis>
<link linkend="void">void</link> <link linkend="cairo-set-target-drawable">cairo_set_target_drawable</link> (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="Display">Display</link> *dpy,
<link linkend="Drawable">Drawable</link> drawable);
<link linkend="cairo-surface-t">cairo_surface_t</link>* <link linkend="cairo-xlib-surface-create">cairo_xlib_surface_create</link> (<link linkend="Display">Display</link> *dpy,
<link linkend="Drawable">Drawable</link> drawable,
<link linkend="Visual">Visual</link> *visual,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="Colormap">Colormap</link> colormap);
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="cairo-set-target-drawable"/>cairo_set_target_drawable ()</title>
<indexterm><primary>cairo_set_target_drawable</primary></indexterm><programlisting><link linkend="void">void</link> cairo_set_target_drawable (<link linkend="cairo-t">cairo_t</link> *cr,
<link linkend="Display">Display</link> *dpy,
<link linkend="Drawable">Drawable</link> drawable);</programlisting>
<para>
Directs output for a <link linkend="cairo-t"><type>cairo_t</type></link> to an Xlib drawable. <parameter>drawable</parameter> must
be a Window or Pixmap on the default screen of <parameter>dpy</parameter> using the
default colormap and visual. Using this function is slow because
the function must retrieve information about <parameter>drawable</parameter> from the X
server.
The combination of <link linkend="cairo-xlib-surface-create"><function>cairo_xlib_surface_create()</function></link> and
<link linkend="cairo-set-target-surface"><function>cairo_set_target_surface()</function></link> is somewhat more flexible, although
it still is slow.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>cr</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="cairo-t"><type>cairo_t</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>dpy</parameter>&nbsp;:</term>
<listitem><simpara> an X display
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>drawable</parameter>&nbsp;:</term>
<listitem><simpara> a window or pixmap on the default screen of <parameter>dpy</parameter>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="cairo-xlib-surface-create"/>cairo_xlib_surface_create ()</title>
<indexterm><primary>cairo_xlib_surface_create</primary></indexterm><programlisting><link linkend="cairo-surface-t">cairo_surface_t</link>* cairo_xlib_surface_create (<link linkend="Display">Display</link> *dpy,
<link linkend="Drawable">Drawable</link> drawable,
<link linkend="Visual">Visual</link> *visual,
<link linkend="cairo-format-t">cairo_format_t</link> format,
<link linkend="Colormap">Colormap</link> colormap);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>dpy</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>drawable</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>visual</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>format</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>colormap</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,163 @@
#
# *** NOTE *** this file is checked into CVS for convenience only.
# DO NOT EDIT. Rather get changes into upstream gtk-doc and then
# update this version from the gtk-doc version.
#
# -*- mode: makefile -*-
####################################
# Everything below here is generic #
####################################
if GTK_DOC_USE_LIBTOOL
GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
else
GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CFLAGS) $(CFLAGS)
GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS)
endif
# We set GPATH here; this gives us semantics for GNU make
# which are more like other make's VPATH, when it comes to
# whether a source that is a target of one rule is then
# searched for in VPATH/GPATH.
#
GPATH = $(srcdir)
TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
EXTRA_DIST = \
$(content_files) \
$(HTML_IMAGES) \
$(DOC_MAIN_SGML_FILE) \
$(DOC_MODULE).types \
$(DOC_MODULE)-sections.txt \
$(DOC_MODULE)-overrides.txt
DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
$(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
SCANOBJ_FILES = \
$(DOC_MODULE).args \
$(DOC_MODULE).hierarchy \
$(DOC_MODULE).interfaces \
$(DOC_MODULE).prerequisites \
$(DOC_MODULE).signals
CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS)
if ENABLE_GTK_DOC
all-local: html-build.stamp
#### scan ####
scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
@echo '*** Scanning header files ***'
@-chmod -R u+w $(srcdir)
if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null ; then \
CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
else \
cd $(srcdir) ; \
for i in $(SCANOBJ_FILES) ; do \
test -f $$i || touch $$i ; \
done \
fi
cd $(srcdir) && \
gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
touch scan-build.stamp
$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES): scan-build.stamp
@true
#### templates ####
tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
@echo '*** Rebuilding template files ***'
@-chmod -R u+w $(srcdir)
cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE)
touch tmpl-build.stamp
tmpl.stamp: tmpl-build.stamp
@true
#### xml ####
sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) $(srcdir)/tmpl/*.sgml
@echo '*** Building XML ***'
@-chmod -R u+w $(srcdir)
cd $(srcdir) && \
gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml $(MKDB_OPTIONS)
touch sgml-build.stamp
sgml.stamp: sgml-build.stamp
@true
#### html ####
html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
@echo '*** Building HTML ***'
@-chmod -R u+w $(srcdir)
rm -rf $(srcdir)/html
mkdir $(srcdir)/html
cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
@echo '-- Fixing Crossreferences'
cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
touch html-build.stamp
else
all-local:
endif
##############
clean-local:
rm -f *~ *.bak
rm -rf .libs
maintainer-clean-local: clean
cd $(srcdir) && rm -rf xml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
install-data-local:
installfiles=`echo $(srcdir)/html/*`; \
if test "$$installfiles" = '$(srcdir)/html/*'; \
then echo '-- Nothing to install' ; \
else \
$(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \
for i in $$installfiles; do \
echo '-- Installing '$$i ; \
$(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
done; \
echo '-- Installing $(srcdir)/html/index.sgml' ; \
$(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \
fi
uninstall-local:
rm -f $(DESTDIR)$(TARGET_DIR)/*
#
# Require gtk-doc when making dist
#
if ENABLE_GTK_DOC
dist-check-gtkdoc:
else
dist-check-gtkdoc:
@echo "*** gtk-doc must be installed and enabled in order to make dist"
@false
endif
# XXX: Before this was:
# dist-hook: dist-check-gtkdoc dist-hook-local
# which seems reasonable, but for some reason the dist-check-gtkdoc
# was always failing on me, even though I do have gtk-doc installed
# and it is successfully building the documentation.
dist-hook: dist-hook-local
mkdir $(distdir)/tmpl
mkdir $(distdir)/xml
mkdir $(distdir)/html
-cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
-cp $(srcdir)/xml/*.xml $(distdir)/xml
-cp $(srcdir)/html/* $(distdir)/html
.PHONY : dist-hook-local

View File

@ -1,53 +1,56 @@
cairoincludedir = $(includedir)/cairo
cairoinclude_HEADERS = \
cairo.h \
cairo-atsui.h \
cairo-features.h\
cairo-ft.h \
cairo-glitz.h \
cairo-pdf.h \
cairo-png.h \
cairo-ps.h \
cairo-quartz.h \
cairo-xcb.h \
cairo-xlib.h
lib_LTLIBRARIES = libcairo.la
if CAIRO_HAS_PS_SURFACE
libcairo_ps_sources = cairo_ps_surface.c cairo-ps.h
libcairo_ps_headers = cairo-ps.h
libcairo_ps_sources = cairo_ps_surface.c
endif
if CAIRO_HAS_PDF_SURFACE
libcairo_pdf_sources = cairo_pdf_surface.c cairo-pdf.h
libcairo_pdf_headers = cairo-pdf.h
libcairo_pdf_sources = cairo_pdf_surface.c
endif
if CAIRO_HAS_PNG_SURFACE
libcairo_png_sources = cairo_png_surface.c cairo-png.h
libcairo_png_headers = cairo-png.h
libcairo_png_sources = cairo_png_surface.c
endif
if CAIRO_HAS_XLIB_SURFACE
libcairo_xlib_sources = cairo_xlib_surface.c cairo-xlib.h
libcairo_xlib_headers = cairo-xlib.h
libcairo_xlib_sources = cairo_xlib_surface.c
endif
if CAIRO_HAS_QUARTZ_SURFACE
libcairo_quartz_sources = cairo_quartz_surface.c cairo-quartz.h
libcairo_quartz_headers = cairo-quartz.h
libcairo_quartz_sources = cairo_quartz_surface.c
endif
if CAIRO_HAS_XCB_SURFACE
libcairo_xcb_sources = cairo_xcb_surface.c cairo-xcb.h
libcairo_xcb_headers = cairo-xcb.h
libcairo_xcb_sources = cairo_xcb_surface.c
endif
libcairo_win32_sources =
if CAIRO_HAS_WIN32_SURFACE
libcairo_win32_headers = cairo-win32.h
libcairo_win32_sources += cairo_win32_surface.c cairo-win32-private.h
endif
if CAIRO_HAS_WIN32_FONT
libcairo_win32_sources += cairo_win32_font.c
endif
if CAIRO_HAS_GLITZ_SURFACE
libcairo_glitz_sources = cairo_glitz_surface.c cairo-glitz.h
libcairo_glitz_headers = cairo-glitz.h
libcairo_glitz_sources = cairo_glitz_surface.c
endif
if CAIRO_HAS_ATSUI_FONT
libcairo_atsui_sources = cairo_atsui_font.c cairo-atsui.h
libcairo_atsui_headers = cairo-atsui.h
libcairo_atsui_sources = cairo_atsui_font.c
endif
if CAIRO_HAS_FT_FONT
libcairo_ft_sources = cairo_ft_font.c cairo-ft.h
libcairo_ft_headers = cairo-ft.h
libcairo_ft_sources = cairo_ft_font.c cairo-ft-private.h
endif
# These names match automake style variable definition conventions so
@ -57,6 +60,23 @@ endif
FONTCONFIG_LIBS=@FONTCONFIG_LIBS@
XRENDER_LIBS=@XRENDER_LIBS@
cairoincludedir = $(includedir)/cairo
cairoinclude_HEADERS = \
cairo.h \
cairo-features.h \
$(libcairo_atsui_headers) \
$(libcairo_ft_headers) \
$(libcairo_glitz_headers) \
$(libcairo_pdf_headers) \
$(libcairo_png_headers) \
$(libcairo_ps_headers) \
$(libcairo_quartz_headers) \
$(libcairo_win32_headers) \
$(libcairo_xcb_headers) \
$(libcairo_xlib_headers)
lib_LTLIBRARIES = libcairo.la
libcairo_la_SOURCES = \
cairo.c \
cairo.h \
@ -80,6 +100,7 @@ libcairo_la_SOURCES = \
cairo_surface.c \
cairo_traps.c \
cairo_pattern.c \
cairo_unicode.c \
cairo_wideint.c \
cairo-wideint.h \
$(libcairo_atsui_sources)\
@ -91,6 +112,8 @@ libcairo_la_SOURCES = \
$(libcairo_quartz_sources)\
$(libcairo_xcb_sources) \
$(libcairo_glitz_sources)\
$(libcairo_win32_sources)\
$(libcairo_freetype_sources) \
cairoint.h
libcairo_la_LDFLAGS = -version-info @VERSION_INFO@ -no-undefined
@ -98,3 +121,13 @@ libcairo_la_LDFLAGS = -version-info @VERSION_INFO@ -no-undefined
INCLUDES = -I$(srcdir) $(CAIRO_CFLAGS)
libcairo_la_LIBADD = $(CAIRO_LIBS)
install-data-local:
@if test -f $(includedir)/cairo.h || test -f $(includedir)/cairo-features.h ; then \
echo "****************************************************************" ; \
echo "*** Error: Old headers found. You should remove the following" ; \
echo "*** files and then type 'make install' again." ; \
ls $(includedir)/cairo*.h ; \
echo "****************************************************************" ; \
false ; \
fi

View File

@ -39,11 +39,14 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_1 = cairo_win32_surface.c cairo-win32-private.h
@CAIRO_HAS_WIN32_FONT_TRUE@am__append_2 = cairo_win32_font.c
subdir = src
DIST_COMMON = $(cairoinclude_HEADERS) $(srcdir)/Makefile.am \
DIST_COMMON = $(am__cairoinclude_HEADERS_DIST) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/cairo-features.h.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.in
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -66,13 +69,13 @@ am__libcairo_la_SOURCES_DIST = cairo.c cairo.h cairo_array.c \
cairo_matrix.c cairo_path.c cairo_path_bounds.c \
cairo_path_fill.c cairo_path_stroke.c cairo_pen.c \
cairo_polygon.c cairo_slope.c cairo_spline.c cairo_surface.c \
cairo_traps.c cairo_pattern.c cairo_wideint.c cairo-wideint.h \
cairo_atsui_font.c cairo-atsui.h cairo_ft_font.c cairo-ft.h \
cairo_ps_surface.c cairo-ps.h cairo_pdf_surface.c cairo-pdf.h \
cairo_png_surface.c cairo-png.h cairo_xlib_surface.c \
cairo-xlib.h cairo_quartz_surface.c cairo-quartz.h \
cairo_xcb_surface.c cairo-xcb.h cairo_glitz_surface.c \
cairo-glitz.h cairoint.h
cairo_traps.c cairo_pattern.c cairo_unicode.c cairo_wideint.c \
cairo-wideint.h cairo_atsui_font.c cairo_ft_font.c \
cairo-ft-private.h cairo_ps_surface.c cairo_pdf_surface.c \
cairo_png_surface.c cairo_xlib_surface.c \
cairo_quartz_surface.c cairo_xcb_surface.c \
cairo_glitz_surface.c cairo_win32_surface.c \
cairo-win32-private.h cairo_win32_font.c cairoint.h
@CAIRO_HAS_ATSUI_FONT_TRUE@am__objects_1 = cairo_atsui_font.lo
@CAIRO_HAS_FT_FONT_TRUE@am__objects_2 = cairo_ft_font.lo
@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_3 = cairo_ps_surface.lo
@ -83,16 +86,20 @@ am__libcairo_la_SOURCES_DIST = cairo.c cairo.h cairo_array.c \
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@ cairo_quartz_surface.lo
@CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_8 = cairo_xcb_surface.lo
@CAIRO_HAS_GLITZ_SURFACE_TRUE@am__objects_9 = cairo_glitz_surface.lo
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_10 = cairo_win32_surface.lo
@CAIRO_HAS_WIN32_FONT_TRUE@am__objects_11 = cairo_win32_font.lo
am__objects_12 = $(am__objects_10) $(am__objects_11)
am_libcairo_la_OBJECTS = cairo.lo cairo_array.lo cairo_cache.lo \
cairo_color.lo cairo_fixed.lo cairo_font.lo cairo_gstate.lo \
cairo_hull.lo cairo_image_surface.lo cairo_matrix.lo \
cairo_path.lo cairo_path_bounds.lo cairo_path_fill.lo \
cairo_path_stroke.lo cairo_pen.lo cairo_polygon.lo \
cairo_slope.lo cairo_spline.lo cairo_surface.lo cairo_traps.lo \
cairo_pattern.lo cairo_wideint.lo $(am__objects_1) \
$(am__objects_2) $(am__objects_3) $(am__objects_4) \
$(am__objects_5) $(am__objects_6) $(am__objects_7) \
$(am__objects_8) $(am__objects_9)
cairo_pattern.lo cairo_unicode.lo cairo_wideint.lo \
$(am__objects_1) $(am__objects_2) $(am__objects_3) \
$(am__objects_4) $(am__objects_5) $(am__objects_6) \
$(am__objects_7) $(am__objects_8) $(am__objects_9) \
$(am__objects_12)
libcairo_la_OBJECTS = $(am_libcairo_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
@ -107,6 +114,9 @@ LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(libcairo_la_SOURCES)
DIST_SOURCES = $(am__libcairo_la_SOURCES_DIST)
am__cairoinclude_HEADERS_DIST = cairo.h cairo-features.h cairo-atsui.h \
cairo-ft.h cairo-glitz.h cairo-pdf.h cairo-png.h cairo-ps.h \
cairo-quartz.h cairo-win32.h cairo-xcb.h cairo-xlib.h
cairoincludeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(cairoinclude_HEADERS)
ETAGS = etags
@ -137,6 +147,10 @@ CAIRO_HAS_PS_SURFACE_FALSE = @CAIRO_HAS_PS_SURFACE_FALSE@
CAIRO_HAS_PS_SURFACE_TRUE = @CAIRO_HAS_PS_SURFACE_TRUE@
CAIRO_HAS_QUARTZ_SURFACE_FALSE = @CAIRO_HAS_QUARTZ_SURFACE_FALSE@
CAIRO_HAS_QUARTZ_SURFACE_TRUE = @CAIRO_HAS_QUARTZ_SURFACE_TRUE@
CAIRO_HAS_WIN32_FONT_FALSE = @CAIRO_HAS_WIN32_FONT_FALSE@
CAIRO_HAS_WIN32_FONT_TRUE = @CAIRO_HAS_WIN32_FONT_TRUE@
CAIRO_HAS_WIN32_SURFACE_FALSE = @CAIRO_HAS_WIN32_SURFACE_FALSE@
CAIRO_HAS_WIN32_SURFACE_TRUE = @CAIRO_HAS_WIN32_SURFACE_TRUE@
CAIRO_HAS_XCB_SURFACE_FALSE = @CAIRO_HAS_XCB_SURFACE_FALSE@
CAIRO_HAS_XCB_SURFACE_TRUE = @CAIRO_HAS_XCB_SURFACE_TRUE@
CAIRO_HAS_XLIB_SURFACE_FALSE = @CAIRO_HAS_XLIB_SURFACE_FALSE@
@ -159,6 +173,8 @@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
ENABLE_GTK_DOC_FALSE = @ENABLE_GTK_DOC_FALSE@
ENABLE_GTK_DOC_TRUE = @ENABLE_GTK_DOC_TRUE@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
@ -172,11 +188,15 @@ FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_LIBS = @FREETYPE_LIBS@
FREETYPE_REQUIRES = @FREETYPE_REQUIRES@
FT_FONT_FEATURE = @FT_FONT_FEATURE@
GLITZ_CFLAGS = @GLITZ_CFLAGS@
GLITZ_LIBS = @GLITZ_LIBS@
GLITZ_REQUIRES = @GLITZ_REQUIRES@
GLITZ_SURFACE_FEATURE = @GLITZ_SURFACE_FEATURE@
GTK_DOC_USE_LIBTOOL_FALSE = @GTK_DOC_USE_LIBTOOL_FALSE@
GTK_DOC_USE_LIBTOOL_TRUE = @GTK_DOC_USE_LIBTOOL_TRUE@
HTML_DIR = @HTML_DIR@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -218,6 +238,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
VERSION_INFO = @VERSION_INFO@
WIN32_FONT_FEATURE = @WIN32_FONT_FEATURE@
WIN32_SURFACE_FEATURE = @WIN32_SURFACE_FEATURE@
XCB_CFLAGS = @XCB_CFLAGS@
XCB_LIBS = @XCB_LIBS@
XCB_SURFACE_FEATURE = @XCB_SURFACE_FEATURE@
@ -272,30 +294,42 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
@CAIRO_HAS_PS_SURFACE_TRUE@libcairo_ps_headers = cairo-ps.h
@CAIRO_HAS_PS_SURFACE_TRUE@libcairo_ps_sources = cairo_ps_surface.c
@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_pdf_headers = cairo-pdf.h
@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_pdf_sources = cairo_pdf_surface.c
@CAIRO_HAS_PNG_SURFACE_TRUE@libcairo_png_headers = cairo-png.h
@CAIRO_HAS_PNG_SURFACE_TRUE@libcairo_png_sources = cairo_png_surface.c
@CAIRO_HAS_XLIB_SURFACE_TRUE@libcairo_xlib_headers = cairo-xlib.h
@CAIRO_HAS_XLIB_SURFACE_TRUE@libcairo_xlib_sources = cairo_xlib_surface.c
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@libcairo_quartz_headers = cairo-quartz.h
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@libcairo_quartz_sources = cairo_quartz_surface.c
@CAIRO_HAS_XCB_SURFACE_TRUE@libcairo_xcb_headers = cairo-xcb.h
@CAIRO_HAS_XCB_SURFACE_TRUE@libcairo_xcb_sources = cairo_xcb_surface.c
libcairo_win32_sources = $(am__append_1) $(am__append_2)
@CAIRO_HAS_WIN32_SURFACE_TRUE@libcairo_win32_headers = cairo-win32.h
@CAIRO_HAS_GLITZ_SURFACE_TRUE@libcairo_glitz_headers = cairo-glitz.h
@CAIRO_HAS_GLITZ_SURFACE_TRUE@libcairo_glitz_sources = cairo_glitz_surface.c
@CAIRO_HAS_ATSUI_FONT_TRUE@libcairo_atsui_headers = cairo-atsui.h
@CAIRO_HAS_ATSUI_FONT_TRUE@libcairo_atsui_sources = cairo_atsui_font.c
@CAIRO_HAS_FT_FONT_TRUE@libcairo_ft_headers = cairo-ft.h
@CAIRO_HAS_FT_FONT_TRUE@libcairo_ft_sources = cairo_ft_font.c cairo-ft-private.h
cairoincludedir = $(includedir)/cairo
cairoinclude_HEADERS = \
cairo.h \
cairo-atsui.h \
cairo-features.h\
cairo-ft.h \
cairo-glitz.h \
cairo-pdf.h \
cairo-png.h \
cairo-ps.h \
cairo-quartz.h \
cairo-xcb.h \
cairo-xlib.h
cairo.h \
cairo-features.h \
$(libcairo_atsui_headers) \
$(libcairo_ft_headers) \
$(libcairo_glitz_headers) \
$(libcairo_pdf_headers) \
$(libcairo_png_headers) \
$(libcairo_ps_headers) \
$(libcairo_quartz_headers) \
$(libcairo_win32_headers) \
$(libcairo_xcb_headers) \
$(libcairo_xlib_headers)
lib_LTLIBRARIES = libcairo.la
@CAIRO_HAS_PS_SURFACE_TRUE@libcairo_ps_sources = cairo_ps_surface.c cairo-ps.h
@CAIRO_HAS_PDF_SURFACE_TRUE@libcairo_pdf_sources = cairo_pdf_surface.c cairo-pdf.h
@CAIRO_HAS_PNG_SURFACE_TRUE@libcairo_png_sources = cairo_png_surface.c cairo-png.h
@CAIRO_HAS_XLIB_SURFACE_TRUE@libcairo_xlib_sources = cairo_xlib_surface.c cairo-xlib.h
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@libcairo_quartz_sources = cairo_quartz_surface.c cairo-quartz.h
@CAIRO_HAS_XCB_SURFACE_TRUE@libcairo_xcb_sources = cairo_xcb_surface.c cairo-xcb.h
@CAIRO_HAS_GLITZ_SURFACE_TRUE@libcairo_glitz_sources = cairo_glitz_surface.c cairo-glitz.h
@CAIRO_HAS_ATSUI_FONT_TRUE@libcairo_atsui_sources = cairo_atsui_font.c cairo-atsui.h
@CAIRO_HAS_FT_FONT_TRUE@libcairo_ft_sources = cairo_ft_font.c cairo-ft.h
libcairo_la_SOURCES = \
cairo.c \
cairo.h \
@ -319,6 +353,7 @@ libcairo_la_SOURCES = \
cairo_surface.c \
cairo_traps.c \
cairo_pattern.c \
cairo_unicode.c \
cairo_wideint.c \
cairo-wideint.h \
$(libcairo_atsui_sources)\
@ -330,6 +365,8 @@ libcairo_la_SOURCES = \
$(libcairo_quartz_sources)\
$(libcairo_xcb_sources) \
$(libcairo_glitz_sources)\
$(libcairo_win32_sources)\
$(libcairo_freetype_sources) \
cairoint.h
libcairo_la_LDFLAGS = -version-info @VERSION_INFO@ -no-undefined
@ -434,7 +471,10 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_spline.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_surface.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_traps.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_unicode.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_wideint.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_win32_font.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_win32_surface.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_xcb_surface.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo_xlib_surface.Plo@am__quote@
@ -613,7 +653,7 @@ info: info-am
info-am:
install-data-am: install-cairoincludeHEADERS
install-data-am: install-cairoincludeHEADERS install-data-local
install-exec-am: install-libLTLIBRARIES
@ -649,15 +689,25 @@ uninstall-am: uninstall-cairoincludeHEADERS uninstall-info-am \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-cairoincludeHEADERS install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-libLTLIBRARIES install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-cairoincludeHEADERS uninstall-info-am \
uninstall-libLTLIBRARIES
install-data-am install-data-local install-exec \
install-exec-am install-info install-info-am \
install-libLTLIBRARIES install-man install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-cairoincludeHEADERS \
uninstall-info-am uninstall-libLTLIBRARIES
install-data-local:
@if test -f $(includedir)/cairo.h || test -f $(includedir)/cairo-features.h ; then \
echo "****************************************************************" ; \
echo "*** Error: Old headers found. You should remove the following" ; \
echo "*** files and then type 'make install' again." ; \
ls $(includedir)/cairo*.h ; \
echo "****************************************************************" ; \
false ; \
fi
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -1,6 +1,6 @@
/* cairo - a vector graphics library with display and print output
*
* Copyright © 2004 Calum Robinson
* Copyright © 2004 Calum Robinson
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
@ -33,18 +33,23 @@
* Calum Robinson <calumr@mac.com>
*/
#include <cairo.h>
#ifndef CAIRO_ATSUI_H
#define CAIRO_ATSUI_H
#include <cairo.h>
#ifdef CAIRO_HAS_ATSUI_FONT
/* ATSUI platform-specific font interface */
#include <Carbon/Carbon.h>
CAIRO_BEGIN_DECLS
cairo_font_t *
cairo_atsui_font_create(ATSUStyle style);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_ATSUI_FONT */
#endif /* CAIRO_ATSUI_H */

View File

@ -31,7 +31,7 @@
* California.
*
* Contributor(s):
* Carl Worth <cworth@east.isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#ifndef CAIRO_FEATURES_H
@ -49,10 +49,14 @@
#define CAIRO_HAS_NO_XCB_SURFACE
#define CAIRO_HAS_GLITZ_SURFACE
#define CAIRO_HAS_NO_WIN32_SURFACE
#define CAIRO_HAS_NO_GLITZ_SURFACE
#define CAIRO_HAS_FT_FONT
#define CAIRO_HAS_NO_WIN32_FONT
#define CAIRO_HAS_NO_ATSUI_FONT
#define CAIRO_DO_SANITY_CHECKING

View File

@ -31,7 +31,7 @@
* California.
*
* Contributor(s):
* Carl Worth <cworth@east.isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#ifndef CAIRO_FEATURES_H
@ -49,10 +49,14 @@
#define @XCB_SURFACE_FEATURE@
#define @WIN32_SURFACE_FEATURE@
#define @GLITZ_SURFACE_FEATURE@
#define @FT_FONT_FEATURE@
#define @WIN32_FONT_FEATURE@
#define @ATSUI_FONT_FEATURE@
#define @SANITY_CHECKING_FEATURE@

View File

@ -0,0 +1,63 @@
/* cairo - a vector graphics library with display and print output
*
* Copyright © 2005 Red Hat, Inc
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Red Hat, Inc.
*
* Contributor(s):
* Graydon Hoare <graydon@redhat.com>
* Owen Taylor <otaylor@redhat.com>
*/
#ifndef CAIRO_FT_PRIVATE_H
#define CAIRO_FT_PRIVATE_H
#include <cairo-ft.h>
#include <cairoint.h>
#ifdef CAIRO_HAS_FT_FONT
CAIRO_BEGIN_DECLS
/* These functions are needed by the PDF backend, which needs to keep track of the
* the different fonts-on-disk used by a document, so it can embed them
*/
cairo_private cairo_unscaled_font_t *
_cairo_ft_font_get_unscaled_font (cairo_font_t *font);
cairo_private FT_Face
_cairo_ft_unscaled_font_lock_face (cairo_unscaled_font_t *unscaled_font);
cairo_private void
_cairo_ft_unscaled_font_unlock_face (cairo_unscaled_font_t *unscaled_font);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_FT_FONT */
#endif /* CAIRO_FT_PRIVATE_H */

View File

@ -1,6 +1,6 @@
/* cairo - a vector graphics library with display and print output
*
* Copyright © 2002 University of Southern California
* Copyright © 2005 Red Hat, Inc
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
@ -27,17 +27,18 @@
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is University of Southern
* California.
* The Initial Developer of the Original Code is Red Hat, Inc.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Graydon Hoare <graydon@redhat.com>
* Owen Taylor <otaylor@redhat.com>
*/
#include <cairo.h>
#ifndef CAIRO_FT_H
#define CAIRO_FT_H
#include <cairo.h>
#ifdef CAIRO_HAS_FT_FONT
/* Fontconfig/Freetype platform-specific font interface */
@ -46,17 +47,27 @@
#include <ft2build.h>
#include FT_FREETYPE_H
cairo_font_t *
cairo_ft_font_create (FT_Library ft_library, FcPattern *pattern);
CAIRO_BEGIN_DECLS
cairo_font_t *
cairo_ft_font_create_for_ft_face (FT_Face face);
cairo_ft_font_create (FcPattern *pattern,
cairo_matrix_t *scale);
cairo_font_t *
cairo_ft_font_create_for_ft_face (FT_Face face,
int load_flags,
cairo_matrix_t *scale);
FT_Face
cairo_ft_font_face (cairo_font_t *ft_font);
cairo_ft_font_lock_face (cairo_font_t *ft_font);
void
cairo_ft_font_unlock_face (cairo_font_t *ft_font);
FcPattern *
cairo_ft_font_pattern (cairo_font_t *ft_font);
cairo_ft_font_get_pattern (cairo_font_t *ft_font);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_FT_FONT */
#endif /* CAIRO_FT_H */

View File

@ -31,17 +31,20 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include <cairo.h>
#ifndef CAIRO_GLITZ_H
#define CAIRO_GLITZ_H
#include <cairo.h>
#ifdef CAIRO_HAS_GLITZ_SURFACE
#include <glitz.h>
CAIRO_BEGIN_DECLS
void
cairo_set_target_glitz (cairo_t *cr,
glitz_surface_t *surface);
@ -49,5 +52,7 @@ cairo_set_target_glitz (cairo_t *cr,
cairo_surface_t *
cairo_glitz_surface_create (glitz_surface_t *surface);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_GLITZ_SURFACE */
#endif /* CAIRO_GLITZ_H */

View File

@ -31,17 +31,20 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include <cairo.h>
#ifndef CAIRO_PDF_H
#define CAIRO_PDF_H
#include <cairo.h>
#ifdef CAIRO_HAS_PDF_SURFACE
#include <stdio.h>
CAIRO_BEGIN_DECLS
void
cairo_set_target_pdf (cairo_t *cr,
FILE *file,
@ -58,5 +61,7 @@ cairo_pdf_surface_create (FILE *file,
double x_pixels_per_inch,
double y_pixels_per_inch);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_PDF_SURFACE */
#endif /* CAIRO_PDF_H */

View File

@ -31,17 +31,20 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include <cairo.h>
#ifndef CAIRO_PNG_H
#define CAIRO_PNG_H
#ifdef CAIRO_HAS_PNG_SURFACE
#include <cairo.h>
#ifdef CAIRO_HAS_PNG_SURFACE
#include <stdio.h>
CAIRO_BEGIN_DECLS
void
cairo_set_target_png (cairo_t *cr,
FILE *file,
@ -55,5 +58,7 @@ cairo_png_surface_create (FILE *file,
int width,
int height);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_PNG_SURFACE */
#endif /* CAIRO_PNG_H */

View File

@ -31,17 +31,20 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include <cairo.h>
#ifndef CAIRO_PS_H
#define CAIRO_PS_H
#include <cairo.h>
#ifdef CAIRO_HAS_PS_SURFACE
#include <stdio.h>
CAIRO_BEGIN_DECLS
void
cairo_set_target_ps (cairo_t *cr,
FILE *file,
@ -59,5 +62,7 @@ cairo_ps_surface_create (FILE *file,
double x_pixels_per_inch,
double y_pixels_per_inch);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_PS_SURFACE */
#endif /* CAIRO_PS_H */

View File

@ -31,17 +31,20 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include <cairo.h>
#ifndef CAIRO_QUARTZ_H
#define CAIRO_QUARTZ_H
#include <cairo.h>
#ifdef CAIRO_HAS_QUARTZ_SURFACE
#include <Carbon/Carbon.h>
CAIRO_BEGIN_DECLS
void
cairo_set_target_quartz_context( cairo_t *cr,
CGContextRef context,
@ -53,6 +56,8 @@ cairo_quartz_surface_create ( CGContextRef context,
int width,
int height);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_QUARTZ_SURFACE */
#endif /* CAIRO_QUARTZ_H */

View File

@ -1,5 +1,5 @@
/*
* $Id: cairo-wideint.h,v 1.2 2005/03/14 16:16:21 tor%cs.brown.edu Exp $
* $Id: cairo-wideint.h,v 1.3 2005/03/23 19:53:39 tor%cs.brown.edu Exp $
*
* Copyright © 2004 Keith Packard
*
@ -41,7 +41,7 @@
#if defined (__SVR4) && defined (__sun)
# include <sys/int_types.h>
#else
# if defined (__OpenBSD__) || defined (_AIX)
# if defined (__OpenBSD__)
# include <inttypes.h>
# else
# include <stdint.h>

View File

@ -0,0 +1,87 @@
/* cairo - a vector graphics library with display and print output
*
* Copyright © 2005 Red Hat, Inc
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Red Hat, Inc.
*
* Contributor(s):
* Owen Taylor <otaylor@redhat.com>
*/
#ifndef CAIRO_WIN32_PRIVATE_H
#define CAIRO_WIN32_PRIVATE_H
/* We depend on various features introduced with Win2k and Win98,
* like AlphaBlend. If it turns out to be a problem, we could
* use GetProcAddress() to look them up.
*/
#define WINVER 0x0500
#include <cairo-win32.h>
#include <cairoint.h>
typedef struct _cairo_win32_surface {
cairo_surface_t base;
cairo_format_t format;
HDC dc;
/* We create off-screen surfaces as DIBs */
HBITMAP bitmap;
/* Used to save the initial 1x1 monochrome bitmap for the DC to
* select back into the DC before deleting the DC and our
* bitmap. For Windows XP, this doesn't seem to be necessary
* ... we can just delete the DC and that automatically unselects
* out bitmap. But it's standard practice so apparently is needed
* on some versions of Windows.
*/
HBITMAP saved_dc_bitmap;
cairo_surface_t *image;
cairo_rectangle_t clip_rect;
int set_clip;
HRGN saved_clip;
} cairo_win32_surface_t;
cairo_status_t
_cairo_win32_print_gdi_error (const char *context);
cairo_surface_t *
_cairo_win32_surface_create_dib (cairo_format_t format,
int width,
int height);
cairo_bool_t
_cairo_surface_is_win32 (cairo_surface_t *surface);
#endif /* CAIRO_WIN32_PRIVATE_H */

View File

@ -0,0 +1,71 @@
/* cairo - a vector graphics library with display and print output
*
* Copyright © 2005 Red Hat, Inc
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Red Hat, Inc.
*
* Contributor(s):
* Owen Taylor <otaylor@redhat.com>
*/
#ifndef _CAIRO_WIN32_H_
#include <cairo.h>
#ifdef CAIRO_HAS_WIN32_SURFACE
#include <windows.h>
CAIRO_BEGIN_DECLS
void
cairo_set_target_win32 (cairo_t *cr,
HDC hdc);
cairo_surface_t *
cairo_win32_surface_create (HDC hdc);
cairo_font_t *
cairo_win32_font_create_for_logfontw (LOGFONTW *logfont,
cairo_matrix_t *scale);
cairo_status_t
cairo_win32_font_select_font (cairo_font_t *font,
HDC hdc);
void
cairo_win32_font_done_font (cairo_font_t *font);
double
cairo_win32_font_get_scale_factor (cairo_font_t *font);
#endif /* CAIRO_HAS_WIN32_SURFACE */
CAIRO_END_DECLS
#endif /* _CAIRO_WIN32_H_ */

View File

@ -31,18 +31,21 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include <cairo.h>
#ifndef CAIRO_XCB_H
#define CAIRO_XCB_H
#include <cairo.h>
#ifdef CAIRO_HAS_XCB_SURFACE
#include <X11/XCB/xcb.h>
#include <X11/XCB/render.h>
CAIRO_BEGIN_DECLS
void
cairo_set_target_xcb (cairo_t *cr,
XCBConnection *dpy,
@ -50,5 +53,7 @@ cairo_set_target_xcb (cairo_t *cr,
XCBVISUALTYPE *visual,
cairo_format_t format);
CAIRO_END_DECLS
#endif /* CAIRO_HAS_XCB_SURFACE */
#endif /* CAIRO_XCB_H */

View File

@ -31,17 +31,20 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include <cairo.h>
#ifndef CAIRO_XLIB_H
#define CAIRO_XLIB_H
#include <cairo.h>
#ifdef CAIRO_HAS_XLIB_SURFACE
#include <X11/extensions/Xrender.h>
CAIRO_BEGIN_DECLS
/* XXX: This shold be renamed to cairo_set_target_xlib to match the
* other backends */
void
@ -66,6 +69,8 @@ cairo_status_t
cairo_xlib_surface_set_size (cairo_surface_t *surface, int width, int height);
*/
CAIRO_END_DECLS
#endif /* CAIRO_HAS_XLIB_SURFACE */
#endif /* CAIRO_XLIB_H */

View File

@ -31,7 +31,7 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
@ -68,6 +68,18 @@ cairo_sane_state (cairo_t *cr)
#endif
/**
* cairo_create:
*
* Creates a new #cairo_t with default values. The target
* surface must be set on the #cairo_t with cairo_set_target_surface(),
* or a backend-specific function like cairo_set_target_image() before
* drawing with the #cairo_t.
*
* Return value: a newly allocated #cairo_t with a reference
* count of 1. The initial reference count should be released
* with cairo_destroy() when you are done using the #cairo_t.
**/
cairo_t *
cairo_create (void)
{
@ -88,6 +100,14 @@ cairo_create (void)
return cr;
}
/**
* cairo_reference:
* @cr: a #cairo_t
*
* Increases the reference count on @cr by one. This prevents
* @cr from being destroyed until a matching call to cairo_destroy()
* is made.
**/
void
cairo_reference (cairo_t *cr)
{
@ -99,6 +119,14 @@ cairo_reference (cairo_t *cr)
CAIRO_CHECK_SANITY (cr);
}
/**
* cairo_destroy:
* @cr: a #cairo_t
*
* Decreases the reference count on @cr by one. If the result
* is zero, then @cr and all associated resources are freed.
* See cairo_destroy().
**/
void
cairo_destroy (cairo_t *cr)
{
@ -117,6 +145,22 @@ cairo_destroy (cairo_t *cr)
free (cr);
}
/**
* cairo_save:
* @cr: a #cairo_t
*
* Makes a copy of the current state of @cr and saves it
* on an internal stack of saved states for @cr. When
* cairo_restore() is called, @cr will be restored to
* the saved state. Multiple calls to cairo_save() and
* cairo_restore() can be nested; each call to cairo_restore()
* restores the state from the matching paired cairo_save().
*
* It isn't necessary to clear all saved states before
* a #cairo_t is freed. If the reference count of a #cairo_t
* drops to zero in response to a call to cairo_destroy(),
* any saved states will be freed along with the #cairo_t.
**/
void
cairo_save (cairo_t *cr)
{
@ -144,6 +188,14 @@ cairo_save (cairo_t *cr)
}
slim_hidden_def(cairo_save);
/**
* cairo_restore:
* @cr: a #cairo_t
*
* Restores @cr to the state saved by a preceding call to
* cairo_save() and removes that state from the stack of
* saved states.
**/
void
cairo_restore (cairo_t *cr)
{
@ -170,6 +222,20 @@ cairo_restore (cairo_t *cr)
}
slim_hidden_def(cairo_restore);
/**
* cairo_copy:
* @dest: a #cairo_t
* @src: another #cairo_t
*
* This function copies all current state information from src to
* dest. This includes the current point and path, the target surface,
* the transformation matrix, and so forth.
*
* The stack of states saved with cairo_save() is <emphasis>not</emphasis>
* not copied; nor are any saved states on @dest cleared. The
* operation only copies the current state of @src to the current
* state of @dest.
**/
void
cairo_copy (cairo_t *dest, cairo_t *src)
{
@ -216,6 +282,16 @@ cairo_pop_group (cairo_t *cr)
}
*/
/**
* cairo_set_target_surface:
* @cr: a #cairo_t
* @surface: a #cairo_surface_t
*
* Directs output for a #cairo_t to a given surface. The surface
* will be referenced by the #cairo_t, so you can immediately
* call cairo_surface_destroy() on it if you don't need to
* keep a reference to it around.
**/
void
cairo_set_target_surface (cairo_t *cr, cairo_surface_t *surface)
{
@ -228,6 +304,26 @@ cairo_set_target_surface (cairo_t *cr, cairo_surface_t *surface)
}
slim_hidden_def(cairo_set_target_surface);
/**
* cairo_set_target_image:
* @cr: a #cairo_t
* @data: a pointer to a buffer supplied by the application
* in which to write contents.
* @format: the format of pixels in the buffer
* @width: the width of the image to be stored in the buffer
* @height: the eight of the image to be stored in the buffer
* @stride: the number of bytes between the start of rows
* in the buffer. Having this be specified separate from @width
* allows for padding at the end of rows, or for writing
* to a subportion of a larger image.
*
* Directs output for a #cairo_t to an in-memory image. The output
* buffer must be kept around until the #cairo_t is destroyed or set
* to to have a different target. The initial contents of @buffer
* will be used as the inital image contents; you must explicitely
* clear the buffer, using, for example, cairo_rectangle() and
* cairo_fill() if you want it cleared.
**/
void
cairo_set_target_image (cairo_t *cr,
char *data,
@ -268,6 +364,18 @@ cairo_set_operator (cairo_t *cr, cairo_operator_t op)
CAIRO_CHECK_SANITY (cr);
}
/**
* cairo_set_rgb_color:
* @cr: a #cairo_t
* @red: red component of color
* @green: green component of color
* @blue: blue component of color
*
* Sets a constant color for filling and stroking. This replaces any
* pattern set with cairo_set_pattern(). The color components are
* floating point numbers in the range 0 to 1. If the values passed in
* are outside that range, they will be clamped.
**/
void
cairo_set_rgb_color (cairo_t *cr, double red, double green, double blue)
{
@ -301,6 +409,19 @@ cairo_current_pattern (cairo_t *cr)
return _cairo_gstate_current_pattern (cr->gstate);
}
/**
* cairo_set_tolerance:
* @cr: a #cairo_t
* @tolerance: the tolerance, in device units (typically pixels)
*
* Sets the tolerance used when converting paths into trapezoids.
* Curved segments of the path will be subdivided until the maximum
* deviation between the original path and the polygonal approximation
* is less than @tolerance. The default value is 0.1. A larger
* value will give better performance, a smaller value, better
* appearance. (Reducing the value from the default value of 0.1
* is unlikely to improve appearance significantly.)
**/
void
cairo_set_tolerance (cairo_t *cr, double tolerance)
{
@ -314,6 +435,17 @@ cairo_set_tolerance (cairo_t *cr, double tolerance)
CAIRO_CHECK_SANITY (cr);
}
/**
* cairo_set_alpha:
* @cr: a #cairo_t
* @alpha: the alpha value. 0 is transparent, 1 fully opaque.
* if the value is outside the range 0 to 1, it will be
* clamped to that range.
*
* Sets an overall alpha value used for stroking and filling. This
* value is multiplied with any alpha value coming from a gradient or
* image pattern.
**/
void
cairo_set_alpha (cairo_t *cr, double alpha)
{
@ -569,6 +701,39 @@ cairo_curve_to (cairo_t *cr,
CAIRO_CHECK_SANITY (cr);
}
/**
* cairo_arc:
* @cr: a Cairo context
* @xc: X position of the center of the arc
* @yc: Y position of the center of the arc
* @radius: the radius of the arc
* @angle1: the start angle, in radians
* @angle2: the end angle, in radians
*
* Adds an arc from @angle1 to @angle2 to the current path. If there
* is a current point, that point is connected to the start of the arc
* by a straight line segment. Angles are measured in radians with an
* angle of 0 along the X axis and an angle of %M_PI radians (90
* degrees) along the Y axis, so with the default transformation
* matrix, positive angles are clockwise. (To convert from degrees to
* radians, use <literal>degrees * (M_PI / 180.)</literal>.) This
* function gives the arc in the direction of increasing angle; see
* cairo_arc_negative() to get the arc in the direction of decreasing
* angle.
*
* A full arc is drawn as a circle. To make an oval arc, you can scale
* the current transformation matrix by different amounts in the X and
* Y directions. For example, to draw a full oval in the box given
* by @x, @y, @width, @height:
* <informalexample><programlisting>
* cairo_save (cr);
* cairo_translate (x + width / 2., y + height / 2.);
* cairo_scale (1. / (height / 2.), 1. / (width / 2.));
* cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI);
* cairo_restore (cr);
* </programlisting></informalexample>
**/
void
cairo_arc (cairo_t *cr,
double xc, double yc,
@ -586,6 +751,20 @@ cairo_arc (cairo_t *cr,
CAIRO_CHECK_SANITY (cr);
}
/**
* cairo_arc_negative:
* @cr: a Cairo context
* @xc: X position of the center of the arc
* @yc: Y position of the center of the arc
* @radius: the radius of the arc
* @angle1: the start angle, in radians
* @angle2: the end angle, in radians
*
* Adds an arc from @angle1 to @angle2 to the current path. The
* function behaves identically to cairo_arc() except that instead of
* giving the arc in the direction of increasing angle, it gives
* the arc in the direction of decreasing angle.
**/
void
cairo_arc_negative (cairo_t *cr,
double xc, double yc,
@ -744,7 +923,7 @@ cairo_show_page (cairo_t *cr)
CAIRO_CHECK_SANITY (cr);
}
int
cairo_bool_t
cairo_in_stroke (cairo_t *cr, double x, double y)
{
int inside;
@ -842,6 +1021,20 @@ cairo_select_font (cairo_t *cr,
CAIRO_CHECK_SANITY (cr);
}
/**
* cairo_current_font:
* @cr: a #cairo_t
*
* Gets the current font object for a #cairo_t. If there is no current
* font object, because the font parameters, transform, or target
* surface has been changed since a font was last used, a font object
* will be created and stored in in the #cairo_t.
*
* Return value: the current font object. Can return %NULL
* on out-of-memory or if the context is already in
* an error state. This object is owned by Cairo. To keep
* a reference to it, you must call cairo_font_reference().
**/
cairo_font_t *
cairo_current_font (cairo_t *cr)
{
@ -869,6 +1062,22 @@ cairo_current_font_extents (cairo_t *cr,
}
/**
* cairo_set_font:
* @cr: a #cairo_t
* @font: a #cairo_font_t, or %NULL to unset any previously set font.
*
* Replaces the current #cairo_font_t object in the #cairo_t with
* @font. The replaced font in the #cairo_t will be destroyed if there
* are no other references to it. Since a #cairo_font_t is specific to
* a particular output device and size, changing the transformation,
* font transformation, or target surfaces of a #cairo_t will clear
* any previously set font. Setting the font using cairo_set_font() is
* exclusive with the simple font selection API provided by
* cairo_select_font(). The size and transformation set by
* cairo_scale_font() and cairo_transform_font() are ignored unless
* they were taken into account when creating @font.
**/
void
cairo_set_font (cairo_t *cr, cairo_font_t *font)
{
@ -914,6 +1123,16 @@ cairo_text_extents (cairo_t *cr,
if (cr->status)
return;
if (utf8 == NULL) {
extents->x_bearing = 0.0;
extents->y_bearing = 0.0;
extents->width = 0.0;
extents->height = 0.0;
extents->x_advance = 0.0;
extents->y_advance = 0.0;
return;
}
cr->status = _cairo_gstate_text_to_glyphs (cr->gstate, utf8, &glyphs, &nglyphs);
CAIRO_CHECK_SANITY (cr);
@ -1205,6 +1424,8 @@ cairo_status_string (cairo_t *cr)
return "no target surface has been set";
case CAIRO_STATUS_NULL_POINTER:
return "NULL pointer";
case CAIRO_STATUS_INVALID_STRING:
return "input string not valid UTF-8";
}
return "<unknown error status>";

View File

@ -31,23 +31,83 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#ifndef CAIRO_H
#define CAIRO_H
#ifdef __cplusplus
# define CAIRO_BEGIN_DECLS extern "C" {
# define CAIRO_END_DECLS }
#else
# define CAIRO_BEGIN_DECLS
# define CAIRO_END_DECLS
#endif
#include <cairo-features.h>
#include <pixman.h>
CAIRO_BEGIN_DECLS
/**
* cairo_bool_t:
*
* #cairo_bool_t is used for boolean values. Returns of type
* #cairo_bool_t will always be either 0 or 1, but testing against
* these values explicitely is not encouraged; just use the
* value as a boolean condition.
*
* <informalexample><programlisting>
* if (cairo_in_stroke (cr, x, y)) {
* /<!-- -->* do something *<!-- -->/
* }
* </programlisting></informalexample>
*/
typedef int cairo_bool_t;
/**
* cairo_t:
*
* A #cairo_t contains the current state of the rendering device,
* including coordinates of yet to be drawn shapes.
**/
typedef struct _cairo cairo_t;
/**
* cairo_surface_t:
*
* A #cairo_surface_t represents an image, either as the destination
* of a drawing operation or as source when drawing onto another
* surface. There are different subtypes of cairo_surface_t for
* different drawing backends; for example, cairo_image_surface_create()
* creates a bitmap image in memory.
*
* Memory management of #cairo_surface_t is done with
* cairo_surface_reference() and cairo_surface_destroy().
*/
typedef struct _cairo_surface cairo_surface_t;
/**
* cairo_matrix_t:
*
* A #cairo_matrix_t holds an affine transformation, such as a scale,
* rotation, or shear, or a combination of those.
**/
typedef struct _cairo_matrix cairo_matrix_t;
typedef struct _cairo_pattern cairo_pattern_t;
#ifdef __cplusplus
extern "C" {
#endif
typedef enum cairo_status {
CAIRO_STATUS_SUCCESS = 0,
CAIRO_STATUS_NO_MEMORY,
CAIRO_STATUS_INVALID_RESTORE,
CAIRO_STATUS_INVALID_POP_GROUP,
CAIRO_STATUS_NO_CURRENT_POINT,
CAIRO_STATUS_INVALID_MATRIX,
CAIRO_STATUS_NO_TARGET_SURFACE,
CAIRO_STATUS_NULL_POINTER,
CAIRO_STATUS_INVALID_STRING
} cairo_status_t;
/* Functions for manipulating state objects */
cairo_t *
@ -81,6 +141,28 @@ cairo_pop_group (cairo_t *cr);
void
cairo_set_target_surface (cairo_t *cr, cairo_surface_t *surface);
/**
* cairo_format_t
* @CAIRO_FORMAT_ARGB32: each pixel is a 32-bit quantity, with
* alpha in the upper 8 bits, then red, then green, then blue.
* The 32-bit quanties are stored native-endian. Pre-multiplied
* alpha is used. (That is, 50% transparent red is 0x80800000,
* not 0x80ff0000.)
* @CAIRO_FORMAT_RGB24: each pixel is a 32-bit quantity, with
* the upper 8 bits unused. Red, Green, and Blue are stored
* in the remaining 24 bits in that order.
* @CAIRO_FORMAT_A8: each pixel is a 8-bit quantity holding
* an alpha value.
* @CAIRO_FORMAT_A1: each pixel is a 1-bit quantity holding
* an alpha value. Pixels are packed together into 32-bit
* quantities. The ordering of the bits matches the
* endianess of the platform. On a big-endian machine, the
* first pixel is in the uppermost bit, on a little-endian
* machine the first pixel is in the least-significant bit.
*
* #cairo_format_t is used to identify the memory format of
* image data.
*/
typedef enum cairo_format {
CAIRO_FORMAT_ARGB32,
CAIRO_FORMAT_RGB24,
@ -88,6 +170,7 @@ typedef enum cairo_format {
CAIRO_FORMAT_A1
} cairo_format_t;
/* XXX: Need to add cairo_set_target_image_data */
void
cairo_set_target_image (cairo_t *cr,
char *data,
@ -149,6 +232,27 @@ cairo_set_alpha (cairo_t *cr, double alpha);
void
cairo_set_tolerance (cairo_t *cr, double tolerance);
/**
* cairo_fill_rule_t
* @CAIRO_FILL_RULE_WINDING: If the path crosses the ray from
* left-to-right, counts +1. If the path crosses the ray
* from right to left, counts -1. (Left and right are determined
* from the perspective of looking along the ray from the starting
* point.) If the total count is non-zero, the point will be filled.
* @CAIRO_FILL_RULE_EVEN_ODD: Counts the total number of
* intersections, without regard to the orientation of the contour. If
* the total number of intersections is odd, the point will be
* filled.
*
* #cairo_fill_rule_t is used to select how paths are filled. For both
* fill rules, whether or not a point is included in the fill is
* determined by taking a ray from that point to infinity and looking
* at intersections with the path. The ray can be in any direction,
* as long as it doesn't pass through the end point of a segment
* or have a tricky intersection such as intersecting tangent to the path.
* (Note that filling is not actually implemented in this way. This
* is just a description of the rule that is applied.)
**/
typedef enum cairo_fill_rule {
CAIRO_FILL_RULE_WINDING,
CAIRO_FILL_RULE_EVEN_ODD
@ -160,6 +264,15 @@ cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule);
void
cairo_set_line_width (cairo_t *cr, double width);
/**
* cairo_line_cap_t
* @CAIRO_LINE_CAP_BUTT: start(stop) the line exactly at the start(end) point
* @CAIRO_LINE_CAP_ROUND: use a round ending, the center of the circle is the end point
* @CAIRO_LINE_CAP_SQUARE: use squared ending, the center of the square is the end point
*
* enumeration for style of line-endings
**/
typedef enum cairo_line_cap {
CAIRO_LINE_CAP_BUTT,
CAIRO_LINE_CAP_ROUND,
@ -303,10 +416,10 @@ void
cairo_show_page (cairo_t *cr);
/* Insideness testing */
int
cairo_bool_t
cairo_in_stroke (cairo_t *cr, double x, double y);
int
cairo_bool_t
cairo_in_fill (cairo_t *cr, double x, double y);
/* Rectangular extents */
@ -330,14 +443,75 @@ cairo_clip (cairo_t *cr);
/* Font/Text functions */
/**
* cairo_font_t:
*
* A #cairo_font_t is a font scaled to a particular size and device
* resolution. A font can be set on a #cairo_t by using
* cairo_set_font() assuming that the current transformation and
* target surface of the #cairo_t match that for which the
* #cairo_font_t was created. The effect of using a mismatched
* #cairo_font_t will be incorrect font metrics.
*/
typedef struct _cairo_font cairo_font_t;
/**
* cairo_glyph_t:
* @index: glyph index in the font. The exact interpretation of the
* glyph index depends on the font technology being used.
* @x: the offset in the X direction between the origin used for
* drawing or measuring the string and the origin of this glyph.
* @y: the offset in the Y direction between the origin used for
* drawing or measuring the string and the origin of this glyph.
*
* The #cairo_glyph_t structure holds information about a single glyph
* when drawing or measuring text. A font is (in simple terms) a
* collection of shapes used to draw text. A glyph is one of these
* shapes. There can be multiple glyphs for a single character
* (alternates to be used in different contexts, for example), or a
* glyph can be a <firstterm>ligature</firstterm> of multiple
* characters. Cairo doesn't expose any way of converting input text
* into glyphs, so in order to use the Cairo interfaces that take
* arrays of glyphs, you must directly access the appropriate
* underlying font system.
*
* Note that the offsets given by @x and @y are not cumulative. When
* drawing or measuring text, each glyph is individually positioned
* with respect to the overall origin
**/
typedef struct {
unsigned long index;
double x;
double y;
} cairo_glyph_t;
/**
* cairo_text_extents_t:
* @x_bearing: the horizontal distance from the origin to the
* leftmost part of the glyphs as drawn. Positive if the
* glyphs lie entirely to the right of the origin.
* @y_bearing: the vertical distance from the origin to the
* topmost part of the glyphs as drawn. Positive only if the
* glyphs lie completely below the origin; will usually be
* negative.
* @width: width of the glyphs as drawn
* @height: height of the glyphs as drawn
* @x_advance:distance to advance in the X direction
* after drawing these glyphs
* @y_advance: distance to advance in the Y direction
* after drawing these glyphs. Will typically be zero except
* for vertical text layout as found in East-Asian languages.
*
* The #cairo_text_extents_t< structure stores the extents of a single
* glyph or a string of glyphs in user-space coordinates. Because text
* extents are in user-space coordinates, they don't scale along with
* the current transformation matrix. If you call
* <literal>cairo_scale(cr, 2.0, 2.0)</literal>, text will
* be drawn twice as big, but the reported text extents will not be
* doubled. They will change slightly due to hinting (so you can't
* assume that metrics are independent of the transformation matrix),
* but otherwise will remain unchanged.
*/
typedef struct {
double x_bearing;
double y_bearing;
@ -422,13 +596,17 @@ cairo_font_reference (cairo_font_t *font);
void
cairo_font_destroy (cairo_font_t *font);
void
cairo_font_set_transform (cairo_font_t *font,
cairo_matrix_t *matrix);
cairo_status_t
cairo_font_extents (cairo_font_t *font,
cairo_matrix_t *font_matrix,
cairo_font_extents_t *extents);
void
cairo_font_current_transform (cairo_font_t *font,
cairo_matrix_t *matrix);
cairo_font_glyph_extents (cairo_font_t *font,
cairo_matrix_t *font_matrix,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_text_extents_t *extents);
/* Image functions */
@ -521,17 +699,6 @@ cairo_current_path_flat (cairo_t *cr,
/* Error status queries */
typedef enum cairo_status {
CAIRO_STATUS_SUCCESS = 0,
CAIRO_STATUS_NO_MEMORY,
CAIRO_STATUS_INVALID_RESTORE,
CAIRO_STATUS_INVALID_POP_GROUP,
CAIRO_STATUS_NO_CURRENT_POINT,
CAIRO_STATUS_INVALID_MATRIX,
CAIRO_STATUS_NO_TARGET_SURFACE,
CAIRO_STATUS_NULL_POINTER
} cairo_status_t;
cairo_status_t
cairo_status (cairo_t *cr);
@ -671,7 +838,7 @@ cairo_status_t
cairo_matrix_set_identity (cairo_matrix_t *matrix);
cairo_status_t
cairo_matrix_set_affine (cairo_matrix_t *cr,
cairo_matrix_set_affine (cairo_matrix_t *matrix,
double a, double b,
double c, double d,
double tx, double ty);
@ -724,8 +891,6 @@ cairo_matrix_transform_point (cairo_matrix_t *matrix, double *x, double *y);
#define cairo_get_status_string cairo_get_status_string_DEPRECATED_BY_cairo_status_string
#endif
#ifdef __cplusplus
}
#endif
CAIRO_END_DECLS
#endif /* CAIRO_H */

File diff suppressed because it is too large Load Diff

View File

@ -94,9 +94,9 @@ static const cairo_cache_arrangement_t cache_arrangements [] = {
* a mostly-dead table.
*
* Generally you do not need to worry about freeing cache entries; the
* cache will expire entries randomly as it experiences memory pressure.
* There is currently no explicit entry-removing call, though one can be
* added easily.
* cache will expire entries randomly as it experiences memory pressure.
* If max_memory is set, entries are not expired, and must be explicitely
* removed.
*
* This table is open-addressed with double hashing. Each table size is a
* prime chosen to be a little more than double the high water mark for a
@ -282,17 +282,51 @@ _load_factor (cairo_cache_t *cache)
}
#endif
static unsigned long
_random_live_entry (cairo_cache_t *cache)
{
unsigned long idx;
assert(cache != NULL);
do {
idx = rand () % cache->arrangement->size;
} while (! LIVE_ENTRY_P(cache, idx));
return idx;
}
/* Find a random in the cache matching the given predicate. We use the
* same algorithm as the probing algorithm to walk over the entries in
* the hash table in a pseudo-random order. Walking linearly would
* favor entries following gaps in the hash table. We could also
* call rand() repeatedly, which works well for almost-full tables,
* but degrades when the table is almost empty, or predicate
* returns false for most entries.
*/
static cairo_cache_entry_base_t **
_random_entry (cairo_cache_t *cache,
int (*predicate)(void*))
{
cairo_cache_entry_base_t **probe;
unsigned long hash;
unsigned long table_size, i, idx, step;
_cache_sane_state (cache);
table_size = cache->arrangement->size;
hash = rand ();
idx = hash % table_size;
step = 0;
for (i = 0; i < table_size; ++i)
{
assert(idx < table_size);
probe = cache->entries + idx;
if (LIVE_ENTRY_P(cache, idx)
&& (!predicate || predicate (*probe)))
return probe;
if (step == 0) {
step = hash % cache->arrangement->rehash;
if (step == 0)
step = 1;
}
idx += step;
if (idx >= table_size)
idx -= table_size;
}
return NULL;
}
/* public API follows */
@ -356,8 +390,9 @@ _cairo_cache_destroy (cairo_cache_t *cache)
cairo_status_t
_cairo_cache_lookup (cairo_cache_t *cache,
void *key,
void **entry_return)
void *key,
void **entry_return,
int *created_entry)
{
unsigned long idx;
@ -392,6 +427,8 @@ _cairo_cache_lookup (cairo_cache_t *cache,
cache->hits++;
#endif
*entry_return = *slot;
if (created_entry)
*created_entry = 0;
return status;
}
@ -401,19 +438,18 @@ _cairo_cache_lookup (cairo_cache_t *cache,
/* Build the new entry. */
status = cache->backend->create_entry (cache, key,
entry_return);
(void **)&new_entry);
if (status != CAIRO_STATUS_SUCCESS)
return status;
new_entry = (cairo_cache_entry_base_t *) (*entry_return);
/* Store the hash value in case the backend forgot. */
new_entry->hashcode = cache->backend->hash (cache, key);
/* Make some entries die if we're under memory pressure. */
while (cache->live_entries > 0 &&
cache->max_memory > 0 &&
((cache->max_memory - cache->used_memory) < new_entry->memory)) {
idx = _random_live_entry (cache);
idx = _random_entry (cache, NULL) - cache->entries;
assert (idx < cache->arrangement->size);
_entry_destroy (cache, idx);
}
@ -425,7 +461,6 @@ _cairo_cache_lookup (cairo_cache_t *cache,
status = _resize_cache (cache, cache->live_entries + 1);
if (status != CAIRO_STATUS_SUCCESS) {
cache->backend->destroy_entry (cache, new_entry);
*entry_return = NULL;
return status;
}
@ -439,9 +474,38 @@ _cairo_cache_lookup (cairo_cache_t *cache,
_cache_sane_state (cache);
*entry_return = new_entry;
if (created_entry)
*created_entry = 1;
return status;
}
cairo_status_t
_cairo_cache_remove (cairo_cache_t *cache,
void *key)
{
cairo_cache_entry_base_t **slot;
_cache_sane_state (cache);
/* See if we have an entry in the table already. */
slot = _find_exact_live_entry_for (cache, key);
if (slot != NULL)
_entry_destroy (cache, slot - cache->entries);
return CAIRO_STATUS_SUCCESS;
}
void *
_cairo_cache_random_entry (cairo_cache_t *cache,
int (*predicate)(void*))
{
cairo_cache_entry_base_t **slot = _random_entry (cache, predicate);
return slot ? *slot : NULL;
}
unsigned long
_cairo_hash_string (const char *c)
{

View File

@ -31,7 +31,7 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include "cairoint.h"
@ -67,7 +67,8 @@ _cairo_color_set_rgb (cairo_color_t *color, double red, double green, double blu
}
void
_cairo_color_get_rgb (cairo_color_t *color, double *red, double *green, double *blue)
_cairo_color_get_rgb (const cairo_color_t *color,
double *red, double *green, double *blue)
{
if (red)
*red = color->red;

View File

@ -31,7 +31,7 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
*/
#include "cairoint.h"

View File

@ -1,6 +1,7 @@
/* cairo - a vector graphics library with display and print output
*
* Copyright © 2002 University of Southern California
* Copyright © 2005 Red Hat Inc.
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
@ -31,293 +32,129 @@
* California.
*
* Contributor(s):
* Carl D. Worth <cworth@isi.edu>
* Carl D. Worth <cworth@cworth.org>
* Graydon Hoare <graydon@redhat.com>
* Owen Taylor <otaylor@redhat.com>
*/
#include "cairoint.h"
/* First we implement a global font cache for named fonts. */
typedef struct {
cairo_cache_entry_base_t base;
const char *family;
cairo_font_slant_t slant;
cairo_font_weight_t weight;
} cairo_font_cache_key_t;
typedef struct {
cairo_font_cache_key_t key;
cairo_unscaled_font_t *unscaled;
} cairo_font_cache_entry_t;
static unsigned long
_font_cache_hash (void *cache, void *key)
{
unsigned long hash;
cairo_font_cache_key_t *in;
in = (cairo_font_cache_key_t *) key;
/* 1607 and 1451 are just a couple random primes. */
hash = _cairo_hash_string (in->family);
hash += ((unsigned long) in->slant) * 1607;
hash += ((unsigned long) in->weight) * 1451;
return hash;
}
static int
_font_cache_keys_equal (void *cache,
void *k1,
void *k2)
{
cairo_font_cache_key_t *a, *b;
a = (cairo_font_cache_key_t *) k1;
b = (cairo_font_cache_key_t *) k2;
return (strcmp (a->family, b->family) == 0)
&& (a->weight == b->weight)
&& (a->slant == b->slant);
}
static cairo_status_t
_font_cache_create_entry (void *cache,
void *key,
void **return_value)
{
const cairo_font_backend_t *backend = CAIRO_FONT_BACKEND_DEFAULT;
cairo_font_cache_key_t *k;
cairo_font_cache_entry_t *entry;
k = (cairo_font_cache_key_t *) key;
/* XXX: The current freetype backend may return NULL, (for example
* if no fonts are installed), but I would like to guarantee that
* the toy API always returns at least *some* font, so I would
* like to build in some sort fo font here, (even a really lame,
* ugly one if necessary). */
entry = malloc (sizeof (cairo_font_cache_entry_t));
if (entry == NULL)
goto FAIL;
entry->key.slant = k->slant;
entry->key.weight = k->weight;
entry->key.family = strdup(k->family);
if (entry->key.family == NULL)
goto FREE_ENTRY;
entry->unscaled = backend->create (k->family, k->slant, k->weight);
if (entry->unscaled == NULL)
goto FREE_FAMILY;
/* Not sure how to measure backend font mem; use a simple count for now.*/
entry->key.base.memory = 1;
*return_value = entry;
return CAIRO_STATUS_SUCCESS;
FREE_FAMILY:
free ((void *) entry->key.family);
FREE_ENTRY:
free (entry);
FAIL:
return CAIRO_STATUS_NO_MEMORY;
}
static void
_font_cache_destroy_entry (void *cache,
void *entry)
{
cairo_font_cache_entry_t *e;
e = (cairo_font_cache_entry_t *) entry;
_cairo_unscaled_font_destroy (e->unscaled);
free ((void *) e->key.family);
free (e);
}
static void
_font_cache_destroy_cache (void *cache)
{
free (cache);
}
static const cairo_cache_backend_t cairo_font_cache_backend = {
_font_cache_hash,
_font_cache_keys_equal,
_font_cache_create_entry,
_font_cache_destroy_entry,
_font_cache_destroy_cache
};
static void
_lock_global_font_cache (void)
{
/* FIXME: implement locking. */
}
static void
_unlock_global_font_cache (void)
{
/* FIXME: implement locking. */
}
static cairo_cache_t *
_global_font_cache = NULL;
static cairo_cache_t *
_get_global_font_cache (void)
{
if (_global_font_cache == NULL) {
_global_font_cache = malloc (sizeof (cairo_cache_t));
if (_global_font_cache == NULL)
goto FAIL;
if (_cairo_cache_init (_global_font_cache,
&cairo_font_cache_backend,
CAIRO_FONT_CACHE_NUM_FONTS_DEFAULT))
goto FAIL;
}
return _global_font_cache;
FAIL:
if (_global_font_cache)
free (_global_font_cache);
_global_font_cache = NULL;
return NULL;
}
/* Now the internal "unscaled + scale" font API */
cairo_unscaled_font_t *
_cairo_unscaled_font_create (const char *family,
cairo_font_slant_t slant,
cairo_font_weight_t weight)
cairo_private cairo_status_t
_cairo_font_create (const char *family,
cairo_font_slant_t slant,
cairo_font_weight_t weight,
cairo_font_scale_t *sc,
cairo_font_t **font)
{
cairo_cache_t * cache;
cairo_font_cache_key_t key;
cairo_font_cache_entry_t *font;
cairo_status_t status;
const cairo_font_backend_t *backend = CAIRO_FONT_BACKEND_DEFAULT;
_lock_global_font_cache ();
cache = _get_global_font_cache ();
if (cache == NULL) {
_unlock_global_font_cache ();
return NULL;
}
key.family = family;
key.slant = slant;
key.weight = weight;
status = _cairo_cache_lookup (cache, &key, (void **) &font);
if (status) {
_unlock_global_font_cache ();
return NULL;
}
_cairo_unscaled_font_reference (font->unscaled);
_unlock_global_font_cache ();
return font->unscaled;
return backend->create (family, slant, weight, sc, font);
}
void
_cairo_font_init (cairo_font_t *scaled,
cairo_font_scale_t *scale,
cairo_unscaled_font_t *unscaled)
_cairo_font_init (cairo_font_t *font,
cairo_font_scale_t *scale,
const cairo_font_backend_t *backend)
{
scaled->scale = *scale;
scaled->unscaled = unscaled;
scaled->refcount = 1;
font->scale = *scale;
font->refcount = 1;
font->backend = backend;
}
cairo_status_t
_cairo_unscaled_font_init (cairo_unscaled_font_t *font,
const cairo_font_backend_t *backend)
void
_cairo_unscaled_font_init (cairo_unscaled_font_t *font,
const cairo_font_backend_t *backend)
{
font->refcount = 1;
font->backend = backend;
return CAIRO_STATUS_SUCCESS;
}
cairo_status_t
_cairo_unscaled_font_text_to_glyphs (cairo_unscaled_font_t *font,
cairo_font_scale_t *scale,
const unsigned char *utf8,
cairo_glyph_t **glyphs,
int *num_glyphs)
_cairo_font_text_to_glyphs (cairo_font_t *font,
const unsigned char *utf8,
cairo_glyph_t **glyphs,
int *num_glyphs)
{
return font->backend->text_to_glyphs (font, scale, utf8, glyphs, num_glyphs);
return font->backend->text_to_glyphs (font, utf8, glyphs, num_glyphs);
}
cairo_status_t
_cairo_unscaled_font_glyph_extents (cairo_unscaled_font_t *font,
cairo_font_scale_t *scale,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_text_extents_t *extents)
_cairo_font_glyph_extents (cairo_font_t *font,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_text_extents_t *extents)
{
return font->backend->glyph_extents(font, scale, glyphs, num_glyphs, extents);
return font->backend->glyph_extents(font, glyphs, num_glyphs, extents);
}
cairo_status_t
_cairo_unscaled_font_glyph_bbox (cairo_unscaled_font_t *font,
cairo_font_scale_t *scale,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_box_t *bbox)
_cairo_font_glyph_bbox (cairo_font_t *font,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_box_t *bbox)
{
return font->backend->glyph_bbox (font, scale, glyphs, num_glyphs, bbox);
return font->backend->glyph_bbox (font, glyphs, num_glyphs, bbox);
}
cairo_status_t
_cairo_unscaled_font_show_glyphs (cairo_unscaled_font_t *font,
cairo_font_scale_t *scale,
cairo_operator_t operator,
cairo_surface_t *source,
cairo_surface_t *surface,
int source_x,
int source_y,
cairo_glyph_t *glyphs,
int num_glyphs)
_cairo_font_show_glyphs (cairo_font_t *font,
cairo_operator_t operator,
cairo_pattern_t *pattern,
cairo_surface_t *surface,
int source_x,
int source_y,
int dest_x,
int dest_y,
unsigned int width,
unsigned int height,
cairo_glyph_t *glyphs,
int num_glyphs)
{
cairo_status_t status;
if (surface->backend->show_glyphs != NULL) {
status = surface->backend->show_glyphs (font, scale, operator, source,
surface, source_x, source_y,
status = surface->backend->show_glyphs (font, operator, pattern,
surface,
source_x, source_y,
dest_x, dest_y,
width, height,
glyphs, num_glyphs);
if (status == CAIRO_STATUS_SUCCESS)
return status;
}
/* Surface display routine either does not exist or failed. */
return font->backend->show_glyphs (font, scale, operator, source,
surface, source_x, source_y,
return font->backend->show_glyphs (font, operator, pattern,
surface,
source_x, source_y,
dest_x, dest_y,
width, height,
glyphs, num_glyphs);
}
cairo_status_t
_cairo_unscaled_font_glyph_path (cairo_unscaled_font_t *font,
cairo_font_scale_t *scale,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_path_t *path)
_cairo_font_glyph_path (cairo_font_t *font,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_path_t *path)
{
return font->backend->glyph_path (font, scale, glyphs, num_glyphs, path);
return font->backend->glyph_path (font, glyphs, num_glyphs, path);
}
void
_cairo_font_get_glyph_cache_key (cairo_font_t *font,
cairo_glyph_cache_key_t *key)
{
font->backend->get_glyph_cache_key (font, key);
}
cairo_status_t
_cairo_unscaled_font_font_extents (cairo_unscaled_font_t *font,
cairo_font_scale_t *scale,
cairo_font_extents_t *extents)
_cairo_font_font_extents (cairo_font_t *font,
cairo_font_extents_t *extents)
{
return font->backend->font_extents(font, scale, extents);
return font->backend->font_extents (font, extents);
}
void
@ -332,8 +169,7 @@ _cairo_unscaled_font_destroy (cairo_unscaled_font_t *font)
if (--(font->refcount) > 0)
return;
if (font->backend)
font->backend->destroy (font);
font->backend->destroy_unscaled_font (font);
}
@ -352,37 +188,154 @@ cairo_font_destroy (cairo_font_t *font)
if (--(font->refcount) > 0)
return;
if (font->unscaled)
_cairo_unscaled_font_destroy (font->unscaled);
free (font);
font->backend->destroy_font (font);
}
void
cairo_font_set_transform (cairo_font_t *font,
cairo_matrix_t *matrix)
/**
* cairo_font_extents:
* @font: a #cairo_font_t
* @font_matrix: the font transformation for which this font was
* created. (See cairo_transform_font()). This is needed
* properly convert the metrics from the font into user space.
* @extents: a #cairo_font_extents_t which to store the retrieved extents.
*
* Gets the metrics for a #cairo_font_t.
*
* Return value: %CAIRO_STATUS_SUCCESS on success. Otherwise, an
* error such as %CAIRO_STATUS_NO_MEMORY.
**/
cairo_status_t
cairo_font_extents (cairo_font_t *font,
cairo_matrix_t *font_matrix,
cairo_font_extents_t *extents)
{
double dummy;
cairo_matrix_get_affine (matrix,
&font->scale.matrix[0][0],
&font->scale.matrix[0][1],
&font->scale.matrix[1][0],
&font->scale.matrix[1][1],
&dummy, &dummy);
cairo_int_status_t status;
double font_scale_x, font_scale_y;
status = _cairo_font_font_extents (font, extents);
if (!CAIRO_OK (status))
return status;
_cairo_matrix_compute_scale_factors (font_matrix,
&font_scale_x, &font_scale_y,
/* XXX */ 1);
/*
* The font responded in unscaled units, scale by the font
* matrix scale factors to get to user space
*/
extents->ascent *= font_scale_y;
extents->descent *= font_scale_y;
extents->height *= font_scale_y;
extents->max_x_advance *= font_scale_x;
extents->max_y_advance *= font_scale_y;
return status;
}
/**
* cairo_font_glyph_extents:
* @font: a #cairo_font_t
* @font_matrix: the font transformation for which this font was
* created. (See cairo_transform_font()). This is needed
* properly convert the metrics from the font into user space.
* @glyphs: an array of glyph IDs with X and Y offsets.
* @num_glyphs: the number of glyphs in the @glyphs array
* @extents: a #cairo_text_extents_t which to store the retrieved extents.
*
* cairo_font_glyph_extents() gets the overall metrics for a string of
* glyphs. The X and Y offsets in @glyphs are taken from an origin of 0,0.
**/
void
cairo_font_current_transform (cairo_font_t *font,
cairo_matrix_t *matrix)
cairo_font_glyph_extents (cairo_font_t *font,
cairo_matrix_t *font_matrix,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_text_extents_t *extents)
{
cairo_matrix_set_affine (matrix,
font->scale.matrix[0][0],
font->scale.matrix[0][1],
font->scale.matrix[1][0],
font->scale.matrix[1][1],
0, 0);
}
cairo_status_t status = CAIRO_STATUS_SUCCESS;
cairo_glyph_t origin_glyph;
cairo_text_extents_t origin_extents;
int i;
double min_x = 0.0, min_y = 0.0, max_x = 0.0, max_y = 0.0;
double x_pos = 0.0, y_pos = 0.0;
int set = 0;
if (!num_glyphs)
{
extents->x_bearing = 0.0;
extents->y_bearing = 0.0;
extents->width = 0.0;
extents->height = 0.0;
extents->x_advance = 0.0;
extents->y_advance = 0.0;
return;
}
for (i = 0; i < num_glyphs; i++)
{
double x, y;
double wm, hm;
origin_glyph = glyphs[i];
origin_glyph.x = 0.0;
origin_glyph.y = 0.0;
status = _cairo_font_glyph_extents (font,
&origin_glyph, 1,
&origin_extents);
/*
* Transform font space metrics into user space metrics
* by running the corners through the font matrix and
* expanding the bounding box as necessary
*/
x = origin_extents.x_bearing;
y = origin_extents.y_bearing;
cairo_matrix_transform_point (font_matrix,
&x, &y);
for (hm = 0.0; hm <= 1.0; hm += 1.0)
for (wm = 0.0; wm <= 1.0; wm += 1.0)
{
x = origin_extents.x_bearing + origin_extents.width * wm;
y = origin_extents.y_bearing + origin_extents.height * hm;
cairo_matrix_transform_point (font_matrix,
&x, &y);
x += glyphs[i].x;
y += glyphs[i].y;
if (!set)
{
min_x = max_x = x;
min_y = max_y = y;
set = 1;
}
else
{
if (x < min_x) min_x = x;
if (x > max_x) max_x = x;
if (y < min_y) min_y = y;
if (y > max_y) max_y = y;
}
}
x = origin_extents.x_advance;
y = origin_extents.y_advance;
cairo_matrix_transform_point (font_matrix,
&x, &y);
x_pos = glyphs[i].x + x;
y_pos = glyphs[i].y + y;
}
extents->x_bearing = min_x - glyphs[0].x;
extents->y_bearing = min_y - glyphs[0].y;
extents->width = max_x - min_x;
extents->height = max_y - min_y;
extents->x_advance = x_pos - glyphs[0].x;
extents->y_advance = y_pos - glyphs[0].y;
}
/* Now we implement functions to access a default global image & metrics
* cache.
@ -398,7 +351,8 @@ _cairo_glyph_cache_hash (void *cache, void *key)
^ ((unsigned long) in->scale.matrix[0][0])
^ ((unsigned long) in->scale.matrix[0][1])
^ ((unsigned long) in->scale.matrix[1][0])
^ ((unsigned long) in->scale.matrix[1][1])
^ ((unsigned long) in->scale.matrix[1][1])
^ (in->flags * 1451) /* 1451 is just an abitrary prime */
^ in->index;
}
@ -412,6 +366,7 @@ _cairo_glyph_cache_keys_equal (void *cache,
b = (cairo_glyph_cache_key_t *) k2;
return (a->index == b->index)
&& (a->unscaled == b->unscaled)
&& (a->flags == b->flags)
&& (a->scale.matrix[0][0] == b->scale.matrix[0][0])
&& (a->scale.matrix[0][1] == b->scale.matrix[0][1])
&& (a->scale.matrix[1][0] == b->scale.matrix[1][0])

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More