doc: Move tmpl/ docs to inline docs

I did this manually so I could review the docs at the same time.
If anyone finds typos or other mistakes I did, please complain to me (or
better: fix them).
This commit is contained in:
Benjamin Otte 2010-07-08 13:05:18 +02:00
parent 65a1e35133
commit b870cc030d
58 changed files with 666 additions and 4566 deletions

View file

@ -334,7 +334,7 @@ cairo_debug_reset_static_data
<SECTION>
<FILE>cairo-font-face</FILE>
<TITLE>font-face</TITLE>
<TITLE>cairo_font_face_t</TITLE>
cairo_font_face_t
cairo_font_face_reference
cairo_font_face_destroy
@ -373,7 +373,7 @@ cairo_scaled_font_get_user_data
<SECTION>
<FILE>cairo-font-options</FILE>
<TITLE>font-options</TITLE>
<TITLE>cairo_font_options_t</TITLE>
cairo_font_options_t
cairo_font_options_create
cairo_font_options_copy

View file

@ -1,3 +0,0 @@
cairo-unused.sgml
*.bak
*~

View file

@ -1,21 +0,0 @@
<!-- ##### SECTION Title ##### -->
ATSUI Fonts
<!-- ##### SECTION Short_Description ##### -->
Font support for ATSUI on OS X
<!-- ##### SECTION Long_Description ##### -->
<para>
The ATSUI font backend is primarily used to render text on Apple OS X systems.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_font_face_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->

View file

@ -1,22 +0,0 @@
<!-- ##### SECTION Title ##### -->
BeOS Surfaces
<!-- ##### SECTION Short_Description ##### -->
BeOS surface support
<!-- ##### SECTION Long_Description ##### -->
<para>
The BeOS surface is used to render cairo graphics to
BeOS views and bitmaps.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->

View file

@ -1,116 +0,0 @@
<!-- ##### SECTION Title ##### -->
cairo_font_face_t
<!-- ##### SECTION Short_Description ##### -->
Base class for font faces
<!-- ##### SECTION Long_Description ##### -->
<para>
#cairo_font_face_t represents a particular font at a particular weight,
slant, and other characteristic but no size, transformation, or size.
</para>
<para>
Font faces are created using <firstterm>font-backend</firstterm>-specific
constructors, typically of the form
cairo_<emphasis>backend</emphasis>_font_face_create(),
or implicitly using the <firstterm>toy</firstterm> text API by way of
cairo_select_font_face(). The resulting face can be accessed using
cairo_get_font_face().
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_scaled_font_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### TYPEDEF cairo_font_face_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_font_face_reference ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_font_face_destroy ##### -->
<para>
</para>
@font_face:
<!-- ##### FUNCTION cairo_font_face_status ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### ENUM cairo_font_type_t ##### -->
<para>
</para>
@CAIRO_FONT_TYPE_TOY:
@CAIRO_FONT_TYPE_FT:
@CAIRO_FONT_TYPE_WIN32:
@CAIRO_FONT_TYPE_QUARTZ:
@CAIRO_FONT_TYPE_USER:
<!-- ##### FUNCTION cairo_font_face_get_type ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_font_face_get_reference_count ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_font_face_set_user_data ##### -->
<para>
</para>
@font_face:
@key:
@user_data:
@destroy:
@Returns:
<!-- ##### FUNCTION cairo_font_face_get_user_data ##### -->
<para>
</para>
@font_face:
@key:
@Returns:

View file

@ -1,199 +0,0 @@
<!-- ##### SECTION Title ##### -->
cairo_font_options_t
<!-- ##### SECTION Short_Description ##### -->
How a font should be rendered
<!-- ##### SECTION Long_Description ##### -->
<para>
The font options specify how fonts should be rendered. Most of the time the
font options implied by a surface are just right and do not need any changes,
but for pixel-based targets tweaking font options may result in superior
output on a particular display.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_scaled_font_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### TYPEDEF cairo_font_options_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_font_options_create ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION cairo_font_options_copy ##### -->
<para>
</para>
@original:
@Returns:
<!-- ##### FUNCTION cairo_font_options_destroy ##### -->
<para>
</para>
@options:
<!-- ##### FUNCTION cairo_font_options_status ##### -->
<para>
</para>
@options:
@Returns:
<!-- ##### FUNCTION cairo_font_options_merge ##### -->
<para>
</para>
@options:
@other:
<!-- ##### FUNCTION cairo_font_options_hash ##### -->
<para>
</para>
@options:
@Returns:
<!-- ##### FUNCTION cairo_font_options_equal ##### -->
<para>
</para>
@options:
@other:
@Returns:
<!-- ##### FUNCTION cairo_font_options_set_antialias ##### -->
<para>
</para>
@options:
@antialias:
<!-- ##### FUNCTION cairo_font_options_get_antialias ##### -->
<para>
</para>
@options:
@Returns:
<!-- ##### ENUM cairo_subpixel_order_t ##### -->
<para>
</para>
@CAIRO_SUBPIXEL_ORDER_DEFAULT:
@CAIRO_SUBPIXEL_ORDER_RGB:
@CAIRO_SUBPIXEL_ORDER_BGR:
@CAIRO_SUBPIXEL_ORDER_VRGB:
@CAIRO_SUBPIXEL_ORDER_VBGR:
<!-- ##### FUNCTION cairo_font_options_set_subpixel_order ##### -->
<para>
</para>
@options:
@subpixel_order:
<!-- ##### FUNCTION cairo_font_options_get_subpixel_order ##### -->
<para>
</para>
@options:
@Returns:
<!-- ##### ENUM cairo_hint_style_t ##### -->
<para>
</para>
@CAIRO_HINT_STYLE_DEFAULT:
@CAIRO_HINT_STYLE_NONE:
@CAIRO_HINT_STYLE_SLIGHT:
@CAIRO_HINT_STYLE_MEDIUM:
@CAIRO_HINT_STYLE_FULL:
<!-- ##### FUNCTION cairo_font_options_set_hint_style ##### -->
<para>
</para>
@options:
@hint_style:
<!-- ##### FUNCTION cairo_font_options_get_hint_style ##### -->
<para>
</para>
@options:
@Returns:
<!-- ##### ENUM cairo_hint_metrics_t ##### -->
<para>
</para>
@CAIRO_HINT_METRICS_DEFAULT:
@CAIRO_HINT_METRICS_OFF:
@CAIRO_HINT_METRICS_ON:
<!-- ##### FUNCTION cairo_font_options_set_hint_metrics ##### -->
<para>
</para>
@options:
@hint_metrics:
<!-- ##### FUNCTION cairo_font_options_get_hint_metrics ##### -->
<para>
</para>
@options:
@Returns:

View file

@ -1,87 +0,0 @@
<!-- ##### SECTION Title ##### -->
FreeType Fonts
<!-- ##### SECTION Short_Description ##### -->
Font support for FreeType
<!-- ##### SECTION Long_Description ##### -->
<para>
The FreeType font backend is primarily used to render text on GNU/Linux
systems, but can be used on other platforms too.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_font_face_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_FT_FONT ##### -->
<para>
Defined if the FreeType font backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### MACRO CAIRO_HAS_FC_FONT ##### -->
<para>
Defined if the Fontconfig-specific functions of the FreeType font backend
are available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_ft_font_face_create_for_ft_face ##### -->
<para>
</para>
@face:
@load_flags:
@Returns:
<!-- ##### FUNCTION cairo_ft_font_face_create_for_pattern ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### FUNCTION cairo_ft_font_options_substitute ##### -->
<para>
</para>
@options:
@pattern:
<!-- ##### FUNCTION cairo_ft_scaled_font_lock_face ##### -->
<para>
</para>
@scaled_font:
@Returns:
<!-- ##### FUNCTION cairo_ft_scaled_font_unlock_face ##### -->
<para>
</para>
@scaled_font:

View file

@ -1,127 +0,0 @@
<!-- ##### SECTION Title ##### -->
Image Surfaces
<!-- ##### SECTION Short_Description ##### -->
Rendering to memory buffers
<!-- ##### SECTION Long_Description ##### -->
<para>
Image surfaces provide the ability to render to memory buffers
either allocated by cairo or by the calling code. The supported
image formats are those defined in #cairo_format_t.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_IMAGE_SURFACE ##### -->
<para>
Defined if the image surface backend is available.
The image surface backend is always built in.
This macro was added for completeness in cairo 1.8.
</para>
@Since: 1.8
<!-- ##### ENUM cairo_format_t ##### -->
<para>
</para>
@CAIRO_FORMAT_INVALID:
@CAIRO_FORMAT_ARGB32:
@CAIRO_FORMAT_RGB24:
@CAIRO_FORMAT_A8:
@CAIRO_FORMAT_A1:
@CAIRO_FORMAT_RGB16_565:
<!-- ##### FUNCTION cairo_format_stride_for_width ##### -->
<para>
</para>
@format:
@width:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_create ##### -->
<para>
</para>
@format:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_create_for_data ##### -->
<para>
</para>
@data:
@format:
@width:
@height:
@stride:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_get_data ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_get_format ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_get_width ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_get_height ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_get_stride ##### -->
<para>
</para>
@surface:
@Returns:

View file

@ -1,169 +0,0 @@
<!-- ##### SECTION Title ##### -->
cairo_matrix_t
<!-- ##### SECTION Short_Description ##### -->
Generic matrix operations
<!-- ##### SECTION Long_Description ##### -->
<para>
#cairo_matrix_t is used throughout cairo to convert between different
coordinate spaces. A #cairo_matrix_t holds an affine transformation,
such as a scale, rotation, shear, or a combination of these.
The transformation of a point (<literal>x</literal>,<literal>y</literal>)
is given by:
</para>
<programlisting>
x_new = xx * x + xy * y + x0;
y_new = yx * x + yy * y + y0;
</programlisting>
<para>
The current transformation matrix of a #cairo_t, represented as a
#cairo_matrix_t, defines the transformation from user-space
coordinates to device-space coordinates. See cairo_get_matrix() and
cairo_set_matrix().
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT cairo_matrix_t ##### -->
<para>
</para>
@xx:
@yx:
@xy:
@yy:
@x0:
@y0:
<!-- ##### FUNCTION cairo_matrix_init ##### -->
<para>
</para>
@matrix:
@xx:
@yx:
@xy:
@yy:
@x0:
@y0:
<!-- ##### FUNCTION cairo_matrix_init_identity ##### -->
<para>
</para>
@matrix:
<!-- ##### FUNCTION cairo_matrix_init_translate ##### -->
<para>
</para>
@matrix:
@tx:
@ty:
<!-- ##### FUNCTION cairo_matrix_init_scale ##### -->
<para>
</para>
@matrix:
@sx:
@sy:
<!-- ##### FUNCTION cairo_matrix_init_rotate ##### -->
<para>
</para>
@matrix:
@radians:
<!-- ##### FUNCTION cairo_matrix_translate ##### -->
<para>
</para>
@matrix:
@tx:
@ty:
<!-- ##### FUNCTION cairo_matrix_scale ##### -->
<para>
</para>
@matrix:
@sx:
@sy:
<!-- ##### FUNCTION cairo_matrix_rotate ##### -->
<para>
</para>
@matrix:
@radians:
<!-- ##### FUNCTION cairo_matrix_invert ##### -->
<para>
</para>
@matrix:
@Returns:
<!-- ##### FUNCTION cairo_matrix_multiply ##### -->
<para>
</para>
@result:
@a:
@b:
<!-- ##### FUNCTION cairo_matrix_transform_distance ##### -->
<para>
</para>
@matrix:
@dx:
@dy:
<!-- ##### FUNCTION cairo_matrix_transform_point ##### -->
<para>
</para>
@matrix:
@x:
@y:

View file

@ -1,263 +0,0 @@
<!-- ##### SECTION Title ##### -->
Paths
<!-- ##### SECTION Short_Description ##### -->
Creating paths and manipulating path data
<!-- ##### SECTION Long_Description ##### -->
<para>
Paths are the most basic drawing tools and are primarily used to implicitly
generate simple masks.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT cairo_path_t ##### -->
<para>
</para>
@status:
@data:
@num_data:
<!-- ##### UNION cairo_path_data_t ##### -->
<para>
</para>
<!-- ##### ENUM cairo_path_data_type_t ##### -->
<para>
</para>
@CAIRO_PATH_MOVE_TO:
@CAIRO_PATH_LINE_TO:
@CAIRO_PATH_CURVE_TO:
@CAIRO_PATH_CLOSE_PATH:
<!-- ##### FUNCTION cairo_copy_path ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_copy_path_flat ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_path_destroy ##### -->
<para>
</para>
@path:
<!-- ##### FUNCTION cairo_append_path ##### -->
<para>
</para>
@cr:
@path:
<!-- ##### FUNCTION cairo_has_current_point ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_get_current_point ##### -->
<para>
</para>
@cr:
@x:
@y:
<!-- ##### FUNCTION cairo_new_path ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_new_sub_path ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_close_path ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_arc ##### -->
<para>
</para>
@cr:
@xc:
@yc:
@radius:
@angle1:
@angle2:
<!-- ##### FUNCTION cairo_arc_negative ##### -->
<para>
</para>
@cr:
@xc:
@yc:
@radius:
@angle1:
@angle2:
<!-- ##### FUNCTION cairo_curve_to ##### -->
<para>
</para>
@cr:
@x1:
@y1:
@x2:
@y2:
@x3:
@y3:
<!-- ##### FUNCTION cairo_line_to ##### -->
<para>
</para>
@cr:
@x:
@y:
<!-- ##### FUNCTION cairo_move_to ##### -->
<para>
</para>
@cr:
@x:
@y:
<!-- ##### FUNCTION cairo_rectangle ##### -->
<para>
</para>
@cr:
@x:
@y:
@width:
@height:
<!-- ##### FUNCTION cairo_glyph_path ##### -->
<para>
</para>
@cr:
@glyphs:
@num_glyphs:
<!-- ##### FUNCTION cairo_text_path ##### -->
<para>
</para>
@cr:
@utf8:
<!-- ##### FUNCTION cairo_rel_curve_to ##### -->
<para>
</para>
@cr:
@dx1:
@dy1:
@dx2:
@dy2:
@dx3:
@dy3:
<!-- ##### FUNCTION cairo_rel_line_to ##### -->
<para>
</para>
@cr:
@dx:
@dy:
<!-- ##### FUNCTION cairo_rel_move_to ##### -->
<para>
</para>
@cr:
@dx:
@dy:
<!-- ##### FUNCTION cairo_path_extents ##### -->
<para>
</para>
@cr:
@x1:
@y1:
@x2:
@y2:

View file

@ -1,350 +0,0 @@
<!-- ##### SECTION Title ##### -->
cairo_pattern_t
<!-- ##### SECTION Short_Description ##### -->
Sources for drawing
<!-- ##### SECTION Long_Description ##### -->
<para>
#cairo_pattern_t is the paint with which cairo draws.
The primary use of patterns is as the source for all cairo drawing operations,
although they can also be used as masks, that is, as the brush too.
</para>
<para>
A cairo pattern is created by using one of the many constructors,
of the form cairo_pattern_create_<emphasis>type</emphasis>()
or implicitly through
cairo_set_source_<emphasis>type</emphasis>() functions.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_t</listitem>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### TYPEDEF cairo_pattern_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_pattern_add_color_stop_rgb ##### -->
<para>
</para>
@pattern:
@offset:
@red:
@green:
@blue:
<!-- ##### FUNCTION cairo_pattern_add_color_stop_rgba ##### -->
<para>
</para>
@pattern:
@offset:
@red:
@green:
@blue:
@alpha:
<!-- ##### FUNCTION cairo_pattern_get_color_stop_count ##### -->
<para>
</para>
@pattern:
@count:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_color_stop_rgba ##### -->
<para>
</para>
@pattern:
@index:
@offset:
@red:
@green:
@blue:
@alpha:
@Returns:
<!-- ##### FUNCTION cairo_pattern_create_rgb ##### -->
<para>
</para>
@red:
@green:
@blue:
@Returns:
<!-- ##### FUNCTION cairo_pattern_create_rgba ##### -->
<para>
</para>
@red:
@green:
@blue:
@alpha:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_rgba ##### -->
<para>
</para>
@pattern:
@red:
@green:
@blue:
@alpha:
@Returns:
<!-- ##### FUNCTION cairo_pattern_create_for_surface ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_surface ##### -->
<para>
</para>
@pattern:
@surface:
@Returns:
<!-- ##### FUNCTION cairo_pattern_create_linear ##### -->
<para>
</para>
@x0:
@y0:
@x1:
@y1:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_linear_points ##### -->
<para>
</para>
@pattern:
@x0:
@y0:
@x1:
@y1:
@Returns:
<!-- ##### FUNCTION cairo_pattern_create_radial ##### -->
<para>
</para>
@cx0:
@cy0:
@radius0:
@cx1:
@cy1:
@radius1:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_radial_circles ##### -->
<para>
</para>
@pattern:
@x0:
@y0:
@r0:
@x1:
@y1:
@r1:
@Returns:
<!-- ##### FUNCTION cairo_pattern_reference ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### FUNCTION cairo_pattern_destroy ##### -->
<para>
</para>
@pattern:
<!-- ##### FUNCTION cairo_pattern_status ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### ENUM cairo_extend_t ##### -->
<para>
</para>
@CAIRO_EXTEND_NONE:
@CAIRO_EXTEND_REPEAT:
@CAIRO_EXTEND_REFLECT:
@CAIRO_EXTEND_PAD:
<!-- ##### FUNCTION cairo_pattern_set_extend ##### -->
<para>
</para>
@pattern:
@extend:
<!-- ##### FUNCTION cairo_pattern_get_extend ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### ENUM cairo_filter_t ##### -->
<para>
</para>
@CAIRO_FILTER_FAST:
@CAIRO_FILTER_GOOD:
@CAIRO_FILTER_BEST:
@CAIRO_FILTER_NEAREST:
@CAIRO_FILTER_BILINEAR:
@CAIRO_FILTER_GAUSSIAN:
<!-- ##### FUNCTION cairo_pattern_set_filter ##### -->
<para>
</para>
@pattern:
@filter:
<!-- ##### FUNCTION cairo_pattern_get_filter ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### FUNCTION cairo_pattern_set_matrix ##### -->
<para>
</para>
@pattern:
@matrix:
<!-- ##### FUNCTION cairo_pattern_get_matrix ##### -->
<para>
</para>
@pattern:
@matrix:
<!-- ##### ENUM cairo_pattern_type_t ##### -->
<para>
</para>
@CAIRO_PATTERN_TYPE_SOLID:
@CAIRO_PATTERN_TYPE_SURFACE:
@CAIRO_PATTERN_TYPE_LINEAR:
@CAIRO_PATTERN_TYPE_RADIAL:
<!-- ##### FUNCTION cairo_pattern_get_type ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_reference_count ##### -->
<para>
</para>
@pattern:
@Returns:
<!-- ##### FUNCTION cairo_pattern_set_user_data ##### -->
<para>
</para>
@pattern:
@key:
@user_data:
@destroy:
@Returns:
<!-- ##### FUNCTION cairo_pattern_get_user_data ##### -->
<para>
</para>
@pattern:
@key:
@Returns:

View file

@ -1,101 +0,0 @@
<!-- ##### SECTION Title ##### -->
PDF Surfaces
<!-- ##### SECTION Short_Description ##### -->
Rendering PDF documents
<!-- ##### SECTION Long_Description ##### -->
<para>
The PDF surface is used to render cairo graphics to Adobe
PDF files and is a multi-page vector surface backend.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_PDF_SURFACE ##### -->
<para>
Defined if the PDF surface backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_pdf_surface_create ##### -->
<para>
</para>
@filename:
@width_in_points:
@height_in_points:
@Returns:
<!-- ##### FUNCTION cairo_pdf_surface_create_for_stream ##### -->
<para>
</para>
@write_func:
@closure:
@width_in_points:
@height_in_points:
@Returns:
<!-- ##### FUNCTION cairo_pdf_surface_restrict_to_version ##### -->
<para>
</para>
@surface:
@version:
<!-- ##### ENUM cairo_pdf_version_t ##### -->
<para>
</para>
@CAIRO_PDF_VERSION_1_4:
@CAIRO_PDF_VERSION_1_5:
<!-- ##### FUNCTION cairo_pdf_get_versions ##### -->
<para>
</para>
@versions:
@num_versions:
<!-- ##### FUNCTION cairo_pdf_version_to_string ##### -->
<para>
</para>
@version:
@Returns:
<!-- ##### FUNCTION cairo_pdf_surface_set_size ##### -->
<para>
</para>
@surface:
@width_in_points:
@height_in_points:

View file

@ -1,96 +0,0 @@
<!-- ##### SECTION Title ##### -->
PNG Support
<!-- ##### SECTION Short_Description ##### -->
Reading and writing PNG images
<!-- ##### SECTION Long_Description ##### -->
<para>
The PNG functions allow reading PNG images into image surfaces, and writing
any surface to a PNG file.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_PNG_FUNCTIONS ##### -->
<para>
Defined if the PNG functions are available.
This macro can be used to conditionally compile code using the cairo
PNG functions.
</para>
<!-- ##### FUNCTION cairo_image_surface_create_from_png ##### -->
<para>
</para>
@filename:
@Returns:
<!-- ##### USER_FUNCTION cairo_read_func_t ##### -->
<para>
</para>
@closure:
@data:
@length:
@Returns:
<!-- ##### FUNCTION cairo_image_surface_create_from_png_stream ##### -->
<para>
</para>
@read_func:
@closure:
@Returns:
<!-- ##### FUNCTION cairo_surface_write_to_png ##### -->
<para>
</para>
@surface:
@filename:
@Returns:
<!-- ##### USER_FUNCTION cairo_write_func_t ##### -->
<para>
</para>
@closure:
@data:
@length:
@Returns:
<!-- ##### FUNCTION cairo_surface_write_to_png_stream ##### -->
<para>
</para>
@surface:
@write_func:
@closure:
@Returns:

View file

@ -1,144 +0,0 @@
<!-- ##### SECTION Title ##### -->
PostScript Surfaces
<!-- ##### SECTION Short_Description ##### -->
Rendering PostScript documents
<!-- ##### SECTION Long_Description ##### -->
<para>
The PostScript surface is used to render cairo graphics to Adobe
PostScript files and is a multi-page vector surface backend.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_PS_SURFACE ##### -->
<para>
Defined if the PostScript surface backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_ps_surface_create ##### -->
<para>
</para>
@filename:
@width_in_points:
@height_in_points:
@Returns:
<!-- ##### FUNCTION cairo_ps_surface_create_for_stream ##### -->
<para>
</para>
@write_func:
@closure:
@width_in_points:
@height_in_points:
@Returns:
<!-- ##### FUNCTION cairo_ps_surface_restrict_to_level ##### -->
<para>
</para>
@surface:
@level:
<!-- ##### ENUM cairo_ps_level_t ##### -->
<para>
</para>
@CAIRO_PS_LEVEL_2:
@CAIRO_PS_LEVEL_3:
<!-- ##### FUNCTION cairo_ps_get_levels ##### -->
<para>
</para>
@levels:
@num_levels:
<!-- ##### FUNCTION cairo_ps_level_to_string ##### -->
<para>
</para>
@level:
@Returns:
<!-- ##### FUNCTION cairo_ps_surface_set_eps ##### -->
<para>
</para>
@surface:
@eps:
<!-- ##### FUNCTION cairo_ps_surface_get_eps ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_ps_surface_set_size ##### -->
<para>
</para>
@surface:
@width_in_points:
@height_in_points:
<!-- ##### FUNCTION cairo_ps_surface_dsc_begin_setup ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_ps_surface_dsc_begin_page_setup ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_ps_surface_dsc_comment ##### -->
<para>
</para>
@surface:
@comment:

View file

@ -1,52 +0,0 @@
<!-- ##### SECTION Title ##### -->
Quartz (CGFont) Fonts
<!-- ##### SECTION Short_Description ##### -->
Font support via CGFont on OS X
<!-- ##### SECTION Long_Description ##### -->
<para>
The Quartz font backend is primarily used to render text on Apple
MacOS X systems. The CGFont API is used for the internal
implementation of the font backend methods.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_font_face_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_QUARTZ_FONT ##### -->
<para>
Defined if the Quartz font backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_quartz_font_face_create_for_cgfont ##### -->
<para>
</para>
@font:
@Returns:
<!-- ##### FUNCTION cairo_quartz_font_face_create_for_atsu_font_id ##### -->
<para>
</para>
@font_id:
@Returns:

View file

@ -1,64 +0,0 @@
<!-- ##### SECTION Title ##### -->
Quartz Surfaces
<!-- ##### SECTION Short_Description ##### -->
Rendering to Quartz surfaces
<!-- ##### SECTION Long_Description ##### -->
<para>
The Quartz surface is used to render cairo graphics targeting the
Apple OS X Quartz rendering system.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_QUARTZ_SURFACE ##### -->
<para>
Defined if the Quartz surface backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_quartz_surface_create ##### -->
<para>
</para>
@format:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_quartz_surface_create_for_cg_context ##### -->
<para>
</para>
@cgContext:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_quartz_surface_get_cg_context ##### -->
<para>
</para>
@surface:
@Returns:

View file

@ -1,227 +0,0 @@
<!-- ##### SECTION Title ##### -->
cairo_scaled_font_t
<!-- ##### SECTION Short_Description ##### -->
Font face at particular size and options
<!-- ##### SECTION Long_Description ##### -->
<para>
#cairo_scaled_font_t represents a realization of a font face at a particular
size and transformation and a certain set of font options.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_font_face_t</listitem>
<listitem>#cairo_matrix_t</listitem>
<listitem>#cairo_font_options_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### TYPEDEF cairo_scaled_font_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_scaled_font_create ##### -->
<para>
</para>
@font_face:
@font_matrix:
@ctm:
@options:
@Returns:
<!-- ##### FUNCTION cairo_scaled_font_reference ##### -->
<para>
</para>
@scaled_font:
@Returns:
<!-- ##### FUNCTION cairo_scaled_font_destroy ##### -->
<para>
</para>
@scaled_font:
<!-- ##### FUNCTION cairo_scaled_font_status ##### -->
<para>
</para>
@scaled_font:
@Returns:
<!-- ##### STRUCT cairo_font_extents_t ##### -->
<para>
</para>
@ascent:
@descent:
@height:
@max_x_advance:
@max_y_advance:
<!-- ##### FUNCTION cairo_scaled_font_extents ##### -->
<para>
</para>
@scaled_font:
@extents:
<!-- ##### STRUCT cairo_text_extents_t ##### -->
<para>
</para>
@x_bearing:
@y_bearing:
@width:
@height:
@x_advance:
@y_advance:
<!-- ##### FUNCTION cairo_scaled_font_text_extents ##### -->
<para>
</para>
@scaled_font:
@utf8:
@extents:
<!-- ##### FUNCTION cairo_scaled_font_glyph_extents ##### -->
<para>
</para>
@scaled_font:
@glyphs:
@num_glyphs:
@extents:
<!-- ##### FUNCTION cairo_scaled_font_text_to_glyphs ##### -->
<para>
</para>
@scaled_font:
@x:
@y:
@utf8:
@utf8_len:
@glyphs:
@num_glyphs:
@clusters:
@num_clusters:
@cluster_flags:
@Returns:
<!-- ##### FUNCTION cairo_scaled_font_get_font_face ##### -->
<para>
</para>
@scaled_font:
@Returns:
<!-- ##### FUNCTION cairo_scaled_font_get_font_options ##### -->
<para>
</para>
@scaled_font:
@options:
<!-- ##### FUNCTION cairo_scaled_font_get_font_matrix ##### -->
<para>
</para>
@scaled_font:
@font_matrix:
<!-- ##### FUNCTION cairo_scaled_font_get_ctm ##### -->
<para>
</para>
@scaled_font:
@ctm:
<!-- ##### FUNCTION cairo_scaled_font_get_scale_matrix ##### -->
<para>
</para>
@scaled_font:
@scale_matrix:
<!-- ##### FUNCTION cairo_scaled_font_get_type ##### -->
<para>
</para>
@scaled_font:
@Returns:
<!-- ##### FUNCTION cairo_scaled_font_get_reference_count ##### -->
<para>
</para>
@scaled_font:
@Returns:
<!-- ##### FUNCTION cairo_scaled_font_set_user_data ##### -->
<para>
</para>
@scaled_font:
@key:
@user_data:
@destroy:
@Returns:
<!-- ##### FUNCTION cairo_scaled_font_get_user_data ##### -->
<para>
</para>
@scaled_font:
@key:
@Returns:

View file

@ -1,98 +0,0 @@
<!-- ##### SECTION Title ##### -->
Error handling
<!-- ##### SECTION Short_Description ##### -->
Decoding cairo's status
<!-- ##### SECTION Long_Description ##### -->
<para>
Cairo uses a single status type to represent all kinds of errors. A status
value of %CAIRO_STATUS_SUCCESS represents no error and has an integer value
of zero. All other status values represent an error.
</para>
<para>
Cairo's error handling is designed to be easy to use and safe. All major
cairo objects <firstterm>retain</firstterm> an error status internally which
can be queried anytime by the users using cairo*_status() calls. In
the mean time, it is safe to call all cairo functions normally even if the
underlying object is in an error status. This means that no error handling
code is required before or after each individual cairo function call.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>cairo_status()</listitem>
<listitem>cairo_surface_status()</listitem>
<listitem>cairo_pattern_status()</listitem>
<listitem>cairo_font_face_status()</listitem>
<listitem>cairo_scaled_font_status()</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### ENUM cairo_status_t ##### -->
<para>
</para>
@CAIRO_STATUS_SUCCESS:
@CAIRO_STATUS_NO_MEMORY:
@CAIRO_STATUS_INVALID_RESTORE:
@CAIRO_STATUS_INVALID_POP_GROUP:
@CAIRO_STATUS_NO_CURRENT_POINT:
@CAIRO_STATUS_INVALID_MATRIX:
@CAIRO_STATUS_INVALID_STATUS:
@CAIRO_STATUS_NULL_POINTER:
@CAIRO_STATUS_INVALID_STRING:
@CAIRO_STATUS_INVALID_PATH_DATA:
@CAIRO_STATUS_READ_ERROR:
@CAIRO_STATUS_WRITE_ERROR:
@CAIRO_STATUS_SURFACE_FINISHED:
@CAIRO_STATUS_SURFACE_TYPE_MISMATCH:
@CAIRO_STATUS_PATTERN_TYPE_MISMATCH:
@CAIRO_STATUS_INVALID_CONTENT:
@CAIRO_STATUS_INVALID_FORMAT:
@CAIRO_STATUS_INVALID_VISUAL:
@CAIRO_STATUS_FILE_NOT_FOUND:
@CAIRO_STATUS_INVALID_DASH:
@CAIRO_STATUS_INVALID_DSC_COMMENT:
@CAIRO_STATUS_INVALID_INDEX:
@CAIRO_STATUS_CLIP_NOT_REPRESENTABLE:
@CAIRO_STATUS_TEMP_FILE_ERROR:
@CAIRO_STATUS_INVALID_STRIDE:
@CAIRO_STATUS_FONT_TYPE_MISMATCH:
@CAIRO_STATUS_USER_FONT_IMMUTABLE:
@CAIRO_STATUS_USER_FONT_ERROR:
@CAIRO_STATUS_NEGATIVE_COUNT:
@CAIRO_STATUS_INVALID_CLUSTERS:
@CAIRO_STATUS_INVALID_SLANT:
@CAIRO_STATUS_INVALID_WEIGHT:
@CAIRO_STATUS_INVALID_SIZE:
@CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED:
@CAIRO_STATUS_DEVICE_TYPE_MISMATCH:
@CAIRO_STATUS_DEVICE_ERROR:
@CAIRO_STATUS_LAST_STATUS:
<!-- ##### FUNCTION cairo_status_to_string ##### -->
<para>
</para>
@status:
@Returns:
<!-- ##### FUNCTION cairo_debug_reset_static_data ##### -->
<para>
</para>
@void:

View file

@ -1,326 +0,0 @@
<!-- ##### SECTION Title ##### -->
cairo_surface_t
<!-- ##### SECTION Short_Description ##### -->
Base class for surfaces
<!-- ##### SECTION Long_Description ##### -->
<para>
#cairo_surface_t is the abstract type representing all different drawing
targets that cairo can render to. The actual drawings are
performed using a cairo <firstterm>context</firstterm>.
</para>
<para>
A cairo surface is created by using <firstterm>backend</firstterm>-specific
constructors, typically of the form
cairo_<emphasis>backend</emphasis>_surface_create().
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_t()</listitem>
<listitem>#cairo_pattern_t()</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_MIME_TYPE_JP2 ##### -->
<para>
The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1). Since 1.10
</para>
<!-- ##### MACRO CAIRO_MIME_TYPE_JPEG ##### -->
<para>
The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1). Since 1.10
</para>
<!-- ##### MACRO CAIRO_MIME_TYPE_PNG ##### -->
<para>
The Portable Network Graphics image file format (ISO/IEC 15948). Since 1.10
</para>
<!-- ##### MACRO CAIRO_MIME_TYPE_URI ##### -->
<para>
URI for an image file (unofficial MIME type). Since 1.10
</para>
<!-- ##### TYPEDEF cairo_surface_t ##### -->
<para>
</para>
<!-- ##### ENUM cairo_content_t ##### -->
<para>
</para>
@CAIRO_CONTENT_COLOR:
@CAIRO_CONTENT_ALPHA:
@CAIRO_CONTENT_COLOR_ALPHA:
<!-- ##### FUNCTION cairo_surface_create_similar ##### -->
<para>
</para>
@other:
@content:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_surface_reference ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_surface_destroy ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_status ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_surface_finish ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_flush ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_get_font_options ##### -->
<para>
</para>
@surface:
@options:
<!-- ##### FUNCTION cairo_surface_get_content ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_surface_mark_dirty ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_mark_dirty_rectangle ##### -->
<para>
</para>
@surface:
@x:
@y:
@width:
@height:
<!-- ##### FUNCTION cairo_surface_set_device_offset ##### -->
<para>
</para>
@surface:
@x_offset:
@y_offset:
<!-- ##### FUNCTION cairo_surface_get_device_offset ##### -->
<para>
</para>
@surface:
@x_offset:
@y_offset:
<!-- ##### FUNCTION cairo_surface_set_fallback_resolution ##### -->
<para>
</para>
@surface:
@x_pixels_per_inch:
@y_pixels_per_inch:
<!-- ##### FUNCTION cairo_surface_get_fallback_resolution ##### -->
<para>
</para>
@surface:
@x_pixels_per_inch:
@y_pixels_per_inch:
<!-- ##### ENUM cairo_surface_type_t ##### -->
<para>
</para>
@CAIRO_SURFACE_TYPE_IMAGE:
@CAIRO_SURFACE_TYPE_PDF:
@CAIRO_SURFACE_TYPE_PS:
@CAIRO_SURFACE_TYPE_XLIB:
@CAIRO_SURFACE_TYPE_XCB:
@CAIRO_SURFACE_TYPE_GLITZ:
@CAIRO_SURFACE_TYPE_QUARTZ:
@CAIRO_SURFACE_TYPE_WIN32:
@CAIRO_SURFACE_TYPE_BEOS:
@CAIRO_SURFACE_TYPE_DIRECTFB:
@CAIRO_SURFACE_TYPE_SVG:
@CAIRO_SURFACE_TYPE_OS2:
@CAIRO_SURFACE_TYPE_WIN32_PRINTING:
@CAIRO_SURFACE_TYPE_QUARTZ_IMAGE:
@CAIRO_SURFACE_TYPE_SCRIPT:
@CAIRO_SURFACE_TYPE_QT:
@CAIRO_SURFACE_TYPE_RECORDING:
@CAIRO_SURFACE_TYPE_VG:
@CAIRO_SURFACE_TYPE_GL:
@CAIRO_SURFACE_TYPE_DRM:
@CAIRO_SURFACE_TYPE_TEE:
@CAIRO_SURFACE_TYPE_XML:
@CAIRO_SURFACE_TYPE_SKIA:
<!-- ##### FUNCTION cairo_surface_get_type ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_surface_get_reference_count ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_surface_set_user_data ##### -->
<para>
</para>
@surface:
@key:
@user_data:
@destroy:
@Returns:
<!-- ##### FUNCTION cairo_surface_get_user_data ##### -->
<para>
</para>
@surface:
@key:
@Returns:
<!-- ##### FUNCTION cairo_surface_copy_page ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_show_page ##### -->
<para>
</para>
@surface:
<!-- ##### FUNCTION cairo_surface_has_show_text_glyphs ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_surface_set_mime_data ##### -->
<para>
</para>
@surface:
@mime_type:
@data:
@length:
@destroy:
@closure:
@Returns:
<!-- ##### FUNCTION cairo_surface_get_mime_data ##### -->
<para>
</para>
@surface:
@mime_type:
@data:
@length:

View file

@ -1,91 +0,0 @@
<!-- ##### SECTION Title ##### -->
SVG Surfaces
<!-- ##### SECTION Short_Description ##### -->
Rendering SVG documents
<!-- ##### SECTION Long_Description ##### -->
<para>
The SVG surface is used to render cairo graphics to
SVG files and is a multi-page vector surface backend.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t()</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_SVG_SURFACE ##### -->
<para>
Defined if the SVG surface backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_svg_surface_create ##### -->
<para>
</para>
@filename:
@width_in_points:
@height_in_points:
@Returns:
<!-- ##### FUNCTION cairo_svg_surface_create_for_stream ##### -->
<para>
</para>
@write_func:
@closure:
@width_in_points:
@height_in_points:
@Returns:
<!-- ##### FUNCTION cairo_svg_surface_restrict_to_version ##### -->
<para>
</para>
@surface:
@version:
<!-- ##### ENUM cairo_svg_version_t ##### -->
<para>
</para>
@CAIRO_SVG_VERSION_1_1:
@CAIRO_SVG_VERSION_1_2:
<!-- ##### FUNCTION cairo_svg_get_versions ##### -->
<para>
</para>
@versions:
@num_versions:
<!-- ##### FUNCTION cairo_svg_version_to_string ##### -->
<para>
</para>
@version:
@Returns:

View file

@ -1,319 +0,0 @@
<!-- ##### SECTION Title ##### -->
Text
<!-- ##### SECTION Short_Description ##### -->
Rendering text and glyphs
<!-- ##### SECTION Long_Description ##### -->
<para>
Cairo has two sets of text rendering capabilities:
<itemizedlist>
<listitem>
The functions with <emphasis>text</emphasis> in their name form cairo's
<firstterm>toy</firstterm> text API. The toy API takes UTF-8 encoded
text and is limited in its functionality to rendering simple
left-to-right text with no advanced features. That means for example
that most complex scripts like Hebrew, Arabic, and Indic scripts are
out of question. No kerning or correct positioning of diacritical marks
either. The font selection is pretty limited too and doesn't handle the
case that the selected font does not cover the characters in the text.
This set of functions are really that, a toy text API, for testing and
demonstration purposes. Any serious application should avoid them.
</listitem>
<listitem>
The functions with <emphasis>glyphs</emphasis> in their name form cairo's
<firstterm>low-level</firstterm> text API. The low-level API relies on
the user to convert text to a set of glyph indexes and positions. This
is a very hard problem and is best handled by external libraries, like
the pangocairo that is part of the Pango text layout and rendering library.
Pango is available from <ulink
url="http://www.pango.org/">http://www.pango.org/</ulink>.
</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_font_face_t</listitem>
<listitem>#cairo_scaled_font_t</listitem>
<listitem>cairo_text_path()</listitem>
<listitem>cairo_glyph_path()</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### STRUCT cairo_glyph_t ##### -->
<para>
</para>
@index:
@x:
@y:
<!-- ##### ENUM cairo_font_slant_t ##### -->
<para>
</para>
@CAIRO_FONT_SLANT_NORMAL:
@CAIRO_FONT_SLANT_ITALIC:
@CAIRO_FONT_SLANT_OBLIQUE:
<!-- ##### ENUM cairo_font_weight_t ##### -->
<para>
</para>
@CAIRO_FONT_WEIGHT_NORMAL:
@CAIRO_FONT_WEIGHT_BOLD:
<!-- ##### STRUCT cairo_text_cluster_t ##### -->
<para>
</para>
@num_bytes:
@num_glyphs:
<!-- ##### ENUM cairo_text_cluster_flags_t ##### -->
<para>
</para>
@CAIRO_TEXT_CLUSTER_FLAG_BACKWARD:
<!-- ##### FUNCTION cairo_select_font_face ##### -->
<para>
</para>
@cr:
@family:
@slant:
@weight:
<!-- ##### FUNCTION cairo_set_font_size ##### -->
<para>
</para>
@cr:
@size:
<!-- ##### FUNCTION cairo_set_font_matrix ##### -->
<para>
</para>
@cr:
@matrix:
<!-- ##### FUNCTION cairo_get_font_matrix ##### -->
<para>
</para>
@cr:
@matrix:
<!-- ##### FUNCTION cairo_set_font_options ##### -->
<para>
</para>
@cr:
@options:
<!-- ##### FUNCTION cairo_get_font_options ##### -->
<para>
</para>
@cr:
@options:
<!-- ##### FUNCTION cairo_set_font_face ##### -->
<para>
</para>
@cr:
@font_face:
<!-- ##### FUNCTION cairo_get_font_face ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_set_scaled_font ##### -->
<para>
</para>
@cr:
@scaled_font:
<!-- ##### FUNCTION cairo_get_scaled_font ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_show_text ##### -->
<para>
</para>
@cr:
@utf8:
<!-- ##### FUNCTION cairo_show_glyphs ##### -->
<para>
</para>
@cr:
@glyphs:
@num_glyphs:
<!-- ##### FUNCTION cairo_show_text_glyphs ##### -->
<para>
</para>
@cr:
@utf8:
@utf8_len:
@glyphs:
@num_glyphs:
@clusters:
@num_clusters:
@cluster_flags:
<!-- ##### FUNCTION cairo_font_extents ##### -->
<para>
</para>
@cr:
@extents:
<!-- ##### FUNCTION cairo_text_extents ##### -->
<para>
</para>
@cr:
@utf8:
@extents:
<!-- ##### FUNCTION cairo_glyph_extents ##### -->
<para>
</para>
@cr:
@glyphs:
@num_glyphs:
@extents:
<!-- ##### FUNCTION cairo_toy_font_face_create ##### -->
<para>
</para>
@family:
@slant:
@weight:
@Returns:
<!-- ##### FUNCTION cairo_toy_font_face_get_family ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_toy_font_face_get_slant ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_toy_font_face_get_weight ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_glyph_allocate ##### -->
<para>
</para>
@num_glyphs:
@Returns:
<!-- ##### FUNCTION cairo_glyph_free ##### -->
<para>
</para>
@glyphs:
<!-- ##### FUNCTION cairo_text_cluster_allocate ##### -->
<para>
</para>
@num_clusters:
@Returns:
<!-- ##### FUNCTION cairo_text_cluster_free ##### -->
<para>
</para>
@clusters:

View file

@ -1,132 +0,0 @@
<!-- ##### SECTION Title ##### -->
Transformations
<!-- ##### SECTION Short_Description ##### -->
Manipulating the current transformation matrix
<!-- ##### SECTION Long_Description ##### -->
<para>
The current transformation matrix, <firstterm>ctm</firstterm>, is a
two-dimensional affine transformation that maps all coordinates and other
drawing instruments from the <firstterm>user space</firstterm> into the
surface's canonical coordinate system, also known as the <firstterm>device
space</firstterm>.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_matrix_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### FUNCTION cairo_translate ##### -->
<para>
</para>
@cr:
@tx:
@ty:
<!-- ##### FUNCTION cairo_scale ##### -->
<para>
</para>
@cr:
@sx:
@sy:
<!-- ##### FUNCTION cairo_rotate ##### -->
<para>
</para>
@cr:
@angle:
<!-- ##### FUNCTION cairo_transform ##### -->
<para>
</para>
@cr:
@matrix:
<!-- ##### FUNCTION cairo_set_matrix ##### -->
<para>
</para>
@cr:
@matrix:
<!-- ##### FUNCTION cairo_get_matrix ##### -->
<para>
</para>
@cr:
@matrix:
<!-- ##### FUNCTION cairo_identity_matrix ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_user_to_device ##### -->
<para>
</para>
@cr:
@x:
@y:
<!-- ##### FUNCTION cairo_user_to_device_distance ##### -->
<para>
</para>
@cr:
@dx:
@dy:
<!-- ##### FUNCTION cairo_device_to_user ##### -->
<para>
</para>
@cr:
@x:
@y:
<!-- ##### FUNCTION cairo_device_to_user_distance ##### -->
<para>
</para>
@cr:
@dx:
@dy:

View file

@ -1,43 +0,0 @@
<!-- ##### SECTION Title ##### -->
Types
<!-- ##### SECTION Short_Description ##### -->
Generic data types
<!-- ##### SECTION Long_Description ##### -->
<para>
Generic data types used in the cairo API
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### TYPEDEF cairo_bool_t ##### -->
<para>
</para>
<!-- ##### STRUCT cairo_user_data_key_t ##### -->
<para>
</para>
@unused:
<!-- ##### USER_FUNCTION cairo_destroy_func_t ##### -->
<para>
</para>
@data:

View file

@ -1,169 +0,0 @@
<!-- ##### SECTION Title ##### -->
User Fonts
<!-- ##### SECTION Short_Description ##### -->
Font support with font data provided by the user
<!-- ##### SECTION Long_Description ##### -->
<para>
The user-font feature allows the cairo user to provide drawings for glyphs
in a font. This is most useful in implementing fonts in non-standard
formats, like SVG fonts and Flash fonts, but can also be used by games and
other application to draw "funky" fonts.
<!-- Include samples here -->
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_USER_FONT ##### -->
<para>
Defined if the user font backend is available.
This macro can be used to conditionally compile backend-specific code.
The user font backend is always built in versions of cairo that support
this feature (1.8 and later).
</para>
@Since: 1.8
<!-- ##### USER_FUNCTION cairo_user_scaled_font_init_func_t ##### -->
<para>
</para>
@scaled_font:
@cr:
@extents:
@Returns:
<!-- ##### USER_FUNCTION cairo_user_scaled_font_render_glyph_func_t ##### -->
<para>
</para>
@scaled_font:
@glyph:
@cr:
@extents:
@Returns:
<!-- ##### USER_FUNCTION cairo_user_scaled_font_text_to_glyphs_func_t ##### -->
<para>
</para>
@scaled_font:
@utf8:
@utf8_len:
@glyphs:
@num_glyphs:
@clusters:
@num_clusters:
@cluster_flags:
@Returns:
<!-- ##### USER_FUNCTION cairo_user_scaled_font_unicode_to_glyph_func_t ##### -->
<para>
</para>
@scaled_font:
@unicode:
@glyph_index:
@Returns:
<!-- ##### FUNCTION cairo_user_font_face_create ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION cairo_user_font_face_set_init_func ##### -->
<para>
</para>
@font_face:
@init_func:
<!-- ##### FUNCTION cairo_user_font_face_get_init_func ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_user_font_face_set_render_glyph_func ##### -->
<para>
</para>
@font_face:
@render_glyph_func:
<!-- ##### FUNCTION cairo_user_font_face_get_render_glyph_func ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_user_font_face_set_unicode_to_glyph_func ##### -->
<para>
</para>
@font_face:
@unicode_to_glyph_func:
<!-- ##### FUNCTION cairo_user_font_face_get_unicode_to_glyph_func ##### -->
<para>
</para>
@font_face:
@Returns:
<!-- ##### FUNCTION cairo_user_font_face_set_text_to_glyphs_func ##### -->
<para>
</para>
@font_face:
@text_to_glyphs_func:
<!-- ##### FUNCTION cairo_user_font_face_get_text_to_glyphs_func ##### -->
<para>
</para>
@font_face:
@Returns:

View file

@ -1,205 +0,0 @@
<!-- ##### SECTION Title ##### -->
Version Information
<!-- ##### SECTION Short_Description ##### -->
Compile-time and run-time version checks.
<!-- ##### SECTION Long_Description ##### -->
<para>
Cairo has a three-part version number scheme. In this scheme, we use
even vs. odd numbers to distinguish fixed points in the software
vs. in-progress development, (such as from git instead of a tar file,
or as a "snapshot" tar file as opposed to a "release" tar file).
</para>
<para>
<informalexample><programlisting>
_____ Major. Always 1, until we invent a new scheme.
/ ___ Minor. Even/Odd = Release/Snapshot (tar files) or Branch/Head (git)
| / _ Micro. Even/Odd = Tar-file/git
| | /
1.0.0
</programlisting></informalexample>
</para>
<para>
Here are a few examples of versions that one might see.
<informalexample><programlisting>
Releases
--------
1.0.0 - A major release
1.0.2 - A subsequent maintenance release
1.2.0 - Another major release
Snapshots
---------
1.1.2 - A snapshot (working toward the 1.2.0 release)
In-progress development (eg. from git)
--------------------------------------
1.0.1 - Development on a maintenance branch (toward 1.0.2 release)
1.1.1 - Development on head (toward 1.1.2 snapshot and 1.2.0 release)
</programlisting></informalexample>
</para>
<refsect2>
<title>Compatibility</title>
<para>
The API/ABI compatibility guarantees for various versions are as
follows. First, let's assume some cairo-using application code that is
successfully using the API/ABI "from" one version of cairo. Then let's
ask the question whether this same code can be moved "to" the API/ABI
of another version of cairo.
</para>
<para>
Moving from a release to any later version (release, snapshot,
development) is always guaranteed to provide compatibility.
</para>
<para>
Moving from a snapshot to any later version is not guaranteed to
provide compatibility, since snapshots may introduce new API that ends
up being removed before the next release.
</para>
<para>
Moving from an in-development version (odd micro component) to any
later version is not guaranteed to provide compatibility. In fact,
there's not even a guarantee that the code will even continue to work
with the same in-development version number. This is because these
numbers don't correspond to any fixed state of the software, but
rather the many states between snapshots and releases.
</para>
</refsect2>
<refsect2>
<title>Examining the version</title>
<para>
Cairo provides the ability to examine the version at either
compile-time or run-time and in both a human-readable form as well as
an encoded form suitable for direct comparison. Cairo also provides the
macro CAIRO_VERSION_ENCODE() to perform the encoding.
</para>
<para>
<informalexample><programlisting>
Compile-time
------------
CAIRO_VERSION_STRING Human-readable
CAIRO_VERSION Encoded, suitable for comparison
Run-time
--------
cairo_version_string() Human-readable
cairo_version() Encoded, suitable for comparison
</programlisting></informalexample>
</para>
<para>
For example, checking that the cairo version is greater than or equal
to 1.0.0 could be achieved at compile-time or run-time as follows:
<informalexample><programlisting>
##if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 0, 0)
printf ("Compiling with suitable cairo version: %s\n", %CAIRO_VERSION_STRING);
##endif
if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 0, 0))
printf ("Running with suitable cairo version: %s\n", cairo_version_string ());
</programlisting></informalexample>
</para>
</refsect2>
<!-- ##### SECTION See_Also ##### -->
<para>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_VERSION ##### -->
<para>
The version of cairo available at compile-time, encoded using
CAIRO_VERSION_ENCODE().
</para>
<!-- ##### MACRO CAIRO_VERSION_MAJOR ##### -->
<para>
The major component of the version of cairo available at compile-time.
</para>
<!-- ##### MACRO CAIRO_VERSION_MINOR ##### -->
<para>
The minor component of the version of cairo available at compile-time.
</para>
<!-- ##### MACRO CAIRO_VERSION_MICRO ##### -->
<para>
The micro component of the version of cairo available at compile-time.
</para>
<!-- ##### MACRO CAIRO_VERSION_STRING ##### -->
<para>
A human-readable string literal containing the version of cairo available
at compile-time, in the form of "X.Y.Z".
</para>
<!-- ##### MACRO CAIRO_VERSION_ENCODE ##### -->
<para>
This macro encodes the given cairo version into an integer. The numbers
returned by %CAIRO_VERSION and cairo_version() are encoded using this macro.
Two encoded version numbers can be compared as integers. The encoding ensures
that later versions compare greater than earlier versions.
</para>
@major: the major component of the version number
@minor: the minor component of the version number
@micro: the micro component of the version number
@Returns: the encoded version.
<!-- ##### MACRO CAIRO_VERSION_STRINGIZE ##### -->
<para>
This macro encodes the given cairo version into an string. The numbers
returned by %CAIRO_VERSION_STRING and cairo_version_string() are encoded using this macro.
The parameters to this macro must expand to numerical literals.
</para>
@major: the major component of the version number
@minor: the minor component of the version number
@micro: the micro component of the version number
@Returns: a string literal containing the version.
@Since: 1.8
<!-- ##### FUNCTION cairo_version ##### -->
<para>
</para>
@void:
@Returns:
<!-- ##### FUNCTION cairo_version_string ##### -->
<para>
</para>
@void:
@Returns:

View file

@ -1,106 +0,0 @@
<!-- ##### SECTION Title ##### -->
Win32 Fonts
<!-- ##### SECTION Short_Description ##### -->
Font support for Microsoft Windows
<!-- ##### SECTION Long_Description ##### -->
<para>
The Microsoft Windows font backend is primarily used to render text on
Microsoft Windows systems.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_font_face_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_WIN32_FONT ##### -->
<para>
Defined if the Microsoft Windows font backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_win32_font_face_create_for_logfontw ##### -->
<para>
</para>
@logfont:
@Returns:
<!-- ##### FUNCTION cairo_win32_font_face_create_for_hfont ##### -->
<para>
</para>
@font:
@Returns:
<!-- ##### FUNCTION cairo_win32_font_face_create_for_logfontw_hfont ##### -->
<para>
</para>
@logfont:
@font:
@Returns:
<!-- ##### FUNCTION cairo_win32_scaled_font_select_font ##### -->
<para>
</para>
@scaled_font:
@hdc:
@Returns:
<!-- ##### FUNCTION cairo_win32_scaled_font_done_font ##### -->
<para>
</para>
@scaled_font:
<!-- ##### FUNCTION cairo_win32_scaled_font_get_metrics_factor ##### -->
<para>
</para>
@scaled_font:
@Returns:
<!-- ##### FUNCTION cairo_win32_scaled_font_get_logical_to_device ##### -->
<para>
</para>
@scaled_font:
@logical_to_device:
<!-- ##### FUNCTION cairo_win32_scaled_font_get_device_to_logical ##### -->
<para>
</para>
@scaled_font:
@device_to_logical:

View file

@ -1,101 +0,0 @@
<!-- ##### SECTION Title ##### -->
Win32 Surfaces
<!-- ##### SECTION Short_Description ##### -->
Microsoft Windows surface support
<!-- ##### SECTION Long_Description ##### -->
<para>
The Microsoft Windows surface is used to render cairo graphics to
Microsoft Windows windows, bitmaps, and printing device contexts.
</para>
<para>
The surface returned by cairo_win32_printing_surface_create() is of surface
type %CAIRO_SURFACE_TYPE_WIN32_PRINTING and is a multi-page vector surface
type.
</para>
<para>
The surface returned by the other win32 constructors is of surface type
%CAIRO_SURFACE_TYPE_WIN32 and is a raster surface type.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_WIN32_SURFACE ##### -->
<para>
Defined if the Microsoft Windows surface backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_win32_surface_create ##### -->
<para>
</para>
@hdc:
@Returns:
<!-- ##### FUNCTION cairo_win32_surface_create_with_dib ##### -->
<para>
</para>
@format:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_win32_surface_create_with_ddb ##### -->
<para>
</para>
@hdc:
@format:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_win32_printing_surface_create ##### -->
<para>
</para>
@hdc:
@Returns:
<!-- ##### FUNCTION cairo_win32_surface_get_dc ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_win32_surface_get_image ##### -->
<para>
</para>
@surface:
@Returns:

View file

@ -1,26 +0,0 @@
<!-- ##### SECTION Title ##### -->
XCB Surfaces
<!-- ##### SECTION Short_Description ##### -->
X Window System rendering using the XCB library and the X Render extension
<!-- ##### SECTION Long_Description ##### -->
<para>
The XCB surface is used to render cairo graphics to X Window System
windows and pixmaps using the XCB library and its X Render extension.
</para>
<para>
Note that the XCB surface automatically takes advantage of the X Render
extension if it is available.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->

View file

@ -1,26 +0,0 @@
<!-- ##### SECTION Title ##### -->
XCB Surfaces
<!-- ##### SECTION Short_Description ##### -->
X Window System rendering using the XCB library
<!-- ##### SECTION Long_Description ##### -->
<para>
The XCB surface is used to render cairo graphics to X Window System
windows and pixmaps using the XCB library.
</para>
<para>
Note that the XCB surface automatically takes advantage of the X render
extension if it is available.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->

View file

@ -1,60 +0,0 @@
<!-- ##### SECTION Title ##### -->
XLib/XRender Backend
<!-- ##### SECTION Short_Description ##### -->
X Window System rendering using XLib and the X Render extension
<!-- ##### SECTION Long_Description ##### -->
<para>
The XLib surface is used to render cairo graphics to X Window System
windows and pixmaps using the XLib and Xrender libraries.
</para>
<para>
Note that the XLib surface automatically takes advantage of X Render extension
if it is available.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_XLIB_XRENDER_SURFACE ##### -->
<para>
Defined if the XLib/XRender surface functions are available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_xlib_surface_create_with_xrender_format ##### -->
<para>
</para>
@dpy:
@drawable:
@screen:
@format:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_get_xrender_format ##### -->
<para>
</para>
@surface:
@Returns:

View file

@ -1,147 +0,0 @@
<!-- ##### SECTION Title ##### -->
XLib Surfaces
<!-- ##### SECTION Short_Description ##### -->
X Window System rendering using XLib
<!-- ##### SECTION Long_Description ##### -->
<para>
The XLib surface is used to render cairo graphics to X Window System
windows and pixmaps using the XLib library.
</para>
<para>
Note that the XLib surface automatically takes advantage of X render extension
if it is available.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### MACRO CAIRO_HAS_XLIB_SURFACE ##### -->
<para>
Defined if the Xlib surface backend is available.
This macro can be used to conditionally compile backend-specific code.
</para>
<!-- ##### FUNCTION cairo_xlib_surface_create ##### -->
<para>
</para>
@dpy:
@drawable:
@visual:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_create_for_bitmap ##### -->
<para>
</para>
@dpy:
@bitmap:
@screen:
@width:
@height:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_set_size ##### -->
<para>
</para>
@surface:
@width:
@height:
<!-- ##### FUNCTION cairo_xlib_surface_get_display ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_get_screen ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_set_drawable ##### -->
<para>
</para>
@surface:
@drawable:
@width:
@height:
<!-- ##### FUNCTION cairo_xlib_surface_get_drawable ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_get_visual ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_get_width ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_get_height ##### -->
<para>
</para>
@surface:
@Returns:
<!-- ##### FUNCTION cairo_xlib_surface_get_depth ##### -->
<para>
</para>
@surface:
@Returns:

View file

@ -1,674 +0,0 @@
<!-- ##### SECTION Title ##### -->
cairo_t
<!-- ##### SECTION Short_Description ##### -->
The cairo drawing context
<!-- ##### SECTION Long_Description ##### -->
<para>
#cairo_t is the main object used when drawing with cairo. To
draw with cairo, you create a #cairo_t, set the target surface,
and drawing options for the #cairo_t, create shapes with
functions like cairo_move_to() and cairo_line_to(), and then
draw shapes with cairo_stroke() or cairo_fill().
</para>
<para>
#cairo_t<!-- -->'s can be pushed to a stack via cairo_save().
They may then safely be changed, without loosing the current state.
Use cairo_restore() to restore to the saved state.
</para>
<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### SECTION Image ##### -->
<!-- ##### TYPEDEF cairo_t ##### -->
<para>
</para>
<!-- ##### FUNCTION cairo_create ##### -->
<para>
</para>
@target:
@Returns:
<!-- ##### FUNCTION cairo_reference ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_destroy ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_status ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_save ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_restore ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_get_target ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_push_group ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_push_group_with_content ##### -->
<para>
</para>
@cr:
@content:
<!-- ##### FUNCTION cairo_pop_group ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_pop_group_to_source ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_get_group_target ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_set_source_rgb ##### -->
<para>
</para>
@cr:
@red:
@green:
@blue:
<!-- ##### FUNCTION cairo_set_source_rgba ##### -->
<para>
</para>
@cr:
@red:
@green:
@blue:
@alpha:
<!-- ##### FUNCTION cairo_set_source ##### -->
<para>
</para>
@cr:
@source:
<!-- ##### FUNCTION cairo_set_source_surface ##### -->
<para>
</para>
@cr:
@surface:
@x:
@y:
<!-- ##### FUNCTION cairo_get_source ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### ENUM cairo_antialias_t ##### -->
<para>
</para>
@CAIRO_ANTIALIAS_DEFAULT:
@CAIRO_ANTIALIAS_NONE:
@CAIRO_ANTIALIAS_GRAY:
@CAIRO_ANTIALIAS_SUBPIXEL:
<!-- ##### FUNCTION cairo_set_antialias ##### -->
<para>
</para>
@cr:
@antialias:
<!-- ##### FUNCTION cairo_get_antialias ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_set_dash ##### -->
<para>
</para>
@cr:
@dashes:
@num_dashes:
@offset:
<!-- ##### FUNCTION cairo_get_dash_count ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_get_dash ##### -->
<para>
</para>
@cr:
@dashes:
@offset:
<!-- ##### ENUM cairo_fill_rule_t ##### -->
<para>
</para>
@CAIRO_FILL_RULE_WINDING:
@CAIRO_FILL_RULE_EVEN_ODD:
<!-- ##### FUNCTION cairo_set_fill_rule ##### -->
<para>
</para>
@cr:
@fill_rule:
<!-- ##### FUNCTION cairo_get_fill_rule ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### ENUM cairo_line_cap_t ##### -->
<para>
</para>
@CAIRO_LINE_CAP_BUTT:
@CAIRO_LINE_CAP_ROUND:
@CAIRO_LINE_CAP_SQUARE:
<!-- ##### FUNCTION cairo_set_line_cap ##### -->
<para>
</para>
@cr:
@line_cap:
<!-- ##### FUNCTION cairo_get_line_cap ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### ENUM cairo_line_join_t ##### -->
<para>
</para>
@CAIRO_LINE_JOIN_MITER:
@CAIRO_LINE_JOIN_ROUND:
@CAIRO_LINE_JOIN_BEVEL:
<!-- ##### FUNCTION cairo_set_line_join ##### -->
<para>
</para>
@cr:
@line_join:
<!-- ##### FUNCTION cairo_get_line_join ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_set_line_width ##### -->
<para>
</para>
@cr:
@width:
<!-- ##### FUNCTION cairo_get_line_width ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_set_miter_limit ##### -->
<para>
</para>
@cr:
@limit:
<!-- ##### FUNCTION cairo_get_miter_limit ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### ENUM cairo_operator_t ##### -->
<para>
</para>
@CAIRO_OPERATOR_CLEAR:
@CAIRO_OPERATOR_SOURCE:
@CAIRO_OPERATOR_OVER:
@CAIRO_OPERATOR_IN:
@CAIRO_OPERATOR_OUT:
@CAIRO_OPERATOR_ATOP:
@CAIRO_OPERATOR_DEST:
@CAIRO_OPERATOR_DEST_OVER:
@CAIRO_OPERATOR_DEST_IN:
@CAIRO_OPERATOR_DEST_OUT:
@CAIRO_OPERATOR_DEST_ATOP:
@CAIRO_OPERATOR_XOR:
@CAIRO_OPERATOR_ADD:
@CAIRO_OPERATOR_SATURATE:
@CAIRO_OPERATOR_MULTIPLY:
@CAIRO_OPERATOR_SCREEN:
@CAIRO_OPERATOR_OVERLAY:
@CAIRO_OPERATOR_DARKEN:
@CAIRO_OPERATOR_LIGHTEN:
@CAIRO_OPERATOR_COLOR_DODGE:
@CAIRO_OPERATOR_COLOR_BURN:
@CAIRO_OPERATOR_HARD_LIGHT:
@CAIRO_OPERATOR_SOFT_LIGHT:
@CAIRO_OPERATOR_DIFFERENCE:
@CAIRO_OPERATOR_EXCLUSION:
@CAIRO_OPERATOR_HSL_HUE:
@CAIRO_OPERATOR_HSL_SATURATION:
@CAIRO_OPERATOR_HSL_COLOR:
@CAIRO_OPERATOR_HSL_LUMINOSITY:
<!-- ##### FUNCTION cairo_set_operator ##### -->
<para>
</para>
@cr:
@op:
<!-- ##### FUNCTION cairo_get_operator ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_set_tolerance ##### -->
<para>
</para>
@cr:
@tolerance:
<!-- ##### FUNCTION cairo_get_tolerance ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_clip ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_clip_preserve ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_clip_extents ##### -->
<para>
</para>
@cr:
@x1:
@y1:
@x2:
@y2:
<!-- ##### FUNCTION cairo_reset_clip ##### -->
<para>
</para>
@cr:
<!-- ##### STRUCT cairo_rectangle_t ##### -->
<para>
</para>
@x:
@y:
@width:
@height:
<!-- ##### STRUCT cairo_rectangle_list_t ##### -->
<para>
</para>
@status:
@rectangles:
@num_rectangles:
<!-- ##### FUNCTION cairo_rectangle_list_destroy ##### -->
<para>
</para>
@rectangle_list:
<!-- ##### FUNCTION cairo_copy_clip_rectangle_list ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_fill ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_fill_preserve ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_fill_extents ##### -->
<para>
</para>
@cr:
@x1:
@y1:
@x2:
@y2:
<!-- ##### FUNCTION cairo_in_fill ##### -->
<para>
</para>
@cr:
@x:
@y:
@Returns:
<!-- ##### FUNCTION cairo_mask ##### -->
<para>
</para>
@cr:
@pattern:
<!-- ##### FUNCTION cairo_mask_surface ##### -->
<para>
</para>
@cr:
@surface:
@surface_x:
@surface_y:
<!-- ##### FUNCTION cairo_paint ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_paint_with_alpha ##### -->
<para>
</para>
@cr:
@alpha:
<!-- ##### FUNCTION cairo_stroke ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_stroke_preserve ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_stroke_extents ##### -->
<para>
</para>
@cr:
@x1:
@y1:
@x2:
@y2:
<!-- ##### FUNCTION cairo_in_stroke ##### -->
<para>
</para>
@cr:
@x:
@y:
@Returns:
<!-- ##### FUNCTION cairo_copy_page ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_show_page ##### -->
<para>
</para>
@cr:
<!-- ##### FUNCTION cairo_get_reference_count ##### -->
<para>
</para>
@cr:
@Returns:
<!-- ##### FUNCTION cairo_set_user_data ##### -->
<para>
</para>
@cr:
@key:
@user_data:
@destroy:
@Returns:
<!-- ##### FUNCTION cairo_get_user_data ##### -->
<para>
</para>
@cr:
@key:
@Returns:

View file

@ -53,6 +53,16 @@
#include <Window.h>
#include <Locker.h>
/**
* SECTION:beos-surface
* @Title: BeOS Surfaces
* @Short_Description: BeOS surface support
* @See_Also: #cairo_surface_t
*
* The BeOS surface is used to render cairo graphics to BeOS views
* and bitmaps.
*/
#define CAIRO_INT_STATUS_SUCCESS (cairo_int_status_t)(CAIRO_STATUS_SUCCESS)
struct cairo_beos_surface_t {

View file

@ -41,6 +41,23 @@
#include "cairoint.h"
#include "cairo-error-private.h"
/**
* SECTION:cairo-font-face
* @Title: cairo_font_face_t
* @Short_Description: Base class for font faces
* @See_Also: #cairo_scaled_font_t
*
* #cairo_font_face_t represents a particular font at a particular weight,
* slant, and other characteristic but no size, transformation, or size.
*
* Font faces are created using <firstterm>font-backend</firstterm>-specific
* constructors, typically of the form
* cairo_<emphasis>backend</emphasis>_font_face_create(), or implicitly
* using the <firstterm>toy</firstterm> text API by way of
* cairo_select_font_face(). The resulting face can be accessed using
* cairo_get_font_face().
*/
/* #cairo_font_face_t */
const cairo_font_face_t _cairo_font_face_nil = {

View file

@ -37,6 +37,18 @@
#include "cairoint.h"
#include "cairo-error-private.h"
/**
* SECTION:cairo-font-options
* @Title: cairo_font_options_t
* @Short_Description: How a font should be rendered
* @See_Also: #cairo_scaled_font_t
*
* The font options specify how fonts should be rendered. Most of the
* time the font options implied by a surface are just right and do not
* need any changes, but for pixel-based targets tweaking font options
* may result in superior output on a particular display.
*/
static const cairo_font_options_t _cairo_font_options_nil = {
CAIRO_ANTIALIAS_DEFAULT,
CAIRO_SUBPIXEL_ORDER_DEFAULT,

View file

@ -90,6 +90,31 @@
*/
#define MAX_OPEN_FACES 10
/**
* SECTION:cairo-ft
* @Title: FreeType Fonts
* @Short_Description: Font support for FreeType
* @See_Also: #cairo_font_face_t
*
* The FreeType font backend is primarily used to render text on GNU/Linux
* systems, but can be used on other platforms too.
*/
/**
* CAIRO_HAS_FT_FONT:
*
* Defined if the FreeType font backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
/**
* CAIRO_HAS_FC_FONT:
*
* Defined if the Fontconfig-specific functions of the FreeType font backend
* are available.
* This macro can be used to conditionally compile backend-specific code.
*/
/*
* The simple 2x2 matrix is converted into separate scale and shape
* factors so that hinting works right

View file

@ -54,6 +54,27 @@
#define MAX_IMAGE_SIZE 32767
#define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */
/**
* SECTION:cairo-image
* @Title: Image Surfaces
* @Short_Description: Rendering to memory buffers
* @See_Also: #cairo_surface_t
*
* Image surfaces provide the ability to render to memory buffers
* either allocated by cairo or by the calling code. The supported
* image formats are those defined in #cairo_format_t.
*/
/**
* CAIRO_HAS_IMAGE_SURFACE:
*
* Defined if the image surface backend is available.
* The image surface backend is always built in.
* This macro was added for completeness in cairo 1.8.
*
* @Since: 1.8
*/
static cairo_int_status_t
_cairo_image_surface_fill (void *dst,
cairo_operator_t op,

View file

@ -43,6 +43,29 @@
#define ISFINITE(x) ((x) * (x) >= 0.) /* check for NaNs */
#endif
/**
* SECTION:cairo-matrix
* @Title: cairo_matrix_t
* @Short_Description: Generic matrix operations
* @See_Also: #cairo_t
*
* #cairo_matrix_t is used throughout cairo to convert between different
* coordinate spaces. A #cairo_matrix_t holds an affine transformation,
* such as a scale, rotation, shear, or a combination of these.
* The transformation of a point (<literal>x</literal>,<literal>y</literal>)
* is given by:
*
* <programlisting>
* x_new = xx * x + xy * y + x0;
* y_new = yx * x + yy * y + y0;
* </programlisting>
*
* The current transformation matrix of a #cairo_t, represented as a
* #cairo_matrix_t, defines the transformation from user-space
* coordinates to device-space coordinates. See cairo_get_matrix() and
* cairo_set_matrix().
*/
static void
_cairo_matrix_scalar_multiply (cairo_matrix_t *matrix, double scalar);

View file

@ -44,6 +44,26 @@
COMPILE_TIME_ASSERT (CAIRO_STATUS_LAST_STATUS < CAIRO_INT_STATUS_UNSUPPORTED);
COMPILE_TIME_ASSERT (CAIRO_INT_STATUS_LAST_STATUS <= 127);
/**
* SECTION:cairo-status
* @Title: Error handling
* @Short_Description: Decoding cairo's status
* @See_Also: cairo_status(), cairo_surface_status(), cairo_pattern_status(),
* cairo_font_face_status(), cairo_scaled_font_status(),
* cairo_region_status()
*
* Cairo uses a single status type to represent all kinds of errors. A status
* value of %CAIRO_STATUS_SUCCESS represents no error and has an integer value
* of zero. All other status values represent an error.
*
* Cairo's error handling is designed to be easy to use and safe. All major
* cairo objects <firstterm>retain</firstterm> an error status internally which
* can be queried anytime by the users using cairo*_status() calls. In
* the mean time, it is safe to call all cairo functions normally even if the
* underlying object is in an error status. This means that no error handling
* code is required before or after each individual cairo function call.
*/
/* Public stuff */
/**

View file

@ -41,6 +41,15 @@
#include "cairo-path-private.h"
#include "cairo-path-fixed-private.h"
/**
* SECTION:cairo-paths
* @Title: Paths
* @Short_Description: Creating paths and manipulating path data
*
* Paths are the most basic drawing tools and are primarily used to implicitly
* generate simple masks.
*/
static const cairo_path_t _cairo_path_nil = { CAIRO_STATUS_NO_MEMORY, NULL, 0 };
/* Closure for path interpretation. */

View file

@ -32,6 +32,23 @@
#include "cairo-error-private.h"
#include "cairo-freed-pool-private.h"
/**
* SECTION:cairo-pattern
* @Title: cairo_pattern_t
* @Short_Description: Sources for drawing
* @See_Also: #cairo_t, #cairo_surface_t
*
* #cairo_pattern_t is the paint with which cairo draws.
* The primary use of patterns is as the source for all cairo drawing
* operations, although they can also be used as masks, that is, as the
* brush too.
*
* A cairo pattern is created by using one of the many constructors,
* of the form cairo_pattern_create_<emphasis>type</emphasis>()
* or implicitly through
* cairo_set_source_<emphasis>type</emphasis>() functions.
*/
#if HAS_FREED_POOL
static freed_pool_t freed_pattern_pool[4];
#endif

View file

@ -115,6 +115,23 @@
* XObject instead of using an indirect object.
*/
/**
* SECTION:cairo-pdf
* @Title: PDF Surfaces
* @Short_Description: Rendering PDF documents
* @See_Also: #cairo_surface_t
*
* The PDF surface is used to render cairo graphics to Adobe
* PDF files and is a multi-page vector surface backend.
*/
/**
* CAIRO_HAS_PDF_SURFACE:
*
* Defined if the PDF surface backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
static const cairo_pdf_version_t _cairo_pdf_versions[] =
{
CAIRO_PDF_VERSION_1_4,

View file

@ -45,6 +45,24 @@
#include <errno.h>
#include <png.h>
/**
* SECTION:cairo-png
* @Title: PNG Support
* @Short_Description: Reading and writing PNG images
* @See_Also: #cairo_surface_t
*
* The PNG functions allow reading PNG images into image surfaces, and writing
* any surface to a PNG file.
*/
/**
* CAIRO_HAS_PNG_FUNCTIONS:
*
* Defined if the PNG functions are available.
* This macro can be used to conditionally compile code using the cairo
* PNG functions.
*/
struct png_read_closure_t {
cairo_read_func_t read_func;
void *closure;

View file

@ -88,6 +88,23 @@
#define ctime_r(T, BUF) ctime (T)
#endif
/**
* SECTION:cairo-ps
* @Title: PostScript Surfaces
* @Short_Description: Rendering PostScript documents
* @See_Also: #cairo_surface_t
*
* The PostScript surface is used to render cairo graphics to Adobe
* PostScript files and is a multi-page vector surface backend.
*/
/**
* CAIRO_HAS_PS_SURFACE:
*
* Defined if the PostScript surface backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
static const cairo_surface_backend_t cairo_ps_surface_backend;
static const cairo_paginated_surface_backend_t cairo_ps_surface_paginated_backend;

View file

@ -43,6 +43,23 @@
#include "cairo-error-private.h"
/**
* SECTION:cairo-quartz-fonts
* @Title: Quartz (CGFont) Fonts
* @Short_Description: Font support via CGFont on OS X
* @See_Also: #cairo_font_face_t
* The Quartz font backend is primarily used to render text on Apple
* MacOS X systems. The CGFont API is used for the internal
* implementation of the font backend methods.
*/
/**
* CAIRO_HAS_QUARTZ_FONT:
*
* Defined if the Quartz font backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
/* CreateWithFontName exists in 10.5, but not in 10.4; CreateWithName isn't public in 10.4 */
static CGFontRef (*CGFontCreateWithFontNamePtr) (CFStringRef) = NULL;
static CGFontRef (*CGFontCreateWithNamePtr) (const char *) = NULL;

View file

@ -60,6 +60,23 @@
#define IS_EMPTY(s) ((s)->extents.width == 0 || (s)->extents.height == 0)
/**
* SECTION:cairo-quartz
* @Title: Quartz Surfaces
* @Short_Description: Rendering to Quartz surfaces
* @See_Also: #cairo_surface_t
*
* The Quartz surface is used to render cairo graphics targeting the
* Apple OS X Quartz rendering system.
*/
/**
* CAIRO_HAS_QUARTZ_SURFACE:
*
* Defined if the Quartz surface backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
/* This method is private, but it exists. Its params are are exposed
* as args to the NS* method, but not as CG.
*/

View file

@ -48,6 +48,16 @@
#define ISFINITE(x) ((x) * (x) >= 0.) /* check for NaNs */
#endif
/**
* SECTION:cairo-scaled-font
* @Title: cairo_scaled_font_t
* @Short_Description: Font face at particular size and options
* @See_Also: #cairo_font_face_t, #cairo_matrix_t, #cairo_font_options_t
*
* #cairo_scaled_font_t represents a realization of a font face at a particular
* size and transformation and a certain set of font options.
*/
/* Global Glyph Cache
*
* We maintain a global pool of glyphs split between all active fonts. This

View file

@ -46,6 +46,21 @@
#include "cairo-region-private.h"
#include "cairo-tee-surface-private.h"
/**
* SECTION:cairo-surface
* @Title: cairo_surface_t
* @Short_Description: Base class for surfaces
* @See_Also: #cairo_t, #cairo_pattern_t
*
* #cairo_surface_t is the abstract type representing all different drawing
* targets that cairo can render to. The actual drawings are
* performed using a cairo <firstterm>context</firstterm>.
*
* A cairo surface is created by using <firstterm>backend</firstterm>-specific
* constructors, typically of the form
* cairo_<emphasis>backend</emphasis>_surface_create().
*/
#define DEFINE_NIL_SURFACE(status, name) \
const cairo_surface_t name = { \
NULL, /* backend */ \
@ -810,6 +825,38 @@ _cairo_mime_data_destroy (void *ptr)
free (mime_data);
}
/**
* CAIRO_MIME_TYPE_JP2:
*
* The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1).
*
* @Since: 1.10
*/
/**
* CAIRO_MIME_TYPE_JPEG:
*
* The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1).
*
* @Since: 1.10
*/
/**
* CAIRO_MIME_TYPE_PNG:
*
* The Portable Network Graphics image file format (ISO/IEC 15948).
*
* @Since: 1.10
*/
/**
* CAIRO_MIME_TYPE_URI:
*
* URI for an image file (unofficial MIME type).
*
* @Since: 1.10
*/
/**
* cairo_surface_set_mime_data:
* @surface: a #cairo_surface_t

View file

@ -53,6 +53,23 @@
#include "cairo-surface-clipper-private.h"
#include "cairo-svg-surface-private.h"
/**
* SECTION:cairo-svg
* @Title: SVG Surfaces
* @Short_Description: Rendering SVG documents
* @See_Also: #cairo_surface_t
*
* The SVG surface is used to render cairo graphics to
* SVG files and is a multi-page vector surface backend.
*/
/**
* CAIRO_HAS_SVG_SURFACE:
*
* Defined if the SVG surface backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
typedef struct cairo_svg_page cairo_svg_page_t;
static const int invalid_pattern_id = -1;

View file

@ -44,6 +44,14 @@
#include "cairo-list-private.h"
#include "cairo-reference-count-private.h"
/**
* SECTION:cairo-types
* @Title: Types
* @Short_Description: Generic data types
*
* This section lists generic data types used in the cairo API.
*/
typedef struct _cairo_array cairo_array_t;
typedef struct _cairo_backend cairo_backend_t;
typedef struct _cairo_boxes_t cairo_boxes_t;

View file

@ -40,6 +40,28 @@
#include "cairo-analysis-surface-private.h"
#include "cairo-error-private.h"
/**
* SECTION:cairo-user-fonts
* @Title:User Fonts
* @Short_Description: Font support with font data provided by the user
*
* The user-font feature allows the cairo user to provide drawings for glyphs
* in a font. This is most useful in implementing fonts in non-standard
* formats, like SVG fonts and Flash fonts, but can also be used by games and
* other application to draw "funky" fonts.
*/
/**
* CAIRO_HAS_USER_FONT:
*
* Defined if the user font backend is available.
* This macro can be used to conditionally compile backend-specific code.
* The user font backend is always built in versions of cairo that support
* this feature (1.8 and later).
*
* @Since: 1.8
*/
typedef struct _cairo_user_scaled_font_methods {
cairo_user_scaled_font_init_func_t init;
cairo_user_scaled_font_render_glyph_func_t render_glyph;

View file

@ -44,6 +44,162 @@
#undef CAIRO_VERSION_H
#include "../cairo-version.h"
/**
* SECTION:cairo-version
* @Title: Version Information
* @Short_Description: Compile-time and run-time version checks.
*
* Cairo has a three-part version number scheme. In this scheme, we use
* even vs. odd numbers to distinguish fixed points in the software
* vs. in-progress development, (such as from git instead of a tar file,
* or as a "snapshot" tar file as opposed to a "release" tar file).
*
* <informalexample><programlisting>
* _____ Major. Always 1, until we invent a new scheme.
* / ___ Minor. Even/Odd = Release/Snapshot (tar files) or Branch/Head (git)
* | / _ Micro. Even/Odd = Tar-file/git
* | | /
* 1.0.0
* </programlisting></informalexample>
*
* Here are a few examples of versions that one might see.
* <informalexample><programlisting>
* Releases
* --------
* 1.0.0 - A major release
* 1.0.2 - A subsequent maintenance release
* 1.2.0 - Another major release
*
* Snapshots
* ---------
* 1.1.2 - A snapshot (working toward the 1.2.0 release)
*
* In-progress development (eg. from git)
* --------------------------------------
* 1.0.1 - Development on a maintenance branch (toward 1.0.2 release)
* 1.1.1 - Development on head (toward 1.1.2 snapshot and 1.2.0 release)
* </programlisting></informalexample>
* </para>
* <refsect2>
* <title>Compatibility</title>
* <para>
* The API/ABI compatibility guarantees for various versions are as
* follows. First, let's assume some cairo-using application code that is
* successfully using the API/ABI "from" one version of cairo. Then let's
* ask the question whether this same code can be moved "to" the API/ABI
* of another version of cairo.
*
* Moving from a release to any later version (release, snapshot,
* development) is always guaranteed to provide compatibility.
*
* Moving from a snapshot to any later version is not guaranteed to
* provide compatibility, since snapshots may introduce new API that ends
* up being removed before the next release.
*
* Moving from an in-development version (odd micro component) to any
* later version is not guaranteed to provide compatibility. In fact,
* there's not even a guarantee that the code will even continue to work
* with the same in-development version number. This is because these
* numbers don't correspond to any fixed state of the software, but
* rather the many states between snapshots and releases.
* </para>
* </refsect2>
* <refsect2>
* <title>Examining the version</title>
* <para>
* Cairo provides the ability to examine the version at either
* compile-time or run-time and in both a human-readable form as well as
* an encoded form suitable for direct comparison. Cairo also provides the
* macro CAIRO_VERSION_ENCODE() to perform the encoding.
*
* <informalexample><programlisting>
* Compile-time
* ------------
* CAIRO_VERSION_STRING Human-readable
* CAIRO_VERSION Encoded, suitable for comparison
*
* Run-time
* --------
* cairo_version_string() Human-readable
* cairo_version() Encoded, suitable for comparison
* </programlisting></informalexample>
*
* For example, checking that the cairo version is greater than or equal
* to 1.0.0 could be achieved at compile-time or run-time as follows:
*
* <informalexample><programlisting>
* ##if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 0, 0)
* printf ("Compiling with suitable cairo version: %s\n", %CAIRO_VERSION_STRING);
* ##endif
*
* if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 0, 0))
* printf ("Running with suitable cairo version: %s\n", cairo_version_string ());
* </programlisting></informalexample>
* </para>
* </refsect2>
*/
/**
* CAIRO_VERSION:
*
* The version of cairo available at compile-time, encoded using
* CAIRO_VERSION_ENCODE().
*/
/**
* CAIRO_VERSION_MAJOR:
*
* The major component of the version of cairo available at compile-time.
*/
/**
* CAIRO_VERSION_MINOR:
*
* The minor component of the version of cairo available at compile-time.
*/
/**
* CAIRO_VERSION_MICRO:
*
* The micro component of the version of cairo available at compile-time.
*/
/**
* CAIRO_VERSION_STRING:
*
* A human-readable string literal containing the version of cairo available
* at compile-time, in the form of "X.Y.Z".
*/
/**
* CAIRO_VERSION_ENCODE:
* @major: the major component of the version number
* @minor: the minor component of the version number
* @micro: the micro component of the version number
*
* This macro encodes the given cairo version into an integer. The numbers
* returned by %CAIRO_VERSION and cairo_version() are encoded using this macro.
* Two encoded version numbers can be compared as integers. The encoding ensures
* that later versions compare greater than earlier versions.
*
* @Returns: the encoded version.
*/
/**
* CAIRO_VERSION_STRINGIZE:
* @major: the major component of the version number
* @minor: the minor component of the version number
* @micro: the micro component of the version number
*
* This macro encodes the given cairo version into an string. The numbers
* returned by %CAIRO_VERSION_STRING and cairo_version_string() are encoded using this macro.
* The parameters to this macro must expand to numerical literals.
*
* @Returns: a string literal containing the version.
*
* @Since: 1.8
*/
/**
* cairo_version:
*

View file

@ -62,6 +62,23 @@
#define CMAP_TAG 0x70616d63
/**
* SECTION:cairo-win32-fonts
* @Title: Win32 Fonts
* @Short_Description: Font support for Microsoft Windows
* @See_Also: #cairo_font_face_t
*
* The Microsoft Windows font backend is primarily used to render text on
* Microsoft Windows systems.
*/
/**
* CAIRO_HAS_WIN32_FONT:
*
* Defined if the Microsoft Windows font backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
const cairo_scaled_font_backend_t _cairo_win32_scaled_font_backend;
typedef struct {

View file

@ -74,6 +74,30 @@
#define PELS_72DPI ((LONG)(72. / 0.0254))
/**
* SECTION:cairo-win32
* @Title: Win32 Surfaces
* @Short_Description: Microsoft Windows surface support
* @See_Also: #cairo_surface_t
*
* The Microsoft Windows surface is used to render cairo graphics to
* Microsoft Windows windows, bitmaps, and printing device contexts.
*
* The surface returned by cairo_win32_printing_surface_create() is of surface
* type %CAIRO_SURFACE_TYPE_WIN32_PRINTING and is a multi-page vector surface
* type.
*
* The surface returned by the other win32 constructors is of surface type
* %CAIRO_SURFACE_TYPE_WIN32 and is a raster surface type.
*/
/**
* CAIRO_HAS_WIN32_SURFACE:
*
* Defined if the Microsoft Windows surface backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
static const cairo_surface_backend_t cairo_win32_surface_backend;
/**

View file

@ -46,6 +46,19 @@
#define PIXMAN_MAX_INT ((pixman_fixed_1 >> 1) - pixman_fixed_e) /* need to ensure deltas also fit */
/**
* SECTION:cairo-xcb-xrender
* @Title: XCB Surfaces
* @Short_Description: X Window System rendering using the XCB library and the X Render extension
* @See_Also: #cairo_surface_t
*
* The XCB surface is used to render cairo graphics to X Window System
* windows and pixmaps using the XCB library and its X Render extension.
*
* Note that the XCB surface automatically takes advantage of the X Render
* extension if it is available.
*/
typedef struct _cairo_xcb_picture {
cairo_surface_t base;

View file

@ -61,6 +61,19 @@ slim_hidden_proto (cairo_xcb_surface_create_with_xrender_format);
#include "drm/cairo-drm-private.h"
#endif
/**
* SECTION:cairo-xcb
* @Title: XCB Surfaces
* @Short_Description: X Window System rendering using the XCB library
* @See_Also: #cairo_surface_t
*
* The XCB surface is used to render cairo graphics to X Window System
* windows and pixmaps using the XCB library.
*
* Note that the XCB surface automatically takes advantage of the X render
* extension if it is available.
*/
#if CAIRO_HAS_XCB_SHM_FUNCTIONS
static cairo_status_t
_cairo_xcb_surface_create_similar_shm (cairo_xcb_surface_t *other,

View file

@ -107,6 +107,46 @@ _x_bread_crumb (Display *dpy,
#define X_DEBUG(x)
#endif
/**
* SECTION:cairo-xlib
* @Title: XLib Surfaces
* @Short_Description: X Window System rendering using XLib
* @See_Also: #cairo_surface_t
*
* The XLib surface is used to render cairo graphics to X Window System
* windows and pixmaps using the XLib library.
*
* Note that the XLib surface automatically takes advantage of X render extension
* if it is available.
*/
/**
* CAIRO_HAS_XLIB_SURFACE:
*
* Defined if the Xlib surface backend is available.
* This macro can be used to conditionally compile backend-specific code.
*/
/**
* SECTION:cairo-xlib-xrender
* @Title: XLib/XRender Backend
* @Short_Description: X Window System rendering using XLib and the X Render extension
* @See_Also: #cairo_surface_t
*
* The XLib surface is used to render cairo graphics to X Window System
* windows and pixmaps using the XLib and Xrender libraries.
*
* Note that the XLib surface automatically takes advantage of X Render extension
* if it is available.
*/
/**
* CAIRO_HAS_XLIB_XRENDER_SURFACE:
*
* Defined if the XLib/XRender surface functions are available.
* This macro can be used to conditionally compile backend-specific code.
*/
/* Xlib doesn't define a typedef, so define one ourselves */
typedef int (*cairo_xlib_error_func_t) (Display *display,
XErrorEvent *event);

View file

@ -43,6 +43,63 @@
#include "cairo-error-private.h"
#include "cairo-path-private.h"
/**
* SECTION:cairo
* @Title: cairo_t
* @Short_Description: The cairo drawing context
* @See_Also: #cairo_surface_t
*
* #cairo_t is the main object used when drawing with cairo. To
* draw with cairo, you create a #cairo_t, set the target surface,
* and drawing options for the #cairo_t, create shapes with
* functions like cairo_move_to() and cairo_line_to(), and then
* draw shapes with cairo_stroke() or cairo_fill().
*
* #cairo_t<!-- -->'s can be pushed to a stack via cairo_save().
* They may then safely be changed, without loosing the current state.
* Use cairo_restore() to restore to the saved state.
*/
/**
* SECTION:cairo-text
* @Title: text
* @Short_Description: Rendering text and glyphs
* @See_Also: #cairo_font_face_t, #cairo_scaled_font_t, cairo_text_path(),
* cairo_glyph_path()
*
* The functions with <emphasis>text</emphasis> in their name form cairo's
* <firstterm>toy</firstterm> text API. The toy API takes UTF-8 encoded
* text and is limited in its functionality to rendering simple
* left-to-right text with no advanced features. That means for example
* that most complex scripts like Hebrew, Arabic, and Indic scripts are
* out of question. No kerning or correct positioning of diacritical marks
* either. The font selection is pretty limited too and doesn't handle the
* case that the selected font does not cover the characters in the text.
* This set of functions are really that, a toy text API, for testing and
* demonstration purposes. Any serious application should avoid them.
*
* The functions with <emphasis>glyphs</emphasis> in their name form cairo's
* <firstterm>low-level</firstterm> text API. The low-level API relies on
* the user to convert text to a set of glyph indexes and positions. This
* is a very hard problem and is best handled by external libraries, like
* the pangocairo that is part of the Pango text layout and rendering library.
* Pango is available from <ulink
* url="http://www.pango.org/">http://www.pango.org/</ulink>.
*/
/**
* SECTION:cairo-transforms
* @Title: Transformations
* @Short_Description: Manipulating the current transformation matrix
* @See_Also: #cairo_matrix_t
*
* The current transformation matrix, <firstterm>ctm</firstterm>, is a
* two-dimensional affine transformation that maps all coordinates and other
* drawing instruments from the <firstterm>user space</firstterm> into the
* surface's canonical coordinate system, also known as the <firstterm>device
* space</firstterm>.
*/
#define CAIRO_TOLERANCE_MINIMUM _cairo_fixed_to_double(1)
#if !defined(INFINITY)