From 530ffd0b7d3c39757b20f00716e486b5caf89aff Mon Sep 17 00:00:00 2001 From: sanine Date: Wed, 12 Oct 2022 12:03:23 -0500 Subject: add cairo --- libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml | 272 +++ .../cairo-1.16.0/doc/public/xml/api-index-1.10.xml | 77 + .../cairo-1.16.0/doc/public/xml/api-index-1.12.xml | 86 + .../cairo-1.16.0/doc/public/xml/api-index-1.14.xml | 19 + .../cairo-1.16.0/doc/public/xml/api-index-1.16.xml | 37 + libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml | 78 + libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml | 50 + libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml | 43 + libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml | 52 + libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml | 7 + .../doc/public/xml/api-index-deprecated.xml | 7 + .../cairo-1.16.0/doc/public/xml/api-index-full.xml | 578 +++++ libs/cairo-1.16.0/doc/public/xml/cairo-device.xml | 585 +++++ .../doc/public/xml/cairo-font-face.xml | 358 +++ .../doc/public/xml/cairo-font-options.xml | 677 ++++++ libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml | 408 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-image.xml | 425 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml | 574 +++++ libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml | 1125 +++++++++ libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml | 1966 +++++++++++++++ libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml | 595 +++++ libs/cairo-1.16.0/doc/public/xml/cairo-png.xml | 309 +++ libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml | 548 +++++ .../doc/public/xml/cairo-quartz-fonts.xml | 129 + libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml | 183 ++ .../doc/public/xml/cairo-raster-source.xml | 550 +++++ .../doc/public/xml/cairo-recording.xml | 204 ++ libs/cairo-1.16.0/doc/public/xml/cairo-region.xml | 793 ++++++ .../doc/public/xml/cairo-scaled-font.xml | 925 +++++++ libs/cairo-1.16.0/doc/public/xml/cairo-script.xml | 349 +++ libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml | 32 + libs/cairo-1.16.0/doc/public/xml/cairo-status.xml | 366 +++ .../doc/public/xml/cairo-surface-observer.xml | 233 ++ libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml | 1525 ++++++++++++ libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml | 425 ++++ libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml | 353 +++ libs/cairo-1.16.0/doc/public/xml/cairo-text.xml | 1090 +++++++++ .../doc/public/xml/cairo-transforms.xml | 389 +++ libs/cairo-1.16.0/doc/public/xml/cairo-types.xml | 161 ++ .../doc/public/xml/cairo-user-fonts.xml | 626 +++++ libs/cairo-1.16.0/doc/public/xml/cairo-version.xml | 278 +++ .../doc/public/xml/cairo-win32-fonts.xml | 323 +++ libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml | 306 +++ libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml | 474 ++++ .../doc/public/xml/cairo-xlib-xrender.xml | 162 ++ libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml | 507 ++++ libs/cairo-1.16.0/doc/public/xml/cairo.xml | 2538 ++++++++++++++++++++ 47 files changed, 21797 insertions(+) create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/api-index-full.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-device.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-image.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-png.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-region.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-script.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-status.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-text.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-types.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-version.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml create mode 100644 libs/cairo-1.16.0/doc/public/xml/cairo.xml (limited to 'libs/cairo-1.16.0/doc/public/xml') diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml new file mode 100644 index 0000000..a94e58d --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.0.xml @@ -0,0 +1,272 @@ + + +]> + +A +cairo_antialias_t, enum in cairo_t +cairo_append_path, function in Paths +cairo_arc, function in Paths +cairo_arc_negative, function in Paths + +B +cairo_bool_t, typedef in Types + +C +cairo_clip, function in cairo_t +cairo_clip_preserve, function in cairo_t +cairo_close_path, function in Paths +cairo_content_t, enum in cairo_surface_t +cairo_copy_page, function in cairo_t +cairo_copy_path, function in Paths +cairo_copy_path_flat, function in Paths +cairo_create, function in cairo_t +cairo_curve_to, function in Paths + +D +cairo_debug_reset_static_data, function in Error handling +cairo_destroy, function in cairo_t +cairo_destroy_func_t, user_function in Types +cairo_device_to_user, function in Transformations +cairo_device_to_user_distance, function in Transformations + +E +cairo_extend_t, enum in cairo_pattern_t + +F +cairo_fill, function in cairo_t +cairo_fill_extents, function in cairo_t +cairo_fill_preserve, function in cairo_t +cairo_fill_rule_t, enum in cairo_t +cairo_filter_t, enum in cairo_pattern_t +cairo_font_extents, function in text +cairo_font_extents_t, struct in cairo_scaled_font_t +cairo_font_face_destroy, function in cairo_font_face_t +cairo_font_face_get_user_data, function in cairo_font_face_t +cairo_font_face_reference, function in cairo_font_face_t +cairo_font_face_set_user_data, function in cairo_font_face_t +cairo_font_face_status, function in cairo_font_face_t +cairo_font_face_t, typedef in cairo_font_face_t +cairo_font_options_copy, function in cairo_font_options_t +cairo_font_options_create, function in cairo_font_options_t +cairo_font_options_destroy, function in cairo_font_options_t +cairo_font_options_equal, function in cairo_font_options_t +cairo_font_options_get_antialias, function in cairo_font_options_t +cairo_font_options_get_hint_metrics, function in cairo_font_options_t +cairo_font_options_get_hint_style, function in cairo_font_options_t +cairo_font_options_get_subpixel_order, function in cairo_font_options_t +cairo_font_options_hash, function in cairo_font_options_t +cairo_font_options_merge, function in cairo_font_options_t +cairo_font_options_set_antialias, function in cairo_font_options_t +cairo_font_options_set_hint_metrics, function in cairo_font_options_t +cairo_font_options_set_hint_style, function in cairo_font_options_t +cairo_font_options_set_subpixel_order, function in cairo_font_options_t +cairo_font_options_status, function in cairo_font_options_t +cairo_font_options_t, typedef in cairo_font_options_t +cairo_font_slant_t, enum in text +cairo_font_weight_t, enum in text +cairo_format_t, enum in Image Surfaces +cairo_ft_font_face_create_for_ft_face, function in FreeType Fonts +cairo_ft_font_face_create_for_pattern, function in FreeType Fonts +cairo_ft_font_options_substitute, function in FreeType Fonts +cairo_ft_scaled_font_lock_face, function in FreeType Fonts +cairo_ft_scaled_font_unlock_face, function in FreeType Fonts + +G +cairo_get_antialias, function in cairo_t +cairo_get_current_point, function in Paths +cairo_get_fill_rule, function in cairo_t +cairo_get_font_face, function in text +cairo_get_font_matrix, function in text +cairo_get_font_options, function in text +cairo_get_line_cap, function in cairo_t +cairo_get_line_join, function in cairo_t +cairo_get_line_width, function in cairo_t +cairo_get_matrix, function in Transformations +cairo_get_miter_limit, function in cairo_t +cairo_get_operator, function in cairo_t +cairo_get_source, function in cairo_t +cairo_get_target, function in cairo_t +cairo_get_tolerance, function in cairo_t +cairo_glyph_extents, function in text +cairo_glyph_path, function in Paths +cairo_glyph_t, struct in text + +H +CAIRO_HAS_FT_FONT, macro in FreeType Fonts +CAIRO_HAS_PNG_FUNCTIONS, macro in PNG Support +CAIRO_HAS_WIN32_SURFACE, macro in Win32 Surfaces +CAIRO_HAS_XLIB_SURFACE, macro in XLib Surfaces +cairo_hint_metrics_t, enum in cairo_font_options_t +cairo_hint_style_t, enum in cairo_font_options_t + +I +cairo_identity_matrix, function in Transformations +cairo_image_surface_create, function in Image Surfaces +cairo_image_surface_create_for_data, function in Image Surfaces +cairo_image_surface_create_from_png, function in PNG Support +cairo_image_surface_create_from_png_stream, function in PNG Support +cairo_image_surface_get_height, function in Image Surfaces +cairo_image_surface_get_width, function in Image Surfaces +cairo_in_fill, function in cairo_t +cairo_in_stroke, function in cairo_t + +L +cairo_line_cap_t, enum in cairo_t +cairo_line_join_t, enum in cairo_t +cairo_line_to, function in Paths + +M +cairo_mask, function in cairo_t +cairo_mask_surface, function in cairo_t +cairo_matrix_init, function in cairo_matrix_t +cairo_matrix_init_identity, function in cairo_matrix_t +cairo_matrix_init_rotate, function in cairo_matrix_t +cairo_matrix_init_scale, function in cairo_matrix_t +cairo_matrix_init_translate, function in cairo_matrix_t +cairo_matrix_invert, function in cairo_matrix_t +cairo_matrix_multiply, function in cairo_matrix_t +cairo_matrix_rotate, function in cairo_matrix_t +cairo_matrix_scale, function in cairo_matrix_t +cairo_matrix_t, struct in cairo_matrix_t +cairo_matrix_transform_distance, function in cairo_matrix_t +cairo_matrix_transform_point, function in cairo_matrix_t +cairo_matrix_translate, function in cairo_matrix_t +cairo_move_to, function in Paths + +N +cairo_new_path, function in Paths + +O +cairo_operator_t, enum in cairo_t + +P +cairo_paint, function in cairo_t +cairo_paint_with_alpha, function in cairo_t +cairo_path_data_t, union in Paths +cairo_path_data_type_t, enum in Paths +cairo_path_destroy, function in Paths +cairo_path_t, struct in Paths +cairo_pattern_add_color_stop_rgb, function in cairo_pattern_t +cairo_pattern_add_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_create_for_surface, function in cairo_pattern_t +cairo_pattern_create_linear, function in cairo_pattern_t +cairo_pattern_create_radial, function in cairo_pattern_t +cairo_pattern_create_rgb, function in cairo_pattern_t +cairo_pattern_create_rgba, function in cairo_pattern_t +cairo_pattern_destroy, function in cairo_pattern_t +cairo_pattern_get_extend, function in cairo_pattern_t +cairo_pattern_get_filter, function in cairo_pattern_t +cairo_pattern_get_matrix, function in cairo_pattern_t +cairo_pattern_reference, function in cairo_pattern_t +cairo_pattern_set_extend, function in cairo_pattern_t +cairo_pattern_set_filter, function in cairo_pattern_t +cairo_pattern_set_matrix, function in cairo_pattern_t +cairo_pattern_status, function in cairo_pattern_t +cairo_pattern_t, typedef in cairo_pattern_t + +R +cairo_read_func_t, user_function in PNG Support +cairo_rectangle, function in Paths +cairo_reference, function in cairo_t +cairo_rel_curve_to, function in Paths +cairo_rel_line_to, function in Paths +cairo_rel_move_to, function in Paths +cairo_reset_clip, function in cairo_t +cairo_restore, function in cairo_t +cairo_rotate, function in Transformations + +S +cairo_save, function in cairo_t +cairo_scale, function in Transformations +cairo_scaled_font_create, function in cairo_scaled_font_t +cairo_scaled_font_destroy, function in cairo_scaled_font_t +cairo_scaled_font_extents, function in cairo_scaled_font_t +cairo_scaled_font_glyph_extents, function in cairo_scaled_font_t +cairo_scaled_font_reference, function in cairo_scaled_font_t +cairo_scaled_font_status, function in cairo_scaled_font_t +cairo_scaled_font_t, typedef in cairo_scaled_font_t +cairo_select_font_face, function in text +cairo_set_antialias, function in cairo_t +cairo_set_dash, function in cairo_t +cairo_set_fill_rule, function in cairo_t +cairo_set_font_face, function in text +cairo_set_font_matrix, function in text +cairo_set_font_options, function in text +cairo_set_font_size, function in text +cairo_set_line_cap, function in cairo_t +cairo_set_line_join, function in cairo_t +cairo_set_line_width, function in cairo_t +cairo_set_matrix, function in Transformations +cairo_set_miter_limit, function in cairo_t +cairo_set_operator, function in cairo_t +cairo_set_source, function in cairo_t +cairo_set_source_rgb, function in cairo_t +cairo_set_source_rgba, function in cairo_t +cairo_set_source_surface, function in cairo_t +cairo_set_tolerance, function in cairo_t +cairo_show_glyphs, function in text +cairo_show_page, function in cairo_t +cairo_show_text, function in text +cairo_status, function in cairo_t +cairo_status_t, enum in Error handling +cairo_status_to_string, function in Error handling +cairo_stroke, function in cairo_t +cairo_stroke_extents, function in cairo_t +cairo_stroke_preserve, function in cairo_t +cairo_subpixel_order_t, enum in cairo_font_options_t +cairo_surface_create_similar, function in cairo_surface_t +cairo_surface_destroy, function in cairo_surface_t +cairo_surface_finish, function in cairo_surface_t +cairo_surface_flush, function in cairo_surface_t +cairo_surface_get_font_options, function in cairo_surface_t +cairo_surface_get_user_data, function in cairo_surface_t +cairo_surface_mark_dirty, function in cairo_surface_t +cairo_surface_mark_dirty_rectangle, function in cairo_surface_t +cairo_surface_reference, function in cairo_surface_t +cairo_surface_set_device_offset, function in cairo_surface_t +cairo_surface_set_user_data, function in cairo_surface_t +cairo_surface_status, function in cairo_surface_t +cairo_surface_t, typedef in cairo_surface_t +cairo_surface_write_to_png, function in PNG Support +cairo_surface_write_to_png_stream, function in PNG Support + +T +cairo_t, typedef in cairo_t +cairo_text_extents, function in text +cairo_text_extents_t, struct in cairo_scaled_font_t +cairo_text_path, function in Paths +cairo_transform, function in Transformations +cairo_translate, function in Transformations + +U +cairo_user_data_key_t, struct in Types +cairo_user_to_device, function in Transformations +cairo_user_to_device_distance, function in Transformations + +V +CAIRO_VERSION, macro in Version Information +cairo_version, function in Version Information +CAIRO_VERSION_ENCODE, macro in Version Information +CAIRO_VERSION_MAJOR, macro in Version Information +CAIRO_VERSION_MICRO, macro in Version Information +CAIRO_VERSION_MINOR, macro in Version Information +cairo_version_string, function in Version Information + +W +cairo_win32_font_face_create_for_logfontw, function in Win32 Fonts +cairo_win32_scaled_font_done_font, function in Win32 Fonts +cairo_win32_scaled_font_get_metrics_factor, function in Win32 Fonts +cairo_win32_scaled_font_select_font, function in Win32 Fonts +cairo_win32_surface_create, function in Win32 Surfaces +cairo_write_func_t, user_function in PNG Support + +X +cairo_xlib_surface_create, function in XLib Surfaces +cairo_xlib_surface_create_for_bitmap, function in XLib Surfaces +cairo_xlib_surface_create_with_xrender_format, function in XLib-XRender Backend +cairo_xlib_surface_set_drawable, function in XLib Surfaces +cairo_xlib_surface_set_size, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml new file mode 100644 index 0000000..039c9d9 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.10.xml @@ -0,0 +1,77 @@ + + +]> + +D +cairo_device_acquire, function in cairo_device_t +cairo_device_destroy, function in cairo_device_t +cairo_device_finish, function in cairo_device_t +cairo_device_flush, function in cairo_device_t +cairo_device_get_reference_count, function in cairo_device_t +cairo_device_get_type, function in cairo_device_t +cairo_device_get_user_data, function in cairo_device_t +cairo_device_reference, function in cairo_device_t +cairo_device_release, function in cairo_device_t +cairo_device_set_user_data, function in cairo_device_t +cairo_device_status, function in cairo_device_t +cairo_device_t, typedef in cairo_device_t +cairo_device_type_t, enum in cairo_device_t + +H +CAIRO_HAS_FC_FONT, macro in FreeType Fonts +CAIRO_HAS_RECORDING_SURFACE, macro in Recording Surfaces + +I +cairo_in_clip, function in cairo_t + +M +CAIRO_MIME_TYPE_JP2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JPEG, macro in cairo_surface_t +CAIRO_MIME_TYPE_PNG, macro in cairo_surface_t +CAIRO_MIME_TYPE_URI, macro in cairo_surface_t + +P +cairo_pdf_get_versions, function in PDF Surfaces +cairo_pdf_surface_restrict_to_version, function in PDF Surfaces +cairo_pdf_version_t, enum in PDF Surfaces +cairo_pdf_version_to_string, function in PDF Surfaces + +R +cairo_recording_surface_create, function in Recording Surfaces +cairo_recording_surface_ink_extents, function in Recording Surfaces +cairo_rectangle_int_t, struct in Types +cairo_region_contains_point, function in Regions +cairo_region_contains_rectangle, function in Regions +cairo_region_copy, function in Regions +cairo_region_create, function in Regions +cairo_region_create_rectangle, function in Regions +cairo_region_create_rectangles, function in Regions +cairo_region_destroy, function in Regions +cairo_region_equal, function in Regions +cairo_region_get_extents, function in Regions +cairo_region_get_rectangle, function in Regions +cairo_region_intersect, function in Regions +cairo_region_intersect_rectangle, function in Regions +cairo_region_is_empty, function in Regions +cairo_region_num_rectangles, function in Regions +cairo_region_overlap_t, enum in Regions +cairo_region_reference, function in Regions +cairo_region_status, function in Regions +cairo_region_subtract, function in Regions +cairo_region_subtract_rectangle, function in Regions +cairo_region_t, typedef in Regions +cairo_region_translate, function in Regions +cairo_region_union, function in Regions +cairo_region_union_rectangle, function in Regions +cairo_region_xor, function in Regions +cairo_region_xor_rectangle, function in Regions + +S +cairo_surface_create_for_rectangle, function in cairo_surface_t +cairo_surface_get_device, function in cairo_surface_t +cairo_surface_get_mime_data, function in cairo_surface_t +cairo_surface_set_mime_data, function in cairo_surface_t + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml new file mode 100644 index 0000000..3ce4db6 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.12.xml @@ -0,0 +1,86 @@ + + +]> + +F +cairo_ft_font_face_get_synthesize, function in FreeType Fonts +cairo_ft_font_face_set_synthesize, function in FreeType Fonts +cairo_ft_font_face_unset_synthesize, function in FreeType Fonts +cairo_ft_synthesize_t, enum in FreeType Fonts + +H +CAIRO_HAS_SCRIPT_SURFACE, macro in Script Surfaces +CAIRO_HAS_XCB_SURFACE, macro in XCB Surfaces + +M +cairo_mesh_pattern_begin_patch, function in cairo_pattern_t +cairo_mesh_pattern_curve_to, function in cairo_pattern_t +cairo_mesh_pattern_end_patch, function in cairo_pattern_t +cairo_mesh_pattern_get_control_point, function in cairo_pattern_t +cairo_mesh_pattern_get_corner_color_rgba, function in cairo_pattern_t +cairo_mesh_pattern_get_patch_count, function in cairo_pattern_t +cairo_mesh_pattern_get_path, function in cairo_pattern_t +cairo_mesh_pattern_line_to, function in cairo_pattern_t +cairo_mesh_pattern_move_to, function in cairo_pattern_t +cairo_mesh_pattern_set_control_point, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgb, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgba, function in cairo_pattern_t +CAIRO_MIME_TYPE_UNIQUE_ID, macro in cairo_surface_t + +P +cairo_pattern_create_mesh, function in cairo_pattern_t +cairo_pattern_create_raster_source, function in Raster Sources + +R +cairo_raster_source_acquire_func_t, user_function in Raster Sources +cairo_raster_source_copy_func_t, user_function in Raster Sources +cairo_raster_source_finish_func_t, user_function in Raster Sources +cairo_raster_source_pattern_get_acquire, function in Raster Sources +cairo_raster_source_pattern_get_callback_data, function in Raster Sources +cairo_raster_source_pattern_get_copy, function in Raster Sources +cairo_raster_source_pattern_get_finish, function in Raster Sources +cairo_raster_source_pattern_get_snapshot, function in Raster Sources +cairo_raster_source_pattern_set_acquire, function in Raster Sources +cairo_raster_source_pattern_set_callback_data, function in Raster Sources +cairo_raster_source_pattern_set_copy, function in Raster Sources +cairo_raster_source_pattern_set_finish, function in Raster Sources +cairo_raster_source_pattern_set_snapshot, function in Raster Sources +cairo_raster_source_release_func_t, user_function in Raster Sources +cairo_raster_source_snapshot_func_t, user_function in Raster Sources +cairo_recording_surface_get_extents, function in Recording Surfaces + +S +cairo_script_create, function in Script Surfaces +cairo_script_create_for_stream, function in Script Surfaces +cairo_script_from_recording_surface, function in Script Surfaces +cairo_script_get_mode, function in Script Surfaces +cairo_script_mode_t, enum in Script Surfaces +cairo_script_set_mode, function in Script Surfaces +cairo_script_surface_create, function in Script Surfaces +cairo_script_surface_create_for_target, function in Script Surfaces +cairo_script_write_comment, function in Script Surfaces +cairo_surface_create_observer, function in cairo-surface-observer +cairo_surface_create_similar_image, function in cairo_surface_t +cairo_surface_map_to_image, function in cairo_surface_t +cairo_surface_observer_mode_t, enum in cairo-surface-observer +cairo_surface_supports_mime_type, function in cairo_surface_t +cairo_surface_unmap_image, function in cairo_surface_t + +X +cairo_xcb_device_debug_cap_xrender_version, function in XCB Surfaces +cairo_xcb_device_debug_cap_xshm_version, function in XCB Surfaces +cairo_xcb_device_debug_get_precision, function in XCB Surfaces +cairo_xcb_device_debug_set_precision, function in XCB Surfaces +cairo_xcb_device_get_connection, function in XCB Surfaces +cairo_xcb_surface_create, function in XCB Surfaces +cairo_xcb_surface_create_for_bitmap, function in XCB Surfaces +cairo_xcb_surface_create_with_xrender_format, function in XCB Surfaces +cairo_xcb_surface_set_drawable, function in XCB Surfaces +cairo_xcb_surface_set_size, function in XCB Surfaces +cairo_xlib_device_debug_cap_xrender_version, function in XLib Surfaces +cairo_xlib_device_debug_get_precision, function in XLib Surfaces +cairo_xlib_device_debug_set_precision, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml new file mode 100644 index 0000000..9b61670 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.14.xml @@ -0,0 +1,19 @@ + + +]> + +M +CAIRO_MIME_TYPE_JBIG2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, macro in cairo_surface_t + +S +cairo_surface_get_device_scale, function in cairo_surface_t +cairo_surface_set_device_scale, function in cairo_surface_t + +W +cairo_win32_surface_create_with_format, function in Win32 Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml new file mode 100644 index 0000000..724a0da --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.16.xml @@ -0,0 +1,37 @@ + + +]> + +F +cairo_font_options_get_variations, function in cairo_font_options_t +cairo_font_options_set_variations, function in cairo_font_options_t + +M +CAIRO_MIME_TYPE_CCITT_FAX, macro in cairo_surface_t +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS_PARAMS, macro in cairo_surface_t + +P +cairo_pdf_metadata_t, enum in PDF Surfaces +cairo_pdf_outline_flags_t, enum in PDF Surfaces +CAIRO_PDF_OUTLINE_ROOT, macro in PDF Surfaces +cairo_pdf_surface_add_outline, function in PDF Surfaces +cairo_pdf_surface_set_metadata, function in PDF Surfaces +cairo_pdf_surface_set_page_label, function in PDF Surfaces +cairo_pdf_surface_set_thumbnail_size, function in PDF Surfaces + +S +cairo_svg_surface_get_document_unit, function in SVG Surfaces +cairo_svg_surface_set_document_unit, function in SVG Surfaces +cairo_svg_unit_t, enum in SVG Surfaces + +T +cairo_tag_begin, function in Tags and Links +CAIRO_TAG_DEST, macro in Tags and Links +cairo_tag_end, function in Tags and Links +CAIRO_TAG_LINK, macro in Tags and Links + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml new file mode 100644 index 0000000..144d870 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.2.xml @@ -0,0 +1,78 @@ + + +]> + +F +cairo_font_face_get_type, function in cairo_font_face_t +cairo_font_type_t, enum in cairo_font_face_t + +G +cairo_get_group_target, function in cairo_t + +H +CAIRO_HAS_PDF_SURFACE, macro in PDF Surfaces +CAIRO_HAS_PS_SURFACE, macro in PostScript Surfaces +CAIRO_HAS_SVG_SURFACE, macro in SVG Surfaces + +I +cairo_image_surface_get_data, function in Image Surfaces +cairo_image_surface_get_format, function in Image Surfaces +cairo_image_surface_get_stride, function in Image Surfaces + +N +cairo_new_sub_path, function in Paths + +P +cairo_pattern_get_type, function in cairo_pattern_t +cairo_pattern_type_t, enum in cairo_pattern_t +cairo_pdf_surface_create, function in PDF Surfaces +cairo_pdf_surface_create_for_stream, function in PDF Surfaces +cairo_pdf_surface_set_size, function in PDF Surfaces +cairo_pop_group, function in cairo_t +cairo_pop_group_to_source, function in cairo_t +cairo_ps_surface_create, function in PostScript Surfaces +cairo_ps_surface_create_for_stream, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_page_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_comment, function in PostScript Surfaces +cairo_ps_surface_set_size, function in PostScript Surfaces +cairo_push_group, function in cairo_t +cairo_push_group_with_content, function in cairo_t + +S +cairo_scaled_font_get_ctm, function in cairo_scaled_font_t +cairo_scaled_font_get_font_face, function in cairo_scaled_font_t +cairo_scaled_font_get_font_matrix, function in cairo_scaled_font_t +cairo_scaled_font_get_font_options, function in cairo_scaled_font_t +cairo_scaled_font_get_type, function in cairo_scaled_font_t +cairo_scaled_font_text_extents, function in cairo_scaled_font_t +cairo_set_scaled_font, function in text +cairo_surface_get_content, function in cairo_surface_t +cairo_surface_get_device_offset, function in cairo_surface_t +cairo_surface_get_type, function in cairo_surface_t +cairo_surface_set_fallback_resolution, function in cairo_surface_t +cairo_surface_type_t, enum in cairo_surface_t +cairo_svg_get_versions, function in SVG Surfaces +cairo_svg_surface_create, function in SVG Surfaces +cairo_svg_surface_create_for_stream, function in SVG Surfaces +cairo_svg_surface_restrict_to_version, function in SVG Surfaces +cairo_svg_version_t, enum in SVG Surfaces +cairo_svg_version_to_string, function in SVG Surfaces + +W +cairo_win32_font_face_create_for_hfont, function in Win32 Fonts +cairo_win32_surface_create_with_dib, function in Win32 Surfaces +cairo_win32_surface_get_dc, function in Win32 Surfaces + +X +cairo_xlib_surface_get_depth, function in XLib Surfaces +cairo_xlib_surface_get_display, function in XLib Surfaces +cairo_xlib_surface_get_drawable, function in XLib Surfaces +cairo_xlib_surface_get_height, function in XLib Surfaces +cairo_xlib_surface_get_screen, function in XLib Surfaces +cairo_xlib_surface_get_visual, function in XLib Surfaces +cairo_xlib_surface_get_width, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml new file mode 100644 index 0000000..32c51f2 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.4.xml @@ -0,0 +1,50 @@ + + +]> + +C +cairo_clip_extents, function in cairo_t +cairo_copy_clip_rectangle_list, function in cairo_t + +F +cairo_font_face_get_reference_count, function in cairo_font_face_t + +G +cairo_get_dash, function in cairo_t +cairo_get_dash_count, function in cairo_t +cairo_get_reference_count, function in cairo_t +cairo_get_scaled_font, function in text +cairo_get_user_data, function in cairo_t + +P +cairo_pattern_get_color_stop_count, function in cairo_pattern_t +cairo_pattern_get_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_get_linear_points, function in cairo_pattern_t +cairo_pattern_get_radial_circles, function in cairo_pattern_t +cairo_pattern_get_reference_count, function in cairo_pattern_t +cairo_pattern_get_rgba, function in cairo_pattern_t +cairo_pattern_get_surface, function in cairo_pattern_t +cairo_pattern_get_user_data, function in cairo_pattern_t +cairo_pattern_set_user_data, function in cairo_pattern_t + +R +cairo_rectangle_list_destroy, function in cairo_t +cairo_rectangle_list_t, struct in cairo_t +cairo_rectangle_t, struct in cairo_t + +S +cairo_scaled_font_get_reference_count, function in cairo_scaled_font_t +cairo_scaled_font_get_user_data, function in cairo_scaled_font_t +cairo_scaled_font_set_user_data, function in cairo_scaled_font_t +cairo_set_user_data, function in cairo_t +cairo_surface_get_reference_count, function in cairo_surface_t + +W +cairo_win32_scaled_font_get_device_to_logical, function in Win32 Fonts +cairo_win32_scaled_font_get_logical_to_device, function in Win32 Fonts +cairo_win32_surface_create_with_ddb, function in Win32 Surfaces +cairo_win32_surface_get_image, function in Win32 Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml new file mode 100644 index 0000000..cd7aa99 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.6.xml @@ -0,0 +1,43 @@ + + +]> + +F +cairo_format_stride_for_width, function in Image Surfaces + +H +cairo_has_current_point, function in Paths +CAIRO_HAS_QUARTZ_FONT, macro in Quartz (CGFont) Fonts +CAIRO_HAS_QUARTZ_SURFACE, macro in Quartz Surfaces +CAIRO_HAS_XLIB_XRENDER_SURFACE, macro in XLib-XRender Backend + +P +cairo_path_extents, function in Paths +cairo_ps_get_levels, function in PostScript Surfaces +cairo_ps_level_t, enum in PostScript Surfaces +cairo_ps_level_to_string, function in PostScript Surfaces +cairo_ps_surface_get_eps, function in PostScript Surfaces +cairo_ps_surface_restrict_to_level, function in PostScript Surfaces +cairo_ps_surface_set_eps, function in PostScript Surfaces + +Q +cairo_quartz_font_face_create_for_atsu_font_id, function in Quartz (CGFont) Fonts +cairo_quartz_font_face_create_for_cgfont, function in Quartz (CGFont) Fonts +cairo_quartz_surface_create, function in Quartz Surfaces +cairo_quartz_surface_create_for_cg_context, function in Quartz Surfaces +cairo_quartz_surface_get_cg_context, function in Quartz Surfaces + +S +cairo_surface_copy_page, function in cairo_surface_t +cairo_surface_show_page, function in cairo_surface_t + +W +cairo_win32_font_face_create_for_logfontw_hfont, function in Win32 Fonts +cairo_win32_printing_surface_create, function in Win32 Surfaces + +X +cairo_xlib_surface_get_xrender_format, function in XLib-XRender Backend + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml new file mode 100644 index 0000000..fc9b05e --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-1.8.xml @@ -0,0 +1,52 @@ + + +]> + +G +cairo_glyph_allocate, function in text +cairo_glyph_free, function in text + +H +CAIRO_HAS_IMAGE_SURFACE, macro in Image Surfaces +CAIRO_HAS_USER_FONT, macro in User Fonts +CAIRO_HAS_WIN32_FONT, macro in Win32 Fonts + +S +cairo_scaled_font_get_scale_matrix, function in cairo_scaled_font_t +cairo_scaled_font_text_to_glyphs, function in cairo_scaled_font_t +cairo_show_text_glyphs, function in text +cairo_surface_get_fallback_resolution, function in cairo_surface_t +cairo_surface_has_show_text_glyphs, function in cairo_surface_t + +T +cairo_text_cluster_allocate, function in text +cairo_text_cluster_flags_t, enum in text +cairo_text_cluster_free, function in text +cairo_text_cluster_t, struct in text +cairo_toy_font_face_create, function in text +cairo_toy_font_face_get_family, function in text +cairo_toy_font_face_get_slant, function in text +cairo_toy_font_face_get_weight, function in text + +U +cairo_user_font_face_create, function in User Fonts +cairo_user_font_face_get_init_func, function in User Fonts +cairo_user_font_face_get_render_glyph_func, function in User Fonts +cairo_user_font_face_get_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_get_unicode_to_glyph_func, function in User Fonts +cairo_user_font_face_set_init_func, function in User Fonts +cairo_user_font_face_set_render_glyph_func, function in User Fonts +cairo_user_font_face_set_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_set_unicode_to_glyph_func, function in User Fonts +cairo_user_scaled_font_init_func_t, user_function in User Fonts +cairo_user_scaled_font_render_glyph_func_t, user_function in User Fonts +cairo_user_scaled_font_text_to_glyphs_func_t, user_function in User Fonts +cairo_user_scaled_font_unicode_to_glyph_func_t, user_function in User Fonts + +V +CAIRO_VERSION_STRING, macro in Version Information +CAIRO_VERSION_STRINGIZE, macro in Version Information + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml new file mode 100644 index 0000000..41821f8 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-TBD.xml @@ -0,0 +1,7 @@ + + +]> + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml new file mode 100644 index 0000000..4371747 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-deprecated.xml @@ -0,0 +1,7 @@ + + +]> + + diff --git a/libs/cairo-1.16.0/doc/public/xml/api-index-full.xml b/libs/cairo-1.16.0/doc/public/xml/api-index-full.xml new file mode 100644 index 0000000..392867c --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/api-index-full.xml @@ -0,0 +1,578 @@ + + +]> + +A +cairo_antialias_t, enum in cairo_t +cairo_append_path, function in Paths +cairo_arc, function in Paths +cairo_arc_negative, function in Paths + +B +cairo_bool_t, typedef in Types + +C +cairo_clip, function in cairo_t +cairo_clip_extents, function in cairo_t +cairo_clip_preserve, function in cairo_t +cairo_close_path, function in Paths +cairo_content_t, enum in cairo_surface_t +cairo_copy_clip_rectangle_list, function in cairo_t +cairo_copy_page, function in cairo_t +cairo_copy_path, function in Paths +cairo_copy_path_flat, function in Paths +cairo_create, function in cairo_t +cairo_curve_to, function in Paths + +D +cairo_debug_reset_static_data, function in Error handling +cairo_destroy, function in cairo_t +cairo_destroy_func_t, user_function in Types +cairo_device_acquire, function in cairo_device_t +cairo_device_destroy, function in cairo_device_t +cairo_device_finish, function in cairo_device_t +cairo_device_flush, function in cairo_device_t +cairo_device_get_reference_count, function in cairo_device_t +cairo_device_get_type, function in cairo_device_t +cairo_device_get_user_data, function in cairo_device_t +cairo_device_observer_elapsed, function in cairo_device_t +cairo_device_observer_fill_elapsed, function in cairo_device_t +cairo_device_observer_glyphs_elapsed, function in cairo_device_t +cairo_device_observer_mask_elapsed, function in cairo_device_t +cairo_device_observer_paint_elapsed, function in cairo_device_t +cairo_device_observer_print, function in cairo_device_t +cairo_device_observer_stroke_elapsed, function in cairo_device_t +cairo_device_reference, function in cairo_device_t +cairo_device_release, function in cairo_device_t +cairo_device_set_user_data, function in cairo_device_t +cairo_device_status, function in cairo_device_t +cairo_device_t, typedef in cairo_device_t +cairo_device_to_user, function in Transformations +cairo_device_to_user_distance, function in Transformations +cairo_device_type_t, enum in cairo_device_t + +E +cairo_extend_t, enum in cairo_pattern_t + +F +cairo_fill, function in cairo_t +cairo_fill_extents, function in cairo_t +cairo_fill_preserve, function in cairo_t +cairo_fill_rule_t, enum in cairo_t +cairo_filter_t, enum in cairo_pattern_t +cairo_font_extents, function in text +cairo_font_extents_t, struct in cairo_scaled_font_t +cairo_font_face_destroy, function in cairo_font_face_t +cairo_font_face_get_reference_count, function in cairo_font_face_t +cairo_font_face_get_type, function in cairo_font_face_t +cairo_font_face_get_user_data, function in cairo_font_face_t +cairo_font_face_reference, function in cairo_font_face_t +cairo_font_face_set_user_data, function in cairo_font_face_t +cairo_font_face_status, function in cairo_font_face_t +cairo_font_face_t, typedef in cairo_font_face_t +cairo_font_options_copy, function in cairo_font_options_t +cairo_font_options_create, function in cairo_font_options_t +cairo_font_options_destroy, function in cairo_font_options_t +cairo_font_options_equal, function in cairo_font_options_t +cairo_font_options_get_antialias, function in cairo_font_options_t +cairo_font_options_get_hint_metrics, function in cairo_font_options_t +cairo_font_options_get_hint_style, function in cairo_font_options_t +cairo_font_options_get_subpixel_order, function in cairo_font_options_t +cairo_font_options_get_variations, function in cairo_font_options_t +cairo_font_options_hash, function in cairo_font_options_t +cairo_font_options_merge, function in cairo_font_options_t +cairo_font_options_set_antialias, function in cairo_font_options_t +cairo_font_options_set_hint_metrics, function in cairo_font_options_t +cairo_font_options_set_hint_style, function in cairo_font_options_t +cairo_font_options_set_subpixel_order, function in cairo_font_options_t +cairo_font_options_set_variations, function in cairo_font_options_t +cairo_font_options_status, function in cairo_font_options_t +cairo_font_options_t, typedef in cairo_font_options_t +cairo_font_slant_t, enum in text +cairo_font_type_t, enum in cairo_font_face_t +cairo_font_weight_t, enum in text +cairo_format_stride_for_width, function in Image Surfaces +cairo_format_t, enum in Image Surfaces +cairo_ft_font_face_create_for_ft_face, function in FreeType Fonts +cairo_ft_font_face_create_for_pattern, function in FreeType Fonts +cairo_ft_font_face_get_synthesize, function in FreeType Fonts +cairo_ft_font_face_set_synthesize, function in FreeType Fonts +cairo_ft_font_face_unset_synthesize, function in FreeType Fonts +cairo_ft_font_options_substitute, function in FreeType Fonts +cairo_ft_scaled_font_lock_face, function in FreeType Fonts +cairo_ft_scaled_font_unlock_face, function in FreeType Fonts +cairo_ft_synthesize_t, enum in FreeType Fonts + +G +cairo_get_antialias, function in cairo_t +cairo_get_current_point, function in Paths +cairo_get_dash, function in cairo_t +cairo_get_dash_count, function in cairo_t +cairo_get_fill_rule, function in cairo_t +cairo_get_font_face, function in text +cairo_get_font_matrix, function in text +cairo_get_font_options, function in text +cairo_get_group_target, function in cairo_t +cairo_get_line_cap, function in cairo_t +cairo_get_line_join, function in cairo_t +cairo_get_line_width, function in cairo_t +cairo_get_matrix, function in Transformations +cairo_get_miter_limit, function in cairo_t +cairo_get_operator, function in cairo_t +cairo_get_reference_count, function in cairo_t +cairo_get_scaled_font, function in text +cairo_get_source, function in cairo_t +cairo_get_target, function in cairo_t +cairo_get_tolerance, function in cairo_t +cairo_get_user_data, function in cairo_t +cairo_glyph_allocate, function in text +cairo_glyph_extents, function in text +cairo_glyph_free, function in text +cairo_glyph_path, function in Paths +cairo_glyph_t, struct in text + +H +cairo_has_current_point, function in Paths +CAIRO_HAS_FC_FONT, macro in FreeType Fonts +CAIRO_HAS_FT_FONT, macro in FreeType Fonts +CAIRO_HAS_IMAGE_SURFACE, macro in Image Surfaces +CAIRO_HAS_MIME_SURFACE, macro in cairo_surface_t +CAIRO_HAS_OBSERVER_SURFACE, macro in cairo-surface-observer +CAIRO_HAS_PDF_SURFACE, macro in PDF Surfaces +CAIRO_HAS_PNG_FUNCTIONS, macro in PNG Support +CAIRO_HAS_PS_SURFACE, macro in PostScript Surfaces +CAIRO_HAS_QUARTZ_FONT, macro in Quartz (CGFont) Fonts +CAIRO_HAS_QUARTZ_SURFACE, macro in Quartz Surfaces +CAIRO_HAS_RECORDING_SURFACE, macro in Recording Surfaces +CAIRO_HAS_SCRIPT_SURFACE, macro in Script Surfaces +CAIRO_HAS_SVG_SURFACE, macro in SVG Surfaces +CAIRO_HAS_USER_FONT, macro in User Fonts +CAIRO_HAS_WIN32_FONT, macro in Win32 Fonts +CAIRO_HAS_WIN32_SURFACE, macro in Win32 Surfaces +CAIRO_HAS_XCB_SHM_FUNCTIONS, macro in XCB Surfaces +CAIRO_HAS_XCB_SURFACE, macro in XCB Surfaces +CAIRO_HAS_XLIB_SURFACE, macro in XLib Surfaces +CAIRO_HAS_XLIB_XRENDER_SURFACE, macro in XLib-XRender Backend +cairo_hint_metrics_t, enum in cairo_font_options_t +cairo_hint_style_t, enum in cairo_font_options_t + +I +cairo_identity_matrix, function in Transformations +cairo_image_surface_create, function in Image Surfaces +cairo_image_surface_create_for_data, function in Image Surfaces +cairo_image_surface_create_from_png, function in PNG Support +cairo_image_surface_create_from_png_stream, function in PNG Support +cairo_image_surface_get_data, function in Image Surfaces +cairo_image_surface_get_format, function in Image Surfaces +cairo_image_surface_get_height, function in Image Surfaces +cairo_image_surface_get_stride, function in Image Surfaces +cairo_image_surface_get_width, function in Image Surfaces +cairo_in_clip, function in cairo_t +cairo_in_fill, function in cairo_t +cairo_in_stroke, function in cairo_t + +L +cairo_line_cap_t, enum in cairo_t +cairo_line_join_t, enum in cairo_t +cairo_line_to, function in Paths + +M +cairo_mask, function in cairo_t +cairo_mask_surface, function in cairo_t +cairo_matrix_init, function in cairo_matrix_t +cairo_matrix_init_identity, function in cairo_matrix_t +cairo_matrix_init_rotate, function in cairo_matrix_t +cairo_matrix_init_scale, function in cairo_matrix_t +cairo_matrix_init_translate, function in cairo_matrix_t +cairo_matrix_invert, function in cairo_matrix_t +cairo_matrix_multiply, function in cairo_matrix_t +cairo_matrix_rotate, function in cairo_matrix_t +cairo_matrix_scale, function in cairo_matrix_t +cairo_matrix_t, struct in cairo_matrix_t +cairo_matrix_transform_distance, function in cairo_matrix_t +cairo_matrix_transform_point, function in cairo_matrix_t +cairo_matrix_translate, function in cairo_matrix_t +cairo_mesh_pattern_begin_patch, function in cairo_pattern_t +cairo_mesh_pattern_curve_to, function in cairo_pattern_t +cairo_mesh_pattern_end_patch, function in cairo_pattern_t +cairo_mesh_pattern_get_control_point, function in cairo_pattern_t +cairo_mesh_pattern_get_corner_color_rgba, function in cairo_pattern_t +cairo_mesh_pattern_get_patch_count, function in cairo_pattern_t +cairo_mesh_pattern_get_path, function in cairo_pattern_t +cairo_mesh_pattern_line_to, function in cairo_pattern_t +cairo_mesh_pattern_move_to, function in cairo_pattern_t +cairo_mesh_pattern_set_control_point, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgb, function in cairo_pattern_t +cairo_mesh_pattern_set_corner_color_rgba, function in cairo_pattern_t +CAIRO_MIME_TYPE_CCITT_FAX, macro in cairo_surface_t +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS, macro in cairo_surface_t +CAIRO_MIME_TYPE_EPS_PARAMS, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL, macro in cairo_surface_t +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, macro in cairo_surface_t +CAIRO_MIME_TYPE_JP2, macro in cairo_surface_t +CAIRO_MIME_TYPE_JPEG, macro in cairo_surface_t +CAIRO_MIME_TYPE_PNG, macro in cairo_surface_t +CAIRO_MIME_TYPE_UNIQUE_ID, macro in cairo_surface_t +CAIRO_MIME_TYPE_URI, macro in cairo_surface_t +cairo_move_to, function in Paths + +N +cairo_new_path, function in Paths +cairo_new_sub_path, function in Paths + +O +cairo_operator_t, enum in cairo_t + +P +cairo_paint, function in cairo_t +cairo_paint_with_alpha, function in cairo_t +cairo_path_data_t, union in Paths +cairo_path_data_type_t, enum in Paths +cairo_path_destroy, function in Paths +cairo_path_extents, function in Paths +cairo_path_t, struct in Paths +cairo_pattern_add_color_stop_rgb, function in cairo_pattern_t +cairo_pattern_add_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_create_for_surface, function in cairo_pattern_t +cairo_pattern_create_linear, function in cairo_pattern_t +cairo_pattern_create_mesh, function in cairo_pattern_t +cairo_pattern_create_radial, function in cairo_pattern_t +cairo_pattern_create_raster_source, function in Raster Sources +cairo_pattern_create_rgb, function in cairo_pattern_t +cairo_pattern_create_rgba, function in cairo_pattern_t +cairo_pattern_destroy, function in cairo_pattern_t +cairo_pattern_get_color_stop_count, function in cairo_pattern_t +cairo_pattern_get_color_stop_rgba, function in cairo_pattern_t +cairo_pattern_get_extend, function in cairo_pattern_t +cairo_pattern_get_filter, function in cairo_pattern_t +cairo_pattern_get_linear_points, function in cairo_pattern_t +cairo_pattern_get_matrix, function in cairo_pattern_t +cairo_pattern_get_radial_circles, function in cairo_pattern_t +cairo_pattern_get_reference_count, function in cairo_pattern_t +cairo_pattern_get_rgba, function in cairo_pattern_t +cairo_pattern_get_surface, function in cairo_pattern_t +cairo_pattern_get_type, function in cairo_pattern_t +cairo_pattern_get_user_data, function in cairo_pattern_t +cairo_pattern_reference, function in cairo_pattern_t +cairo_pattern_set_extend, function in cairo_pattern_t +cairo_pattern_set_filter, function in cairo_pattern_t +cairo_pattern_set_matrix, function in cairo_pattern_t +cairo_pattern_set_user_data, function in cairo_pattern_t +cairo_pattern_status, function in cairo_pattern_t +cairo_pattern_t, typedef in cairo_pattern_t +cairo_pattern_type_t, enum in cairo_pattern_t +cairo_pdf_get_versions, function in PDF Surfaces +cairo_pdf_metadata_t, enum in PDF Surfaces +cairo_pdf_outline_flags_t, enum in PDF Surfaces +CAIRO_PDF_OUTLINE_ROOT, macro in PDF Surfaces +cairo_pdf_surface_add_outline, function in PDF Surfaces +cairo_pdf_surface_create, function in PDF Surfaces +cairo_pdf_surface_create_for_stream, function in PDF Surfaces +cairo_pdf_surface_restrict_to_version, function in PDF Surfaces +cairo_pdf_surface_set_metadata, function in PDF Surfaces +cairo_pdf_surface_set_page_label, function in PDF Surfaces +cairo_pdf_surface_set_size, function in PDF Surfaces +cairo_pdf_surface_set_thumbnail_size, function in PDF Surfaces +cairo_pdf_version_t, enum in PDF Surfaces +cairo_pdf_version_to_string, function in PDF Surfaces +cairo_pop_group, function in cairo_t +cairo_pop_group_to_source, function in cairo_t +cairo_ps_get_levels, function in PostScript Surfaces +cairo_ps_level_t, enum in PostScript Surfaces +cairo_ps_level_to_string, function in PostScript Surfaces +cairo_ps_surface_create, function in PostScript Surfaces +cairo_ps_surface_create_for_stream, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_page_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_begin_setup, function in PostScript Surfaces +cairo_ps_surface_dsc_comment, function in PostScript Surfaces +cairo_ps_surface_get_eps, function in PostScript Surfaces +cairo_ps_surface_restrict_to_level, function in PostScript Surfaces +cairo_ps_surface_set_eps, function in PostScript Surfaces +cairo_ps_surface_set_size, function in PostScript Surfaces +cairo_push_group, function in cairo_t +cairo_push_group_with_content, function in cairo_t + +Q +cairo_quartz_font_face_create_for_atsu_font_id, function in Quartz (CGFont) Fonts +cairo_quartz_font_face_create_for_cgfont, function in Quartz (CGFont) Fonts +cairo_quartz_surface_create, function in Quartz Surfaces +cairo_quartz_surface_create_for_cg_context, function in Quartz Surfaces +cairo_quartz_surface_get_cg_context, function in Quartz Surfaces + +R +cairo_raster_source_acquire_func_t, user_function in Raster Sources +cairo_raster_source_copy_func_t, user_function in Raster Sources +cairo_raster_source_finish_func_t, user_function in Raster Sources +cairo_raster_source_pattern_get_acquire, function in Raster Sources +cairo_raster_source_pattern_get_callback_data, function in Raster Sources +cairo_raster_source_pattern_get_copy, function in Raster Sources +cairo_raster_source_pattern_get_finish, function in Raster Sources +cairo_raster_source_pattern_get_snapshot, function in Raster Sources +cairo_raster_source_pattern_set_acquire, function in Raster Sources +cairo_raster_source_pattern_set_callback_data, function in Raster Sources +cairo_raster_source_pattern_set_copy, function in Raster Sources +cairo_raster_source_pattern_set_finish, function in Raster Sources +cairo_raster_source_pattern_set_snapshot, function in Raster Sources +cairo_raster_source_release_func_t, user_function in Raster Sources +cairo_raster_source_snapshot_func_t, user_function in Raster Sources +cairo_read_func_t, user_function in PNG Support +cairo_recording_surface_create, function in Recording Surfaces +cairo_recording_surface_get_extents, function in Recording Surfaces +cairo_recording_surface_ink_extents, function in Recording Surfaces +cairo_rectangle, function in Paths +cairo_rectangle_int_t, struct in Types +cairo_rectangle_list_destroy, function in cairo_t +cairo_rectangle_list_t, struct in cairo_t +cairo_rectangle_t, struct in cairo_t +cairo_reference, function in cairo_t +cairo_region_contains_point, function in Regions +cairo_region_contains_rectangle, function in Regions +cairo_region_copy, function in Regions +cairo_region_create, function in Regions +cairo_region_create_rectangle, function in Regions +cairo_region_create_rectangles, function in Regions +cairo_region_destroy, function in Regions +cairo_region_equal, function in Regions +cairo_region_get_extents, function in Regions +cairo_region_get_rectangle, function in Regions +cairo_region_intersect, function in Regions +cairo_region_intersect_rectangle, function in Regions +cairo_region_is_empty, function in Regions +cairo_region_num_rectangles, function in Regions +cairo_region_overlap_t, enum in Regions +cairo_region_reference, function in Regions +cairo_region_status, function in Regions +cairo_region_subtract, function in Regions +cairo_region_subtract_rectangle, function in Regions +cairo_region_t, typedef in Regions +cairo_region_translate, function in Regions +cairo_region_union, function in Regions +cairo_region_union_rectangle, function in Regions +cairo_region_xor, function in Regions +cairo_region_xor_rectangle, function in Regions +cairo_rel_curve_to, function in Paths +cairo_rel_line_to, function in Paths +cairo_rel_move_to, function in Paths +cairo_reset_clip, function in cairo_t +cairo_restore, function in cairo_t +cairo_rotate, function in Transformations + +S +cairo_save, function in cairo_t +cairo_scale, function in Transformations +cairo_scaled_font_create, function in cairo_scaled_font_t +cairo_scaled_font_destroy, function in cairo_scaled_font_t +cairo_scaled_font_extents, function in cairo_scaled_font_t +cairo_scaled_font_get_ctm, function in cairo_scaled_font_t +cairo_scaled_font_get_font_face, function in cairo_scaled_font_t +cairo_scaled_font_get_font_matrix, function in cairo_scaled_font_t +cairo_scaled_font_get_font_options, function in cairo_scaled_font_t +cairo_scaled_font_get_reference_count, function in cairo_scaled_font_t +cairo_scaled_font_get_scale_matrix, function in cairo_scaled_font_t +cairo_scaled_font_get_type, function in cairo_scaled_font_t +cairo_scaled_font_get_user_data, function in cairo_scaled_font_t +cairo_scaled_font_glyph_extents, function in cairo_scaled_font_t +cairo_scaled_font_reference, function in cairo_scaled_font_t +cairo_scaled_font_set_user_data, function in cairo_scaled_font_t +cairo_scaled_font_status, function in cairo_scaled_font_t +cairo_scaled_font_t, typedef in cairo_scaled_font_t +cairo_scaled_font_text_extents, function in cairo_scaled_font_t +cairo_scaled_font_text_to_glyphs, function in cairo_scaled_font_t +cairo_script_create, function in Script Surfaces +cairo_script_create_for_stream, function in Script Surfaces +cairo_script_from_recording_surface, function in Script Surfaces +cairo_script_get_mode, function in Script Surfaces +cairo_script_mode_t, enum in Script Surfaces +cairo_script_set_mode, function in Script Surfaces +cairo_script_surface_create, function in Script Surfaces +cairo_script_surface_create_for_target, function in Script Surfaces +cairo_script_write_comment, function in Script Surfaces +cairo_select_font_face, function in text +cairo_set_antialias, function in cairo_t +cairo_set_dash, function in cairo_t +cairo_set_fill_rule, function in cairo_t +cairo_set_font_face, function in text +cairo_set_font_matrix, function in text +cairo_set_font_options, function in text +cairo_set_font_size, function in text +cairo_set_line_cap, function in cairo_t +cairo_set_line_join, function in cairo_t +cairo_set_line_width, function in cairo_t +cairo_set_matrix, function in Transformations +cairo_set_miter_limit, function in cairo_t +cairo_set_operator, function in cairo_t +cairo_set_scaled_font, function in text +cairo_set_source, function in cairo_t +cairo_set_source_rgb, function in cairo_t +cairo_set_source_rgba, function in cairo_t +cairo_set_source_surface, function in cairo_t +cairo_set_tolerance, function in cairo_t +cairo_set_user_data, function in cairo_t +cairo_show_glyphs, function in text +cairo_show_page, function in cairo_t +cairo_show_text, function in text +cairo_show_text_glyphs, function in text +cairo_status, function in cairo_t +cairo_status_t, enum in Error handling +cairo_status_to_string, function in Error handling +cairo_stroke, function in cairo_t +cairo_stroke_extents, function in cairo_t +cairo_stroke_preserve, function in cairo_t +cairo_subpixel_order_t, enum in cairo_font_options_t +cairo_surface_copy_page, function in cairo_surface_t +cairo_surface_create_for_rectangle, function in cairo_surface_t +cairo_surface_create_observer, function in cairo-surface-observer +cairo_surface_create_similar, function in cairo_surface_t +cairo_surface_create_similar_image, function in cairo_surface_t +cairo_surface_destroy, function in cairo_surface_t +cairo_surface_finish, function in cairo_surface_t +cairo_surface_flush, function in cairo_surface_t +cairo_surface_get_content, function in cairo_surface_t +cairo_surface_get_device, function in cairo_surface_t +cairo_surface_get_device_offset, function in cairo_surface_t +cairo_surface_get_device_scale, function in cairo_surface_t +cairo_surface_get_fallback_resolution, function in cairo_surface_t +cairo_surface_get_font_options, function in cairo_surface_t +cairo_surface_get_mime_data, function in cairo_surface_t +cairo_surface_get_reference_count, function in cairo_surface_t +cairo_surface_get_type, function in cairo_surface_t +cairo_surface_get_user_data, function in cairo_surface_t +cairo_surface_has_show_text_glyphs, function in cairo_surface_t +cairo_surface_map_to_image, function in cairo_surface_t +cairo_surface_mark_dirty, function in cairo_surface_t +cairo_surface_mark_dirty_rectangle, function in cairo_surface_t +cairo_surface_observer_add_fill_callback, function in cairo-surface-observer +cairo_surface_observer_add_finish_callback, function in cairo-surface-observer +cairo_surface_observer_add_flush_callback, function in cairo-surface-observer +cairo_surface_observer_add_glyphs_callback, function in cairo-surface-observer +cairo_surface_observer_add_mask_callback, function in cairo-surface-observer +cairo_surface_observer_add_paint_callback, function in cairo-surface-observer +cairo_surface_observer_add_stroke_callback, function in cairo-surface-observer +cairo_surface_observer_callback_t, user_function in cairo-surface-observer +cairo_surface_observer_elapsed, function in cairo-surface-observer +cairo_surface_observer_mode_t, enum in cairo-surface-observer +cairo_surface_observer_print, function in cairo-surface-observer +cairo_surface_reference, function in cairo_surface_t +cairo_surface_set_device_offset, function in cairo_surface_t +cairo_surface_set_device_scale, function in cairo_surface_t +cairo_surface_set_fallback_resolution, function in cairo_surface_t +cairo_surface_set_mime_data, function in cairo_surface_t +cairo_surface_set_user_data, function in cairo_surface_t +cairo_surface_show_page, function in cairo_surface_t +cairo_surface_status, function in cairo_surface_t +cairo_surface_supports_mime_type, function in cairo_surface_t +cairo_surface_t, typedef in cairo_surface_t +cairo_surface_type_t, enum in cairo_surface_t +cairo_surface_unmap_image, function in cairo_surface_t +cairo_surface_write_to_png, function in PNG Support +cairo_surface_write_to_png_stream, function in PNG Support +cairo_svg_get_versions, function in SVG Surfaces +cairo_svg_surface_create, function in SVG Surfaces +cairo_svg_surface_create_for_stream, function in SVG Surfaces +cairo_svg_surface_get_document_unit, function in SVG Surfaces +cairo_svg_surface_restrict_to_version, function in SVG Surfaces +cairo_svg_surface_set_document_unit, function in SVG Surfaces +cairo_svg_unit_t, enum in SVG Surfaces +cairo_svg_version_t, enum in SVG Surfaces +cairo_svg_version_to_string, function in SVG Surfaces + +T +cairo_t, typedef in cairo_t +cairo_tag_begin, function in Tags and Links +CAIRO_TAG_DEST, macro in Tags and Links +cairo_tag_end, function in Tags and Links +CAIRO_TAG_LINK, macro in Tags and Links +cairo_text_cluster_allocate, function in text +cairo_text_cluster_flags_t, enum in text +cairo_text_cluster_free, function in text +cairo_text_cluster_t, struct in text +cairo_text_extents, function in text +cairo_text_extents_t, struct in cairo_scaled_font_t +cairo_text_path, function in Paths +cairo_toy_font_face_create, function in text +cairo_toy_font_face_get_family, function in text +cairo_toy_font_face_get_slant, function in text +cairo_toy_font_face_get_weight, function in text +cairo_transform, function in Transformations +cairo_translate, function in Transformations + +U +cairo_user_data_key_t, struct in Types +cairo_user_font_face_create, function in User Fonts +cairo_user_font_face_get_init_func, function in User Fonts +cairo_user_font_face_get_render_glyph_func, function in User Fonts +cairo_user_font_face_get_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_get_unicode_to_glyph_func, function in User Fonts +cairo_user_font_face_set_init_func, function in User Fonts +cairo_user_font_face_set_render_glyph_func, function in User Fonts +cairo_user_font_face_set_text_to_glyphs_func, function in User Fonts +cairo_user_font_face_set_unicode_to_glyph_func, function in User Fonts +cairo_user_scaled_font_init_func_t, user_function in User Fonts +cairo_user_scaled_font_render_glyph_func_t, user_function in User Fonts +cairo_user_scaled_font_text_to_glyphs_func_t, user_function in User Fonts +cairo_user_scaled_font_unicode_to_glyph_func_t, user_function in User Fonts +cairo_user_to_device, function in Transformations +cairo_user_to_device_distance, function in Transformations + +V +CAIRO_VERSION, macro in Version Information +cairo_version, function in Version Information +CAIRO_VERSION_ENCODE, macro in Version Information +CAIRO_VERSION_MAJOR, macro in Version Information +CAIRO_VERSION_MICRO, macro in Version Information +CAIRO_VERSION_MINOR, macro in Version Information +CAIRO_VERSION_STRING, macro in Version Information +cairo_version_string, function in Version Information +CAIRO_VERSION_STRINGIZE, macro in Version Information + +W +cairo_win32_font_face_create_for_hfont, function in Win32 Fonts +cairo_win32_font_face_create_for_logfontw, function in Win32 Fonts +cairo_win32_font_face_create_for_logfontw_hfont, function in Win32 Fonts +cairo_win32_printing_surface_create, function in Win32 Surfaces +cairo_win32_scaled_font_done_font, function in Win32 Fonts +cairo_win32_scaled_font_get_device_to_logical, function in Win32 Fonts +cairo_win32_scaled_font_get_logical_to_device, function in Win32 Fonts +cairo_win32_scaled_font_get_metrics_factor, function in Win32 Fonts +cairo_win32_scaled_font_select_font, function in Win32 Fonts +cairo_win32_surface_create, function in Win32 Surfaces +cairo_win32_surface_create_with_ddb, function in Win32 Surfaces +cairo_win32_surface_create_with_dib, function in Win32 Surfaces +cairo_win32_surface_create_with_format, function in Win32 Surfaces +cairo_win32_surface_get_dc, function in Win32 Surfaces +cairo_win32_surface_get_image, function in Win32 Surfaces +cairo_write_func_t, user_function in PNG Support + +X +cairo_xcb_device_debug_cap_xrender_version, function in XCB Surfaces +cairo_xcb_device_debug_cap_xshm_version, function in XCB Surfaces +cairo_xcb_device_debug_get_precision, function in XCB Surfaces +cairo_xcb_device_debug_set_precision, function in XCB Surfaces +cairo_xcb_device_get_connection, function in XCB Surfaces +cairo_xcb_surface_create, function in XCB Surfaces +cairo_xcb_surface_create_for_bitmap, function in XCB Surfaces +cairo_xcb_surface_create_with_xrender_format, function in XCB Surfaces +cairo_xcb_surface_set_drawable, function in XCB Surfaces +cairo_xcb_surface_set_size, function in XCB Surfaces +cairo_xlib_device_debug_cap_xrender_version, function in XLib Surfaces +cairo_xlib_device_debug_get_precision, function in XLib Surfaces +cairo_xlib_device_debug_set_precision, function in XLib Surfaces +cairo_xlib_surface_create, function in XLib Surfaces +cairo_xlib_surface_create_for_bitmap, function in XLib Surfaces +cairo_xlib_surface_create_with_xrender_format, function in XLib-XRender Backend +cairo_xlib_surface_get_depth, function in XLib Surfaces +cairo_xlib_surface_get_display, function in XLib Surfaces +cairo_xlib_surface_get_drawable, function in XLib Surfaces +cairo_xlib_surface_get_height, function in XLib Surfaces +cairo_xlib_surface_get_screen, function in XLib Surfaces +cairo_xlib_surface_get_visual, function in XLib Surfaces +cairo_xlib_surface_get_width, function in XLib Surfaces +cairo_xlib_surface_get_xrender_format, function in XLib-XRender Backend +cairo_xlib_surface_set_drawable, function in XLib Surfaces +cairo_xlib_surface_set_size, function in XLib Surfaces + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-device.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-device.xml new file mode 100644 index 0000000..b3f77eb --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-device.xml @@ -0,0 +1,585 @@ + + +]> + + +cairo_device_t +3 +CAIRO Library + + +cairo_device_t +interface to underlying rendering system + + + +Functions + + + + + +cairo_device_t * +cairo_device_reference () +void +cairo_device_destroy () +cairo_status_t +cairo_device_status () +void +cairo_device_finish () +void +cairo_device_flush () +cairo_device_type_t +cairo_device_get_type () +unsigned int +cairo_device_get_reference_count () +cairo_status_t +cairo_device_set_user_data () +void * +cairo_device_get_user_data () +cairo_status_t +cairo_device_acquire () +void +cairo_device_release () +double +cairo_device_observer_elapsed () +double +cairo_device_observer_fill_elapsed () +double +cairo_device_observer_glyphs_elapsed () +double +cairo_device_observer_mask_elapsed () +double +cairo_device_observer_paint_elapsed () +cairo_status_t +cairo_device_observer_print () +double +cairo_device_observer_stroke_elapsed () + + + + + + +Types and Values + + + + + +typedefcairo_device_t +enumcairo_device_type_t + + + + + + + + +Description +Devices are the abstraction Cairo employs for the rendering system +used by a cairo_surface_t. You can get the device of a surface using +cairo_surface_get_device(). +Devices are created using custom functions specific to the rendering +system you want to use. See the documentation for the surface types +for those functions. +An important function that devices fulfill is sharing access to the +rendering system between Cairo and your application. If you want to +access a device directly that you used to draw to with Cairo, you must +first call cairo_device_flush() to ensure that Cairo finishes all +operations on the device and resets it to a clean state. +Cairo also provides the functions cairo_device_acquire() and +cairo_device_release() to synchronize access to the rendering system +in a multithreaded environment. This is done internally, but can also +be used by applications. +Putting this all together, a function that works with devices should +look something like this: + +void +my_device_modifying_function (cairo_device_t *device) +{ + cairo_status_t status; + + // Ensure the device is properly reset + cairo_device_flush (device); + // Try to acquire the device + status = cairo_device_acquire (device); + if (status != CAIRO_STATUS_SUCCESS) { + printf ("Failed to acquire the device: %s\n", cairo_status_to_string (status)); + return; + } + + // Do the custom operations on the device here. + // But do not call any Cairo functions that might acquire devices. + + // Release the device when done. + cairo_device_release (device); +} + +Please refer to the documentation of each backend for +additional usage requirements, guarantees provided, and +interactions with existing surface API of the device functions for +surfaces of that type. + + + + +Functions + +cairo_device_reference () +cairo_device_reference +cairo_device_t * +cairo_device_reference (cairo_device_t *device); +Increases the reference count on device + by one. This prevents +device + from being destroyed until a matching call to +cairo_device_destroy() is made. +Use cairo_device_get_reference_count() to get the number of references +to a cairo_device_t. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + the referenced cairo_device_t. +Since: 1.10 + +cairo_device_destroy () +cairo_device_destroy +void +cairo_device_destroy (cairo_device_t *device); +Decreases the reference count on device + by one. If the result is +zero, then device + and all associated resources are freed. See +cairo_device_reference(). +This function may acquire devices if the last reference was dropped. + +Parameters + + + + + + +device +a cairo_device_t + + +Since: 1.10 + +cairo_device_status () +cairo_device_status +cairo_status_t +cairo_device_status (cairo_device_t *device); +Checks whether an error has previously occurred for this +device. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + CAIRO_STATUS_SUCCESS on success or an error code if +the device is in an error state. +Since: 1.10 + +cairo_device_finish () +cairo_device_finish +void +cairo_device_finish (cairo_device_t *device); +This function finishes the device and drops all references to +external resources. All surfaces, fonts and other objects created +for this device + will be finished, too. +Further operations on the device + will not affect the device + but +will instead trigger a CAIRO_STATUS_DEVICE_FINISHED error. +When the last call to cairo_device_destroy() decreases the +reference count to zero, cairo will call cairo_device_finish() if +it hasn't been called already, before freeing the resources +associated with the device. +This function may acquire devices. + +Parameters + + + + + + +device +the cairo_device_t to finish + + +Since: 1.10 + +cairo_device_flush () +cairo_device_flush +void +cairo_device_flush (cairo_device_t *device); +Finish any pending operations for the device and also restore any +temporary modifications cairo has made to the device's state. +This function must be called before switching from using the +device with Cairo to operating on it directly with native APIs. +If the device doesn't support direct access, then this function +does nothing. +This function may acquire devices. + +Parameters + + + + + + +device +a cairo_device_t + + +Since: 1.10 + +cairo_device_get_type () +cairo_device_get_type +cairo_device_type_t +cairo_device_get_type (cairo_device_t *device); +This function returns the type of the device. See cairo_device_type_t +for available types. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + The type of device +. +Since: 1.10 + +cairo_device_get_reference_count () +cairo_device_get_reference_count +unsigned int +cairo_device_get_reference_count (cairo_device_t *device); +Returns the current reference count of device +. + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + the current reference count of device +. If the +object is a nil object, 0 will be returned. +Since: 1.10 + +cairo_device_set_user_data () +cairo_device_set_user_data +cairo_status_t +cairo_device_set_user_data (cairo_device_t *device, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to device +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +device +a cairo_device_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_device_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.10 + +cairo_device_get_user_data () +cairo_device_get_user_data +void * +cairo_device_get_user_data (cairo_device_t *device, + const cairo_user_data_key_t *key); +Return user data previously attached to device + using the +specified key. If no user data has been attached with the given +key this function returns NULL. + +Parameters + + + + + + +device +a cairo_device_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.10 + +cairo_device_acquire () +cairo_device_acquire +cairo_status_t +cairo_device_acquire (cairo_device_t *device); +Acquires the device + for the current thread. This function will block +until no other thread has acquired the device. +If the return value is CAIRO_STATUS_SUCCESS, you successfully acquired the +device. From now on your thread owns the device and no other thread will be +able to acquire it until a matching call to cairo_device_release(). It is +allowed to recursively acquire the device multiple times from the same +thread. +You must never acquire two different devices at the same time +unless this is explicitly allowed. Otherwise the possibility of deadlocks +exist. + +As various Cairo functions can acquire devices when called, these functions +may also cause deadlocks when you call them with an acquired device. So you +must not have a device acquired when calling them. These functions are +marked in the documentation. + + +Parameters + + + + + + +device +a cairo_device_t + + + +Returns + CAIRO_STATUS_SUCCESS on success or an error code if +the device is in an error state and could not be +acquired. After a successful call to cairo_device_acquire(), +a matching call to cairo_device_release() is required. +Since: 1.10 + +cairo_device_release () +cairo_device_release +void +cairo_device_release (cairo_device_t *device); +Releases a device + previously acquired using cairo_device_acquire(). See +that function for details. + +Parameters + + + + + + +device +a cairo_device_t + + +Since: 1.10 + +cairo_device_observer_elapsed () +cairo_device_observer_elapsed +double +cairo_device_observer_elapsed (cairo_device_t *device); + + +cairo_device_observer_fill_elapsed () +cairo_device_observer_fill_elapsed +double +cairo_device_observer_fill_elapsed (cairo_device_t *device); + + +cairo_device_observer_glyphs_elapsed () +cairo_device_observer_glyphs_elapsed +double +cairo_device_observer_glyphs_elapsed (cairo_device_t *device); + + +cairo_device_observer_mask_elapsed () +cairo_device_observer_mask_elapsed +double +cairo_device_observer_mask_elapsed (cairo_device_t *device); + + +cairo_device_observer_paint_elapsed () +cairo_device_observer_paint_elapsed +double +cairo_device_observer_paint_elapsed (cairo_device_t *device); + + +cairo_device_observer_print () +cairo_device_observer_print +cairo_status_t +cairo_device_observer_print (cairo_device_t *device, + cairo_write_func_t write_func, + void *closure); + + +cairo_device_observer_stroke_elapsed () +cairo_device_observer_stroke_elapsed +double +cairo_device_observer_stroke_elapsed (cairo_device_t *device); + + + + +Types and Values + +cairo_device_t +cairo_device_t +typedef struct _cairo_device cairo_device_t; + +A cairo_device_t represents the driver interface for drawing +operations to a cairo_surface_t. There are different subtypes of +cairo_device_t for different drawing backends; for example, +cairo_egl_device_create() creates a device that wraps an EGL display and +context. +The type of a device can be queried with cairo_device_get_type(). +Memory management of cairo_device_t is done with +cairo_device_reference() and cairo_device_destroy(). +Since: 1.10 + +enum cairo_device_type_t +cairo_device_type_t +cairo_device_type_t is used to describe the type of a given +device. The devices types are also known as "backends" within cairo. +The device type can be queried with cairo_device_get_type() +The various cairo_device_t functions can be used with devices of +any type, but some backends also provide type-specific functions +that must only be called with a device of the appropriate +type. These functions have names that begin with +cairo_type_device such as +cairo_xcb_device_debug_cap_xrender_version(). +The behavior of calling a type-specific function with a device of +the wrong type is undefined. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_DEVICE_TYPE_DRM +The device is of type Direct Render Manager, since 1.10 + + + +CAIRO_DEVICE_TYPE_GL +The device is of type OpenGL, since 1.10 + + + +CAIRO_DEVICE_TYPE_SCRIPT +The device is of type script, since 1.10 + + + +CAIRO_DEVICE_TYPE_XCB +The device is of type xcb, since 1.10 + + + +CAIRO_DEVICE_TYPE_XLIB +The device is of type xlib, since 1.10 + + + +CAIRO_DEVICE_TYPE_XML +The device is of type XML, since 1.10 + + + +CAIRO_DEVICE_TYPE_COGL +The device is of type cogl, since 1.12 + + + +CAIRO_DEVICE_TYPE_WIN32 +The device is of type win32, since 1.12 + + + +CAIRO_DEVICE_TYPE_INVALID +The device is invalid, since 1.10 + + + + +Since: 1.10 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml new file mode 100644 index 0000000..c62bfb5 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-font-face.xml @@ -0,0 +1,358 @@ + + +]> + + +cairo_font_face_t +3 +CAIRO Library + + +cairo_font_face_t +Base class for font faces + + + +Functions + + + + + +cairo_font_face_t * +cairo_font_face_reference () +void +cairo_font_face_destroy () +cairo_status_t +cairo_font_face_status () +cairo_font_type_t +cairo_font_face_get_type () +unsigned int +cairo_font_face_get_reference_count () +cairo_status_t +cairo_font_face_set_user_data () +void * +cairo_font_face_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_font_face_t +enumcairo_font_type_t + + + + + + + + +Description +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 font-backend-specific +constructors, typically of the form +cairo_backend_font_face_create(), +or implicitly using the toy text API by way of +cairo_select_font_face(). The resulting face can be accessed using +cairo_get_font_face(). + + + +Functions + +cairo_font_face_reference () +cairo_font_face_reference +cairo_font_face_t * +cairo_font_face_reference (cairo_font_face_t *font_face); +Increases the reference count on font_face + by one. This prevents +font_face + from being destroyed until a matching call to +cairo_font_face_destroy() is made. +Use cairo_font_face_get_reference_count() to get the number of +references to a cairo_font_face_t. + +Parameters + + + + + + +font_face +a cairo_font_face_t, (may be NULL in which case this +function does nothing). + + + +Returns + the referenced cairo_font_face_t. +Since: 1.0 + +cairo_font_face_destroy () +cairo_font_face_destroy +void +cairo_font_face_destroy (cairo_font_face_t *font_face); +Decreases the reference count on font_face + by one. If the result +is zero, then font_face + and all associated resources are freed. +See cairo_font_face_reference(). + +Parameters + + + + + + +font_face +a cairo_font_face_t + + +Since: 1.0 + +cairo_font_face_status () +cairo_font_face_status +cairo_status_t +cairo_font_face_status (cairo_font_face_t *font_face); +Checks whether an error has previously occurred for this +font face + +Parameters + + + + + + +font_face +a cairo_font_face_t + + + +Returns + CAIRO_STATUS_SUCCESS or another error such as +CAIRO_STATUS_NO_MEMORY. +Since: 1.0 + +cairo_font_face_get_type () +cairo_font_face_get_type +cairo_font_type_t +cairo_font_face_get_type (cairo_font_face_t *font_face); +This function returns the type of the backend used to create +a font face. See cairo_font_type_t for available types. + +Parameters + + + + + + +font_face +a font face + + + +Returns + The type of font_face +. +Since: 1.2 + +cairo_font_face_get_reference_count () +cairo_font_face_get_reference_count +unsigned int +cairo_font_face_get_reference_count (cairo_font_face_t *font_face); +Returns the current reference count of font_face +. + +Parameters + + + + + + +font_face +a cairo_font_face_t + + + +Returns + the current reference count of font_face +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_font_face_set_user_data () +cairo_font_face_set_user_data +cairo_status_t +cairo_font_face_set_user_data (cairo_font_face_t *font_face, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to font_face +. To remove user data from a font face, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +font_face +a cairo_font_face_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the font face + +destroy +a cairo_destroy_func_t which will be called when the +font face is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.0 + +cairo_font_face_get_user_data () +cairo_font_face_get_user_data +void * +cairo_font_face_get_user_data (cairo_font_face_t *font_face, + const cairo_user_data_key_t *key); +Return user data previously attached to font_face + using the specified +key. If no user data has been attached with the given key this +function returns NULL. + +Parameters + + + + + + +font_face +a cairo_font_face_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.0 + + + +Types and Values + +cairo_font_face_t +cairo_font_face_t +typedef struct _cairo_font_face cairo_font_face_t; + +A cairo_font_face_t specifies all aspects of a font other +than the size or font matrix (a font matrix is used to distort +a font by shearing it or scaling it unequally in the two +directions) . A font face can be set on a cairo_t by using +cairo_set_font_face(); the size and font matrix are set with +cairo_set_font_size() and cairo_set_font_matrix(). +There are various types of font faces, depending on the +font backend they use. The type of a +font face can be queried using cairo_font_face_get_type(). +Memory management of cairo_font_face_t is done with +cairo_font_face_reference() and cairo_font_face_destroy(). +Since: 1.0 + +enum cairo_font_type_t +cairo_font_type_t +cairo_font_type_t is used to describe the type of a given font +face or scaled font. The font types are also known as "font +backends" within cairo. +The type of a font face is determined by the function used to +create it, which will generally be of the form +cairo_type_font_face_create(). +The font face type can be queried with cairo_font_face_get_type() +The various cairo_font_face_t functions can be used with a font face +of any type. +The type of a scaled font is determined by the type of the font +face passed to cairo_scaled_font_create(). The scaled font type can +be queried with cairo_scaled_font_get_type() +The various cairo_scaled_font_t functions can be used with scaled +fonts of any type, but some font backends also provide +type-specific functions that must only be called with a scaled font +of the appropriate type. These functions have names that begin with +cairo_type_scaled_font() +such as cairo_ft_scaled_font_lock_face(). +The behavior of calling a type-specific function with a scaled font +of the wrong type is undefined. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_FONT_TYPE_TOY +The font was created using cairo's toy font api (Since: 1.2) + + + +CAIRO_FONT_TYPE_FT +The font is of type FreeType (Since: 1.2) + + + +CAIRO_FONT_TYPE_WIN32 +The font is of type Win32 (Since: 1.2) + + + +CAIRO_FONT_TYPE_QUARTZ +The font is of type Quartz (Since: 1.6, in 1.2 and +1.4 it was named CAIRO_FONT_TYPE_ATSUI) + + + +CAIRO_FONT_TYPE_USER +The font was create using cairo's user font api (Since: 1.8) + + + + +Since: 1.2 + + + +See Also +cairo_scaled_font_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml new file mode 100644 index 0000000..d058175 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-font-options.xml @@ -0,0 +1,677 @@ + + +]> + + +cairo_font_options_t +3 +CAIRO Library + + +cairo_font_options_t +How a font should be rendered + + + +Functions + + + + + +cairo_font_options_t * +cairo_font_options_create () +cairo_font_options_t * +cairo_font_options_copy () +void +cairo_font_options_destroy () +cairo_status_t +cairo_font_options_status () +void +cairo_font_options_merge () +unsigned long +cairo_font_options_hash () +cairo_bool_t +cairo_font_options_equal () +void +cairo_font_options_set_antialias () +cairo_antialias_t +cairo_font_options_get_antialias () +void +cairo_font_options_set_subpixel_order () +cairo_subpixel_order_t +cairo_font_options_get_subpixel_order () +void +cairo_font_options_set_hint_style () +cairo_hint_style_t +cairo_font_options_get_hint_style () +void +cairo_font_options_set_hint_metrics () +cairo_hint_metrics_t +cairo_font_options_get_hint_metrics () +const char * +cairo_font_options_get_variations () +void +cairo_font_options_set_variations () + + + + + + +Types and Values + + + + + +typedefcairo_font_options_t +enumcairo_subpixel_order_t +enumcairo_hint_style_t +enumcairo_hint_metrics_t + + + + + + + + +Description +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. + + + +Functions + +cairo_font_options_create () +cairo_font_options_create +cairo_font_options_t * +cairo_font_options_create (void); +Allocates a new font options object with all options initialized + to default values. + +Returns + a newly allocated cairo_font_options_t. Free with +cairo_font_options_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_font_options_status(). +Since: 1.0 + +cairo_font_options_copy () +cairo_font_options_copy +cairo_font_options_t * +cairo_font_options_copy (const cairo_font_options_t *original); +Allocates a new font options object copying the option values from + original +. + +Parameters + + + + + + +original +a cairo_font_options_t + + + +Returns + a newly allocated cairo_font_options_t. Free with +cairo_font_options_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_font_options_status(). +Since: 1.0 + +cairo_font_options_destroy () +cairo_font_options_destroy +void +cairo_font_options_destroy (cairo_font_options_t *options); +Destroys a cairo_font_options_t object created with +cairo_font_options_create() or cairo_font_options_copy(). + +Parameters + + + + + + +options +a cairo_font_options_t + + +Since: 1.0 + +cairo_font_options_status () +cairo_font_options_status +cairo_status_t +cairo_font_options_status (cairo_font_options_t *options); +Checks whether an error has previously occurred for this +font options object + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.0 + +cairo_font_options_merge () +cairo_font_options_merge +void +cairo_font_options_merge (cairo_font_options_t *options, + const cairo_font_options_t *other); +Merges non-default options from other + into options +, replacing +existing values. This operation can be thought of as somewhat +similar to compositing other + onto options + with the operation +of CAIRO_OPERATOR_OVER. + +Parameters + + + + + + +options +a cairo_font_options_t + +other +another cairo_font_options_t + + +Since: 1.0 + +cairo_font_options_hash () +cairo_font_options_hash +unsigned long +cairo_font_options_hash (const cairo_font_options_t *options); +Compute a hash for the font options object; this value will +be useful when storing an object containing a cairo_font_options_t +in a hash table. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the hash value for the font options object. +The return value can be cast to a 32-bit type if a +32-bit hash value is needed. +Since: 1.0 + +cairo_font_options_equal () +cairo_font_options_equal +cairo_bool_t +cairo_font_options_equal (const cairo_font_options_t *options, + const cairo_font_options_t *other); +Compares two font options objects for equality. + +Parameters + + + + + + +options +a cairo_font_options_t + +other +another cairo_font_options_t + + + +Returns + TRUE if all fields of the two font options objects match. +Note that this function will return FALSE if either object is in +error. +Since: 1.0 + +cairo_font_options_set_antialias () +cairo_font_options_set_antialias +void +cairo_font_options_set_antialias (cairo_font_options_t *options, + cairo_antialias_t antialias); +Sets the antialiasing mode for the font options object. This +specifies the type of antialiasing to do when rendering text. + +Parameters + + + + + + +options +a cairo_font_options_t + +antialias +the new antialiasing mode + + +Since: 1.0 + +cairo_font_options_get_antialias () +cairo_font_options_get_antialias +cairo_antialias_t +cairo_font_options_get_antialias (const cairo_font_options_t *options); +Gets the antialiasing mode for the font options object. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the antialiasing mode +Since: 1.0 + +cairo_font_options_set_subpixel_order () +cairo_font_options_set_subpixel_order +void +cairo_font_options_set_subpixel_order (cairo_font_options_t *options, + cairo_subpixel_order_t subpixel_order); +Sets the subpixel order for the font options object. The subpixel +order specifies the order of color elements within each pixel on +the display device when rendering with an antialiasing mode of +CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for +cairo_subpixel_order_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + +subpixel_order +the new subpixel order + + +Since: 1.0 + +cairo_font_options_get_subpixel_order () +cairo_font_options_get_subpixel_order +cairo_subpixel_order_t +cairo_font_options_get_subpixel_order (const cairo_font_options_t *options); +Gets the subpixel order for the font options object. +See the documentation for cairo_subpixel_order_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the subpixel order for the font options object +Since: 1.0 + +cairo_font_options_set_hint_style () +cairo_font_options_set_hint_style +void +cairo_font_options_set_hint_style (cairo_font_options_t *options, + cairo_hint_style_t hint_style); +Sets the hint style for font outlines for the font options object. +This controls whether to fit font outlines to the pixel grid, +and if so, whether to optimize for fidelity or contrast. +See the documentation for cairo_hint_style_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + +hint_style +the new hint style + + +Since: 1.0 + +cairo_font_options_get_hint_style () +cairo_font_options_get_hint_style +cairo_hint_style_t +cairo_font_options_get_hint_style (const cairo_font_options_t *options); +Gets the hint style for font outlines for the font options object. +See the documentation for cairo_hint_style_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the hint style for the font options object +Since: 1.0 + +cairo_font_options_set_hint_metrics () +cairo_font_options_set_hint_metrics +void +cairo_font_options_set_hint_metrics (cairo_font_options_t *options, + cairo_hint_metrics_t hint_metrics); +Sets the metrics hinting mode for the font options object. This +controls whether metrics are quantized to integer values in +device units. +See the documentation for cairo_hint_metrics_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + +hint_metrics +the new metrics hinting mode + + +Since: 1.0 + +cairo_font_options_get_hint_metrics () +cairo_font_options_get_hint_metrics +cairo_hint_metrics_t +cairo_font_options_get_hint_metrics (const cairo_font_options_t *options); +Gets the metrics hinting mode for the font options object. +See the documentation for cairo_hint_metrics_t for full details. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the metrics hinting mode for the font options object +Since: 1.0 + +cairo_font_options_get_variations () +cairo_font_options_get_variations +const char * +cairo_font_options_get_variations (cairo_font_options_t *options); +Gets the OpenType font variations for the font options object. +See cairo_font_options_set_variations() for details about the +string format. + +Parameters + + + + + + +options +a cairo_font_options_t + + + +Returns + the font variations for the font options object. The +returned string belongs to the options +and must not be modified. +It is valid until either the font options object is destroyed or +the font variations in this object is modified with +cairo_font_options_set_variations(). +Since: 1.16 + +cairo_font_options_set_variations () +cairo_font_options_set_variations +void +cairo_font_options_set_variations (cairo_font_options_t *options, + const char *variations); +Sets the OpenType font variations for the font options object. +Font variations are specified as a string with a format that +is similar to the CSS font-variation-settings. The string contains +a comma-separated list of axis assignments, which each assignment +consists of a 4-character axis name and a value, separated by +whitespace and optional equals sign. +Examples: +wght=200,wdth=140.5 +wght 200 , wdth 140.5 + +Parameters + + + + + + +options +a cairo_font_options_t + +variations +the new font variations, or NULL + + +Since: 1.16 + + + +Types and Values + +cairo_font_options_t +cairo_font_options_t +typedef struct _cairo_font_options cairo_font_options_t; + +An opaque structure holding all options that are used when +rendering fonts. +Individual features of a cairo_font_options_t can be set or +accessed using functions named +cairo_font_options_set_feature_name() and +cairo_font_options_get_feature_name(), like +cairo_font_options_set_antialias() and +cairo_font_options_get_antialias(). +New features may be added to a cairo_font_options_t in the +future. For this reason, cairo_font_options_copy(), +cairo_font_options_equal(), cairo_font_options_merge(), and +cairo_font_options_hash() should be used to copy, check +for equality, merge, or compute a hash value of +cairo_font_options_t objects. +Since: 1.0 + +enum cairo_subpixel_order_t +cairo_subpixel_order_t +The subpixel order specifies the order of color elements within +each pixel on the display device when rendering with an +antialiasing mode of CAIRO_ANTIALIAS_SUBPIXEL. + +Members + + + + + + +CAIRO_SUBPIXEL_ORDER_DEFAULT +Use the default subpixel order for + for the target device, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_RGB +Subpixel elements are arranged horizontally + with red at the left, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_BGR +Subpixel elements are arranged horizontally + with blue at the left, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_VRGB +Subpixel elements are arranged vertically + with red at the top, since 1.0 + + + +CAIRO_SUBPIXEL_ORDER_VBGR +Subpixel elements are arranged vertically + with blue at the top, since 1.0 + + + + +Since: 1.0 + +enum cairo_hint_style_t +cairo_hint_style_t +Specifies the type of hinting to do on font outlines. Hinting +is the process of fitting outlines to the pixel grid in order +to improve the appearance of the result. Since hinting outlines +involves distorting them, it also reduces the faithfulness +to the original outline shapes. Not all of the outline hinting +styles are supported by all font backends. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_HINT_STYLE_DEFAULT +Use the default hint style for + font backend and target device, since 1.0 + + + +CAIRO_HINT_STYLE_NONE +Do not hint outlines, since 1.0 + + + +CAIRO_HINT_STYLE_SLIGHT +Hint outlines slightly to improve + contrast while retaining good fidelity to the original + shapes, since 1.0 + + + +CAIRO_HINT_STYLE_MEDIUM +Hint outlines with medium strength + giving a compromise between fidelity to the original shapes + and contrast, since 1.0 + + + +CAIRO_HINT_STYLE_FULL +Hint outlines to maximize contrast, since 1.0 + + + + +Since: 1.0 + +enum cairo_hint_metrics_t +cairo_hint_metrics_t +Specifies whether to hint font metrics; hinting font metrics +means quantizing them so that they are integer values in +device space. Doing this improves the consistency of +letter and line spacing, however it also means that text +will be laid out differently at different zoom factors. + +Members + + + + + + +CAIRO_HINT_METRICS_DEFAULT +Hint metrics in the default + manner for the font backend and target device, since 1.0 + + + +CAIRO_HINT_METRICS_OFF +Do not hint font metrics, since 1.0 + + + +CAIRO_HINT_METRICS_ON +Hint font metrics, since 1.0 + + + + +Since: 1.0 + + + +See Also +cairo_scaled_font_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml new file mode 100644 index 0000000..e68e2ad --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-ft.xml @@ -0,0 +1,408 @@ + + +]> + + +FreeType Fonts +3 +CAIRO Library + + +FreeType Fonts +Font support for FreeType + + + +Functions + + + + + +cairo_font_face_t * +cairo_ft_font_face_create_for_ft_face () +cairo_font_face_t * +cairo_ft_font_face_create_for_pattern () +void +cairo_ft_font_options_substitute () +FT_Face +cairo_ft_scaled_font_lock_face () +void +cairo_ft_scaled_font_unlock_face () +unsigned int +cairo_ft_font_face_get_synthesize () +void +cairo_ft_font_face_set_synthesize () +void +cairo_ft_font_face_unset_synthesize () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_FT_FONT +#defineCAIRO_HAS_FC_FONT +enumcairo_ft_synthesize_t + + + + + + + + +Description +The FreeType font backend is primarily used to render text on GNU/Linux +systems, but can be used on other platforms too. + + + +Functions + +cairo_ft_font_face_create_for_ft_face () +cairo_ft_font_face_create_for_ft_face +cairo_font_face_t * +cairo_ft_font_face_create_for_ft_face (FT_Face face, + int load_flags); +Creates a new font face for the FreeType font backend from a +pre-opened FreeType face. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). The +cairo_scaled_font_t returned from cairo_scaled_font_create() is +also for the FreeType backend and can be used with functions such +as cairo_ft_scaled_font_lock_face(). Note that Cairo may keep a reference +to the FT_Face alive in a font-cache and the exact lifetime of the reference +depends highly upon the exact usage pattern and is subject to external +factors. You must not call FT_Done_Face() before the last reference to the +cairo_font_face_t has been dropped. +As an example, below is how one might correctly couple the lifetime of +the FreeType face object to the cairo_font_face_t. + +static const cairo_user_data_key_t key; + +font_face = cairo_ft_font_face_create_for_ft_face (ft_face, 0); +status = cairo_font_face_set_user_data (font_face, &key, + ft_face, (cairo_destroy_func_t) FT_Done_Face); +if (status) { + cairo_font_face_destroy (font_face); + FT_Done_Face (ft_face); + return ERROR; +} + + +Parameters + + + + + + +face +A FreeType face object, already opened. This must +be kept around until the face's ref_count drops to +zero and it is freed. Since the face may be referenced +internally to Cairo, the best way to determine when it +is safe to free the face is to pass a +cairo_destroy_func_t to cairo_font_face_set_user_data() + +load_flags +flags to pass to FT_Load_Glyph when loading +glyphs from the font. These flags are OR'ed together with +the flags derived from the cairo_font_options_t passed +to cairo_scaled_font_create(), so only a few values such +as FT_LOAD_VERTICAL_LAYOUT, and FT_LOAD_FORCE_AUTOHINT +are useful. You should not pass any of the flags affecting +the load target, such as FT_LOAD_TARGET_LIGHT. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.0 + +cairo_ft_font_face_create_for_pattern () +cairo_ft_font_face_create_for_pattern +cairo_font_face_t * +cairo_ft_font_face_create_for_pattern (FcPattern *pattern); +Creates a new font face for the FreeType font backend based on a +fontconfig pattern. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). The +cairo_scaled_font_t returned from cairo_scaled_font_create() is +also for the FreeType backend and can be used with functions such +as cairo_ft_scaled_font_lock_face(). +Font rendering options are represented both here and when you +call cairo_scaled_font_create(). Font options that have a representation +in a FcPattern must be passed in here; to modify FcPattern +appropriately to reflect the options in a cairo_font_options_t, call +cairo_ft_font_options_substitute(). +The pattern's FC_FT_FACE element is inspected first and if that is set, +that will be the FreeType font face associated with the returned cairo +font face. Otherwise the FC_FILE element is checked. If it's set, +that and the value of the FC_INDEX element (defaults to zero) of pattern + +are used to load a font face from file. +If both steps from the previous paragraph fails, pattern + will be passed +to FcConfigSubstitute, FcDefaultSubstitute, and finally FcFontMatch, +and the resulting font pattern is used. +If the FC_FT_FACE element of pattern + is set, the user is responsible +for making sure that the referenced FT_Face remains valid for the life +time of the returned cairo_font_face_t. See +cairo_ft_font_face_create_for_ft_face() for an example of how to couple +the life time of the FT_Face to that of the cairo font-face. + +Parameters + + + + + + +pattern +A fontconfig pattern. Cairo makes a copy of the pattern +if it needs to. You are free to modify or free pattern +after this call. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.0 + +cairo_ft_font_options_substitute () +cairo_ft_font_options_substitute +void +cairo_ft_font_options_substitute (const cairo_font_options_t *options, + FcPattern *pattern); +Add options to a FcPattern based on a cairo_font_options_t font +options object. Options that are already in the pattern, are not overridden, +so you should call this function after calling FcConfigSubstitute() (the +user's settings should override options based on the surface type), but +before calling FcDefaultSubstitute(). + +Parameters + + + + + + +options +a cairo_font_options_t object + +pattern +an existing FcPattern + + +Since: 1.0 + +cairo_ft_scaled_font_lock_face () +cairo_ft_scaled_font_lock_face +FT_Face +cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *scaled_font); +cairo_ft_scaled_font_lock_face() gets the FT_Face object from a FreeType +backend font and scales it appropriately for the font and applies OpenType +font variations if applicable. You must +release the face with cairo_ft_scaled_font_unlock_face() +when you are done using it. Since the FT_Face object can be +shared between multiple cairo_scaled_font_t objects, you must not +lock any other font objects until you unlock this one. A count is +kept of the number of times cairo_ft_scaled_font_lock_face() is +called. cairo_ft_scaled_font_unlock_face() must be called the same number +of times. +You must be careful when using this function in a library or in a +threaded application, because freetype's design makes it unsafe to +call freetype functions simultaneously from multiple threads, (even +if using distinct FT_Face objects). Because of this, application +code that acquires an FT_Face object with this call must add its +own locking to protect any use of that object, (and which also must +protect any other calls into cairo as almost any cairo function +might result in a call into the freetype library). + +Parameters + + + + + + +scaled_font +A cairo_scaled_font_t from the FreeType font backend. Such an +object can be created by calling cairo_scaled_font_create() on a +FreeType backend font face (see cairo_ft_font_face_create_for_pattern(), +cairo_ft_font_face_create_for_ft_face()). + + + +Returns + The FT_Face object for font +, scaled appropriately, +or NULL if scaled_font +is in an error state (see +cairo_scaled_font_status()) or there is insufficient memory. +Since: 1.0 + +cairo_ft_scaled_font_unlock_face () +cairo_ft_scaled_font_unlock_face +void +cairo_ft_scaled_font_unlock_face (cairo_scaled_font_t *scaled_font); +Releases a face obtained with cairo_ft_scaled_font_lock_face(). + +Parameters + + + + + + +scaled_font +A cairo_scaled_font_t from the FreeType font backend. Such an +object can be created by calling cairo_scaled_font_create() on a +FreeType backend font face (see cairo_ft_font_face_create_for_pattern(), +cairo_ft_font_face_create_for_ft_face()). + + +Since: 1.0 + +cairo_ft_font_face_get_synthesize () +cairo_ft_font_face_get_synthesize +unsigned int +cairo_ft_font_face_get_synthesize (cairo_font_face_t *font_face); +See cairo_ft_synthesize_t. + +Parameters + + + + + + +font_face +The cairo_ft_font_face_t object to query + + + +Returns + the current set of synthesis options. +Since: 1.12 + +cairo_ft_font_face_set_synthesize () +cairo_ft_font_face_set_synthesize +void +cairo_ft_font_face_set_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags); +FreeType provides the ability to synthesize different glyphs from a base +font, which is useful if you lack those glyphs from a true bold or oblique +font. See also cairo_ft_synthesize_t. + +Parameters + + + + + + +font_face +The cairo_ft_font_face_t object to modify + +synth_flags +the set of synthesis options to enable + + +Since: 1.12 + +cairo_ft_font_face_unset_synthesize () +cairo_ft_font_face_unset_synthesize +void +cairo_ft_font_face_unset_synthesize (cairo_font_face_t *font_face, + unsigned int synth_flags); +See cairo_ft_font_face_set_synthesize(). + +Parameters + + + + + + +font_face +The cairo_ft_font_face_t object to modify + +synth_flags +the set of synthesis options to disable + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_FT_FONT +CAIRO_HAS_FT_FONT +#define CAIRO_HAS_FT_FONT 1 + +Defined if the FreeType font backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.0 + +CAIRO_HAS_FC_FONT +CAIRO_HAS_FC_FONT +#define CAIRO_HAS_FC_FONT 1 + +Defined if the Fontconfig-specific functions of the FreeType font backend +are available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.10 + +enum cairo_ft_synthesize_t +cairo_ft_synthesize_t +A set of synthesis options to control how FreeType renders the glyphs +for a particular font face. +Individual synthesis features of a cairo_ft_font_face_t can be set +using cairo_ft_font_face_set_synthesize(), or disabled using +cairo_ft_font_face_unset_synthesize(). The currently enabled set of +synthesis options can be queried with cairo_ft_font_face_get_synthesize(). +Note: that when synthesizing glyphs, the font metrics returned will only +be estimates. + +Members + + + + + + +CAIRO_FT_SYNTHESIZE_BOLD +Embolden the glyphs (redraw with a pixel offset) + + + +CAIRO_FT_SYNTHESIZE_OBLIQUE +Slant the glyph outline by 12 degrees to the +right. + + + + +Since: 1.12 + + + +See Also +cairo_font_face_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-image.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-image.xml new file mode 100644 index 0000000..f9c9443 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-image.xml @@ -0,0 +1,425 @@ + + +]> + + +Image Surfaces +3 +CAIRO Library + + +Image Surfaces +Rendering to memory buffers + + + +Functions + + + + + +int +cairo_format_stride_for_width () +cairo_surface_t * +cairo_image_surface_create () +cairo_surface_t * +cairo_image_surface_create_for_data () +unsigned char * +cairo_image_surface_get_data () +cairo_format_t +cairo_image_surface_get_format () +int +cairo_image_surface_get_width () +int +cairo_image_surface_get_height () +int +cairo_image_surface_get_stride () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_IMAGE_SURFACE +enumcairo_format_t + + + + + + + + +Description +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. + + + +Functions + +cairo_format_stride_for_width () +cairo_format_stride_for_width +int +cairo_format_stride_for_width (cairo_format_t format, + int width); +This function provides a stride value that will respect all +alignment requirements of the accelerated image-rendering code +within cairo. Typical usage will be of the form: + +int stride; +unsigned char *data; +cairo_surface_t *surface; + +stride = cairo_format_stride_for_width (format, width); +data = malloc (stride * height); +surface = cairo_image_surface_create_for_data (data, format, + width, height, + stride); + + +Parameters + + + + + + +format +A cairo_format_t value + +width +The desired width of an image surface to be created. + + + +Returns + the appropriate stride to use given the desired +format and width, or -1 if either the format is invalid or the width +too large. +Since: 1.6 + +cairo_image_surface_create () +cairo_image_surface_create +cairo_surface_t * +cairo_image_surface_create (cairo_format_t format, + int width, + int height); +Creates an image surface of the specified format and +dimensions. Initially the surface contents are set to 0. +(Specifically, within each pixel, each color or alpha channel +belonging to format will be 0. The contents of bits within a pixel, +but not belonging to the given format are undefined). + +Parameters + + + + + + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.0 + +cairo_image_surface_create_for_data () +cairo_image_surface_create_for_data +cairo_surface_t * +cairo_image_surface_create_for_data (unsigned char *data, + cairo_format_t format, + int width, + int height, + int stride); +Creates an image surface for the provided pixel data. The output +buffer must be kept around until the cairo_surface_t is destroyed +or cairo_surface_finish() is called on the surface. The initial +contents of data + will be used as the initial image contents; you +must explicitly clear the buffer, using, for example, +cairo_rectangle() and cairo_fill() if you want it cleared. +Note that the stride may be larger than +width*bytes_per_pixel to provide proper alignment for each pixel +and row. This alignment is required to allow high-performance rendering +within cairo. The correct way to obtain a legal stride value is to +call cairo_format_stride_for_width() with the desired format and +maximum image width value, and then use the resulting stride value +to allocate the data and to create the image surface. See +cairo_format_stride_for_width() for example code. + +Parameters + + + + + + +data +a pointer to a buffer supplied by the application in which +to write contents. This pointer must be suitably aligned for any +kind of variable, (for example, a pointer returned by malloc). + +format +the format of pixels in the buffer + +width +the width of the image to be stored in the buffer + +height +the height of the image to be stored in the buffer + +stride +the number of bytes between the start of rows in the +buffer as allocated. This value should always be computed by +cairo_format_stride_for_width() before allocating the data +buffer. + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface in the case of an error such as out of +memory or an invalid stride value. In case of invalid stride value +the error status of the returned surface will be +CAIRO_STATUS_INVALID_STRIDE. You can use +cairo_surface_status() to check for this. +See cairo_surface_set_user_data() for a means of attaching a +destroy-notification fallback to the surface if necessary. +Since: 1.0 + +cairo_image_surface_get_data () +cairo_image_surface_get_data +unsigned char * +cairo_image_surface_get_data (cairo_surface_t *surface); +Get a pointer to the data of the image surface, for direct +inspection or modification. +A call to cairo_surface_flush() is required before accessing the +pixel data to ensure that all pending drawing operations are +finished. A call to cairo_surface_mark_dirty() is required after +the data is modified. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + a pointer to the image data of this surface or NULL +if surface +is not an image surface, or if cairo_surface_finish() +has been called. +Since: 1.2 + +cairo_image_surface_get_format () +cairo_image_surface_get_format +cairo_format_t +cairo_image_surface_get_format (cairo_surface_t *surface); +Get the format of the surface. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the format of the surface +Since: 1.2 + +cairo_image_surface_get_width () +cairo_image_surface_get_width +int +cairo_image_surface_get_width (cairo_surface_t *surface); +Get the width of the image surface in pixels. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the width of the surface in pixels. +Since: 1.0 + +cairo_image_surface_get_height () +cairo_image_surface_get_height +int +cairo_image_surface_get_height (cairo_surface_t *surface); +Get the height of the image surface in pixels. + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the height of the surface in pixels. +Since: 1.0 + +cairo_image_surface_get_stride () +cairo_image_surface_get_stride +int +cairo_image_surface_get_stride (cairo_surface_t *surface); +Get the stride of the image surface in bytes + +Parameters + + + + + + +surface +a cairo_image_surface_t + + + +Returns + the stride of the image surface in bytes (or 0 if +surface +is not an image surface). The stride is the distance in +bytes from the beginning of one row of the image data to the +beginning of the next row. +Since: 1.2 + + + +Types and Values + +CAIRO_HAS_IMAGE_SURFACE +CAIRO_HAS_IMAGE_SURFACE +#define CAIRO_HAS_IMAGE_SURFACE 1 + +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 + +enum cairo_format_t +cairo_format_t +cairo_format_t is used to identify the memory format of +image data. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_FORMAT_INVALID +no such format exists or is supported. + + + +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 quantities are stored native-endian. Pre-multiplied + alpha is used. (That is, 50% transparent red is 0x80800000, + not 0x80ff0000.) (Since 1.0) + + + +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. (Since 1.0) + + + +CAIRO_FORMAT_A8 +each pixel is a 8-bit quantity holding + an alpha value. (Since 1.0) + + + +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 + endianness 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. (Since 1.0) + + + +CAIRO_FORMAT_RGB16_565 +each pixel is a 16-bit quantity + with red in the upper 5 bits, then green in the middle + 6 bits, and blue in the lower 5 bits. (Since 1.2) + + + +CAIRO_FORMAT_RGB30 +like RGB24 but with 10bpc. (Since 1.12) + + + + +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml new file mode 100644 index 0000000..afb0700 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-matrix.xml @@ -0,0 +1,574 @@ + + +]> + + +cairo_matrix_t +3 +CAIRO Library + + +cairo_matrix_t +Generic matrix operations + + + +Functions + + + + + +void +cairo_matrix_init () +void +cairo_matrix_init_identity () +void +cairo_matrix_init_translate () +void +cairo_matrix_init_scale () +void +cairo_matrix_init_rotate () +void +cairo_matrix_translate () +void +cairo_matrix_scale () +void +cairo_matrix_rotate () +cairo_status_t +cairo_matrix_invert () +void +cairo_matrix_multiply () +void +cairo_matrix_transform_distance () +void +cairo_matrix_transform_point () + + + + + + +Types and Values + + + + + +cairo_matrix_t + + + + + + + + +Description +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 (x,y) +is given by: + +x_new = xx * x + xy * y + x0; +y_new = yx * x + yy * y + y0; + +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(). + + + +Functions + +cairo_matrix_init () +cairo_matrix_init +void +cairo_matrix_init (cairo_matrix_t *matrix, + double xx, + double yx, + double xy, + double yy, + double x0, + double y0); +Sets matrix + to be the affine transformation given by +xx +, yx +, xy +, yy +, x0 +, y0 +. The transformation is given +by: + + x_new = xx * x + xy * y + x0; + y_new = yx * x + yy * y + y0; + + +Parameters + + + + + + +matrix +a cairo_matrix_t + +xx +xx component of the affine transformation + +yx +yx component of the affine transformation + +xy +xy component of the affine transformation + +yy +yy component of the affine transformation + +x0 +X translation component of the affine transformation + +y0 +Y translation component of the affine transformation + + +Since: 1.0 + +cairo_matrix_init_identity () +cairo_matrix_init_identity +void +cairo_matrix_init_identity (cairo_matrix_t *matrix); +Modifies matrix + to be an identity transformation. + +Parameters + + + + + + +matrix +a cairo_matrix_t + + +Since: 1.0 + +cairo_matrix_init_translate () +cairo_matrix_init_translate +void +cairo_matrix_init_translate (cairo_matrix_t *matrix, + double tx, + double ty); +Initializes matrix + to a transformation that translates by tx + and +ty + in the X and Y dimensions, respectively. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +tx +amount to translate in the X direction + +ty +amount to translate in the Y direction + + +Since: 1.0 + +cairo_matrix_init_scale () +cairo_matrix_init_scale +void +cairo_matrix_init_scale (cairo_matrix_t *matrix, + double sx, + double sy); +Initializes matrix + to a transformation that scales by sx + and sy + +in the X and Y dimensions, respectively. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +sx +scale factor in the X direction + +sy +scale factor in the Y direction + + +Since: 1.0 + +cairo_matrix_init_rotate () +cairo_matrix_init_rotate +void +cairo_matrix_init_rotate (cairo_matrix_t *matrix, + double radians); +Initialized matrix + to a transformation that rotates by radians +. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +radians +angle of rotation, in radians. The direction of rotation +is defined such that positive angles rotate in the direction from +the positive X axis toward the positive Y axis. With the default +axis orientation of cairo, positive angles rotate in a clockwise +direction. + + +Since: 1.0 + +cairo_matrix_translate () +cairo_matrix_translate +void +cairo_matrix_translate (cairo_matrix_t *matrix, + double tx, + double ty); +Applies a translation by tx +, ty + to the transformation in +matrix +. The effect of the new transformation is to first translate +the coordinates by tx + and ty +, then apply the original transformation +to the coordinates. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +tx +amount to translate in the X direction + +ty +amount to translate in the Y direction + + +Since: 1.0 + +cairo_matrix_scale () +cairo_matrix_scale +void +cairo_matrix_scale (cairo_matrix_t *matrix, + double sx, + double sy); +Applies scaling by sx +, sy + to the transformation in matrix +. The +effect of the new transformation is to first scale the coordinates +by sx + and sy +, then apply the original transformation to the coordinates. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +sx +scale factor in the X direction + +sy +scale factor in the Y direction + + +Since: 1.0 + +cairo_matrix_rotate () +cairo_matrix_rotate +void +cairo_matrix_rotate (cairo_matrix_t *matrix, + double radians); +Applies rotation by radians + to the transformation in +matrix +. The effect of the new transformation is to first rotate the +coordinates by radians +, then apply the original transformation +to the coordinates. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +radians +angle of rotation, in radians. The direction of rotation +is defined such that positive angles rotate in the direction from +the positive X axis toward the positive Y axis. With the default +axis orientation of cairo, positive angles rotate in a clockwise +direction. + + +Since: 1.0 + +cairo_matrix_invert () +cairo_matrix_invert +cairo_status_t +cairo_matrix_invert (cairo_matrix_t *matrix); +Changes matrix + to be the inverse of its original value. Not +all transformation matrices have inverses; if the matrix +collapses points together (it is degenerate), +then it has no inverse and this function will fail. + +Parameters + + + + + + +matrix +a cairo_matrix_t + + + +Returns + If matrix +has an inverse, modifies matrix +to +be the inverse matrix and returns CAIRO_STATUS_SUCCESS. Otherwise, +returns CAIRO_STATUS_INVALID_MATRIX. +Since: 1.0 + +cairo_matrix_multiply () +cairo_matrix_multiply +void +cairo_matrix_multiply (cairo_matrix_t *result, + const cairo_matrix_t *a, + const cairo_matrix_t *b); +Multiplies the affine transformations in a + and b + together +and stores the result in result +. The effect of the resulting +transformation is to first apply the transformation in a + to the +coordinates and then apply the transformation in b + to the +coordinates. +It is allowable for result + to be identical to either a + or b +. + +Parameters + + + + + + +result +a cairo_matrix_t in which to store the result + +a +a cairo_matrix_t + +b +a cairo_matrix_t + + +Since: 1.0 + +cairo_matrix_transform_distance () +cairo_matrix_transform_distance +void +cairo_matrix_transform_distance (const cairo_matrix_t *matrix, + double *dx, + double *dy); +Transforms the distance vector (dx +,dy +) by matrix +. This is +similar to cairo_matrix_transform_point() except that the translation +components of the transformation are ignored. The calculation of +the returned vector is as follows: + +dx2 = dx1 * a + dy1 * c; +dy2 = dx1 * b + dy1 * d; + +Affine transformations are position invariant, so the same vector +always transforms to the same vector. If (x1 +,y1 +) transforms +to (x2 +,y2 +) then (x1 ++dx1 +,y1 ++dy1 +) will transform to +(x1 ++dx2 +,y1 ++dy2 +) for all values of x1 + and x2 +. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +dx +X component of a distance vector. An in/out parameter + +dy +Y component of a distance vector. An in/out parameter + + +Since: 1.0 + +cairo_matrix_transform_point () +cairo_matrix_transform_point +void +cairo_matrix_transform_point (const cairo_matrix_t *matrix, + double *x, + double *y); +Transforms the point (x +, y +) by matrix +. + +Parameters + + + + + + +matrix +a cairo_matrix_t + +x +X position. An in/out parameter + +y +Y position. An in/out parameter + + +Since: 1.0 + + + +Types and Values + +cairo_matrix_t +cairo_matrix_t +typedef struct { + double xx; double yx; + double xy; double yy; + double x0; double y0; +} cairo_matrix_t; + +A cairo_matrix_t holds an affine transformation, such as a scale, +rotation, shear, or a combination of those. The transformation of +a point (x, y) is given by: + + x_new = xx * x + xy * y + x0; + y_new = yx * x + yy * y + y0; + + +Members + + + + + + +double xx; +xx component of the affine transformation + + +double yx; +yx component of the affine transformation + + +double xy; +xy component of the affine transformation + + +double yy; +yy component of the affine transformation + + +double x0; +X translation component of the affine transformation + + +double y0; +Y translation component of the affine transformation + + + + +Since: 1.0 + + + +See Also +cairo_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml new file mode 100644 index 0000000..2373cb6 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-paths.xml @@ -0,0 +1,1125 @@ + + +]> + + +Paths +3 +CAIRO Library + + +Paths +Creating paths and manipulating path data + + + +Functions + + + + + +cairo_path_t * +cairo_copy_path () +cairo_path_t * +cairo_copy_path_flat () +void +cairo_path_destroy () +void +cairo_append_path () +cairo_bool_t +cairo_has_current_point () +void +cairo_get_current_point () +void +cairo_new_path () +void +cairo_new_sub_path () +void +cairo_close_path () +void +cairo_arc () +void +cairo_arc_negative () +void +cairo_curve_to () +void +cairo_line_to () +void +cairo_move_to () +void +cairo_rectangle () +void +cairo_glyph_path () +void +cairo_text_path () +void +cairo_rel_curve_to () +void +cairo_rel_line_to () +void +cairo_rel_move_to () +void +cairo_path_extents () + + + + + + +Types and Values + + + + + +cairo_path_t +unioncairo_path_data_t +enumcairo_path_data_type_t + + + + + + + + +Description +Paths are the most basic drawing tools and are primarily used to implicitly +generate simple masks. + + + +Functions + +cairo_copy_path () +cairo_copy_path +cairo_path_t * +cairo_copy_path (cairo_t *cr); +Creates a copy of the current path and returns it to the user as a +cairo_path_t. See cairo_path_data_t for hints on how to iterate +over the returned data structure. +This function will always return a valid pointer, but the result +will have no data (data==NULL and +num_data==0), if either of the following +conditions hold: + +If there is insufficient memory to copy the path. In this + case path->status will be set to + CAIRO_STATUS_NO_MEMORY. +If cr is already in an error state. In this case + path->status will contain the same status that + would be returned by cairo_status(). + + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the copy of the current path. The caller owns the +returned object and should call cairo_path_destroy() when finished +with it. +Since: 1.0 + +cairo_copy_path_flat () +cairo_copy_path_flat +cairo_path_t * +cairo_copy_path_flat (cairo_t *cr); +Gets a flattened copy of the current path and returns it to the +user as a cairo_path_t. See cairo_path_data_t for hints on +how to iterate over the returned data structure. +This function is like cairo_copy_path() except that any curves +in the path will be approximated with piecewise-linear +approximations, (accurate to within the current tolerance +value). That is, the result is guaranteed to not have any elements +of type CAIRO_PATH_CURVE_TO which will instead be replaced by a +series of CAIRO_PATH_LINE_TO elements. +This function will always return a valid pointer, but the result +will have no data (data==NULL and +num_data==0), if either of the following +conditions hold: + +If there is insufficient memory to copy the path. In this + case path->status will be set to + CAIRO_STATUS_NO_MEMORY. +If cr is already in an error state. In this case + path->status will contain the same status that + would be returned by cairo_status(). + + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the copy of the current path. The caller owns the +returned object and should call cairo_path_destroy() when finished +with it. +Since: 1.0 + +cairo_path_destroy () +cairo_path_destroy +void +cairo_path_destroy (cairo_path_t *path); +Immediately releases all memory associated with path +. After a call +to cairo_path_destroy() the path + pointer is no longer valid and +should not be used further. +Note: cairo_path_destroy() should only be called with a +pointer to a cairo_path_t returned by a cairo function. Any path +that is created manually (ie. outside of cairo) should be destroyed +manually as well. + +Parameters + + + + + + +path +a path previously returned by either cairo_copy_path() or +cairo_copy_path_flat(). + + +Since: 1.0 + +cairo_append_path () +cairo_append_path +void +cairo_append_path (cairo_t *cr, + const cairo_path_t *path); +Append the path + onto the current path. The path + may be either the +return value from one of cairo_copy_path() or +cairo_copy_path_flat() or it may be constructed manually. See +cairo_path_t for details on how the path data structure should be +initialized, and note that path->status must be +initialized to CAIRO_STATUS_SUCCESS. + +Parameters + + + + + + +cr +a cairo context + +path +path to be appended + + +Since: 1.0 + +cairo_has_current_point () +cairo_has_current_point +cairo_bool_t +cairo_has_current_point (cairo_t *cr); +Returns whether a current point is defined on the current path. +See cairo_get_current_point() for details on the current point. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + whether a current point is defined. +Since: 1.6 + +cairo_get_current_point () +cairo_get_current_point +void +cairo_get_current_point (cairo_t *cr, + double *x, + double *y); +Gets the current point of the current path, which is +conceptually the final point reached by the path so far. +The current point is returned in the user-space coordinate +system. If there is no defined current point or if cr + is in an +error status, x + and y + will both be set to 0.0. It is possible to +check this in advance with cairo_has_current_point(). +Most path construction functions alter the current point. See the +following for details on how they affect the current point: +cairo_new_path(), cairo_new_sub_path(), +cairo_append_path(), cairo_close_path(), +cairo_move_to(), cairo_line_to(), cairo_curve_to(), +cairo_rel_move_to(), cairo_rel_line_to(), cairo_rel_curve_to(), +cairo_arc(), cairo_arc_negative(), cairo_rectangle(), +cairo_text_path(), cairo_glyph_path(), cairo_stroke_to_path(). +Some functions use and alter the current point but do not +otherwise change current path: +cairo_show_text(). +Some functions unset the current path and as a result, current point: +cairo_fill(), cairo_stroke(). + +Parameters + + + + + + +cr +a cairo context + +x +return value for X coordinate of the current point + +y +return value for Y coordinate of the current point + + +Since: 1.0 + +cairo_new_path () +cairo_new_path +void +cairo_new_path (cairo_t *cr); +Clears the current path. After this call there will be no path and +no current point. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_new_sub_path () +cairo_new_sub_path +void +cairo_new_sub_path (cairo_t *cr); +Begin a new sub-path. Note that the existing path is not +affected. After this call there will be no current point. +In many cases, this call is not needed since new sub-paths are +frequently started with cairo_move_to(). +A call to cairo_new_sub_path() is particularly useful when +beginning a new sub-path with one of the cairo_arc() calls. This +makes things easier as it is no longer necessary to manually +compute the arc's initial coordinates for a call to +cairo_move_to(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.2 + +cairo_close_path () +cairo_close_path +void +cairo_close_path (cairo_t *cr); +Adds a line segment to the path from the current point to the +beginning of the current sub-path, (the most recent point passed to +cairo_move_to()), and closes this sub-path. After this call the +current point will be at the joined endpoint of the sub-path. +The behavior of cairo_close_path() is distinct from simply calling +cairo_line_to() with the equivalent coordinate in the case of +stroking. When a closed sub-path is stroked, there are no caps on +the ends of the sub-path. Instead, there is a line join connecting +the final and initial segments of the sub-path. +If there is no current point before the call to cairo_close_path(), +this function will have no effect. +Note: As of cairo version 1.2.4 any call to cairo_close_path() will +place an explicit MOVE_TO element into the path immediately after +the CLOSE_PATH element, (which can be seen in cairo_copy_path() for +example). This can simplify path processing in some cases as it may +not be necessary to save the "last move_to point" during processing +as the MOVE_TO immediately after the CLOSE_PATH will provide that +point. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_arc () +cairo_arc +void +cairo_arc (cairo_t *cr, + double xc, + double yc, + double radius, + double angle1, + double angle2); +Adds a circular arc of the given radius + to the current path. The +arc is centered at (xc +, yc +), begins at angle1 + and proceeds in +the direction of increasing angles to end at angle2 +. If angle2 + is +less than angle1 + it will be progressively increased by +2*M_PI until it is greater than angle1 +. +If there is a current point, an initial line segment will be added +to the path to connect the current point to the beginning of the +arc. If this initial line is undesired, it can be avoided by +calling cairo_new_sub_path() before calling cairo_arc(). +Angles are measured in radians. An angle of 0.0 is in the direction +of the positive X axis (in user space). An angle of +M_PI/2.0 radians (90 degrees) is in the +direction of the positive Y axis (in user space). Angles increase +in the direction from the positive X axis toward the positive Y +axis. So with the default transformation matrix, angles increase in +a clockwise direction. +(To convert from degrees to radians, use degrees * (M_PI / +180.).) +This function gives the arc in the direction of increasing angles; +see cairo_arc_negative() to get the arc in the direction of +decreasing angles. +The arc is circular in user space. To achieve an elliptical arc, +you can scale the current transformation matrix by different +amounts in the X and Y directions. For example, to draw an ellipse +in the box given by x +, y +, width +, height +: + +cairo_save (cr); +cairo_translate (cr, x + width / 2., y + height / 2.); +cairo_scale (cr, width / 2., height / 2.); +cairo_arc (cr, 0., 0., 1., 0., 2 * M_PI); +cairo_restore (cr); + + +Parameters + + + + + + +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 + + +Since: 1.0 + +cairo_arc_negative () +cairo_arc_negative +void +cairo_arc_negative (cairo_t *cr, + double xc, + double yc, + double radius, + double angle1, + double angle2); +Adds a circular arc of the given radius + to the current path. The +arc is centered at (xc +, yc +), begins at angle1 + and proceeds in +the direction of decreasing angles to end at angle2 +. If angle2 + is +greater than angle1 + it will be progressively decreased by +2*M_PI until it is less than angle1 +. +See cairo_arc() for more details. This function differs only in the +direction of the arc between the two angles. + +Parameters + + + + + + +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 + + +Since: 1.0 + +cairo_curve_to () +cairo_curve_to +void +cairo_curve_to (cairo_t *cr, + double x1, + double y1, + double x2, + double y2, + double x3, + double y3); +Adds a cubic Bézier spline to the path from the current point to +position (x3 +, y3 +) in user-space coordinates, using (x1 +, y1 +) and +(x2 +, y2 +) as the control points. After this call the current point +will be (x3 +, y3 +). +If there is no current point before the call to cairo_curve_to() +this function will behave as if preceded by a call to +cairo_move_to(cr +, x1 +, y1 +). + +Parameters + + + + + + +cr +a cairo context + +x1 +the X coordinate of the first control point + +y1 +the Y coordinate of the first control point + +x2 +the X coordinate of the second control point + +y2 +the Y coordinate of the second control point + +x3 +the X coordinate of the end of the curve + +y3 +the Y coordinate of the end of the curve + + +Since: 1.0 + +cairo_line_to () +cairo_line_to +void +cairo_line_to (cairo_t *cr, + double x, + double y); +Adds a line to the path from the current point to position (x +, y +) +in user-space coordinates. After this call the current point +will be (x +, y +). +If there is no current point before the call to cairo_line_to() +this function will behave as cairo_move_to(cr +, x +, y +). + +Parameters + + + + + + +cr +a cairo context + +x +the X coordinate of the end of the new line + +y +the Y coordinate of the end of the new line + + +Since: 1.0 + +cairo_move_to () +cairo_move_to +void +cairo_move_to (cairo_t *cr, + double x, + double y); +Begin a new sub-path. After this call the current point will be (x +, +y +). + +Parameters + + + + + + +cr +a cairo context + +x +the X coordinate of the new position + +y +the Y coordinate of the new position + + +Since: 1.0 + +cairo_rectangle () +cairo_rectangle +void +cairo_rectangle (cairo_t *cr, + double x, + double y, + double width, + double height); +Adds a closed sub-path rectangle of the given size to the current +path at position (x +, y +) in user-space coordinates. +This function is logically equivalent to: + +cairo_move_to (cr, x, y); +cairo_rel_line_to (cr, width, 0); +cairo_rel_line_to (cr, 0, height); +cairo_rel_line_to (cr, -width, 0); +cairo_close_path (cr); + + +Parameters + + + + + + +cr +a cairo context + +x +the X coordinate of the top left corner of the rectangle + +y +the Y coordinate to the top left corner of the rectangle + +width +the width of the rectangle + +height +the height of the rectangle + + +Since: 1.0 + +cairo_glyph_path () +cairo_glyph_path +void +cairo_glyph_path (cairo_t *cr, + const cairo_glyph_t *glyphs, + int num_glyphs); +Adds closed paths for the glyphs to the current path. The generated +path if filled, achieves an effect similar to that of +cairo_show_glyphs(). + +Parameters + + + + + + +cr +a cairo context + +glyphs +array of glyphs to show + +num_glyphs +number of glyphs to show + + +Since: 1.0 + +cairo_text_path () +cairo_text_path +void +cairo_text_path (cairo_t *cr, + const char *utf8); +Adds closed paths for text to the current path. The generated +path if filled, achieves an effect similar to that of +cairo_show_text(). +Text conversion and positioning is done similar to cairo_show_text(). +Like cairo_show_text(), After this call the current point is +moved to the origin of where the next glyph would be placed in +this same progression. That is, the current point will be at +the origin of the final glyph offset by its advance values. +This allows for chaining multiple calls to to cairo_text_path() +without having to set current point in between. +Note: The cairo_text_path() function call is part of what the cairo +designers call the "toy" text API. It is convenient for short demos +and simple programs, but it is not expected to be adequate for +serious text-using applications. See cairo_glyph_path() for the +"real" text path API in cairo. + +Parameters + + + + + + +cr +a cairo context + +utf8 +a NUL-terminated string of text encoded in UTF-8, or NULL + + +Since: 1.0 + +cairo_rel_curve_to () +cairo_rel_curve_to +void +cairo_rel_curve_to (cairo_t *cr, + double dx1, + double dy1, + double dx2, + double dy2, + double dx3, + double dy3); +Relative-coordinate version of cairo_curve_to(). All offsets are +relative to the current point. Adds a cubic Bézier spline to the +path from the current point to a point offset from the current +point by (dx3 +, dy3 +), using points offset by (dx1 +, dy1 +) and +(dx2 +, dy2 +) as the control points. After this call the current +point will be offset by (dx3 +, dy3 +). +Given a current point of (x, y), cairo_rel_curve_to(cr +, dx1 +, +dy1 +, dx2 +, dy2 +, dx3 +, dy3 +) is logically equivalent to +cairo_curve_to(cr +, x+dx1 +, y+dy1 +, x+dx2 +, y+dy2 +, x+dx3 +, y+dy3 +). +It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT. + +Parameters + + + + + + +cr +a cairo context + +dx1 +the X offset to the first control point + +dy1 +the Y offset to the first control point + +dx2 +the X offset to the second control point + +dy2 +the Y offset to the second control point + +dx3 +the X offset to the end of the curve + +dy3 +the Y offset to the end of the curve + + +Since: 1.0 + +cairo_rel_line_to () +cairo_rel_line_to +void +cairo_rel_line_to (cairo_t *cr, + double dx, + double dy); +Relative-coordinate version of cairo_line_to(). Adds a line to the +path from the current point to a point that is offset from the +current point by (dx +, dy +) in user space. After this call the +current point will be offset by (dx +, dy +). +Given a current point of (x, y), cairo_rel_line_to(cr +, dx +, dy +) +is logically equivalent to cairo_line_to(cr +, x + dx +, y + dy +). +It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT. + +Parameters + + + + + + +cr +a cairo context + +dx +the X offset to the end of the new line + +dy +the Y offset to the end of the new line + + +Since: 1.0 + +cairo_rel_move_to () +cairo_rel_move_to +void +cairo_rel_move_to (cairo_t *cr, + double dx, + double dy); +Begin a new sub-path. After this call the current point will offset +by (x +, y +). +Given a current point of (x, y), cairo_rel_move_to(cr +, dx +, dy +) +is logically equivalent to cairo_move_to(cr +, x + dx +, y + dy +). +It is an error to call this function with no current point. Doing +so will cause cr + to shutdown with a status of +CAIRO_STATUS_NO_CURRENT_POINT. + +Parameters + + + + + + +cr +a cairo context + +dx +the X offset + +dy +the Y offset + + +Since: 1.0 + +cairo_path_extents () +cairo_path_extents +void +cairo_path_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +Computes a bounding box in user-space coordinates covering the +points on the current path. If the current path is empty, returns +an empty rectangle ((0,0), (0,0)). Stroke parameters, fill rule, +surface dimensions and clipping are not taken into account. +Contrast with cairo_fill_extents() and cairo_stroke_extents() which +return the extents of only the area that would be "inked" by +the corresponding drawing operations. +The result of cairo_path_extents() is defined as equivalent to the +limit of cairo_stroke_extents() with CAIRO_LINE_CAP_ROUND as the +line width approaches 0.0, (but never reaching the empty-rectangle +returned by cairo_stroke_extents() for a line width of 0.0). +Specifically, this means that zero-area sub-paths such as +cairo_move_to();cairo_line_to() segments, (even degenerate cases +where the coordinates to both calls are identical), will be +considered as contributing to the extents. However, a lone +cairo_move_to() will not contribute to the results of +cairo_path_extents(). + +Parameters + + + + + + +cr +a cairo context + +x1 +left of the resulting extents + +y1 +top of the resulting extents + +x2 +right of the resulting extents + +y2 +bottom of the resulting extents + + +Since: 1.6 + + + +Types and Values + +cairo_path_t +cairo_path_t +typedef struct { + cairo_status_t status; + cairo_path_data_t *data; + int num_data; +} cairo_path_t; + +A data structure for holding a path. This data structure serves as +the return value for cairo_copy_path() and +cairo_copy_path_flat() as well the input value for +cairo_append_path(). +See cairo_path_data_t for hints on how to iterate over the +actual data within the path. +The num_data member gives the number of elements in the data +array. This number is larger than the number of independent path +portions (defined in cairo_path_data_type_t), since the data +includes both headers and coordinates for each portion. + +Members + + + + + + +cairo_status_t status; +the current error status + + +cairo_path_data_t *data; +the elements in the path + + +int num_data; +the number of elements in the data array + + + + +Since: 1.0 + +union cairo_path_data_t +cairo_path_data_t +cairo_path_data_t is used to represent the path data inside a +cairo_path_t. +The data structure is designed to try to balance the demands of +efficiency and ease-of-use. A path is represented as an array of +cairo_path_data_t, which is a union of headers and points. +Each portion of the path is represented by one or more elements in +the array, (one header followed by 0 or more points). The length +value of the header is the number of array elements for the current +portion including the header, (ie. length == 1 + # of points), and +where the number of points for each element type is as follows: + + %CAIRO_PATH_MOVE_TO: 1 point + %CAIRO_PATH_LINE_TO: 1 point + %CAIRO_PATH_CURVE_TO: 3 points + %CAIRO_PATH_CLOSE_PATH: 0 points + +The semantics and ordering of the coordinate values are consistent +with cairo_move_to(), cairo_line_to(), cairo_curve_to(), and +cairo_close_path(). +Here is sample code for iterating through a cairo_path_t: + + int i; + cairo_path_t *path; + cairo_path_data_t *data; +  + path = cairo_copy_path (cr); +  + for (i=0; i < path->num_data; i += path->data[i].header.length) { + data = &path->data[i]; + switch (data->header.type) { + case CAIRO_PATH_MOVE_TO: + do_move_to_things (data[1].point.x, data[1].point.y); + break; + case CAIRO_PATH_LINE_TO: + do_line_to_things (data[1].point.x, data[1].point.y); + break; + case CAIRO_PATH_CURVE_TO: + do_curve_to_things (data[1].point.x, data[1].point.y, + data[2].point.x, data[2].point.y, + data[3].point.x, data[3].point.y); + break; + case CAIRO_PATH_CLOSE_PATH: + do_close_path_things (); + break; + } + } + cairo_path_destroy (path); + +As of cairo 1.4, cairo does not mind if there are more elements in +a portion of the path than needed. Such elements can be used by +users of the cairo API to hold extra values in the path data +structure. For this reason, it is recommended that applications +always use data->header.length to +iterate over the path data, instead of hardcoding the number of +elements for each element type. +Since: 1.0 + +enum cairo_path_data_type_t +cairo_path_data_type_t +cairo_path_data_t is used to describe the type of one portion +of a path when represented as a cairo_path_t. +See cairo_path_data_t for details. + +Members + + + + + + +CAIRO_PATH_MOVE_TO +A move-to operation, since 1.0 + + + +CAIRO_PATH_LINE_TO +A line-to operation, since 1.0 + + + +CAIRO_PATH_CURVE_TO +A curve-to operation, since 1.0 + + + +CAIRO_PATH_CLOSE_PATH +A close-path operation, since 1.0 + + + + +Since: 1.0 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml new file mode 100644 index 0000000..7386cde --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-pattern.xml @@ -0,0 +1,1966 @@ + + +]> + + +cairo_pattern_t +3 +CAIRO Library + + +cairo_pattern_t +Sources for drawing + + + +Functions + + + + + +void +cairo_pattern_add_color_stop_rgb () +void +cairo_pattern_add_color_stop_rgba () +cairo_status_t +cairo_pattern_get_color_stop_count () +cairo_status_t +cairo_pattern_get_color_stop_rgba () +cairo_pattern_t * +cairo_pattern_create_rgb () +cairo_pattern_t * +cairo_pattern_create_rgba () +cairo_status_t +cairo_pattern_get_rgba () +cairo_pattern_t * +cairo_pattern_create_for_surface () +cairo_status_t +cairo_pattern_get_surface () +cairo_pattern_t * +cairo_pattern_create_linear () +cairo_status_t +cairo_pattern_get_linear_points () +cairo_pattern_t * +cairo_pattern_create_radial () +cairo_status_t +cairo_pattern_get_radial_circles () +cairo_pattern_t * +cairo_pattern_create_mesh () +void +cairo_mesh_pattern_begin_patch () +void +cairo_mesh_pattern_end_patch () +void +cairo_mesh_pattern_move_to () +void +cairo_mesh_pattern_line_to () +void +cairo_mesh_pattern_curve_to () +void +cairo_mesh_pattern_set_control_point () +void +cairo_mesh_pattern_set_corner_color_rgb () +void +cairo_mesh_pattern_set_corner_color_rgba () +cairo_status_t +cairo_mesh_pattern_get_patch_count () +cairo_path_t * +cairo_mesh_pattern_get_path () +cairo_status_t +cairo_mesh_pattern_get_control_point () +cairo_status_t +cairo_mesh_pattern_get_corner_color_rgba () +cairo_pattern_t * +cairo_pattern_reference () +void +cairo_pattern_destroy () +cairo_status_t +cairo_pattern_status () +void +cairo_pattern_set_extend () +cairo_extend_t +cairo_pattern_get_extend () +void +cairo_pattern_set_filter () +cairo_filter_t +cairo_pattern_get_filter () +void +cairo_pattern_set_matrix () +void +cairo_pattern_get_matrix () +cairo_pattern_type_t +cairo_pattern_get_type () +unsigned int +cairo_pattern_get_reference_count () +cairo_status_t +cairo_pattern_set_user_data () +void * +cairo_pattern_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_pattern_t +enumcairo_extend_t +enumcairo_filter_t +enumcairo_pattern_type_t + + + + + + + + +Description +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_type() +or implicitly through +cairo_set_source_type() +functions. + + + +Functions + +cairo_pattern_add_color_stop_rgb () +cairo_pattern_add_color_stop_rgb +void +cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, + double offset, + double red, + double green, + double blue); +Adds an opaque color stop to a gradient pattern. The offset +specifies the location along the gradient's control vector. For +example, a linear gradient's control vector is from (x0,y0) to +(x1,y1) while a radial gradient's control vector is from any point +on the start circle to the corresponding point on the end circle. +The color is specified in the same way as in cairo_set_source_rgb(). +If two (or more) stops are specified with identical offset values, +they will be sorted according to the order in which the stops are +added, (stops added earlier will compare less than stops added +later). This can be useful for reliably making sharp color +transitions instead of the typical blend. +Note: If the pattern is not a gradient pattern, (eg. a linear or +radial pattern), then the pattern will be put into an error status +with a status of CAIRO_STATUS_PATTERN_TYPE_MISMATCH. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +offset +an offset in the range [0.0 .. 1.0] + +red +red component of color + +green +green component of color + +blue +blue component of color + + +Since: 1.0 + +cairo_pattern_add_color_stop_rgba () +cairo_pattern_add_color_stop_rgba +void +cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, + double offset, + double red, + double green, + double blue, + double alpha); +Adds a translucent color stop to a gradient pattern. The offset +specifies the location along the gradient's control vector. For +example, a linear gradient's control vector is from (x0,y0) to +(x1,y1) while a radial gradient's control vector is from any point +on the start circle to the corresponding point on the end circle. +The color is specified in the same way as in cairo_set_source_rgba(). +If two (or more) stops are specified with identical offset values, +they will be sorted according to the order in which the stops are +added, (stops added earlier will compare less than stops added +later). This can be useful for reliably making sharp color +transitions instead of the typical blend. +Note: If the pattern is not a gradient pattern, (eg. a linear or +radial pattern), then the pattern will be put into an error status +with a status of CAIRO_STATUS_PATTERN_TYPE_MISMATCH. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +offset +an offset in the range [0.0 .. 1.0] + +red +red component of color + +green +green component of color + +blue +blue component of color + +alpha +alpha component of color + + +Since: 1.0 + +cairo_pattern_get_color_stop_count () +cairo_pattern_get_color_stop_count +cairo_status_t +cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, + int *count); +Gets the number of color stops specified in the given gradient +pattern. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +count +return value for the number of color stops, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a gradient +pattern. +Since: 1.4 + +cairo_pattern_get_color_stop_rgba () +cairo_pattern_get_color_stop_rgba +cairo_status_t +cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, + int index, + double *offset, + double *red, + double *green, + double *blue, + double *alpha); +Gets the color and offset information at the given index + for a +gradient pattern. Values of index + range from 0 to n-1 +where n is the number returned +by cairo_pattern_get_color_stop_count(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +index +index of the stop to return data for + +offset +return value for the offset of the stop, or NULL + +red +return value for red component of color, or NULL + +green +return value for green component of color, or NULL + +blue +return value for blue component of color, or NULL + +alpha +return value for alpha component of color, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if index +is not valid for the given pattern. If the pattern is +not a gradient pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH is +returned. +Since: 1.4 + +cairo_pattern_create_rgb () +cairo_pattern_create_rgb +cairo_pattern_t * +cairo_pattern_create_rgb (double red, + double green, + double blue); +Creates a new cairo_pattern_t corresponding to an opaque color. 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. + +Parameters + + + + + + +red +red component of the color + +green +green component of the color + +blue +blue component of the color + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_create_rgba () +cairo_pattern_create_rgba +cairo_pattern_t * +cairo_pattern_create_rgba (double red, + double green, + double blue, + double alpha); +Creates a new cairo_pattern_t corresponding to a translucent color. +The color components are floating point numbers in the range 0 to + +If the values passed in are outside that range, they will be +clamped. + + +Parameters + + + + + + +red +red component of the color + +green +green component of the color + +blue +blue component of the color + +alpha +alpha component of the color + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_rgba () +cairo_pattern_get_rgba +cairo_status_t +cairo_pattern_get_rgba (cairo_pattern_t *pattern, + double *red, + double *green, + double *blue, + double *alpha); +Gets the solid color for a solid color pattern. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +red +return value for red component of color, or NULL + +green +return value for green component of color, or NULL + +blue +return value for blue component of color, or NULL + +alpha +return value for alpha component of color, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if the pattern is not a solid +color pattern. +Since: 1.4 + +cairo_pattern_create_for_surface () +cairo_pattern_create_for_surface +cairo_pattern_t * +cairo_pattern_create_for_surface (cairo_surface_t *surface); +Create a new cairo_pattern_t for the given surface. + +Parameters + + + + + + +surface +the surface + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_surface () +cairo_pattern_get_surface +cairo_status_t +cairo_pattern_get_surface (cairo_pattern_t *pattern, + cairo_surface_t **surface); +Gets the surface of a surface pattern. The reference returned in +surface + is owned by the pattern; the caller should call +cairo_surface_reference() if the surface is to be retained. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +surface +return value for surface of pattern, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if the pattern is not a surface +pattern. +Since: 1.4 + +cairo_pattern_create_linear () +cairo_pattern_create_linear +cairo_pattern_t * +cairo_pattern_create_linear (double x0, + double y0, + double x1, + double y1); +Create a new linear gradient cairo_pattern_t along the line defined +by (x0, y0) and (x1, y1). Before using the gradient pattern, a +number of color stops should be defined using +cairo_pattern_add_color_stop_rgb() or +cairo_pattern_add_color_stop_rgba(). +Note: The coordinates here are in pattern space. For a new pattern, +pattern space is identical to user space, but the relationship +between the spaces can be changed with cairo_pattern_set_matrix(). + +Parameters + + + + + + +x0 +x coordinate of the start point + +y0 +y coordinate of the start point + +x1 +x coordinate of the end point + +y1 +y coordinate of the end point + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_linear_points () +cairo_pattern_get_linear_points +cairo_status_t +cairo_pattern_get_linear_points (cairo_pattern_t *pattern, + double *x0, + double *y0, + double *x1, + double *y1); +Gets the gradient endpoints for a linear gradient. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x0 +return value for the x coordinate of the first point, or NULL + +y0 +return value for the y coordinate of the first point, or NULL + +x1 +return value for the x coordinate of the second point, or NULL + +y1 +return value for the y coordinate of the second point, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a linear +gradient pattern. +Since: 1.4 + +cairo_pattern_create_radial () +cairo_pattern_create_radial +cairo_pattern_t * +cairo_pattern_create_radial (double cx0, + double cy0, + double radius0, + double cx1, + double cy1, + double radius1); +Creates a new radial gradient cairo_pattern_t between the two +circles defined by (cx0, cy0, radius0) and (cx1, cy1, radius1). Before using the +gradient pattern, a number of color stops should be defined using +cairo_pattern_add_color_stop_rgb() or +cairo_pattern_add_color_stop_rgba(). +Note: The coordinates here are in pattern space. For a new pattern, +pattern space is identical to user space, but the relationship +between the spaces can be changed with cairo_pattern_set_matrix(). + +Parameters + + + + + + +cx0 +x coordinate for the center of the start circle + +cy0 +y coordinate for the center of the start circle + +radius0 +radius of the start circle + +cx1 +x coordinate for the center of the end circle + +cy1 +y coordinate for the center of the end circle + +radius1 +radius of the end circle + + + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the +returned object and should call cairo_pattern_destroy() when +finished with it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect +the status of a pattern use cairo_pattern_status(). +Since: 1.0 + +cairo_pattern_get_radial_circles () +cairo_pattern_get_radial_circles +cairo_status_t +cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, + double *x0, + double *y0, + double *r0, + double *x1, + double *y1, + double *r1); +Gets the gradient endpoint circles for a radial gradient, each +specified as a center coordinate and a radius. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x0 +return value for the x coordinate of the center of the first circle, or NULL + +y0 +return value for the y coordinate of the center of the first circle, or NULL + +r0 +return value for the radius of the first circle, or NULL + +x1 +return value for the x coordinate of the center of the second circle, or NULL + +y1 +return value for the y coordinate of the center of the second circle, or NULL + +r1 +return value for the radius of the second circle, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a radial +gradient pattern. +Since: 1.4 + +cairo_pattern_create_mesh () +cairo_pattern_create_mesh +cairo_pattern_t * +cairo_pattern_create_mesh (void); +Create a new mesh pattern. +Mesh patterns are tensor-product patch meshes (type 7 shadings in +PDF). Mesh patterns may also be used to create other types of +shadings that are special cases of tensor-product patch meshes such +as Coons patch meshes (type 6 shading in PDF) and Gouraud-shaded +triangle meshes (type 4 and 5 shadings in PDF). +Mesh patterns consist of one or more tensor-product patches, which +should be defined before using the mesh pattern. Using a mesh +pattern with a partially defined patch as source or mask will put +the context in an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. +A tensor-product patch is defined by 4 Bézier curves (side 0, 1, 2, +3) and by 4 additional control points (P0, P1, P2, P3) that provide +further control over the patch and complete the definition of the +tensor-product patch. The corner C0 is the first point of the +patch. +Degenerate sides are permitted so straight lines may be used. A +zero length line on one side may be used to create 3 sided patches. + + C1 Side 1 C2 + +---------------+ + | | + | P1 P2 | + | | +Side 0 | | Side 2 + | | + | | + | P0 P3 | + | | + +---------------+ + C0 Side 3 C3 + +Each patch is constructed by first calling +cairo_mesh_pattern_begin_patch(), then cairo_mesh_pattern_move_to() +to specify the first point in the patch (C0). Then the sides are +specified with calls to cairo_mesh_pattern_curve_to() and +cairo_mesh_pattern_line_to(). +The four additional control points (P0, P1, P2, P3) in a patch can +be specified with cairo_mesh_pattern_set_control_point(). +At each corner of the patch (C0, C1, C2, C3) a color may be +specified with cairo_mesh_pattern_set_corner_color_rgb() or +cairo_mesh_pattern_set_corner_color_rgba(). Any corner whose color +is not explicitly specified defaults to transparent black. +A Coons patch is a special case of the tensor-product patch where +the control points are implicitly defined by the sides of the +patch. The default value for any control point not specified is the +implicit value for a Coons patch, i.e. if no control points are +specified the patch is a Coons patch. +A triangle is a special case of the tensor-product patch where the +control points are implicitly defined by the sides of the patch, +all the sides are lines and one of them has length 0, i.e. if the +patch is specified using just 3 lines, it is a triangle. If the +corners connected by the 0-length side have the same color, the +patch is a Gouraud-shaded triangle. +Patches may be oriented differently to the above diagram. For +example the first point could be at the top left. The diagram only +shows the relationship between the sides, corners and control +points. Regardless of where the first point is located, when +specifying colors, corner 0 will always be the first point, corner +1 the point between side 0 and side 1 etc. +Calling cairo_mesh_pattern_end_patch() completes the current +patch. If less than 4 sides have been defined, the first missing +side is defined as a line from the current point to the first point +of the patch (C0) and the other sides are degenerate lines from C0 +to C0. The corners between the added sides will all be coincident +with C0 of the patch and their color will be set to be the same as +the color of C0. +Additional patches may be added with additional calls to +cairo_mesh_pattern_begin_patch()/cairo_mesh_pattern_end_patch(). + +cairo_pattern_t *pattern = cairo_pattern_create_mesh (); + +/* Add a Coons patch */ +cairo_mesh_pattern_begin_patch (pattern); +cairo_mesh_pattern_move_to (pattern, 0, 0); +cairo_mesh_pattern_curve_to (pattern, 30, -30, 60, 30, 100, 0); +cairo_mesh_pattern_curve_to (pattern, 60, 30, 130, 60, 100, 100); +cairo_mesh_pattern_curve_to (pattern, 60, 70, 30, 130, 0, 100); +cairo_mesh_pattern_curve_to (pattern, 30, 70, -30, 30, 0, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 0, 1, 0, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 3, 1, 1, 0); +cairo_mesh_pattern_end_patch (pattern); + +/* Add a Gouraud-shaded triangle */ +cairo_mesh_pattern_begin_patch (pattern) +cairo_mesh_pattern_move_to (pattern, 100, 100); +cairo_mesh_pattern_line_to (pattern, 130, 130); +cairo_mesh_pattern_line_to (pattern, 130, 70); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 0, 1, 0, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 1, 0, 1, 0); +cairo_mesh_pattern_set_corner_color_rgb (pattern, 2, 0, 0, 1); +cairo_mesh_pattern_end_patch (pattern) + +When two patches overlap, the last one that has been added is drawn +over the first one. +When a patch folds over itself, points are sorted depending on +their parameter coordinates inside the patch. The v coordinate +ranges from 0 to 1 when moving from side 3 to side 1; the u +coordinate ranges from 0 to 1 when going from side 0 to side + + +Points with higher v coordinate hide points with lower v +coordinate. When two points have the same v coordinate, the one +with higher u coordinate is above. This means that points nearer to +side 1 are above points nearer to side 3; when this is not +sufficient to decide which point is above (for example when both +points belong to side 1 or side 3) points nearer to side 2 are +above points nearer to side 0. + + +For a complete definition of tensor-product patches, see the PDF +specification (ISO32000), which describes the parametrization in +detail. +Note: The coordinates are always in pattern space. For a new +pattern, pattern space is identical to user space, but the +relationship between the spaces can be changed with +cairo_pattern_set_matrix(). + +Returns + the newly created cairo_pattern_t if successful, or +an error pattern in case of no memory. The caller owns the returned +object and should call cairo_pattern_destroy() when finished with +it. +This function will always return a valid pointer, but if an error +occurred the pattern status will be set to an error. To inspect the +status of a pattern use cairo_pattern_status(). +Since: 1.12 + +cairo_mesh_pattern_begin_patch () +cairo_mesh_pattern_begin_patch +void +cairo_mesh_pattern_begin_patch (cairo_pattern_t *pattern); +Begin a patch in a mesh pattern. +After calling this function, the patch shape should be defined with +cairo_mesh_pattern_move_to(), cairo_mesh_pattern_line_to() and +cairo_mesh_pattern_curve_to(). +After defining the patch, cairo_mesh_pattern_end_patch() must be +called before using pattern + as a source or mask. +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + already has a +current patch, it will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + +Since: 1.12 + +cairo_mesh_pattern_end_patch () +cairo_mesh_pattern_end_patch +void +cairo_mesh_pattern_end_patch (cairo_pattern_t *pattern); +Indicates the end of the current patch in a mesh pattern. +If the current patch has less than 4 sides, it is closed with a +straight line from the current point to the first point of the +patch as if cairo_mesh_pattern_line_to() was used. +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch has no current point, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + +Since: 1.12 + +cairo_mesh_pattern_move_to () +cairo_mesh_pattern_move_to +void +cairo_mesh_pattern_move_to (cairo_pattern_t *pattern, + double x, + double y); +Define the first point of the current patch in a mesh pattern. +After this call the current point will be (x +, y +). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has at least one side, pattern + +will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x +the X coordinate of the new position + +y +the Y coordinate of the new position + + +Since: 1.12 + +cairo_mesh_pattern_line_to () +cairo_mesh_pattern_line_to +void +cairo_mesh_pattern_line_to (cairo_pattern_t *pattern, + double x, + double y); +Adds a line to the current patch from the current point to position +(x +, y +) in pattern-space coordinates. +If there is no current point before the call to +cairo_mesh_pattern_line_to() this function will behave as +cairo_mesh_pattern_move_to(pattern +, x +, y +). +After this call the current point will be (x +, y +). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has 4 sides, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x +the X coordinate of the end of the new line + +y +the Y coordinate of the end of the new line + + +Since: 1.12 + +cairo_mesh_pattern_curve_to () +cairo_mesh_pattern_curve_to +void +cairo_mesh_pattern_curve_to (cairo_pattern_t *pattern, + double x1, + double y1, + double x2, + double y2, + double x3, + double y3); +Adds a cubic Bézier spline to the current patch from the current +point to position (x3 +, y3 +) in pattern-space coordinates, using +(x1 +, y1 +) and (x2 +, y2 +) as the control points. +If the current patch has no current point before the call to +cairo_mesh_pattern_curve_to(), this function will behave as if +preceded by a call to cairo_mesh_pattern_move_to(pattern +, x1 +, +y1 +). +After this call the current point will be (x3 +, y3 +). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If pattern + has no current +patch or the current patch already has 4 sides, pattern + will be +put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +x1 +the X coordinate of the first control point + +y1 +the Y coordinate of the first control point + +x2 +the X coordinate of the second control point + +y2 +the Y coordinate of the second control point + +x3 +the X coordinate of the end of the curve + +y3 +the Y coordinate of the end of the curve + + +Since: 1.12 + +cairo_mesh_pattern_set_control_point () +cairo_mesh_pattern_set_control_point +void +cairo_mesh_pattern_set_control_point (cairo_pattern_t *pattern, + unsigned int point_num, + double x, + double y); +Set an internal control point of the current patch. +Valid values for point_num + are from 0 to 3 and identify the +control points as explained in cairo_pattern_create_mesh(). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If point_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +point_num +the control point to set the position for + +x +the X coordinate of the control point + +y +the Y coordinate of the control point + + +Since: 1.12 + +cairo_mesh_pattern_set_corner_color_rgb () +cairo_mesh_pattern_set_corner_color_rgb +void +cairo_mesh_pattern_set_corner_color_rgb + (cairo_pattern_t *pattern, + unsigned int corner_num, + double red, + double green, + double blue); +Sets the color of a corner of the current patch in a mesh pattern. +The color is specified in the same way as in cairo_set_source_rgb(). +Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh(). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If corner_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +corner_num +the corner to set the color for + +red +red component of color + +green +green component of color + +blue +blue component of color + + +Since: 1.12 + +cairo_mesh_pattern_set_corner_color_rgba () +cairo_mesh_pattern_set_corner_color_rgba +void +cairo_mesh_pattern_set_corner_color_rgba + (cairo_pattern_t *pattern, + unsigned int corner_num, + double red, + double green, + double blue, + double alpha); +Sets the color of a corner of the current patch in a mesh pattern. +The color is specified in the same way as in cairo_set_source_rgba(). +Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh(). +Note: If pattern + is not a mesh pattern then pattern + will be put +into an error status with a status of +CAIRO_STATUS_PATTERN_TYPE_MISMATCH. If corner_num + is not valid, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_INDEX. If pattern + has no current patch, +pattern + will be put into an error status with a status of +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +corner_num +the corner to set the color for + +red +red component of color + +green +green component of color + +blue +blue component of color + +alpha +alpha component of color + + +Since: 1.12 + +cairo_mesh_pattern_get_patch_count () +cairo_mesh_pattern_get_patch_count +cairo_status_t +cairo_mesh_pattern_get_patch_count (cairo_pattern_t *pattern, + unsigned int *count); +Gets the number of patches specified in the given mesh pattern. +The number only includes patches which have been finished by +calling cairo_mesh_pattern_end_patch(). For example it will be 0 +during the definition of the first patch. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +count +return value for the number patches, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or +CAIRO_STATUS_PATTERN_TYPE_MISMATCH if pattern +is not a mesh +pattern. +Since: 1.12 + +cairo_mesh_pattern_get_path () +cairo_mesh_pattern_get_path +cairo_path_t * +cairo_mesh_pattern_get_path (cairo_pattern_t *pattern, + unsigned int patch_num); +Gets path defining the patch patch_num + for a mesh +pattern. +patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +patch_num +the patch number to return data for + + + +Returns + the path defining the patch, or a path with status +CAIRO_STATUS_INVALID_INDEX if patch_num +or point_num +is not +valid for pattern +. If pattern +is not a mesh pattern, a path with +status CAIRO_STATUS_PATTERN_TYPE_MISMATCH is returned. +Since: 1.12 + +cairo_mesh_pattern_get_control_point () +cairo_mesh_pattern_get_control_point +cairo_status_t +cairo_mesh_pattern_get_control_point (cairo_pattern_t *pattern, + unsigned int patch_num, + unsigned int point_num, + double *x, + double *y); +Gets the control point point_num + of patch patch_num + for a mesh +pattern. +patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count(). +Valid values for point_num + are from 0 to 3 and identify the +control points as explained in cairo_pattern_create_mesh(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +patch_num +the patch number to return data for + +point_num +the control point number to return data for + +x +return value for the x coordinate of the control point, or NULL + +y +return value for the y coordinate of the control point, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if patch_num +or point_num +is not valid for pattern +. If pattern +is not a mesh pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH is +returned. +Since: 1.12 + +cairo_mesh_pattern_get_corner_color_rgba () +cairo_mesh_pattern_get_corner_color_rgba +cairo_status_t +cairo_mesh_pattern_get_corner_color_rgba + (cairo_pattern_t *pattern, + unsigned int patch_num, + unsigned int corner_num, + double *red, + double *green, + double *blue, + double *alpha); +Gets the color information in corner corner_num + of patch +patch_num + for a mesh pattern. +patch_num + can range from 0 to n-1 where n is the number returned by +cairo_mesh_pattern_get_patch_count(). +Valid values for corner_num + are from 0 to 3 and identify the +corners as explained in cairo_pattern_create_mesh(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +patch_num +the patch number to return data for + +corner_num +the corner number to return data for + +red +return value for red component of color, or NULL + +green +return value for green component of color, or NULL + +blue +return value for blue component of color, or NULL + +alpha +return value for alpha component of color, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS, or CAIRO_STATUS_INVALID_INDEX +if patch_num +or corner_num +is not valid for pattern +. If +pattern +is not a mesh pattern, CAIRO_STATUS_PATTERN_TYPE_MISMATCH +is returned. +Since: 1.12 + +cairo_pattern_reference () +cairo_pattern_reference +cairo_pattern_t * +cairo_pattern_reference (cairo_pattern_t *pattern); +Increases the reference count on pattern + by one. This prevents +pattern + from being destroyed until a matching call to +cairo_pattern_destroy() is made. +Use cairo_pattern_get_reference_count() to get the number of +references to a cairo_pattern_t. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the referenced cairo_pattern_t. +Since: 1.0 + +cairo_pattern_destroy () +cairo_pattern_destroy +void +cairo_pattern_destroy (cairo_pattern_t *pattern); +Decreases the reference count on pattern + by one. If the result is +zero, then pattern + and all associated resources are freed. See +cairo_pattern_reference(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + + +Since: 1.0 + +cairo_pattern_status () +cairo_pattern_status +cairo_status_t +cairo_pattern_status (cairo_pattern_t *pattern); +Checks whether an error has previously occurred for this +pattern. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + CAIRO_STATUS_SUCCESS, CAIRO_STATUS_NO_MEMORY, +CAIRO_STATUS_INVALID_MATRIX, CAIRO_STATUS_PATTERN_TYPE_MISMATCH, +or CAIRO_STATUS_INVALID_MESH_CONSTRUCTION. +Since: 1.0 + +cairo_pattern_set_extend () +cairo_pattern_set_extend +void +cairo_pattern_set_extend (cairo_pattern_t *pattern, + cairo_extend_t extend); +Sets the mode to be used for drawing outside the area of a pattern. +See cairo_extend_t for details on the semantics of each extend +strategy. +The default extend mode is CAIRO_EXTEND_NONE for surface patterns +and CAIRO_EXTEND_PAD for gradient patterns. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +extend +a cairo_extend_t describing how the area outside of the +pattern will be drawn + + +Since: 1.0 + +cairo_pattern_get_extend () +cairo_pattern_get_extend +cairo_extend_t +cairo_pattern_get_extend (cairo_pattern_t *pattern); +Gets the current extend mode for a pattern. See cairo_extend_t +for details on the semantics of each extend strategy. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the current extend strategy used for drawing the +pattern. +Since: 1.0 + +cairo_pattern_set_filter () +cairo_pattern_set_filter +void +cairo_pattern_set_filter (cairo_pattern_t *pattern, + cairo_filter_t filter); +Sets the filter to be used for resizing when using this pattern. +See cairo_filter_t for details on each filter. + + +Note that you might want to control filtering even when you do not +have an explicit cairo_pattern_t object, (for example when using +cairo_set_source_surface()). In these cases, it is convenient to +use cairo_get_source() to get access to the pattern that cairo +creates implicitly. For example: + + + +cairo_set_source_surface (cr, image, x, y); +cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + + +Parameters + + + + + + +pattern +a cairo_pattern_t + +filter +a cairo_filter_t describing the filter to use for resizing +the pattern + + +Since: 1.0 + +cairo_pattern_get_filter () +cairo_pattern_get_filter +cairo_filter_t +cairo_pattern_get_filter (cairo_pattern_t *pattern); +Gets the current filter for a pattern. See cairo_filter_t +for details on each filter. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the current filter used for resizing the pattern. +Since: 1.0 + +cairo_pattern_set_matrix () +cairo_pattern_set_matrix +void +cairo_pattern_set_matrix (cairo_pattern_t *pattern, + const cairo_matrix_t *matrix); +Sets the pattern's transformation matrix to matrix +. This matrix is +a transformation from user space to pattern space. +When a pattern is first created it always has the identity matrix +for its transformation matrix, which means that pattern space is +initially identical to user space. +Important: Please note that the direction of this transformation +matrix is from user space to pattern space. This means that if you +imagine the flow from a pattern to user space (and on to device +space), then coordinates in that flow will be transformed by the +inverse of the pattern matrix. +For example, if you want to make a pattern appear twice as large as +it does by default the correct code to use is: + +cairo_matrix_init_scale (&matrix, 0.5, 0.5); +cairo_pattern_set_matrix (pattern, &matrix); + +Meanwhile, using values of 2.0 rather than 0.5 in the code above +would cause the pattern to appear at half of its default size. +Also, please note the discussion of the user-space locking +semantics of cairo_set_source(). + +Parameters + + + + + + +pattern +a cairo_pattern_t + +matrix +a cairo_matrix_t + + +Since: 1.0 + +cairo_pattern_get_matrix () +cairo_pattern_get_matrix +void +cairo_pattern_get_matrix (cairo_pattern_t *pattern, + cairo_matrix_t *matrix); +Stores the pattern's transformation matrix into matrix +. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +matrix +return value for the matrix + + +Since: 1.0 + +cairo_pattern_get_type () +cairo_pattern_get_type +cairo_pattern_type_t +cairo_pattern_get_type (cairo_pattern_t *pattern); +Get the pattern's type. See cairo_pattern_type_t for available +types. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + The type of pattern +. +Since: 1.2 + +cairo_pattern_get_reference_count () +cairo_pattern_get_reference_count +unsigned int +cairo_pattern_get_reference_count (cairo_pattern_t *pattern); +Returns the current reference count of pattern +. + +Parameters + + + + + + +pattern +a cairo_pattern_t + + + +Returns + the current reference count of pattern +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_pattern_set_user_data () +cairo_pattern_set_user_data +cairo_status_t +cairo_pattern_set_user_data (cairo_pattern_t *pattern, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to pattern +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_pattern_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.4 + +cairo_pattern_get_user_data () +cairo_pattern_get_user_data +void * +cairo_pattern_get_user_data (cairo_pattern_t *pattern, + const cairo_user_data_key_t *key); +Return user data previously attached to pattern + using the +specified key. If no user data has been attached with the given +key this function returns NULL. + +Parameters + + + + + + +pattern +a cairo_pattern_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.4 + + + +Types and Values + +cairo_pattern_t +cairo_pattern_t +typedef struct _cairo_pattern cairo_pattern_t; + +A cairo_pattern_t represents a source when drawing onto a +surface. There are different subtypes of cairo_pattern_t, +for different types of sources; for example, +cairo_pattern_create_rgb() creates a pattern for a solid +opaque color. +Other than various +cairo_pattern_create_type() +functions, some of the pattern types can be implicitly created using various +cairo_set_source_type() functions; +for example cairo_set_source_rgb(). +The type of a pattern can be queried with cairo_pattern_get_type(). +Memory management of cairo_pattern_t is done with +cairo_pattern_reference() and cairo_pattern_destroy(). +Since: 1.0 + +enum cairo_extend_t +cairo_extend_t +cairo_extend_t is used to describe how pattern color/alpha will be +determined for areas "outside" the pattern's natural area, (for +example, outside the surface bounds or outside the gradient +geometry). +Mesh patterns are not affected by the extend mode. +The default extend mode is CAIRO_EXTEND_NONE for surface patterns +and CAIRO_EXTEND_PAD for gradient patterns. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_EXTEND_NONE +pixels outside of the source pattern + are fully transparent (Since 1.0) + + + +CAIRO_EXTEND_REPEAT +the pattern is tiled by repeating (Since 1.0) + + + +CAIRO_EXTEND_REFLECT +the pattern is tiled by reflecting + at the edges (Since 1.0; but only implemented for surface patterns since 1.6) + + + +CAIRO_EXTEND_PAD +pixels outside of the pattern copy + the closest pixel from the source (Since 1.2; but only + implemented for surface patterns since 1.6) + + + + +Since: 1.0 + +enum cairo_filter_t +cairo_filter_t +cairo_filter_t is used to indicate what filtering should be +applied when reading pixel values from patterns. See +cairo_pattern_set_filter() for indicating the desired filter to be +used with a particular pattern. + +Members + + + + + + +CAIRO_FILTER_FAST +A high-performance filter, with quality similar + to CAIRO_FILTER_NEAREST (Since 1.0) + + + +CAIRO_FILTER_GOOD +A reasonable-performance filter, with quality + similar to CAIRO_FILTER_BILINEAR (Since 1.0) + + + +CAIRO_FILTER_BEST +The highest-quality available, performance may + not be suitable for interactive use. (Since 1.0) + + + +CAIRO_FILTER_NEAREST +Nearest-neighbor filtering (Since 1.0) + + + +CAIRO_FILTER_BILINEAR +Linear interpolation in two dimensions (Since 1.0) + + + +CAIRO_FILTER_GAUSSIAN +This filter value is currently + unimplemented, and should not be used in current code. (Since 1.0) + + + + +Since: 1.0 + +enum cairo_pattern_type_t +cairo_pattern_type_t +cairo_pattern_type_t is used to describe the type of a given pattern. +The type of a pattern is determined by the function used to create +it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() +functions create SOLID patterns. The remaining +cairo_pattern_create functions map to pattern types in obvious +ways. +The pattern type can be queried with cairo_pattern_get_type() +Most cairo_pattern_t functions can be called with a pattern of any +type, (though trying to change the extend or filter for a solid +pattern will have no effect). A notable exception is +cairo_pattern_add_color_stop_rgb() and +cairo_pattern_add_color_stop_rgba() which must only be called with +gradient patterns (either LINEAR or RADIAL). Otherwise the pattern +will be shutdown and put into an error state. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_PATTERN_TYPE_SOLID +The pattern is a solid (uniform) +color. It may be opaque or translucent, since 1.2. + + + +CAIRO_PATTERN_TYPE_SURFACE +The pattern is a based on a surface (an image), since 1.2. + + + +CAIRO_PATTERN_TYPE_LINEAR +The pattern is a linear gradient, since 1.2. + + + +CAIRO_PATTERN_TYPE_RADIAL +The pattern is a radial gradient, since 1.2. + + + +CAIRO_PATTERN_TYPE_MESH +The pattern is a mesh, since 1.12. + + + +CAIRO_PATTERN_TYPE_RASTER_SOURCE +The pattern is a user pattern providing raster data, since 1.12. + + + + +Since: 1.2 + + + +See Also +cairo_t, cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml new file mode 100644 index 0000000..c0c5b8e --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-pdf.xml @@ -0,0 +1,595 @@ + + +]> + + +PDF Surfaces +3 +CAIRO Library + + +PDF Surfaces +Rendering PDF documents + + + +Functions + + + + + +cairo_surface_t * +cairo_pdf_surface_create () +cairo_surface_t * +cairo_pdf_surface_create_for_stream () +void +cairo_pdf_surface_restrict_to_version () +void +cairo_pdf_get_versions () +const char * +cairo_pdf_version_to_string () +void +cairo_pdf_surface_set_size () +int +cairo_pdf_surface_add_outline () +void +cairo_pdf_surface_set_metadata () +void +cairo_pdf_surface_set_page_label () +void +cairo_pdf_surface_set_thumbnail_size () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_PDF_SURFACE +#defineCAIRO_PDF_OUTLINE_ROOT +enumcairo_pdf_outline_flags_t +enumcairo_pdf_metadata_t +enumcairo_pdf_version_t + + + + + + + + +Description +The PDF surface is used to render cairo graphics to Adobe +PDF files and is a multi-page vector surface backend. +The following mime types are supported: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_UNIQUE_ID, +CAIRO_MIME_TYPE_JBIG2, CAIRO_MIME_TYPE_JBIG2_GLOBAL, +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS. +JBIG2 ImagesJBIG2 data in PDF must be in the embedded format as described in +ISO/IEC 11544. Image specific JBIG2 data must be in +CAIRO_MIME_TYPE_JBIG2. Any global segments in the JBIG2 data +(segments with page association field set to 0) must be in +CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data may be shared by +multiple images. All images sharing the same global data must set +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID to a unique identifier. At least +one of the images must provide the global data using +CAIRO_MIME_TYPE_JBIG2_GLOBAL. The global data will only be +embedded once and shared by all JBIG2 images with the same +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID. + +CCITT Fax ImagesThe CAIRO_MIME_TYPE_CCITT_FAX mime data requires a number of decoding +parameters These parameters are specified using CAIRO_MIME_TYPE_CCITT_FAX_PARAMS. +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime data must contain a string of the form +"param1=value1 param2=value2 ...". +Columns +: [required] An integer specifying the width of the image in pixels. +Rows +: [required] An integer specifying the height of the image in scan lines. +K +: [optional] An integer identifying the encoding scheme used. < 0 +is 2 dimensional Group 4, = 0 is Group3 1 dimensional, > 0 is mixed 1 +and 2 dimensional encoding. Default is 0. +EndOfLine +: [optional] If true end-of-line bit patterns are present. Default is false. +EncodedByteAlign +: [optional] If true the end of line is padded +with 0 bits so the next line begins on a byte boundary. Default is false. +EndOfBlock +: [optional] If true the data contains an end-of-block pattern. Default is true. +BlackIs1 +: [optional] If true 1 bits are black pixels. Default is false. +DamagedRowsBeforeError +: [optional] An integer specifying the +number of damages rows tolerated before an error occurs. Default is 0. +Boolean values may be "true" or "false", or 1 or 0. +These parameters are the same as the CCITTFaxDecode parameters in the +PostScript Language Reference +and Portable Document Format (PDF). +Refer to these documents for further details. +An example CAIRO_MIME_TYPE_CCITT_FAX_PARAMS string is: + +"Columns=10230 Rows=40000 K=1 EndOfLine=true EncodedByteAlign=1 BlackIs1=false" + + + + + +Functions + +cairo_pdf_surface_create () +cairo_pdf_surface_create +cairo_surface_t * +cairo_pdf_surface_create (const char *filename, + double width_in_points, + double height_in_points); +Creates a PDF surface of the specified size in points to be written +to filename +. + +Parameters + + + + + + +filename +a filename for the PDF output (must be writable), NULL may be +used to specify no output. This will generate a PDF surface that +may be queried and used as a source, without generating a +temporary file. + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.2 + +cairo_pdf_surface_create_for_stream () +cairo_pdf_surface_create_for_stream +cairo_surface_t * +cairo_pdf_surface_create_for_stream (cairo_write_func_t write_func, + void *closure, + double width_in_points, + double height_in_points); +Creates a PDF surface of the specified size in points to be written +incrementally to the stream represented by write_func + and closure +. + +Parameters + + + + + + +write_func +a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files. + +closure +the closure argument for write_func + + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.2 + +cairo_pdf_surface_restrict_to_version () +cairo_pdf_surface_restrict_to_version +void +cairo_pdf_surface_restrict_to_version (cairo_surface_t *surface, + cairo_pdf_version_t version); +Restricts the generated PDF file to version +. See cairo_pdf_get_versions() +for a list of available version values that can be used here. +This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +version +PDF version + + +Since: 1.10 + +cairo_pdf_get_versions () +cairo_pdf_get_versions +void +cairo_pdf_get_versions (cairo_pdf_version_t const **versions, + int *num_versions); +Used to retrieve the list of supported versions. See +cairo_pdf_surface_restrict_to_version(). + +Parameters + + + + + + +versions +supported version list + +num_versions +list length + + +Since: 1.10 + +cairo_pdf_version_to_string () +cairo_pdf_version_to_string +const char * +cairo_pdf_version_to_string (cairo_pdf_version_t version); +Get the string representation of the given version + id. This function +will return NULL if version + isn't valid. See cairo_pdf_get_versions() +for a way to get the list of valid version ids. + +Parameters + + + + + + +version +a version id + + + +Returns + the string associated to given version. +Since: 1.10 + +cairo_pdf_surface_set_size () +cairo_pdf_surface_set_size +void +cairo_pdf_surface_set_size (cairo_surface_t *surface, + double width_in_points, + double height_in_points); +Changes the size of a PDF surface for the current (and +subsequent) pages. +This function should only be called before any drawing operations +have been performed on the current page. The simplest way to do +this is to call this function immediately after creating the +surface or immediately after completing a page with either +cairo_show_page() or cairo_copy_page(). + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +width_in_points +new surface width, in points (1 point == 1/72.0 inch) + +height_in_points +new surface height, in points (1 point == 1/72.0 inch) + + +Since: 1.2 + +cairo_pdf_surface_add_outline () +cairo_pdf_surface_add_outline +int +cairo_pdf_surface_add_outline (cairo_surface_t *surface, + int parent_id, + const char *utf8, + const char *link_attribs, + cairo_pdf_outline_flags_t flags); +Add an item to the document outline hierarchy with the name utf8 + +that links to the location specified by link_attribs +. Link +attributes have the same keys and values as the Link Tag, +excluding the "rect" attribute. The item will be a child of the +item with id parent_id +. Use CAIRO_PDF_OUTLINE_ROOT as the parent +id of top level items. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +parent_id +the id of the parent item or CAIRO_PDF_OUTLINE_ROOT if this is a top level item. + +utf8 +the name of the outline + +link_attribs +the link attributes specifying where this outline links to + +flags +outline item flags + + + +Returns + the id for the added item. +Since: 1.16 + +cairo_pdf_surface_set_metadata () +cairo_pdf_surface_set_metadata +void +cairo_pdf_surface_set_metadata (cairo_surface_t *surface, + cairo_pdf_metadata_t metadata, + const char *utf8); +Set document metadata. The CAIRO_PDF_METADATA_CREATE_DATE and +CAIRO_PDF_METADATA_MOD_DATE values must be in ISO-8601 format: +YYYY-MM-DDThh:mm:ss. An optional timezone of the form "[+/-]hh:mm" +or "Z" for UTC time can be appended. All other metadata values can be any UTF-8 +string. +For example: + +cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_TITLE, "My Document"); +cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_CREATE_DATE, "2015-12-31T23:59+02:00"); + + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +metadata +The metadata item to set. + +utf8 +metadata value + + +Since: 1.16 + +cairo_pdf_surface_set_page_label () +cairo_pdf_surface_set_page_label +void +cairo_pdf_surface_set_page_label (cairo_surface_t *surface, + const char *utf8); +Set page label for the current page. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +utf8 +The page label. + + +Since: 1.16 + +cairo_pdf_surface_set_thumbnail_size () +cairo_pdf_surface_set_thumbnail_size +void +cairo_pdf_surface_set_thumbnail_size (cairo_surface_t *surface, + int width, + int height); +Set the thumbnail image size for the current and all subsequent +pages. Setting a width or height of 0 disables thumbnails for the +current and subsequent pages. + +Parameters + + + + + + +surface +a PDF cairo_surface_t + +width +Thumbnail width. + +height +Thumbnail height + + +Since: 1.16 + + + +Types and Values + +CAIRO_HAS_PDF_SURFACE +CAIRO_HAS_PDF_SURFACE +#define CAIRO_HAS_PDF_SURFACE 1 + +Defined if the PDF surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.2 + +CAIRO_PDF_OUTLINE_ROOT +CAIRO_PDF_OUTLINE_ROOT +#define CAIRO_PDF_OUTLINE_ROOT 0 + +The root outline item in cairo_pdf_surface_add_outline(). +Since: 1.16 + +enum cairo_pdf_outline_flags_t +cairo_pdf_outline_flags_t +cairo_pdf_outline_flags_t is used by the +cairo_pdf_surface_add_outline() function specify the attributes of +an outline item. These flags may be bitwise-or'd to produce any +combination of flags. + +Members + + + + + + +CAIRO_PDF_OUTLINE_FLAG_OPEN +The outline item defaults to open in the PDF viewer (Since 1.16) + + + +CAIRO_PDF_OUTLINE_FLAG_BOLD +The outline item is displayed by the viewer in bold text (Since 1.16) + + + +CAIRO_PDF_OUTLINE_FLAG_ITALIC +The outline item is displayed by the viewer in italic text (Since 1.16) + + + + +Since: 1.16 + +enum cairo_pdf_metadata_t +cairo_pdf_metadata_t +cairo_pdf_metadata_t is used by the +cairo_pdf_surface_set_metadata() function specify the metadata to set. + +Members + + + + + + +CAIRO_PDF_METADATA_TITLE +The document title (Since 1.16) + + + +CAIRO_PDF_METADATA_AUTHOR +The document author (Since 1.16) + + + +CAIRO_PDF_METADATA_SUBJECT +The document subject (Since 1.16) + + + +CAIRO_PDF_METADATA_KEYWORDS +The document keywords (Since 1.16) + + + +CAIRO_PDF_METADATA_CREATOR +The document creator (Since 1.16) + + + +CAIRO_PDF_METADATA_CREATE_DATE +The document creation date (Since 1.16) + + + +CAIRO_PDF_METADATA_MOD_DATE +The document modification date (Since 1.16) + + + + +Since: 1.16 + +enum cairo_pdf_version_t +cairo_pdf_version_t +cairo_pdf_version_t is used to describe the version number of the PDF +specification that a generated PDF file will conform to. + +Members + + + + + + +CAIRO_PDF_VERSION_1_4 +The version 1.4 of the PDF specification. (Since 1.10) + + + +CAIRO_PDF_VERSION_1_5 +The version 1.5 of the PDF specification. (Since 1.10) + + + + +Since: 1.10 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-png.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-png.xml new file mode 100644 index 0000000..d8a1ea7 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-png.xml @@ -0,0 +1,309 @@ + + +]> + + +PNG Support +3 +CAIRO Library + + +PNG Support +Reading and writing PNG images + + + +Functions + + + + + +cairo_surface_t * +cairo_image_surface_create_from_png () +cairo_status_t +(*cairo_read_func_t) () +cairo_surface_t * +cairo_image_surface_create_from_png_stream () +cairo_status_t +cairo_surface_write_to_png () +cairo_status_t +(*cairo_write_func_t) () +cairo_status_t +cairo_surface_write_to_png_stream () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_PNG_FUNCTIONS + + + + + + + + +Description +The PNG functions allow reading PNG images into image surfaces, and writing +any surface to a PNG file. +It is a toy API. It only offers very simple support for reading and +writing PNG files, which is sufficient for testing and +demonstration purposes. Applications which need more control over +the generated PNG file should access the pixel data directly, using +cairo_image_surface_get_data() or a backend-specific access +function, and process it with another library, e.g. gdk-pixbuf or +libpng. + + + +Functions + +cairo_image_surface_create_from_png () +cairo_image_surface_create_from_png +cairo_surface_t * +cairo_image_surface_create_from_png (const char *filename); +Creates a new image surface and initializes the contents to the +given PNG file. + +Parameters + + + + + + +filename +name of PNG file to load. On Windows this filename +is encoded in UTF-8. + + + +Returns + a new cairo_surface_t initialized with the contents +of the PNG file, or a "nil" surface if any error occurred. A nil +surface can be checked for with cairo_surface_status(surface) which +may return one of the following values: +CAIRO_STATUS_NO_MEMORY +CAIRO_STATUS_FILE_NOT_FOUND +CAIRO_STATUS_READ_ERROR +CAIRO_STATUS_PNG_ERROR +Alternatively, you can allow errors to propagate through the drawing +operations and check the status on the context upon completion +using cairo_status(). +Since: 1.0 + +cairo_read_func_t () +cairo_read_func_t +cairo_status_t +(*cairo_read_func_t) (void *closure, + unsigned char *data, + unsigned int length); +cairo_read_func_t is the type of function which is called when a +backend needs to read data from an input stream. It is passed the +closure which was specified by the user at the time the read +function was registered, the buffer to read the data into and the +length of the data in bytes. The read function should return +CAIRO_STATUS_SUCCESS if all the data was successfully read, +CAIRO_STATUS_READ_ERROR otherwise. + +Parameters + + + + + + +closure +the input closure + +data +the buffer into which to read the data + +length +the amount of data to read + + + +Returns + the status code of the read operation +Since: 1.0 + +cairo_image_surface_create_from_png_stream () +cairo_image_surface_create_from_png_stream +cairo_surface_t * +cairo_image_surface_create_from_png_stream + (cairo_read_func_t read_func, + void *closure); +Creates a new image surface from PNG data read incrementally +via the read_func + function. + +Parameters + + + + + + +read_func +function called to read the data of the file + +closure +data to pass to read_func +. + + + +Returns + a new cairo_surface_t initialized with the contents +of the PNG file or a "nil" surface if the data read is not a valid PNG image +or memory could not be allocated for the operation. A nil +surface can be checked for with cairo_surface_status(surface) which +may return one of the following values: +CAIRO_STATUS_NO_MEMORY +CAIRO_STATUS_READ_ERROR +CAIRO_STATUS_PNG_ERROR +Alternatively, you can allow errors to propagate through the drawing +operations and check the status on the context upon completion +using cairo_status(). +Since: 1.0 + +cairo_surface_write_to_png () +cairo_surface_write_to_png +cairo_status_t +cairo_surface_write_to_png (cairo_surface_t *surface, + const char *filename); +Writes the contents of surface + to a new file filename + as a PNG +image. + +Parameters + + + + + + +surface +a cairo_surface_t with pixel contents + +filename +the name of a file to write to; on Windows this filename +is encoded in UTF-8. + + + +Returns + CAIRO_STATUS_SUCCESS if the PNG file was written +successfully. Otherwise, CAIRO_STATUS_NO_MEMORY if memory could not +be allocated for the operation or +CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have +pixel contents, or CAIRO_STATUS_WRITE_ERROR if an I/O error occurs +while attempting to write the file, or CAIRO_STATUS_PNG_ERROR if libpng +returned an error. +Since: 1.0 + +cairo_write_func_t () +cairo_write_func_t +cairo_status_t +(*cairo_write_func_t) (void *closure, + const unsigned char *data, + unsigned int length); +cairo_write_func_t is the type of function which is called when a +backend needs to write data to an output stream. It is passed the +closure which was specified by the user at the time the write +function was registered, the data to write and the length of the +data in bytes. The write function should return +CAIRO_STATUS_SUCCESS if all the data was successfully written, +CAIRO_STATUS_WRITE_ERROR otherwise. + +Parameters + + + + + + +closure +the output closure + +data +the buffer containing the data to write + +length +the amount of data to write + + + +Returns + the status code of the write operation +Since: 1.0 + +cairo_surface_write_to_png_stream () +cairo_surface_write_to_png_stream +cairo_status_t +cairo_surface_write_to_png_stream (cairo_surface_t *surface, + cairo_write_func_t write_func, + void *closure); +Writes the image surface to the write function. + +Parameters + + + + + + +surface +a cairo_surface_t with pixel contents + +write_func +a cairo_write_func_t + +closure +closure data for the write function + + + +Returns + CAIRO_STATUS_SUCCESS if the PNG file was written +successfully. Otherwise, CAIRO_STATUS_NO_MEMORY is returned if +memory could not be allocated for the operation, +CAIRO_STATUS_SURFACE_TYPE_MISMATCH if the surface does not have +pixel contents, or CAIRO_STATUS_PNG_ERROR if libpng +returned an error. +Since: 1.0 + + + +Types and Values + +CAIRO_HAS_PNG_FUNCTIONS +CAIRO_HAS_PNG_FUNCTIONS +#define CAIRO_HAS_PNG_FUNCTIONS 1 + +Defined if the PNG functions are available. +This macro can be used to conditionally compile code using the cairo +PNG functions. +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml new file mode 100644 index 0000000..3a73d7f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-ps.xml @@ -0,0 +1,548 @@ + + +]> + + +PostScript Surfaces +3 +CAIRO Library + + +PostScript Surfaces +Rendering PostScript documents + + + +Functions + + + + + +cairo_surface_t * +cairo_ps_surface_create () +cairo_surface_t * +cairo_ps_surface_create_for_stream () +void +cairo_ps_surface_restrict_to_level () +void +cairo_ps_get_levels () +const char * +cairo_ps_level_to_string () +void +cairo_ps_surface_set_eps () +cairo_bool_t +cairo_ps_surface_get_eps () +void +cairo_ps_surface_set_size () +void +cairo_ps_surface_dsc_begin_setup () +void +cairo_ps_surface_dsc_begin_page_setup () +void +cairo_ps_surface_dsc_comment () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_PS_SURFACE +enumcairo_ps_level_t + + + + + + + + +Description +The PostScript surface is used to render cairo graphics to Adobe +PostScript files and is a multi-page vector surface backend. +The following mime types are supported: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_UNIQUE_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS, +CAIRO_MIME_TYPE_EPS, CAIRO_MIME_TYPE_EPS_PARAMS. +Source surfaces used by the PostScript surface that have a +CAIRO_MIME_TYPE_UNIQUE_ID mime type will be stored in PostScript +printer memory for the duration of the print +job. CAIRO_MIME_TYPE_UNIQUE_ID should only be used for small +frequently used sources. +The CAIRO_MIME_TYPE_CCITT_FAX and CAIRO_MIME_TYPE_CCITT_FAX_PARAMS mime types +are documented in CCITT Fax Images. +Embedding EPS filesEncapsulated PostScript files can be embedded in the PS output by +setting the CAIRO_MIME_TYPE_EPS mime data on a surface to the EPS +data and painting the surface. The EPS will be scaled and +translated to the extents of the surface the EPS data is attached +to. +The CAIRO_MIME_TYPE_EPS mime type requires the +CAIRO_MIME_TYPE_EPS_PARAMS mime data to also be provided in order +to specify the embeddding parameters. CAIRO_MIME_TYPE_EPS_PARAMS +mime data must contain a string of the form "bbox=[llx lly urx +ury]" that specifies the bounding box (in PS coordinates) of the +EPS graphics. The parameters are: lower left x, lower left y, upper +right x, upper right y. Normally the bbox data is identical to the +%%BoundingBox data in the EPS file. + + + + +Functions + +cairo_ps_surface_create () +cairo_ps_surface_create +cairo_surface_t * +cairo_ps_surface_create (const char *filename, + double width_in_points, + double height_in_points); +Creates a PostScript surface of the specified size in points to be +written to filename +. See cairo_ps_surface_create_for_stream() for +a more flexible mechanism for handling the PostScript output than +simply writing it to a named file. +Note that the size of individual pages of the PostScript output can +vary. See cairo_ps_surface_set_size(). + +Parameters + + + + + + +filename +a filename for the PS output (must be writable), NULL may be +used to specify no output. This will generate a PS surface that +may be queried and used as a source, without generating a +temporary file. + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.2 + +cairo_ps_surface_create_for_stream () +cairo_ps_surface_create_for_stream +cairo_surface_t * +cairo_ps_surface_create_for_stream (cairo_write_func_t write_func, + void *closure, + double width_in_points, + double height_in_points); +Creates a PostScript surface of the specified size in points to be +written incrementally to the stream represented by write_func + and +closure +. See cairo_ps_surface_create() for a more convenient way +to simply direct the PostScript output to a named file. +Note that the size of individual pages of the PostScript +output can vary. See cairo_ps_surface_set_size(). + +Parameters + + + + + + +write_func +a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files. + +closure +the closure argument for write_func + + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.2 + +cairo_ps_surface_restrict_to_level () +cairo_ps_surface_restrict_to_level +void +cairo_ps_surface_restrict_to_level (cairo_surface_t *surface, + cairo_ps_level_t level); +Restricts the generated PostSript file to level +. See +cairo_ps_get_levels() for a list of available level values that +can be used here. +This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + +level +PostScript level + + +Since: 1.6 + +cairo_ps_get_levels () +cairo_ps_get_levels +void +cairo_ps_get_levels (cairo_ps_level_t const **levels, + int *num_levels); +Used to retrieve the list of supported levels. See +cairo_ps_surface_restrict_to_level(). + +Parameters + + + + + + +levels +supported level list + +num_levels +list length + + +Since: 1.6 + +cairo_ps_level_to_string () +cairo_ps_level_to_string +const char * +cairo_ps_level_to_string (cairo_ps_level_t level); +Get the string representation of the given level + id. This function +will return NULL if level + id isn't valid. See cairo_ps_get_levels() +for a way to get the list of valid level ids. + +Parameters + + + + + + +level +a level id + + + +Returns + the string associated to given level. +Since: 1.6 + +cairo_ps_surface_set_eps () +cairo_ps_surface_set_eps +void +cairo_ps_surface_set_eps (cairo_surface_t *surface, + cairo_bool_t eps); +If eps + is TRUE, the PostScript surface will output Encapsulated +PostScript. +This function should only be called before any drawing operations +have been performed on the current page. The simplest way to do +this is to call this function immediately after creating the +surface. An Encapsulated PostScript file should never contain more +than one page. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + +eps +TRUE to output EPS format PostScript + + +Since: 1.6 + +cairo_ps_surface_get_eps () +cairo_ps_surface_get_eps +cairo_bool_t +cairo_ps_surface_get_eps (cairo_surface_t *surface); +Check whether the PostScript surface will output Encapsulated PostScript. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + + + +Returns + TRUE if the surface will output Encapsulated PostScript. +Since: 1.6 + +cairo_ps_surface_set_size () +cairo_ps_surface_set_size +void +cairo_ps_surface_set_size (cairo_surface_t *surface, + double width_in_points, + double height_in_points); +Changes the size of a PostScript surface for the current (and +subsequent) pages. +This function should only be called before any drawing operations +have been performed on the current page. The simplest way to do +this is to call this function immediately after creating the +surface or immediately after completing a page with either +cairo_show_page() or cairo_copy_page(). + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + +width_in_points +new surface width, in points (1 point == 1/72.0 inch) + +height_in_points +new surface height, in points (1 point == 1/72.0 inch) + + +Since: 1.2 + +cairo_ps_surface_dsc_begin_setup () +cairo_ps_surface_dsc_begin_setup +void +cairo_ps_surface_dsc_begin_setup (cairo_surface_t *surface); +This function indicates that subsequent calls to +cairo_ps_surface_dsc_comment() should direct comments to the Setup +section of the PostScript output. +This function should be called at most once per surface, and must +be called before any call to cairo_ps_surface_dsc_begin_page_setup() +and before any drawing is performed to the surface. +See cairo_ps_surface_dsc_comment() for more details. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + + +Since: 1.2 + +cairo_ps_surface_dsc_begin_page_setup () +cairo_ps_surface_dsc_begin_page_setup +void +cairo_ps_surface_dsc_begin_page_setup (cairo_surface_t *surface); +This function indicates that subsequent calls to +cairo_ps_surface_dsc_comment() should direct comments to the +PageSetup section of the PostScript output. +This function call is only needed for the first page of a +surface. It should be called after any call to +cairo_ps_surface_dsc_begin_setup() and before any drawing is +performed to the surface. +See cairo_ps_surface_dsc_comment() for more details. + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + + +Since: 1.2 + +cairo_ps_surface_dsc_comment () +cairo_ps_surface_dsc_comment +void +cairo_ps_surface_dsc_comment (cairo_surface_t *surface, + const char *comment); +Emit a comment into the PostScript output for the given surface. +The comment is expected to conform to the PostScript Language +Document Structuring Conventions (DSC). Please see that manual for +details on the available comments and their meanings. In +particular, the %%IncludeFeature comment allows a +device-independent means of controlling printer device features. So +the PostScript Printer Description Files Specification will also be +a useful reference. +The comment string must begin with a percent character (%) and the +total length of the string (including any initial percent +characters) must not exceed 255 characters. Violating either of +these conditions will place surface + into an error state. But +beyond these two conditions, this function will not enforce +conformance of the comment with any particular specification. +The comment string should not have a trailing newline. +The DSC specifies different sections in which particular comments +can appear. This function provides for comments to be emitted +within three sections: the header, the Setup section, and the +PageSetup section. Comments appearing in the first two sections +apply to the entire document while comments in the BeginPageSetup +section apply only to a single page. +For comments to appear in the header section, this function should +be called after the surface is created, but before a call to +cairo_ps_surface_dsc_begin_setup(). +For comments to appear in the Setup section, this function should +be called after a call to cairo_ps_surface_dsc_begin_setup() but +before a call to cairo_ps_surface_dsc_begin_page_setup(). +For comments to appear in the PageSetup section, this function +should be called after a call to +cairo_ps_surface_dsc_begin_page_setup(). +Note that it is only necessary to call +cairo_ps_surface_dsc_begin_page_setup() for the first page of any +surface. After a call to cairo_show_page() or cairo_copy_page() +comments are unambiguously directed to the PageSetup section of the +current page. But it doesn't hurt to call this function at the +beginning of every page as that consistency may make the calling +code simpler. +As a final note, cairo automatically generates several comments on +its own. As such, applications must not manually generate any of +the following comments: +Header section: %!PS-Adobe-3.0, %%Creator, %%CreationDate, %%Pages, +%%BoundingBox, %%DocumentData, %%LanguageLevel, %%EndComments. +Setup section: %%BeginSetup, %%EndSetup +PageSetup section: %%BeginPageSetup, %%PageBoundingBox, %%EndPageSetup. +Other sections: %%BeginProlog, %%EndProlog, %%Page, %%Trailer, %%EOF +Here is an example sequence showing how this function might be used: + +cairo_surface_t *surface = cairo_ps_surface_create (filename, width, height); +... +cairo_ps_surface_dsc_comment (surface, "%%Title: My excellent document"); +cairo_ps_surface_dsc_comment (surface, "%%Copyright: Copyright (C) 2006 Cairo Lover") +... +cairo_ps_surface_dsc_begin_setup (surface); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor White"); +... +cairo_ps_surface_dsc_begin_page_setup (surface); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A3"); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *InputSlot LargeCapacity"); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaType Glossy"); +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *MediaColor Blue"); +... draw to first page here .. +cairo_show_page (cr); +... +cairo_ps_surface_dsc_comment (surface, "%%IncludeFeature: *PageSize A5"); +... + + +Parameters + + + + + + +surface +a PostScript cairo_surface_t + +comment +a comment string to be emitted into the PostScript output + + +Since: 1.2 + + + +Types and Values + +CAIRO_HAS_PS_SURFACE +CAIRO_HAS_PS_SURFACE +#define CAIRO_HAS_PS_SURFACE 1 + +Defined if the PostScript surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.2 + +enum cairo_ps_level_t +cairo_ps_level_t +cairo_ps_level_t is used to describe the language level of the +PostScript Language Reference that a generated PostScript file will +conform to. + +Members + + + + + + +CAIRO_PS_LEVEL_2 +The language level 2 of the PostScript specification. (Since 1.6) + + + +CAIRO_PS_LEVEL_3 +The language level 3 of the PostScript specification. (Since 1.6) + + + + +Since: 1.6 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml new file mode 100644 index 0000000..6b74915 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz-fonts.xml @@ -0,0 +1,129 @@ + + +]> + + +Quartz (CGFont) Fonts +3 +CAIRO Library + + +Quartz (CGFont) Fonts +Font support via CGFont on OS X + + + +Functions + + + + + +cairo_font_face_t * +cairo_quartz_font_face_create_for_cgfont () +cairo_font_face_t * +cairo_quartz_font_face_create_for_atsu_font_id () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_QUARTZ_FONT + + + + + + + + +Description +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. + + + +Functions + +cairo_quartz_font_face_create_for_cgfont () +cairo_quartz_font_face_create_for_cgfont +cairo_font_face_t * +cairo_quartz_font_face_create_for_cgfont + (CGFontRef font); +Creates a new font for the Quartz font backend based on a +CGFontRef. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). + +Parameters + + + + + + +font +a CGFontRef obtained through a method external to cairo. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.6 + +cairo_quartz_font_face_create_for_atsu_font_id () +cairo_quartz_font_face_create_for_atsu_font_id +cairo_font_face_t * +cairo_quartz_font_face_create_for_atsu_font_id + (ATSUFontID font_id); +Creates a new font for the Quartz font backend based on an +ATSUFontID. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). + +Parameters + + + + + + +font_id +an ATSUFontID for the font. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.6 + + + +Types and Values + +CAIRO_HAS_QUARTZ_FONT +CAIRO_HAS_QUARTZ_FONT +#define CAIRO_HAS_QUARTZ_FONT 1 + +Defined if the Quartz font backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.6 + + + +See Also +cairo_font_face_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml new file mode 100644 index 0000000..d39d524 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-quartz.xml @@ -0,0 +1,183 @@ + + +]> + + +Quartz Surfaces +3 +CAIRO Library + + +Quartz Surfaces +Rendering to Quartz surfaces + + + +Functions + + + + + +cairo_surface_t * +cairo_quartz_surface_create () +cairo_surface_t * +cairo_quartz_surface_create_for_cg_context () +CGContextRef +cairo_quartz_surface_get_cg_context () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_QUARTZ_SURFACE + + + + + + + + +Description +The Quartz surface is used to render cairo graphics targeting the +Apple OS X Quartz rendering system. + + + +Functions + +cairo_quartz_surface_create () +cairo_quartz_surface_create +cairo_surface_t * +cairo_quartz_surface_create (cairo_format_t format, + unsigned int width, + unsigned int height); +Creates a Quartz surface backed by a CGBitmap. The surface is +created using the Device RGB (or Device Gray, for A8) color space. +All Cairo operations, including those that require software +rendering, will succeed on this surface. + +Parameters + + + + + + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created surface. +Since: 1.6 + +cairo_quartz_surface_create_for_cg_context () +cairo_quartz_surface_create_for_cg_context +cairo_surface_t * +cairo_quartz_surface_create_for_cg_context + (CGContextRef cgContext, + unsigned int width, + unsigned int height); +Creates a Quartz surface that wraps the given CGContext. The +CGContext is assumed to be in the standard Cairo coordinate space +(that is, with the origin at the upper left and the Y axis +increasing downward). If the CGContext is in the Quartz coordinate +space (with the origin at the bottom left), then it should be +flipped before this function is called. The flip can be accomplished +using a translate and a scale; for example: + +CGContextTranslateCTM (cgContext, 0.0, height); +CGContextScaleCTM (cgContext, 1.0, -1.0); + +All Cairo operations are implemented in terms of Quartz operations, +as long as Quartz-compatible elements are used (such as Quartz fonts). + +Parameters + + + + + + +cgContext +the existing CGContext for which to create the surface + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created Cairo surface. +Since: 1.6 + +cairo_quartz_surface_get_cg_context () +cairo_quartz_surface_get_cg_context +CGContextRef +cairo_quartz_surface_get_cg_context (cairo_surface_t *surface); +Returns the CGContextRef that the given Quartz surface is backed +by. +A call to cairo_surface_flush() is required before using the +CGContextRef to ensure that all pending drawing operations are +finished and to restore any temporary modification cairo has made +to its state. A call to cairo_surface_mark_dirty() is required +after the state or the content of the CGContextRef has been +modified. + +Parameters + + + + + + +surface +the Cairo Quartz surface + + + +Returns + the CGContextRef for the given surface. +Since: 1.6 + + + +Types and Values + +CAIRO_HAS_QUARTZ_SURFACE +CAIRO_HAS_QUARTZ_SURFACE +#define CAIRO_HAS_QUARTZ_SURFACE 1 + +Defined if the Quartz surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.6 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml new file mode 100644 index 0000000..227bb18 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-raster-source.xml @@ -0,0 +1,550 @@ + + +]> + + +Raster Sources +3 +CAIRO Library + + +Raster Sources +Supplying arbitrary image data + + + +Functions + + + + + +cairo_pattern_t * +cairo_pattern_create_raster_source () +void +cairo_raster_source_pattern_set_callback_data () +void * +cairo_raster_source_pattern_get_callback_data () +void +cairo_raster_source_pattern_set_acquire () +void +cairo_raster_source_pattern_get_acquire () +void +cairo_raster_source_pattern_set_snapshot () +cairo_raster_source_snapshot_func_t +cairo_raster_source_pattern_get_snapshot () +void +cairo_raster_source_pattern_set_copy () +cairo_raster_source_copy_func_t +cairo_raster_source_pattern_get_copy () +void +cairo_raster_source_pattern_set_finish () +cairo_raster_source_finish_func_t +cairo_raster_source_pattern_get_finish () +cairo_surface_t +(*cairo_raster_source_acquire_func_t) () +void +(*cairo_raster_source_release_func_t) () +cairo_status_t +(*cairo_raster_source_snapshot_func_t) () +cairo_status_t +(*cairo_raster_source_copy_func_t) () +void +(*cairo_raster_source_finish_func_t) () + + + + + + + + +Description +The raster source provides the ability to supply arbitrary pixel data +whilst rendering. The pixels are queried at the time of rasterisation +by means of user callback functions, allowing for the ultimate +flexibility. For example, in handling compressed image sources, you +may keep a MRU cache of decompressed images and decompress sources on the +fly and discard old ones to conserve memory. +For the raster source to be effective, you must at least specify +the acquire and release callbacks which are used to retrieve the pixel +data for the region of interest and demark when it can be freed afterwards. +Other callbacks are provided for when the pattern is copied temporarily +during rasterisation, or more permanently as a snapshot in order to keep +the pixel data available for printing. + + + +Functions + +cairo_pattern_create_raster_source () +cairo_pattern_create_raster_source +cairo_pattern_t * +cairo_pattern_create_raster_source (void *user_data, + cairo_content_t content, + int width, + int height); +Creates a new user pattern for providing pixel data. +Use the setter functions to associate callbacks with the returned +pattern. The only mandatory callback is acquire. + +Parameters + + + + + + +user_data +the user data to be passed to all callbacks + +content +content type for the pixel data that will be returned. Knowing +the content type ahead of time is used for analysing the operation and +picking the appropriate rendering path. + +width +maximum size of the sample area + +height +maximum size of the sample area + + + +Returns + a newly created cairo_pattern_t. Free with +cairo_pattern_destroy() when you are done using it. +Since: 1.12 + +cairo_raster_source_pattern_set_callback_data () +cairo_raster_source_pattern_set_callback_data +void +cairo_raster_source_pattern_set_callback_data + (cairo_pattern_t *pattern, + void *data); +Updates the user data that is provided to all callbacks. + +Parameters + + + + + + +pattern +the pattern to update + +data +the user data to be passed to all callbacks + + +Since: 1.12 + +cairo_raster_source_pattern_get_callback_data () +cairo_raster_source_pattern_get_callback_data +void * +cairo_raster_source_pattern_get_callback_data + (cairo_pattern_t *pattern); +Queries the current user data. + +Parameters + + + + + + +pattern +the pattern to update + + + +Returns + the current user-data passed to each callback +Since: 1.12 + +cairo_raster_source_pattern_set_acquire () +cairo_raster_source_pattern_set_acquire +void +cairo_raster_source_pattern_set_acquire + (cairo_pattern_t *pattern, + cairo_raster_source_acquire_func_t acquire, + cairo_raster_source_release_func_t release); +Specifies the callbacks used to generate the image surface for a rendering +operation (acquire) and the function used to cleanup that surface afterwards. +The acquire + callback should create a surface (preferably an image +surface created to match the target using +cairo_surface_create_similar_image()) that defines at least the region +of interest specified by extents. The surface is allowed to be the entire +sample area, but if it does contain a subsection of the sample area, +the surface extents should be provided by setting the device offset (along +with its width and height) using cairo_surface_set_device_offset(). + +Parameters + + + + + + +pattern +the pattern to update + +acquire +acquire callback + +release +release callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_acquire () +cairo_raster_source_pattern_get_acquire +void +cairo_raster_source_pattern_get_acquire + (cairo_pattern_t *pattern, + cairo_raster_source_acquire_func_t *acquire, + cairo_raster_source_release_func_t *release); +Queries the current acquire and release callbacks. + +Parameters + + + + + + +pattern +the pattern to query + +acquire +return value for the current acquire callback + +release +return value for the current release callback + + +Since: 1.12 + +cairo_raster_source_pattern_set_snapshot () +cairo_raster_source_pattern_set_snapshot +void +cairo_raster_source_pattern_set_snapshot + (cairo_pattern_t *pattern, + cairo_raster_source_snapshot_func_t snapshot); +Sets the callback that will be used whenever a snapshot is taken of the +pattern, that is whenever the current contents of the pattern should be +preserved for later use. This is typically invoked whilst printing. + +Parameters + + + + + + +pattern +the pattern to update + +snapshot +snapshot callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_snapshot () +cairo_raster_source_pattern_get_snapshot +cairo_raster_source_snapshot_func_t +cairo_raster_source_pattern_get_snapshot + (cairo_pattern_t *pattern); +Queries the current snapshot callback. + +Parameters + + + + + + +pattern +the pattern to query + + + +Returns + the current snapshot callback +Since: 1.12 + +cairo_raster_source_pattern_set_copy () +cairo_raster_source_pattern_set_copy +void +cairo_raster_source_pattern_set_copy (cairo_pattern_t *pattern, + cairo_raster_source_copy_func_t copy); +Updates the copy callback which is used whenever a temporary copy of the +pattern is taken. + +Parameters + + + + + + +pattern +the pattern to update + +copy +the copy callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_copy () +cairo_raster_source_pattern_get_copy +cairo_raster_source_copy_func_t +cairo_raster_source_pattern_get_copy (cairo_pattern_t *pattern); +Queries the current copy callback. + +Parameters + + + + + + +pattern +the pattern to query + + + +Returns + the current copy callback +Since: 1.12 + +cairo_raster_source_pattern_set_finish () +cairo_raster_source_pattern_set_finish +void +cairo_raster_source_pattern_set_finish + (cairo_pattern_t *pattern, + cairo_raster_source_finish_func_t finish); +Updates the finish callback which is used whenever a pattern (or a copy +thereof) will no longer be used. + +Parameters + + + + + + +pattern +the pattern to update + +finish +the finish callback + + +Since: 1.12 + +cairo_raster_source_pattern_get_finish () +cairo_raster_source_pattern_get_finish +cairo_raster_source_finish_func_t +cairo_raster_source_pattern_get_finish + (cairo_pattern_t *pattern); +Queries the current finish callback. + +Parameters + + + + + + +pattern +the pattern to query + + + +Returns + the current finish callback +Since: 1.12 + +cairo_raster_source_acquire_func_t () +cairo_raster_source_acquire_func_t +cairo_surface_t +(*cairo_raster_source_acquire_func_t) (cairo_pattern_t *pattern, + void *callback_data, + cairo_surface_t *target, + const cairo_rectangle_int_t *extents); +cairo_raster_source_acquire_func_t is the type of function which is +called when a pattern is being rendered from. It should create a surface +that provides the pixel data for the region of interest as defined by +extents, though the surface itself does not have to be limited to that +area. For convenience the surface should probably be of image type, +created with cairo_surface_create_similar_image() for the target (which +enables the number of copies to be reduced during transfer to the +device). Another option, might be to return a similar surface to the +target for explicit handling by the application of a set of cached sources +on the device. The region of sample data provided should be defined using +cairo_surface_set_device_offset() to specify the top-left corner of the +sample data (along with width and height of the surface). + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + +target +the rendering target surface + +extents +rectangular region of interest in pixels in sample space + + + +Returns + a cairo_surface_t +Since: 1.12 + +cairo_raster_source_release_func_t () +cairo_raster_source_release_func_t +void +(*cairo_raster_source_release_func_t) (cairo_pattern_t *pattern, + void *callback_data, + cairo_surface_t *surface); +cairo_raster_source_release_func_t is the type of function which is +called when the pixel data is no longer being access by the pattern +for the rendering operation. Typically this function will simply +destroy the surface created during acquire. + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + +surface +the surface created during acquire + + +Since: 1.12 + +cairo_raster_source_snapshot_func_t () +cairo_raster_source_snapshot_func_t +cairo_status_t +(*cairo_raster_source_snapshot_func_t) + (cairo_pattern_t *pattern, + void *callback_data); +cairo_raster_source_snapshot_func_t is the type of function which is +called when the pixel data needs to be preserved for later use +during printing. This pattern will be accessed again later, and it +is expected to provide the pixel data that was current at the time +of snapshotting. + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + + + +Returns + CAIRO_STATUS_SUCCESS on success, or one of the +cairo_status_t error codes for failure. +Since: 1.12 + +cairo_raster_source_copy_func_t () +cairo_raster_source_copy_func_t +cairo_status_t +(*cairo_raster_source_copy_func_t) (cairo_pattern_t *pattern, + void *callback_data, + const cairo_pattern_t *other); +cairo_raster_source_copy_func_t is the type of function which is +called when the pattern gets copied as a normal part of rendering. + +Parameters + + + + + + +pattern +the cairo_pattern_t that was copied to + +callback_data +the user data supplied during creation + +other +the cairo_pattern_t being used as the source for the copy + + + +Returns + CAIRO_STATUS_SUCCESS on success, or one of the +cairo_status_t error codes for failure. +Since: 1.12 + +cairo_raster_source_finish_func_t () +cairo_raster_source_finish_func_t +void +(*cairo_raster_source_finish_func_t) (cairo_pattern_t *pattern, + void *callback_data); +cairo_raster_source_finish_func_t is the type of function which is +called when the pattern (or a copy thereof) is no longer required. + +Parameters + + + + + + +pattern +the pattern being rendered from + +callback_data +the user data supplied during creation + + +Since: 1.12 + + + +Types and Values + + + +See Also +cairo_pattern_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml new file mode 100644 index 0000000..b6b9a6f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-recording.xml @@ -0,0 +1,204 @@ + + +]> + + +Recording Surfaces +3 +CAIRO Library + + +Recording Surfaces +Records all drawing operations + + + +Functions + + + + + +cairo_surface_t * +cairo_recording_surface_create () +void +cairo_recording_surface_ink_extents () +cairo_bool_t +cairo_recording_surface_get_extents () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_RECORDING_SURFACE + + + + + + + + +Description +A recording surface is a surface that records all drawing operations at +the highest level of the surface backend interface, (that is, the +level of paint, mask, stroke, fill, and show_text_glyphs). The recording +surface can then be "replayed" against any target surface by using it +as a source surface. +If you want to replay a surface so that the results in target will be +identical to the results that would have been obtained if the original +operations applied to the recording surface had instead been applied to the +target surface, you can use code like this: + +cairo_t *cr; + +cr = cairo_create (target); +cairo_set_source_surface (cr, recording_surface, 0.0, 0.0); +cairo_paint (cr); +cairo_destroy (cr); + +A recording surface is logically unbounded, i.e. it has no implicit constraint +on the size of the drawing surface. However, in practice this is rarely +useful as you wish to replay against a particular target surface with +known bounds. For this case, it is more efficient to specify the target +extents to the recording surface upon creation. +The recording phase of the recording surface is careful to snapshot all +necessary objects (paths, patterns, etc.), in order to achieve +accurate replay. The efficiency of the recording surface could be +improved by improving the implementation of snapshot for the +various objects. For example, it would be nice to have a +copy-on-write implementation for _cairo_surface_snapshot. + + + +Functions + +cairo_recording_surface_create () +cairo_recording_surface_create +cairo_surface_t * +cairo_recording_surface_create (cairo_content_t content, + const cairo_rectangle_t *extents); +Creates a recording-surface which can be used to record all drawing operations +at the highest level (that is, the level of paint, mask, stroke, fill +and show_text_glyphs). The recording surface can then be "replayed" against +any target surface by using it as a source to drawing operations. +The recording phase of the recording surface is careful to snapshot all +necessary objects (paths, patterns, etc.), in order to achieve +accurate replay. + +Parameters + + + + + + +content +the content of the recording surface + +extents +the extents to record in pixels, can be NULL to record +unbounded operations. + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +Since: 1.10 + +cairo_recording_surface_ink_extents () +cairo_recording_surface_ink_extents +void +cairo_recording_surface_ink_extents (cairo_surface_t *surface, + double *x0, + double *y0, + double *width, + double *height); +Measures the extents of the operations stored within the recording-surface. +This is useful to compute the required size of an image surface (or +equivalent) into which to replay the full sequence of drawing operations. + +Parameters + + + + + + +surface +a cairo_recording_surface_t + +x0 +the x-coordinate of the top-left of the ink bounding box + +y0 +the y-coordinate of the top-left of the ink bounding box + +width +the width of the ink bounding box + +height +the height of the ink bounding box + + +Since: 1.10 + +cairo_recording_surface_get_extents () +cairo_recording_surface_get_extents +cairo_bool_t +cairo_recording_surface_get_extents (cairo_surface_t *surface, + cairo_rectangle_t *extents); +Get the extents of the recording-surface. + +Parameters + + + + + + +surface +a cairo_recording_surface_t + +extents +the cairo_rectangle_t to be assigned the extents + + + +Returns + TRUE if the surface is bounded, of recording type, and +not in an error state, otherwise FALSE +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_RECORDING_SURFACE +CAIRO_HAS_RECORDING_SURFACE +#define CAIRO_HAS_RECORDING_SURFACE 1 + +Defined if the recording surface backend is available. +The recording surface backend is always built in. +This macro was added for completeness in cairo 1.10. +Since: 1.10 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-region.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-region.xml new file mode 100644 index 0000000..30bc405 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-region.xml @@ -0,0 +1,793 @@ + + +]> + + +Regions +3 +CAIRO Library + + +Regions +Representing a pixel-aligned area + + + +Functions + + + + + +cairo_region_t * +cairo_region_create () +cairo_region_t * +cairo_region_create_rectangle () +cairo_region_t * +cairo_region_create_rectangles () +cairo_region_t * +cairo_region_copy () +cairo_region_t * +cairo_region_reference () +void +cairo_region_destroy () +cairo_status_t +cairo_region_status () +void +cairo_region_get_extents () +int +cairo_region_num_rectangles () +void +cairo_region_get_rectangle () +cairo_bool_t +cairo_region_is_empty () +cairo_bool_t +cairo_region_contains_point () +cairo_region_overlap_t +cairo_region_contains_rectangle () +cairo_bool_t +cairo_region_equal () +void +cairo_region_translate () +cairo_status_t +cairo_region_intersect () +cairo_status_t +cairo_region_intersect_rectangle () +cairo_status_t +cairo_region_subtract () +cairo_status_t +cairo_region_subtract_rectangle () +cairo_status_t +cairo_region_union () +cairo_status_t +cairo_region_union_rectangle () +cairo_status_t +cairo_region_xor () +cairo_status_t +cairo_region_xor_rectangle () + + + + + + +Types and Values + + + + + +typedefcairo_region_t +enumcairo_region_overlap_t + + + + + + + + +Description +Regions are a simple graphical data type representing an area of +integer-aligned rectangles. They are often used on raster surfaces +to track areas of interest, such as change or clip areas. + + + +Functions + +cairo_region_create () +cairo_region_create +cairo_region_t * +cairo_region_create (void); +Allocates a new empty region object. + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_create_rectangle () +cairo_region_create_rectangle +cairo_region_t * +cairo_region_create_rectangle (const cairo_rectangle_int_t *rectangle); +Allocates a new region object containing rectangle +. + +Parameters + + + + + + +rectangle +a cairo_rectangle_int_t + + + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_create_rectangles () +cairo_region_create_rectangles +cairo_region_t * +cairo_region_create_rectangles (const cairo_rectangle_int_t *rects, + int count); +Allocates a new region object containing the union of all given rects +. + +Parameters + + + + + + +rects +an array of count +rectangles + +count +number of rectangles + + + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_copy () +cairo_region_copy +cairo_region_t * +cairo_region_copy (const cairo_region_t *original); +Allocates a new region object copying the area from original +. + +Parameters + + + + + + +original +a cairo_region_t + + + +Returns + A newly allocated cairo_region_t. Free with +cairo_region_destroy(). This function always returns a +valid pointer; if memory cannot be allocated, then a special +error object is returned where all operations on the object do nothing. +You can check for this with cairo_region_status(). +Since: 1.10 + +cairo_region_reference () +cairo_region_reference +cairo_region_t * +cairo_region_reference (cairo_region_t *region); +Increases the reference count on region + by one. This prevents +region + from being destroyed until a matching call to +cairo_region_destroy() is made. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + the referenced cairo_region_t. +Since: 1.10 + +cairo_region_destroy () +cairo_region_destroy +void +cairo_region_destroy (cairo_region_t *region); +Destroys a cairo_region_t object created with +cairo_region_create(), cairo_region_copy(), or +or cairo_region_create_rectangle(). + +Parameters + + + + + + +region +a cairo_region_t + + +Since: 1.10 + +cairo_region_status () +cairo_region_status +cairo_status_t +cairo_region_status (const cairo_region_t *region); +Checks whether an error has previous occurred for this +region object. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_get_extents () +cairo_region_get_extents +void +cairo_region_get_extents (const cairo_region_t *region, + cairo_rectangle_int_t *extents); +Gets the bounding rectangle of region + as a cairo_rectangle_int_t + +Parameters + + + + + + +region +a cairo_region_t + +extents +rectangle into which to store the extents + + +Since: 1.10 + +cairo_region_num_rectangles () +cairo_region_num_rectangles +int +cairo_region_num_rectangles (const cairo_region_t *region); +Returns the number of rectangles contained in region +. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + The number of rectangles contained in region +. +Since: 1.10 + +cairo_region_get_rectangle () +cairo_region_get_rectangle +void +cairo_region_get_rectangle (const cairo_region_t *region, + int nth, + cairo_rectangle_int_t *rectangle); +Stores the nth + rectangle from the region in rectangle +. + +Parameters + + + + + + +region +a cairo_region_t + +nth +a number indicating which rectangle should be returned + +rectangle +return location for a cairo_rectangle_int_t + + +Since: 1.10 + +cairo_region_is_empty () +cairo_region_is_empty +cairo_bool_t +cairo_region_is_empty (const cairo_region_t *region); +Checks whether region + is empty. + +Parameters + + + + + + +region +a cairo_region_t + + + +Returns + TRUE if region +is empty, FALSE if it isn't. +Since: 1.10 + +cairo_region_contains_point () +cairo_region_contains_point +cairo_bool_t +cairo_region_contains_point (const cairo_region_t *region, + int x, + int y); +Checks whether (x +, y +) is contained in region +. + +Parameters + + + + + + +region +a cairo_region_t + +x +the x coordinate of a point + +y +the y coordinate of a point + + + +Returns + TRUE if (x +, y +) is contained in region +, FALSE if it is not. +Since: 1.10 + +cairo_region_contains_rectangle () +cairo_region_contains_rectangle +cairo_region_overlap_t +cairo_region_contains_rectangle (const cairo_region_t *region, + const cairo_rectangle_int_t *rectangle); +Checks whether rectangle + is inside, outside or partially contained +in region + + +Parameters + + + + + + +region +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_REGION_OVERLAP_IN if rectangle +is entirely inside region +, +CAIRO_REGION_OVERLAP_OUT if rectangle +is entirely outside region +, or +CAIRO_REGION_OVERLAP_PART if rectangle +is partially inside and partially outside region +. +Since: 1.10 + +cairo_region_equal () +cairo_region_equal +cairo_bool_t +cairo_region_equal (const cairo_region_t *a, + const cairo_region_t *b); +Compares whether region_a is equivalent to region_b. NULL as an argument +is equal to itself, but not to any non-NULL region. + +Parameters + + + + + + +a +a cairo_region_t or NULL + +b +a cairo_region_t or NULL + + + +Returns + TRUE if both regions contained the same coverage, +FALSE if it is not or any region is in an error status. +Since: 1.10 + +cairo_region_translate () +cairo_region_translate +void +cairo_region_translate (cairo_region_t *region, + int dx, + int dy); +Translates region + by (dx +, dy +). + +Parameters + + + + + + +region +a cairo_region_t + +dx +Amount to translate in the x direction + +dy +Amount to translate in the y direction + + +Since: 1.10 + +cairo_region_intersect () +cairo_region_intersect +cairo_status_t +cairo_region_intersect (cairo_region_t *dst, + const cairo_region_t *other); +Computes the intersection of dst + with other + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_intersect_rectangle () +cairo_region_intersect_rectangle +cairo_status_t +cairo_region_intersect_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Computes the intersection of dst + with rectangle + and places the +result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_subtract () +cairo_region_subtract +cairo_status_t +cairo_region_subtract (cairo_region_t *dst, + const cairo_region_t *other); +Subtracts other + from dst + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_subtract_rectangle () +cairo_region_subtract_rectangle +cairo_status_t +cairo_region_subtract_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Subtracts rectangle + from dst + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_union () +cairo_region_union +cairo_status_t +cairo_region_union (cairo_region_t *dst, + const cairo_region_t *other); +Computes the union of dst + with other + and places the result in dst + + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_union_rectangle () +cairo_region_union_rectangle +cairo_status_t +cairo_region_union_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Computes the union of dst + with rectangle + and places the result in dst +. + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_xor () +cairo_region_xor +cairo_status_t +cairo_region_xor (cairo_region_t *dst, + const cairo_region_t *other); +Computes the exclusive difference of dst + with other + and places the +result in dst +. That is, dst + will be set to contain all areas that +are either in dst + or in other +, but not in both. + +Parameters + + + + + + +dst +a cairo_region_t + +other +another cairo_region_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + +cairo_region_xor_rectangle () +cairo_region_xor_rectangle +cairo_status_t +cairo_region_xor_rectangle (cairo_region_t *dst, + const cairo_rectangle_int_t *rectangle); +Computes the exclusive difference of dst + with rectangle + and places the +result in dst +. That is, dst + will be set to contain all areas that are +either in dst + or in rectangle +, but not in both. + +Parameters + + + + + + +dst +a cairo_region_t + +rectangle +a cairo_rectangle_int_t + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY +Since: 1.10 + + + +Types and Values + +cairo_region_t +cairo_region_t +typedef struct _cairo_region cairo_region_t; + +A cairo_region_t represents a set of integer-aligned rectangles. +It allows set-theoretical operations like cairo_region_union() and +cairo_region_intersect() to be performed on them. +Memory management of cairo_region_t is done with +cairo_region_reference() and cairo_region_destroy(). +Since: 1.10 + +enum cairo_region_overlap_t +cairo_region_overlap_t +Used as the return value for cairo_region_contains_rectangle(). + +Members + + + + + + +CAIRO_REGION_OVERLAP_IN +The contents are entirely inside the region. (Since 1.10) + + + +CAIRO_REGION_OVERLAP_OUT +The contents are entirely outside the region. (Since 1.10) + + + +CAIRO_REGION_OVERLAP_PART +The contents are partially inside and + partially outside the region. (Since 1.10) + + + + +Since: 1.10 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml new file mode 100644 index 0000000..3be82a2 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-scaled-font.xml @@ -0,0 +1,925 @@ + + +]> + + +cairo_scaled_font_t +3 +CAIRO Library + + +cairo_scaled_font_t +Font face at particular size and options + + + +Functions + + + + + +cairo_scaled_font_t * +cairo_scaled_font_create () +cairo_scaled_font_t * +cairo_scaled_font_reference () +void +cairo_scaled_font_destroy () +cairo_status_t +cairo_scaled_font_status () +void +cairo_scaled_font_extents () +void +cairo_scaled_font_text_extents () +void +cairo_scaled_font_glyph_extents () +cairo_status_t +cairo_scaled_font_text_to_glyphs () +cairo_font_face_t * +cairo_scaled_font_get_font_face () +void +cairo_scaled_font_get_font_options () +void +cairo_scaled_font_get_font_matrix () +void +cairo_scaled_font_get_ctm () +void +cairo_scaled_font_get_scale_matrix () +cairo_font_type_t +cairo_scaled_font_get_type () +unsigned int +cairo_scaled_font_get_reference_count () +cairo_status_t +cairo_scaled_font_set_user_data () +void * +cairo_scaled_font_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_scaled_font_t +cairo_font_extents_t +cairo_text_extents_t + + + + + + + + +Description +cairo_scaled_font_t represents a realization of a font face at a particular +size and transformation and a certain set of font options. + + + +Functions + +cairo_scaled_font_create () +cairo_scaled_font_create +cairo_scaled_font_t * +cairo_scaled_font_create (cairo_font_face_t *font_face, + const cairo_matrix_t *font_matrix, + const cairo_matrix_t *ctm, + const cairo_font_options_t *options); +Creates a cairo_scaled_font_t object from a font face and matrices that +describe the size of the font and the environment in which it will +be used. + +Parameters + + + + + + +font_face +a cairo_font_face_t + +font_matrix +font space to user space transformation matrix for the +font. In the simplest case of a N point font, this matrix is +just a scale by N, but it can also be used to shear the font +or stretch it unequally along the two axes. See +cairo_set_font_matrix(). + +ctm +user to device transformation matrix with which the font will +be used. + +options +options to use when getting metrics for the font and +rendering with it. + + + +Returns + a newly created cairo_scaled_font_t. Destroy with +cairo_scaled_font_destroy() +Since: 1.0 + +cairo_scaled_font_reference () +cairo_scaled_font_reference +cairo_scaled_font_t * +cairo_scaled_font_reference (cairo_scaled_font_t *scaled_font); +Increases the reference count on scaled_font + by one. This prevents +scaled_font + from being destroyed until a matching call to +cairo_scaled_font_destroy() is made. +Use cairo_scaled_font_get_reference_count() to get the number of +references to a cairo_scaled_font_t. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t, (may be NULL in which case +this function does nothing) + + + +Returns + the referenced cairo_scaled_font_t +Since: 1.0 + +cairo_scaled_font_destroy () +cairo_scaled_font_destroy +void +cairo_scaled_font_destroy (cairo_scaled_font_t *scaled_font); +Decreases the reference count on font + by one. If the result +is zero, then font + and all associated resources are freed. +See cairo_scaled_font_reference(). + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + +Since: 1.0 + +cairo_scaled_font_status () +cairo_scaled_font_status +cairo_status_t +cairo_scaled_font_status (cairo_scaled_font_t *scaled_font); +Checks whether an error has previously occurred for this +scaled_font. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + CAIRO_STATUS_SUCCESS or another error such as +CAIRO_STATUS_NO_MEMORY. +Since: 1.0 + +cairo_scaled_font_extents () +cairo_scaled_font_extents +void +cairo_scaled_font_extents (cairo_scaled_font_t *scaled_font, + cairo_font_extents_t *extents); +Gets the metrics for a cairo_scaled_font_t. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +extents +a cairo_font_extents_t which to store the retrieved extents. + + +Since: 1.0 + +cairo_scaled_font_text_extents () +cairo_scaled_font_text_extents +void +cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font, + const char *utf8, + cairo_text_extents_t *extents); +Gets the extents for a string of text. The extents describe a +user-space rectangle that encloses the "inked" portion of the text +drawn at the origin (0,0) (as it would be drawn by cairo_show_text() +if the cairo graphics state were set to the same font_face, +font_matrix, ctm, and font_options as scaled_font +). Additionally, +the x_advance and y_advance values indicate the amount by which the +current point would be advanced by cairo_show_text(). +Note that whitespace characters do not directly contribute to the +size of the rectangle (extents.width and extents.height). They do +contribute indirectly by changing the position of non-whitespace +characters. In particular, trailing whitespace characters are +likely to not affect the size of the rectangle, though they will +affect the x_advance and y_advance values. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +utf8 +a NUL-terminated string of text, encoded in UTF-8 + +extents +a cairo_text_extents_t which to store the retrieved extents. + + +Since: 1.2 + +cairo_scaled_font_glyph_extents () +cairo_scaled_font_glyph_extents +void +cairo_scaled_font_glyph_extents (cairo_scaled_font_t *scaled_font, + const cairo_glyph_t *glyphs, + int num_glyphs, + cairo_text_extents_t *extents); +Gets the extents for an array of glyphs. The extents describe a +user-space rectangle that encloses the "inked" portion of the +glyphs, (as they would be drawn by cairo_show_glyphs() if the cairo +graphics state were set to the same font_face, font_matrix, ctm, +and font_options as scaled_font +). Additionally, the x_advance and +y_advance values indicate the amount by which the current point +would be advanced by cairo_show_glyphs(). +Note that whitespace glyphs do not contribute to the size of the +rectangle (extents.width and extents.height). + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +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. + + +Since: 1.0 + +cairo_scaled_font_text_to_glyphs () +cairo_scaled_font_text_to_glyphs +cairo_status_t +cairo_scaled_font_text_to_glyphs (cairo_scaled_font_t *scaled_font, + double x, + double y, + const char *utf8, + int utf8_len, + cairo_glyph_t **glyphs, + int *num_glyphs, + cairo_text_cluster_t **clusters, + int *num_clusters, + cairo_text_cluster_flags_t *cluster_flags); +Converts UTF-8 text to an array of glyphs, optionally with cluster +mapping, that can be used to render later using scaled_font +. +If glyphs + initially points to a non-NULL value, that array is used +as a glyph buffer, and num_glyphs + should point to the number of glyph +entries available there. If the provided glyph array is too short for +the conversion, a new glyph array is allocated using cairo_glyph_allocate() +and placed in glyphs +. Upon return, num_glyphs + always contains the +number of generated glyphs. If the value glyphs + points to has changed +after the call, the user is responsible for freeing the allocated glyph +array using cairo_glyph_free(). This may happen even if the provided +array was large enough. +If clusters + is not NULL, num_clusters + and cluster_flags + should not be NULL, +and cluster mapping will be computed. +The semantics of how cluster array allocation works is similar to the glyph +array. That is, +if clusters + initially points to a non-NULL value, that array is used +as a cluster buffer, and num_clusters + should point to the number of cluster +entries available there. If the provided cluster array is too short for +the conversion, a new cluster array is allocated using cairo_text_cluster_allocate() +and placed in clusters +. Upon return, num_clusters + always contains the +number of generated clusters. If the value clusters + points at has changed +after the call, the user is responsible for freeing the allocated cluster +array using cairo_text_cluster_free(). This may happen even if the provided +array was large enough. +In the simplest case, glyphs + and clusters + can point to NULL initially +and a suitable array will be allocated. In code: + +cairo_status_t status; + +cairo_glyph_t *glyphs = NULL; +int num_glyphs; +cairo_text_cluster_t *clusters = NULL; +int num_clusters; +cairo_text_cluster_flags_t cluster_flags; + +status = cairo_scaled_font_text_to_glyphs (scaled_font, + x, y, + utf8, utf8_len, + &glyphs, &num_glyphs, + &clusters, &num_clusters, &cluster_flags); + +if (status == CAIRO_STATUS_SUCCESS) { + cairo_show_text_glyphs (cr, + utf8, utf8_len, + glyphs, num_glyphs, + clusters, num_clusters, cluster_flags); + + cairo_glyph_free (glyphs); + cairo_text_cluster_free (clusters); +} + +If no cluster mapping is needed: + +cairo_status_t status; + +cairo_glyph_t *glyphs = NULL; +int num_glyphs; + +status = cairo_scaled_font_text_to_glyphs (scaled_font, + x, y, + utf8, utf8_len, + &glyphs, &num_glyphs, + NULL, NULL, + NULL); + +if (status == CAIRO_STATUS_SUCCESS) { + cairo_show_glyphs (cr, glyphs, num_glyphs); + cairo_glyph_free (glyphs); +} + +If stack-based glyph and cluster arrays are to be used for small +arrays: + +cairo_status_t status; + +cairo_glyph_t stack_glyphs[40]; +cairo_glyph_t *glyphs = stack_glyphs; +int num_glyphs = sizeof (stack_glyphs) / sizeof (stack_glyphs[0]); +cairo_text_cluster_t stack_clusters[40]; +cairo_text_cluster_t *clusters = stack_clusters; +int num_clusters = sizeof (stack_clusters) / sizeof (stack_clusters[0]); +cairo_text_cluster_flags_t cluster_flags; + +status = cairo_scaled_font_text_to_glyphs (scaled_font, + x, y, + utf8, utf8_len, + &glyphs, &num_glyphs, + &clusters, &num_clusters, &cluster_flags); + +if (status == CAIRO_STATUS_SUCCESS) { + cairo_show_text_glyphs (cr, + utf8, utf8_len, + glyphs, num_glyphs, + clusters, num_clusters, cluster_flags); + + if (glyphs != stack_glyphs) + cairo_glyph_free (glyphs); + if (clusters != stack_clusters) + cairo_text_cluster_free (clusters); +} + +For details of how clusters +, num_clusters +, and cluster_flags + map input +UTF-8 text to the output glyphs see cairo_show_text_glyphs(). +The output values can be readily passed to cairo_show_text_glyphs() +cairo_show_glyphs(), or related functions, assuming that the exact +same scaled_font + is used for the operation. + +Parameters + + + + + + +x +X position to place first glyph + +y +Y position to place first glyph + +scaled_font +a cairo_scaled_font_t + +utf8 +a string of text encoded in UTF-8 + +utf8_len +length of utf8 +in bytes, or -1 if it is NUL-terminated + +glyphs +pointer to array of glyphs to fill + +num_glyphs +pointer to number of glyphs + +clusters +pointer to array of cluster mapping information to fill, or NULL + +num_clusters +pointer to number of clusters, or NULL + +cluster_flags +pointer to location to store cluster flags corresponding to the +output clusters +, or NULL + + + +Returns + CAIRO_STATUS_SUCCESS upon success, or an error status +if the input values are wrong or if conversion failed. If the input +values are correct but the conversion failed, the error status is also +set on scaled_font +. +Since: 1.8 + +cairo_scaled_font_get_font_face () +cairo_scaled_font_get_font_face +cairo_font_face_t * +cairo_scaled_font_get_font_face (cairo_scaled_font_t *scaled_font); +Gets the font face that this scaled font uses. This might be the +font face passed to cairo_scaled_font_create(), but this does not +hold true for all possible cases. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + The cairo_font_face_t with which scaled_font +was +created. This object is owned by cairo. To keep a reference to it, +you must call cairo_scaled_font_reference(). +Since: 1.2 + +cairo_scaled_font_get_font_options () +cairo_scaled_font_get_font_options +void +cairo_scaled_font_get_font_options (cairo_scaled_font_t *scaled_font, + cairo_font_options_t *options); +Stores the font options with which scaled_font + was created into +options +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +options +return value for the font options + + +Since: 1.2 + +cairo_scaled_font_get_font_matrix () +cairo_scaled_font_get_font_matrix +void +cairo_scaled_font_get_font_matrix (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *font_matrix); +Stores the font matrix with which scaled_font + was created into +matrix +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +font_matrix +return value for the matrix + + +Since: 1.2 + +cairo_scaled_font_get_ctm () +cairo_scaled_font_get_ctm +void +cairo_scaled_font_get_ctm (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *ctm); +Stores the CTM with which scaled_font + was created into ctm +. +Note that the translation offsets (x0, y0) of the CTM are ignored +by cairo_scaled_font_create(). So, the matrix this +function returns always has 0,0 as x0,y0. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +ctm +return value for the CTM + + +Since: 1.2 + +cairo_scaled_font_get_scale_matrix () +cairo_scaled_font_get_scale_matrix +void +cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *scale_matrix); +Stores the scale matrix of scaled_font + into matrix +. +The scale matrix is product of the font matrix and the ctm +associated with the scaled font, and hence is the matrix mapping from +font space to device space. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +scale_matrix +return value for the matrix + + +Since: 1.8 + +cairo_scaled_font_get_type () +cairo_scaled_font_get_type +cairo_font_type_t +cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font); +This function returns the type of the backend used to create +a scaled font. See cairo_font_type_t for available types. +However, this function never returns CAIRO_FONT_TYPE_TOY. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + The type of scaled_font +. +Since: 1.2 + +cairo_scaled_font_get_reference_count () +cairo_scaled_font_get_reference_count +unsigned int +cairo_scaled_font_get_reference_count (cairo_scaled_font_t *scaled_font); +Returns the current reference count of scaled_font +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + + + +Returns + the current reference count of scaled_font +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_scaled_font_set_user_data () +cairo_scaled_font_set_user_data +cairo_status_t +cairo_scaled_font_set_user_data (cairo_scaled_font_t *scaled_font, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to scaled_font +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_scaled_font_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.4 + +cairo_scaled_font_get_user_data () +cairo_scaled_font_get_user_data +void * +cairo_scaled_font_get_user_data (cairo_scaled_font_t *scaled_font, + const cairo_user_data_key_t *key); +Return user data previously attached to scaled_font + using the +specified key. If no user data has been attached with the given +key this function returns NULL. + +Parameters + + + + + + +scaled_font +a cairo_scaled_font_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.4 + + + +Types and Values + +cairo_scaled_font_t +cairo_scaled_font_t +typedef struct _cairo_scaled_font cairo_scaled_font_t; + +A cairo_scaled_font_t is a font scaled to a particular size and device +resolution. A cairo_scaled_font_t is most useful for low-level font +usage where a library or application wants to cache a reference +to a scaled font to speed up the computation of metrics. +There are various types of scaled fonts, depending on the +font backend they use. The type of a +scaled font can be queried using cairo_scaled_font_get_type(). +Memory management of cairo_scaled_font_t is done with +cairo_scaled_font_reference() and cairo_scaled_font_destroy(). +Since: 1.0 + +cairo_font_extents_t +cairo_font_extents_t +typedef struct { + double ascent; + double descent; + double height; + double max_x_advance; + double max_y_advance; +} cairo_font_extents_t; + +The cairo_font_extents_t structure stores metric information for +a font. Values are given in the current user-space coordinate +system. +Because font metrics are in user-space coordinates, they are +mostly, but not entirely, independent of the current transformation +matrix. If you call cairo_scale(cr, 2.0, 2.0), +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. + +Members + + + + + + +double ascent; +the distance that the font extends above the baseline. +Note that this is not always exactly equal to the maximum +of the extents of all the glyphs in the font, but rather +is picked to express the font designer's intent as to +how the font should align with elements above it. + + +double descent; +the distance that the font extends below the baseline. +This value is positive for typical fonts that include +portions below the baseline. Note that this is not always +exactly equal to the maximum of the extents of all the +glyphs in the font, but rather is picked to express the +font designer's intent as to how the font should +align with elements below it. + + +double height; +the recommended vertical distance between baselines when +setting consecutive lines of text with the font. This +is greater than ascent ++descent +by a +quantity known as the line spacing +or external leading. When space +is at a premium, most fonts can be set with only +a distance of ascent ++descent +between lines. + + +double max_x_advance; +the maximum distance in the X direction that +the origin is advanced for any glyph in the font. + + +double max_y_advance; +the maximum distance in the Y direction that +the origin is advanced for any glyph in the font. +This will be zero for normal fonts used for horizontal +writing. (The scripts of East Asia are sometimes written +vertically.) + + + + +Since: 1.0 + +cairo_text_extents_t +cairo_text_extents_t +typedef struct { + double x_bearing; + double y_bearing; + double width; + double height; + double x_advance; + double y_advance; +} cairo_text_extents_t; + +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 are mostly, but not +entirely, independent of the current transformation matrix. If you call +cairo_scale(cr, 2.0, 2.0), 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. + +Members + + + + + + +double 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. + + +double 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. + + +double width; +width of the glyphs as drawn + + +double height; +height of the glyphs as drawn + + +double x_advance; +distance to advance in the X direction +after drawing these glyphs + + +double 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. + + + + +Since: 1.0 + + + +See Also +cairo_font_face_t, cairo_matrix_t, cairo_font_options_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-script.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-script.xml new file mode 100644 index 0000000..c535be3 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-script.xml @@ -0,0 +1,349 @@ + + +]> + + +Script Surfaces +3 +CAIRO Library + + +Script Surfaces +Rendering to replayable scripts + + + +Functions + + + + + +cairo_device_t * +cairo_script_create () +cairo_device_t * +cairo_script_create_for_stream () +cairo_status_t +cairo_script_from_recording_surface () +cairo_script_mode_t +cairo_script_get_mode () +void +cairo_script_set_mode () +cairo_surface_t * +cairo_script_surface_create () +cairo_surface_t * +cairo_script_surface_create_for_target () +void +cairo_script_write_comment () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_SCRIPT_SURFACE +enumcairo_script_mode_t + + + + + + + + +Description +The script surface provides the ability to render to a native +script that matches the cairo drawing model. The scripts can +be replayed using tools under the util/cairo-script directory, +or with cairo-perf-trace. + + + +Functions + +cairo_script_create () +cairo_script_create +cairo_device_t * +cairo_script_create (const char *filename); +Creates a output device for emitting the script, used when +creating the individual surfaces. + +Parameters + + + + + + +filename +the name (path) of the file to write the script to + + + +Returns + a pointer to the newly created device. The caller +owns the surface and should call cairo_device_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" device if an error such as out of memory +occurs. You can use cairo_device_status() to check for this. +Since: 1.12 + +cairo_script_create_for_stream () +cairo_script_create_for_stream +cairo_device_t * +cairo_script_create_for_stream (cairo_write_func_t write_func, + void *closure); +Creates a output device for emitting the script, used when +creating the individual surfaces. + +Parameters + + + + + + +write_func +callback function passed the bytes written to the script + +closure +user data to be passed to the callback + + + +Returns + a pointer to the newly created device. The caller +owns the surface and should call cairo_device_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" device if an error such as out of memory +occurs. You can use cairo_device_status() to check for this. +Since: 1.12 + +cairo_script_from_recording_surface () +cairo_script_from_recording_surface +cairo_status_t +cairo_script_from_recording_surface (cairo_device_t *script, + cairo_surface_t *recording_surface); +Converts the record operations in recording_surface + into a script. + +Parameters + + + + + + +script +the script (output device) + +recording_surface +the recording surface to replay + + + +Returns + CAIRO_STATUS_SUCCESS on successful completion or an error code. +Since: 1.12 + +cairo_script_get_mode () +cairo_script_get_mode +cairo_script_mode_t +cairo_script_get_mode (cairo_device_t *script); +Queries the script for its current output mode. + +Parameters + + + + + + +script +The script (output device) to query + + + +Returns + the current output mode of the script +Since: 1.12 + +cairo_script_set_mode () +cairo_script_set_mode +void +cairo_script_set_mode (cairo_device_t *script, + cairo_script_mode_t mode); +Change the output mode of the script + +Parameters + + + + + + +script +The script (output device) + +mode +the new mode + + +Since: 1.12 + +cairo_script_surface_create () +cairo_script_surface_create +cairo_surface_t * +cairo_script_surface_create (cairo_device_t *script, + cairo_content_t content, + double width, + double height); +Create a new surface that will emit its rendering through script + + +Parameters + + + + + + +script +the script (output device) + +content +the content of the surface + +width +width in pixels + +height +height in pixels + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.12 + +cairo_script_surface_create_for_target () +cairo_script_surface_create_for_target +cairo_surface_t * +cairo_script_surface_create_for_target + (cairo_device_t *script, + cairo_surface_t *target); +Create a pxoy surface that will render to target + and record +the operations to device +. + +Parameters + + + + + + +script +the script (output device) + +target +a target surface to wrap + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.12 + +cairo_script_write_comment () +cairo_script_write_comment +void +cairo_script_write_comment (cairo_device_t *script, + const char *comment, + int len); +Emit a string verbatim into the script. + +Parameters + + + + + + +script +the script (output device) + +comment +the string to emit + +len +the length of the sting to write, or -1 to use strlen() + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_SCRIPT_SURFACE +CAIRO_HAS_SCRIPT_SURFACE +#define CAIRO_HAS_SCRIPT_SURFACE 1 + +Defined if the script surface backend is available. +The script surface backend is always built in since 1.12. +Since: 1.12 + +enum cairo_script_mode_t +cairo_script_mode_t +A set of script output variants. + +Members + + + + + + +CAIRO_SCRIPT_MODE_ASCII +the output will be in readable text (default). (Since 1.12) + + + +CAIRO_SCRIPT_MODE_BINARY +the output will use byte codes. (Since 1.12) + + + + +Since: 1.12 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml new file mode 100644 index 0000000..aa4af88 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-skia.xml @@ -0,0 +1,32 @@ + + +]> + + +cairo-skia +3 +CAIRO Library + + +cairo-skia + + + + + + +Description + + + +Functions + + + +Types and Values + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-status.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-status.xml new file mode 100644 index 0000000..d257b95 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-status.xml @@ -0,0 +1,366 @@ + + +]> + + +Error handling +3 +CAIRO Library + + +Error handling +Decoding cairo's status + + + +Functions + + + + + +const char * +cairo_status_to_string () +void +cairo_debug_reset_static_data () + + + + + + +Types and Values + + + + + +enumcairo_status_t + + + + + + + + +Description +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 retain 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. + + + +Functions + +cairo_status_to_string () +cairo_status_to_string +const char * +cairo_status_to_string (cairo_status_t status); +Provides a human-readable description of a cairo_status_t. + +Parameters + + + + + + +status +a cairo status + + + +Returns + a string representation of the status +Since: 1.0 + +cairo_debug_reset_static_data () +cairo_debug_reset_static_data +void +cairo_debug_reset_static_data (void); +Resets all static data within cairo to its original state, +(ie. identical to the state at the time of program invocation). For +example, all caches within cairo will be flushed empty. +This function is intended to be useful when using memory-checking +tools such as valgrind. When valgrind's memcheck analyzes a +cairo-using program without a call to cairo_debug_reset_static_data(), +it will report all data reachable via cairo's static objects as +"still reachable". Calling cairo_debug_reset_static_data() just prior +to program termination will make it easier to get squeaky clean +reports from valgrind. +WARNING: It is only safe to call this function when there are no +active cairo objects remaining, (ie. the appropriate destroy +functions have been called as necessary). If there are active cairo +objects, this call is likely to cause a crash, (eg. an assertion +failure due to a hash table being destroyed when non-empty). +Since: 1.0 + + + +Types and Values + +enum cairo_status_t +cairo_status_t +cairo_status_t is used to indicate errors that can occur when +using Cairo. In some cases it is returned directly by functions. +but when using cairo_t, the last error, if any, is stored in +the context and can be retrieved with cairo_status(). +New entries may be added in future versions. Use cairo_status_to_string() +to get a human-readable representation of an error message. + +Members + + + + + + +CAIRO_STATUS_SUCCESS +no error has occurred (Since 1.0) + + + +CAIRO_STATUS_NO_MEMORY +out of memory (Since 1.0) + + + +CAIRO_STATUS_INVALID_RESTORE +cairo_restore() called without matching cairo_save() (Since 1.0) + + + +CAIRO_STATUS_INVALID_POP_GROUP +no saved group to pop, i.e. cairo_pop_group() without matching cairo_push_group() (Since 1.0) + + + +CAIRO_STATUS_NO_CURRENT_POINT +no current point defined (Since 1.0) + + + +CAIRO_STATUS_INVALID_MATRIX +invalid matrix (not invertible) (Since 1.0) + + + +CAIRO_STATUS_INVALID_STATUS +invalid value for an input cairo_status_t (Since 1.0) + + + +CAIRO_STATUS_NULL_POINTER +NULL pointer (Since 1.0) + + + +CAIRO_STATUS_INVALID_STRING +input string not valid UTF-8 (Since 1.0) + + + +CAIRO_STATUS_INVALID_PATH_DATA +input path data not valid (Since 1.0) + + + +CAIRO_STATUS_READ_ERROR +error while reading from input stream (Since 1.0) + + + +CAIRO_STATUS_WRITE_ERROR +error while writing to output stream (Since 1.0) + + + +CAIRO_STATUS_SURFACE_FINISHED +target surface has been finished (Since 1.0) + + + +CAIRO_STATUS_SURFACE_TYPE_MISMATCH +the surface type is not appropriate for the operation (Since 1.0) + + + +CAIRO_STATUS_PATTERN_TYPE_MISMATCH +the pattern type is not appropriate for the operation (Since 1.0) + + + +CAIRO_STATUS_INVALID_CONTENT +invalid value for an input cairo_content_t (Since 1.0) + + + +CAIRO_STATUS_INVALID_FORMAT +invalid value for an input cairo_format_t (Since 1.0) + + + +CAIRO_STATUS_INVALID_VISUAL +invalid value for an input Visual* (Since 1.0) + + + +CAIRO_STATUS_FILE_NOT_FOUND +file not found (Since 1.0) + + + +CAIRO_STATUS_INVALID_DASH +invalid value for a dash setting (Since 1.0) + + + +CAIRO_STATUS_INVALID_DSC_COMMENT +invalid value for a DSC comment (Since 1.2) + + + +CAIRO_STATUS_INVALID_INDEX +invalid index passed to getter (Since 1.4) + + + +CAIRO_STATUS_CLIP_NOT_REPRESENTABLE +clip region not representable in desired format (Since 1.4) + + + +CAIRO_STATUS_TEMP_FILE_ERROR +error creating or writing to a temporary file (Since 1.6) + + + +CAIRO_STATUS_INVALID_STRIDE +invalid value for stride (Since 1.6) + + + +CAIRO_STATUS_FONT_TYPE_MISMATCH +the font type is not appropriate for the operation (Since 1.8) + + + +CAIRO_STATUS_USER_FONT_IMMUTABLE +the user-font is immutable (Since 1.8) + + + +CAIRO_STATUS_USER_FONT_ERROR +error occurred in a user-font callback function (Since 1.8) + + + +CAIRO_STATUS_NEGATIVE_COUNT +negative number used where it is not allowed (Since 1.8) + + + +CAIRO_STATUS_INVALID_CLUSTERS +input clusters do not represent the accompanying text and glyph array (Since 1.8) + + + +CAIRO_STATUS_INVALID_SLANT +invalid value for an input cairo_font_slant_t (Since 1.8) + + + +CAIRO_STATUS_INVALID_WEIGHT +invalid value for an input cairo_font_weight_t (Since 1.8) + + + +CAIRO_STATUS_INVALID_SIZE +invalid value (typically too big) for the size of the input (surface, pattern, etc.) (Since 1.10) + + + +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED +user-font method not implemented (Since 1.10) + + + +CAIRO_STATUS_DEVICE_TYPE_MISMATCH +the device type is not appropriate for the operation (Since 1.10) + + + +CAIRO_STATUS_DEVICE_ERROR +an operation to the device caused an unspecified error (Since 1.10) + + + +CAIRO_STATUS_INVALID_MESH_CONSTRUCTION +a mesh pattern + construction operation was used outside of a + cairo_mesh_pattern_begin_patch()/cairo_mesh_pattern_end_patch() + pair (Since 1.12) + + + +CAIRO_STATUS_DEVICE_FINISHED +target device has been finished (Since 1.12) + + + +CAIRO_STATUS_JBIG2_GLOBAL_MISSING +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID has been used on at least one image + but no image provided CAIRO_MIME_TYPE_JBIG2_GLOBAL (Since 1.14) + + + +CAIRO_STATUS_PNG_ERROR +error occurred in libpng while reading from or writing to a PNG file (Since 1.16) + + + +CAIRO_STATUS_FREETYPE_ERROR +error occurred in libfreetype (Since 1.16) + + + +CAIRO_STATUS_WIN32_GDI_ERROR +error occurred in the Windows Graphics Device Interface (Since 1.16) + + + +CAIRO_STATUS_TAG_ERROR +invalid tag name, attributes, or nesting (Since 1.16) + + + +CAIRO_STATUS_LAST_STATUS +this is a special value indicating the number of + status values defined in this enumeration. When using this value, note + that the version of cairo at run-time may have additional status values + defined than the value of this symbol at compile-time. (Since 1.10) + + + + +Since: 1.0 + + + +See Also +cairo_status(), cairo_surface_status(), cairo_pattern_status(), + cairo_font_face_status(), cairo_scaled_font_status(), + cairo_region_status() + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml new file mode 100644 index 0000000..b7e31b9 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-surface-observer.xml @@ -0,0 +1,233 @@ + + +]> + + +cairo-surface-observer +3 +CAIRO Library + + +cairo-surface-observer + + + + +Functions + + + + + +cairo_surface_t * +cairo_surface_create_observer () +cairo_status_t +cairo_surface_observer_add_fill_callback () +cairo_status_t +cairo_surface_observer_add_finish_callback () +cairo_status_t +cairo_surface_observer_add_flush_callback () +cairo_status_t +cairo_surface_observer_add_glyphs_callback () +cairo_status_t +cairo_surface_observer_add_mask_callback () +cairo_status_t +cairo_surface_observer_add_paint_callback () +cairo_status_t +cairo_surface_observer_add_stroke_callback () +void +(*cairo_surface_observer_callback_t) () +double +cairo_surface_observer_elapsed () +cairo_status_t +cairo_surface_observer_print () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_OBSERVER_SURFACE +enumcairo_surface_observer_mode_t + + + + + + + + +Description + + + +Functions + +cairo_surface_create_observer () +cairo_surface_create_observer +cairo_surface_t * +cairo_surface_create_observer (cairo_surface_t *target, + cairo_surface_observer_mode_t mode); +Create a new surface that exists solely to watch another is doing. In +the process it will log operations and times, which are fast, which are +slow, which are frequent, etc. +The mode + parameter can be set to either CAIRO_SURFACE_OBSERVER_NORMAL +or CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS, to control whether or not +the internal observer should record operations. + +Parameters + + + + + + +target +an existing surface for which the observer will watch + +mode +sets the mode of operation (normal vs. record) + + + +Returns + a pointer to the newly allocated surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if other +is already in an error state +or any other error occurs. +Since: 1.12 + +cairo_surface_observer_add_fill_callback () +cairo_surface_observer_add_fill_callback +cairo_status_t +cairo_surface_observer_add_fill_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_finish_callback () +cairo_surface_observer_add_finish_callback +cairo_status_t +cairo_surface_observer_add_finish_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_flush_callback () +cairo_surface_observer_add_flush_callback +cairo_status_t +cairo_surface_observer_add_flush_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_glyphs_callback () +cairo_surface_observer_add_glyphs_callback +cairo_status_t +cairo_surface_observer_add_glyphs_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_mask_callback () +cairo_surface_observer_add_mask_callback +cairo_status_t +cairo_surface_observer_add_mask_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_paint_callback () +cairo_surface_observer_add_paint_callback +cairo_status_t +cairo_surface_observer_add_paint_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_add_stroke_callback () +cairo_surface_observer_add_stroke_callback +cairo_status_t +cairo_surface_observer_add_stroke_callback + (cairo_surface_t *abstract_surface, + cairo_surface_observer_callback_t func, + void *data); + + +cairo_surface_observer_callback_t () +cairo_surface_observer_callback_t +void +(*cairo_surface_observer_callback_t) (cairo_surface_t *observer, + cairo_surface_t *target, + void *data); + + +cairo_surface_observer_elapsed () +cairo_surface_observer_elapsed +double +cairo_surface_observer_elapsed (cairo_surface_t *surface); + + +cairo_surface_observer_print () +cairo_surface_observer_print +cairo_status_t +cairo_surface_observer_print (cairo_surface_t *surface, + cairo_write_func_t write_func, + void *closure); + + + + +Types and Values + +CAIRO_HAS_OBSERVER_SURFACE +CAIRO_HAS_OBSERVER_SURFACE +#define CAIRO_HAS_OBSERVER_SURFACE 1 + + + +enum cairo_surface_observer_mode_t +cairo_surface_observer_mode_t +Whether operations should be recorded. + +Members + + + + + + +CAIRO_SURFACE_OBSERVER_NORMAL +no recording is done + + + +CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS +operations are recorded + + + + +Since: 1.12 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml new file mode 100644 index 0000000..2b8e112 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-surface.xml @@ -0,0 +1,1525 @@ + + +]> + + +cairo_surface_t +3 +CAIRO Library + + +cairo_surface_t +Base class for surfaces + + + +Functions + + + + + +cairo_surface_t * +cairo_surface_create_similar () +cairo_surface_t * +cairo_surface_create_similar_image () +cairo_surface_t * +cairo_surface_create_for_rectangle () +cairo_surface_t * +cairo_surface_reference () +void +cairo_surface_destroy () +cairo_status_t +cairo_surface_status () +void +cairo_surface_finish () +void +cairo_surface_flush () +cairo_device_t * +cairo_surface_get_device () +void +cairo_surface_get_font_options () +cairo_content_t +cairo_surface_get_content () +void +cairo_surface_mark_dirty () +void +cairo_surface_mark_dirty_rectangle () +void +cairo_surface_set_device_offset () +void +cairo_surface_get_device_offset () +void +cairo_surface_get_device_scale () +void +cairo_surface_set_device_scale () +void +cairo_surface_set_fallback_resolution () +void +cairo_surface_get_fallback_resolution () +cairo_surface_type_t +cairo_surface_get_type () +unsigned int +cairo_surface_get_reference_count () +cairo_status_t +cairo_surface_set_user_data () +void * +cairo_surface_get_user_data () +void +cairo_surface_copy_page () +void +cairo_surface_show_page () +cairo_bool_t +cairo_surface_has_show_text_glyphs () +cairo_status_t +cairo_surface_set_mime_data () +void +cairo_surface_get_mime_data () +cairo_bool_t +cairo_surface_supports_mime_type () +cairo_surface_t * +cairo_surface_map_to_image () +void +cairo_surface_unmap_image () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_MIME_SURFACE +#defineCAIRO_MIME_TYPE_CCITT_FAX +#defineCAIRO_MIME_TYPE_CCITT_FAX_PARAMS +#defineCAIRO_MIME_TYPE_EPS +#defineCAIRO_MIME_TYPE_EPS_PARAMS +#defineCAIRO_MIME_TYPE_JBIG2 +#defineCAIRO_MIME_TYPE_JBIG2_GLOBAL +#defineCAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +#defineCAIRO_MIME_TYPE_JP2 +#defineCAIRO_MIME_TYPE_JPEG +#defineCAIRO_MIME_TYPE_PNG +#defineCAIRO_MIME_TYPE_URI +#defineCAIRO_MIME_TYPE_UNIQUE_ID +typedefcairo_surface_t +enumcairo_content_t +enumcairo_surface_type_t + + + + + + + + +Description +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 context. +A cairo surface is created by using backend-specific +constructors, typically of the form +cairo_backend_surface_create(). +Most surface types allow accessing the surface without using Cairo +functions. If you do this, keep in mind that it is mandatory that you call +cairo_surface_flush() before reading from or writing to the surface and that +you must use cairo_surface_mark_dirty() after modifying it. + +Directly modifying an image surface + +void +modify_image_surface (cairo_surface_t *surface) +{ + unsigned char *data; + int width, height, stride; + + // flush to ensure all writing to the image was done + cairo_surface_flush (surface); + + // modify the image + data = cairo_image_surface_get_data (surface); + width = cairo_image_surface_get_width (surface); + height = cairo_image_surface_get_height (surface); + stride = cairo_image_surface_get_stride (surface); + modify_image_data (data, width, height, stride); + + // mark the image dirty so Cairo clears its caches. + cairo_surface_mark_dirty (surface); +} + + +Note that for other surface types it might be necessary to acquire the +surface's device first. See cairo_device_acquire() for a discussion of +devices. + + + +Functions + +cairo_surface_create_similar () +cairo_surface_create_similar +cairo_surface_t * +cairo_surface_create_similar (cairo_surface_t *other, + cairo_content_t content, + int width, + int height); +Create a new surface that is as compatible as possible with an +existing surface. For example the new surface will have the same +device scale, fallback resolution and font options as +other +. Generally, the new surface will also use the same backend +as other +, unless that is not possible for some reason. The type of +the returned surface may be examined with +cairo_surface_get_type(). +Initially the surface contents are all 0 (transparent if contents +have transparency, black otherwise.) +Use cairo_surface_create_similar_image() if you need an image surface +which can be painted quickly to the target surface. + +Parameters + + + + + + +other +an existing surface used to select the backend of the new surface + +content +the content for the new surface + +width +width of the new surface, (in device-space units) + +height +height of the new surface (in device-space units) + + + +Returns + a pointer to the newly allocated surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if other +is already in an error state +or any other error occurs. +Since: 1.0 + +cairo_surface_create_similar_image () +cairo_surface_create_similar_image +cairo_surface_t * +cairo_surface_create_similar_image (cairo_surface_t *other, + cairo_format_t format, + int width, + int height); +Create a new image surface that is as compatible as possible for uploading +to and the use in conjunction with an existing surface. However, this surface +can still be used like any normal image surface. Unlike +cairo_surface_create_similar() the new image surface won't inherit +the device scale from other +. +Initially the surface contents are all 0 (transparent if contents +have transparency, black otherwise.) +Use cairo_surface_create_similar() if you don't need an image surface. + +Parameters + + + + + + +other +an existing surface used to select the preference of the new surface + +format +the format for the new surface + +width +width of the new surface, (in pixels) + +height +height of the new surface (in pixels) + + + +Returns + a pointer to the newly allocated image surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if other +is already in an error state +or any other error occurs. +Since: 1.12 + +cairo_surface_create_for_rectangle () +cairo_surface_create_for_rectangle +cairo_surface_t * +cairo_surface_create_for_rectangle (cairo_surface_t *target, + double x, + double y, + double width, + double height); +Create a new surface that is a rectangle within the target surface. +All operations drawn to this surface are then clipped and translated +onto the target surface. Nothing drawn via this sub-surface outside of +its bounds is drawn onto the target surface, making this a useful method +for passing constrained child surfaces to library routines that draw +directly onto the parent surface, i.e. with no further backend allocations, +double buffering or copies. +The semantics of subsurfaces have not been finalized yet +unless the rectangle is in full device units, is contained within +the extents of the target surface, and the target or subsurface's +device transforms are not changed. + +Parameters + + + + + + +target +an existing surface for which the sub-surface will point to + +x +the x-origin of the sub-surface from the top-left of the target surface (in device-space units) + +y +the y-origin of the sub-surface from the top-left of the target surface (in device-space units) + +width +width of the sub-surface (in device-space units) + +height +height of the sub-surface (in device-space units) + + + +Returns + a pointer to the newly allocated surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if other +is already in an error state +or any other error occurs. +Since: 1.10 + +cairo_surface_reference () +cairo_surface_reference +cairo_surface_t * +cairo_surface_reference (cairo_surface_t *surface); +Increases the reference count on surface + by one. This prevents +surface + from being destroyed until a matching call to +cairo_surface_destroy() is made. +Use cairo_surface_get_reference_count() to get the number of +references to a cairo_surface_t. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + the referenced cairo_surface_t. +Since: 1.0 + +cairo_surface_destroy () +cairo_surface_destroy +void +cairo_surface_destroy (cairo_surface_t *surface); +Decreases the reference count on surface + by one. If the result is +zero, then surface + and all associated resources are freed. See +cairo_surface_reference(). + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.0 + +cairo_surface_status () +cairo_surface_status +cairo_status_t +cairo_surface_status (cairo_surface_t *surface); +Checks whether an error has previously occurred for this +surface. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + CAIRO_STATUS_SUCCESS, CAIRO_STATUS_NULL_POINTER, +CAIRO_STATUS_NO_MEMORY, CAIRO_STATUS_READ_ERROR, +CAIRO_STATUS_INVALID_CONTENT, CAIRO_STATUS_INVALID_FORMAT, or +CAIRO_STATUS_INVALID_VISUAL. +Since: 1.0 + +cairo_surface_finish () +cairo_surface_finish +void +cairo_surface_finish (cairo_surface_t *surface); +This function finishes the surface and drops all references to +external resources. For example, for the Xlib backend it means +that cairo will no longer access the drawable, which can be freed. +After calling cairo_surface_finish() the only valid operations on a +surface are getting and setting user, referencing and +destroying, and flushing and finishing it. +Further drawing to the surface will not affect the +surface but will instead trigger a CAIRO_STATUS_SURFACE_FINISHED +error. +When the last call to cairo_surface_destroy() decreases the +reference count to zero, cairo will call cairo_surface_finish() if +it hasn't been called already, before freeing the resources +associated with the surface. + +Parameters + + + + + + +surface +the cairo_surface_t to finish + + +Since: 1.0 + +cairo_surface_flush () +cairo_surface_flush +void +cairo_surface_flush (cairo_surface_t *surface); +Do any pending drawing for the surface and also restore any temporary +modifications cairo has made to the surface's state. This function +must be called before switching from drawing on the surface with +cairo to drawing on it directly with native APIs, or accessing its +memory outside of Cairo. If the surface doesn't support direct +access, then this function does nothing. + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.0 + +cairo_surface_get_device () +cairo_surface_get_device +cairo_device_t * +cairo_surface_get_device (cairo_surface_t *surface); +This function returns the device for a surface +. +See cairo_device_t. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + The device for surface +or NULL if the surface does +not have an associated device. +Since: 1.10 + +cairo_surface_get_font_options () +cairo_surface_get_font_options +void +cairo_surface_get_font_options (cairo_surface_t *surface, + cairo_font_options_t *options); +Retrieves the default font rendering options for the surface. +This allows display surfaces to report the correct subpixel order +for rendering on them, print surfaces to disable hinting of +metrics and so forth. The result can then be used with +cairo_scaled_font_create(). + +Parameters + + + + + + +surface +a cairo_surface_t + +options +a cairo_font_options_t object into which to store +the retrieved options. All existing values are overwritten + + +Since: 1.0 + +cairo_surface_get_content () +cairo_surface_get_content +cairo_content_t +cairo_surface_get_content (cairo_surface_t *surface); +This function returns the content type of surface + which indicates +whether the surface contains color and/or alpha information. See +cairo_content_t. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + The content type of surface +. +Since: 1.2 + +cairo_surface_mark_dirty () +cairo_surface_mark_dirty +void +cairo_surface_mark_dirty (cairo_surface_t *surface); +Tells cairo that drawing has been done to surface using means other +than cairo, and that cairo should reread any cached areas. Note +that you must call cairo_surface_flush() before doing such drawing. + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.0 + +cairo_surface_mark_dirty_rectangle () +cairo_surface_mark_dirty_rectangle +void +cairo_surface_mark_dirty_rectangle (cairo_surface_t *surface, + int x, + int y, + int width, + int height); +Like cairo_surface_mark_dirty(), but drawing has been done only to +the specified rectangle, so that cairo can retain cached contents +for other parts of the surface. +Any cached clip set on the surface will be reset by this function, +to make sure that future cairo calls have the clip set that they +expect. + +Parameters + + + + + + +surface +a cairo_surface_t + +x +X coordinate of dirty rectangle + +y +Y coordinate of dirty rectangle + +width +width of dirty rectangle + +height +height of dirty rectangle + + +Since: 1.0 + +cairo_surface_set_device_offset () +cairo_surface_set_device_offset +void +cairo_surface_set_device_offset (cairo_surface_t *surface, + double x_offset, + double y_offset); +Sets an offset that is added to the device coordinates determined +by the CTM when drawing to surface +. One use case for this function +is when we want to create a cairo_surface_t that redirects drawing +for a portion of an onscreen surface to an offscreen surface in a +way that is completely invisible to the user of the cairo +API. Setting a transformation via cairo_translate() isn't +sufficient to do this, since functions like +cairo_device_to_user() will expose the hidden offset. +Note that the offset affects drawing to the surface as well as +using the surface in a source pattern. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_offset +the offset in the X direction, in device units + +y_offset +the offset in the Y direction, in device units + + +Since: 1.0 + +cairo_surface_get_device_offset () +cairo_surface_get_device_offset +void +cairo_surface_get_device_offset (cairo_surface_t *surface, + double *x_offset, + double *y_offset); +This function returns the previous device offset set by +cairo_surface_set_device_offset(). + +Parameters + + + + + + +surface +a cairo_surface_t + +x_offset +the offset in the X direction, in device units + +y_offset +the offset in the Y direction, in device units + + +Since: 1.2 + +cairo_surface_get_device_scale () +cairo_surface_get_device_scale +void +cairo_surface_get_device_scale (cairo_surface_t *surface, + double *x_scale, + double *y_scale); +This function returns the previous device offset set by +cairo_surface_set_device_scale(). + +Parameters + + + + + + +surface +a cairo_surface_t + +x_scale +the scale in the X direction, in device units + +y_scale +the scale in the Y direction, in device units + + +Since: 1.14 + +cairo_surface_set_device_scale () +cairo_surface_set_device_scale +void +cairo_surface_set_device_scale (cairo_surface_t *surface, + double x_scale, + double y_scale); +Sets a scale that is multiplied to the device coordinates determined +by the CTM when drawing to surface +. One common use for this is to +render to very high resolution display devices at a scale factor, so +that code that assumes 1 pixel will be a certain size will still work. +Setting a transformation via cairo_translate() isn't +sufficient to do this, since functions like +cairo_device_to_user() will expose the hidden scale. +Note that the scale affects drawing to the surface as well as +using the surface in a source pattern. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_scale +a scale factor in the X direction + +y_scale +a scale factor in the Y direction + + +Since: 1.14 + +cairo_surface_set_fallback_resolution () +cairo_surface_set_fallback_resolution +void +cairo_surface_set_fallback_resolution (cairo_surface_t *surface, + double x_pixels_per_inch, + double y_pixels_per_inch); +Set the horizontal and vertical resolution for image fallbacks. +When certain operations aren't supported natively by a backend, +cairo will fallback by rendering operations to an image and then +overlaying that image onto the output. For backends that are +natively vector-oriented, this function can be used to set the +resolution used for these image fallbacks, (larger values will +result in more detailed images, but also larger file sizes). +Some examples of natively vector-oriented backends are the ps, pdf, +and svg backends. +For backends that are natively raster-oriented, image fallbacks are +still possible, but they are always performed at the native +device resolution. So this function has no effect on those +backends. +Note: The fallback resolution only takes effect at the time of +completing a page (with cairo_show_page() or cairo_copy_page()) so +there is currently no way to have more than one fallback resolution +in effect on a single page. +The default fallback resoultion is 300 pixels per inch in both +dimensions. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_pixels_per_inch +horizontal setting for pixels per inch + +y_pixels_per_inch +vertical setting for pixels per inch + + +Since: 1.2 + +cairo_surface_get_fallback_resolution () +cairo_surface_get_fallback_resolution +void +cairo_surface_get_fallback_resolution (cairo_surface_t *surface, + double *x_pixels_per_inch, + double *y_pixels_per_inch); +This function returns the previous fallback resolution set by +cairo_surface_set_fallback_resolution(), or default fallback +resolution if never set. + +Parameters + + + + + + +surface +a cairo_surface_t + +x_pixels_per_inch +horizontal pixels per inch + +y_pixels_per_inch +vertical pixels per inch + + +Since: 1.8 + +cairo_surface_get_type () +cairo_surface_get_type +cairo_surface_type_t +cairo_surface_get_type (cairo_surface_t *surface); +This function returns the type of the backend used to create +a surface. See cairo_surface_type_t for available types. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + The type of surface +. +Since: 1.2 + +cairo_surface_get_reference_count () +cairo_surface_get_reference_count +unsigned int +cairo_surface_get_reference_count (cairo_surface_t *surface); +Returns the current reference count of surface +. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + the current reference count of surface +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_surface_set_user_data () +cairo_surface_set_user_data +cairo_status_t +cairo_surface_set_user_data (cairo_surface_t *surface, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to surface +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +surface +a cairo_surface_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the surface + +destroy +a cairo_destroy_func_t which will be called when the +surface is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.0 + +cairo_surface_get_user_data () +cairo_surface_get_user_data +void * +cairo_surface_get_user_data (cairo_surface_t *surface, + const cairo_user_data_key_t *key); +Return user data previously attached to surface + using the specified +key. If no user data has been attached with the given key this +function returns NULL. + +Parameters + + + + + + +surface +a cairo_surface_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.0 + +cairo_surface_copy_page () +cairo_surface_copy_page +void +cairo_surface_copy_page (cairo_surface_t *surface); +Emits the current page for backends that support multiple pages, +but doesn't clear it, so that the contents of the current page will +be retained for the next page. Use cairo_surface_show_page() if you +want to get an empty page after the emission. +There is a convenience function for this that takes a cairo_t, +namely cairo_copy_page(). + +Parameters + + + + + + +surface +a cairo_surface_t + + +Since: 1.6 + +cairo_surface_show_page () +cairo_surface_show_page +void +cairo_surface_show_page (cairo_surface_t *surface); +Emits and clears the current page for backends that support multiple +pages. Use cairo_surface_copy_page() if you don't want to clear the page. +There is a convenience function for this that takes a cairo_t, +namely cairo_show_page(). + +Parameters + + + + + + +surface +a cairo_Surface_t + + +Since: 1.6 + +cairo_surface_has_show_text_glyphs () +cairo_surface_has_show_text_glyphs +cairo_bool_t +cairo_surface_has_show_text_glyphs (cairo_surface_t *surface); +Returns whether the surface supports +sophisticated cairo_show_text_glyphs() operations. That is, +whether it actually uses the provided text and cluster data +to a cairo_show_text_glyphs() call. +Note: Even if this function returns FALSE, a +cairo_show_text_glyphs() operation targeted at surface + will +still succeed. It just will +act like a cairo_show_glyphs() operation. Users can use this +function to avoid computing UTF-8 text and cluster mapping if the +target surface does not use it. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + TRUE if surface +supports +cairo_show_text_glyphs(), FALSE otherwise +Since: 1.8 + +cairo_surface_set_mime_data () +cairo_surface_set_mime_data +cairo_status_t +cairo_surface_set_mime_data (cairo_surface_t *surface, + const char *mime_type, + const unsigned char *data, + unsigned long length, + cairo_destroy_func_t destroy, + void *closure); +Attach an image in the format mime_type + to surface +. To remove +the data from a surface, call this function with same mime type +and NULL for data +. +The attached image (or filename) data can later be used by backends +which support it (currently: PDF, PS, SVG and Win32 Printing +surfaces) to emit this data instead of making a snapshot of the +surface +. This approach tends to be faster and requires less +memory and disk space. +The recognized MIME types are the following: CAIRO_MIME_TYPE_JPEG, +CAIRO_MIME_TYPE_PNG, CAIRO_MIME_TYPE_JP2, CAIRO_MIME_TYPE_URI, +CAIRO_MIME_TYPE_UNIQUE_ID, CAIRO_MIME_TYPE_JBIG2, +CAIRO_MIME_TYPE_JBIG2_GLOBAL, CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID, +CAIRO_MIME_TYPE_CCITT_FAX, CAIRO_MIME_TYPE_CCITT_FAX_PARAMS. +See corresponding backend surface docs for details about which MIME +types it can handle. Caution: the associated MIME data will be +discarded if you draw on the surface afterwards. Use this function +with care. +Even if a backend supports a MIME type, that does not mean cairo +will always be able to use the attached MIME data. For example, if +the backend does not natively support the compositing operation used +to apply the MIME data to the backend. In that case, the MIME data +will be ignored. Therefore, to apply an image in all cases, it is best +to create an image surface which contains the decoded image data and +then attach the MIME data to that. This ensures the image will always +be used while still allowing the MIME data to be used whenever +possible. + +Parameters + + + + + + +surface +a cairo_surface_t + +mime_type +the MIME type of the image data + +data +the image data to attach to the surface + +length +the length of the image data + +destroy +a cairo_destroy_func_t which will be called when the +surface is destroyed or when new image data is attached using the +same mime type. + +closure +the data to be passed to the destroy +notifier + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.10 + +cairo_surface_get_mime_data () +cairo_surface_get_mime_data +void +cairo_surface_get_mime_data (cairo_surface_t *surface, + const char *mime_type, + const unsigned char **data, + unsigned long *length); +Return mime data previously attached to surface + using the +specified mime type. If no data has been attached with the given +mime type, data + is set NULL. + +Parameters + + + + + + +surface +a cairo_surface_t + +mime_type +the mime type of the image data + +data +the image data to attached to the surface + +length +the length of the image data + + +Since: 1.10 + +cairo_surface_supports_mime_type () +cairo_surface_supports_mime_type +cairo_bool_t +cairo_surface_supports_mime_type (cairo_surface_t *surface, + const char *mime_type); +Return whether surface + supports mime_type +. + +Parameters + + + + + + +surface +a cairo_surface_t + +mime_type +the mime type + + + +Returns + TRUE if surface +supports +mime_type +, FALSE otherwise +Since: 1.12 + +cairo_surface_map_to_image () +cairo_surface_map_to_image +cairo_surface_t * +cairo_surface_map_to_image (cairo_surface_t *surface, + const cairo_rectangle_int_t *extents); +Returns an image surface that is the most efficient mechanism for +modifying the backing store of the target surface. The region retrieved +may be limited to the extents + or NULL for the whole surface +Note, the use of the original surface as a target or source whilst +it is mapped is undefined. The result of mapping the surface +multiple times is undefined. Calling cairo_surface_destroy() or +cairo_surface_finish() on the resulting image surface results in +undefined behavior. Changing the device transform of the image +surface or of surface + before the image surface is unmapped results +in undefined behavior. + +Parameters + + + + + + +surface +an existing surface used to extract the image from + +extents +limit the extraction to an rectangular region + + + +Returns + a pointer to the newly allocated image surface. The caller +must use cairo_surface_unmap_image() to destroy this image surface. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if other +is already in an error state +or any other error occurs. If the returned pointer does not have an +error status, it is guaranteed to be an image surface whose format +is not CAIRO_FORMAT_INVALID. +Since: 1.12 + +cairo_surface_unmap_image () +cairo_surface_unmap_image +void +cairo_surface_unmap_image (cairo_surface_t *surface, + cairo_surface_t *image); +Unmaps the image surface as returned from cairo_surface_map_to_image(). +The content of the image will be uploaded to the target surface. +Afterwards, the image is destroyed. +Using an image surface which wasn't returned by cairo_surface_map_to_image() +results in undefined behavior. + +Parameters + + + + + + +surface +the surface passed to cairo_surface_map_to_image(). + +image +the currently mapped image + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_MIME_SURFACE +CAIRO_HAS_MIME_SURFACE +#define CAIRO_HAS_MIME_SURFACE 1 + + + +CAIRO_MIME_TYPE_CCITT_FAX +CAIRO_MIME_TYPE_CCITT_FAX +#define CAIRO_MIME_TYPE_CCITT_FAX "image/g3fax" + +Group 3 or Group 4 CCITT facsimile encoding (International +Telecommunication Union, Recommendations T.4 and T.6.) +Since: 1.16 + +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +CAIRO_MIME_TYPE_CCITT_FAX_PARAMS +#define CAIRO_MIME_TYPE_CCITT_FAX_PARAMS "application/x-cairo.ccitt.params" + +Decode parameters for Group 3 or Group 4 CCITT facsimile encoding. +See CCITT Fax Images. +Since: 1.16 + +CAIRO_MIME_TYPE_EPS +CAIRO_MIME_TYPE_EPS +#define CAIRO_MIME_TYPE_EPS "application/postscript" + +Encapsulated PostScript file. +Encapsulated PostScript File Format Specification +Since: 1.16 + +CAIRO_MIME_TYPE_EPS_PARAMS +CAIRO_MIME_TYPE_EPS_PARAMS +#define CAIRO_MIME_TYPE_EPS_PARAMS "application/x-cairo.eps.params" + +Embedding parameters Encapsulated PostScript data. +See Embedding EPS files. +Since: 1.16 + +CAIRO_MIME_TYPE_JBIG2 +CAIRO_MIME_TYPE_JBIG2 +#define CAIRO_MIME_TYPE_JBIG2 "application/x-cairo.jbig2" + +Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544). +Since: 1.14 + +CAIRO_MIME_TYPE_JBIG2_GLOBAL +CAIRO_MIME_TYPE_JBIG2_GLOBAL +#define CAIRO_MIME_TYPE_JBIG2_GLOBAL "application/x-cairo.jbig2-global" + +Joint Bi-level Image Experts Group image coding standard (ISO/IEC 11544) global segment. +Since: 1.14 + +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID +#define CAIRO_MIME_TYPE_JBIG2_GLOBAL_ID "application/x-cairo.jbig2-global-id" + +An unique identifier shared by a JBIG2 global segment and all JBIG2 images +that depend on the global segment. +Since: 1.14 + +CAIRO_MIME_TYPE_JP2 +CAIRO_MIME_TYPE_JP2 +#define CAIRO_MIME_TYPE_JP2 "image/jp2" + +The Joint Photographic Experts Group (JPEG) 2000 image coding standard (ISO/IEC 15444-1). +Since: 1.10 + +CAIRO_MIME_TYPE_JPEG +CAIRO_MIME_TYPE_JPEG +#define CAIRO_MIME_TYPE_JPEG "image/jpeg" + +The Joint Photographic Experts Group (JPEG) image coding standard (ISO/IEC 10918-1). +Since: 1.10 + +CAIRO_MIME_TYPE_PNG +CAIRO_MIME_TYPE_PNG +#define CAIRO_MIME_TYPE_PNG "image/png" + +The Portable Network Graphics image file format (ISO/IEC 15948). +Since: 1.10 + +CAIRO_MIME_TYPE_URI +CAIRO_MIME_TYPE_URI +#define CAIRO_MIME_TYPE_URI "text/x-uri" + +URI for an image file (unofficial MIME type). +Since: 1.10 + +CAIRO_MIME_TYPE_UNIQUE_ID +CAIRO_MIME_TYPE_UNIQUE_ID +#define CAIRO_MIME_TYPE_UNIQUE_ID "application/x-cairo.uuid" + +Unique identifier for a surface (cairo specific MIME type). All surfaces with +the same unique identifier will only be embedded once. +Since: 1.12 + +cairo_surface_t +cairo_surface_t +typedef struct _cairo_surface 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. To draw to a cairo_surface_t, create a cairo context +with the surface as the target, using cairo_create(). +There are different subtypes of cairo_surface_t for +different drawing backends; for example, cairo_image_surface_create() +creates a bitmap image in memory. +The type of a surface can be queried with cairo_surface_get_type(). +The initial contents of a surface after creation depend upon the manner +of its creation. If cairo creates the surface and backing storage for +the user, it will be initially cleared; for example, +cairo_image_surface_create() and cairo_surface_create_similar(). +Alternatively, if the user passes in a reference to some backing storage +and asks cairo to wrap that in a cairo_surface_t, then the contents are +not modified; for example, cairo_image_surface_create_for_data() and +cairo_xlib_surface_create(). +Memory management of cairo_surface_t is done with +cairo_surface_reference() and cairo_surface_destroy(). +Since: 1.0 + +enum cairo_content_t +cairo_content_t +cairo_content_t is used to describe the content that a surface will +contain, whether color information, alpha information (translucence +vs. opacity), or both. +Note: The large values here are designed to keep cairo_content_t +values distinct from cairo_format_t values so that the +implementation can detect the error if users confuse the two types. + +Members + + + + + + +CAIRO_CONTENT_COLOR +The surface will hold color content only. (Since 1.0) + + + +CAIRO_CONTENT_ALPHA +The surface will hold alpha content only. (Since 1.0) + + + +CAIRO_CONTENT_COLOR_ALPHA +The surface will hold color and alpha content. (Since 1.0) + + + + +Since: 1.0 + +enum cairo_surface_type_t +cairo_surface_type_t +cairo_surface_type_t is used to describe the type of a given +surface. The surface types are also known as "backends" or "surface +backends" within cairo. +The type of a surface is determined by the function used to create +it, which will generally be of the form +cairo_type_surface_create(), +(though see cairo_surface_create_similar() as well). +The surface type can be queried with cairo_surface_get_type() +The various cairo_surface_t functions can be used with surfaces of +any type, but some backends also provide type-specific functions +that must only be called with a surface of the appropriate +type. These functions have names that begin with +cairo_type_surface such as cairo_image_surface_get_width(). +The behavior of calling a type-specific function with a surface of +the wrong type is undefined. +New entries may be added in future versions. + +Members + + + + + + +CAIRO_SURFACE_TYPE_IMAGE +The surface is of type image, since 1.2 + + + +CAIRO_SURFACE_TYPE_PDF +The surface is of type pdf, since 1.2 + + + +CAIRO_SURFACE_TYPE_PS +The surface is of type ps, since 1.2 + + + +CAIRO_SURFACE_TYPE_XLIB +The surface is of type xlib, since 1.2 + + + +CAIRO_SURFACE_TYPE_XCB +The surface is of type xcb, since 1.2 + + + +CAIRO_SURFACE_TYPE_GLITZ +The surface is of type glitz, since 1.2 + + + +CAIRO_SURFACE_TYPE_QUARTZ +The surface is of type quartz, since 1.2 + + + +CAIRO_SURFACE_TYPE_WIN32 +The surface is of type win32, since 1.2 + + + +CAIRO_SURFACE_TYPE_BEOS +The surface is of type beos, since 1.2 + + + +CAIRO_SURFACE_TYPE_DIRECTFB +The surface is of type directfb, since 1.2 + + + +CAIRO_SURFACE_TYPE_SVG +The surface is of type svg, since 1.2 + + + +CAIRO_SURFACE_TYPE_OS2 +The surface is of type os2, since 1.4 + + + +CAIRO_SURFACE_TYPE_WIN32_PRINTING +The surface is a win32 printing surface, since 1.6 + + + +CAIRO_SURFACE_TYPE_QUARTZ_IMAGE +The surface is of type quartz_image, since 1.6 + + + +CAIRO_SURFACE_TYPE_SCRIPT +The surface is of type script, since 1.10 + + + +CAIRO_SURFACE_TYPE_QT +The surface is of type Qt, since 1.10 + + + +CAIRO_SURFACE_TYPE_RECORDING +The surface is of type recording, since 1.10 + + + +CAIRO_SURFACE_TYPE_VG +The surface is a OpenVG surface, since 1.10 + + + +CAIRO_SURFACE_TYPE_GL +The surface is of type OpenGL, since 1.10 + + + +CAIRO_SURFACE_TYPE_DRM +The surface is of type Direct Render Manager, since 1.10 + + + +CAIRO_SURFACE_TYPE_TEE +The surface is of type 'tee' (a multiplexing surface), since 1.10 + + + +CAIRO_SURFACE_TYPE_XML +The surface is of type XML (for debugging), since 1.10 + + + +CAIRO_SURFACE_TYPE_SKIA + + +CAIRO_SURFACE_TYPE_SUBSURFACE +The surface is a subsurface created with + cairo_surface_create_for_rectangle(), since 1.10 + + + +CAIRO_SURFACE_TYPE_COGL +This surface is of type Cogl, since 1.12 + + + + +Since: 1.2 + + + +See Also +cairo_t, cairo_pattern_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml new file mode 100644 index 0000000..60d81dd --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-svg.xml @@ -0,0 +1,425 @@ + + +]> + + +SVG Surfaces +3 +CAIRO Library + + +SVG Surfaces +Rendering SVG documents + + + +Functions + + + + + +cairo_surface_t * +cairo_svg_surface_create () +cairo_surface_t * +cairo_svg_surface_create_for_stream () +cairo_svg_unit_t +cairo_svg_surface_get_document_unit () +void +cairo_svg_surface_set_document_unit () +void +cairo_svg_surface_restrict_to_version () +void +cairo_svg_get_versions () +const char * +cairo_svg_version_to_string () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_SVG_SURFACE +enumcairo_svg_version_t +enumcairo_svg_unit_t + + + + + + + + +Description +The SVG surface is used to render cairo graphics to +SVG files and is a multi-page vector surface backend. + + + +Functions + +cairo_svg_surface_create () +cairo_svg_surface_create +cairo_surface_t * +cairo_svg_surface_create (const char *filename, + double width_in_points, + double height_in_points); +Creates a SVG surface of the specified size in points to be written +to filename +. +The SVG surface backend recognizes the following MIME types for the +data attached to a surface (see cairo_surface_set_mime_data()) when +it is used as a source pattern for drawing on this surface: +CAIRO_MIME_TYPE_JPEG, CAIRO_MIME_TYPE_PNG, +CAIRO_MIME_TYPE_URI. If any of them is specified, the SVG backend +emits a href with the content of MIME data instead of a surface +snapshot (PNG, Base64-encoded) in the corresponding image tag. +The unofficial MIME type CAIRO_MIME_TYPE_URI is examined +first. If present, the URI is emitted as is: assuring the +correctness of URI is left to the client code. +If CAIRO_MIME_TYPE_URI is not present, but CAIRO_MIME_TYPE_JPEG +or CAIRO_MIME_TYPE_PNG is specified, the corresponding data is +Base64-encoded and emitted. +If CAIRO_MIME_TYPE_UNIQUE_ID is present, all surfaces with the same +unique identifier will only be embedded once. + +Parameters + + + + + + +filename +a filename for the SVG output (must be writable), NULL may be +used to specify no output. This will generate a SVG surface that +may be queried and used as a source, without generating a +temporary file. + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.2 + +cairo_svg_surface_create_for_stream () +cairo_svg_surface_create_for_stream +cairo_surface_t * +cairo_svg_surface_create_for_stream (cairo_write_func_t write_func, + void *closure, + double width_in_points, + double height_in_points); +Creates a SVG surface of the specified size in points to be written +incrementally to the stream represented by write_func + and closure +. + +Parameters + + + + + + +write_func +a cairo_write_func_t to accept the output data, may be NULL +to indicate a no-op write_func +. With a no-op write_func +, +the surface may be queried or used as a source without +generating any temporary files. + +closure +the closure argument for write_func + + +width_in_points +width of the surface, in points (1 point == 1/72.0 inch) + +height_in_points +height of the surface, in points (1 point == 1/72.0 inch) + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.2 + +cairo_svg_surface_get_document_unit () +cairo_svg_surface_get_document_unit +cairo_svg_unit_t +cairo_svg_surface_get_document_unit (cairo_surface_t *surface); +Get the unit of the SVG surface. +If the surface passed as an argument is not a SVG surface, the function +sets the error status to CAIRO_STATUS_SURFACE_TYPE_MISMATCH and returns +CAIRO_SVG_UNIT_USER. + +Parameters + + + + + + +surface +a SVG cairo_surface_t + + + +Returns + the SVG unit of the SVG surface. +Since: 1.16 + +cairo_svg_surface_set_document_unit () +cairo_svg_surface_set_document_unit +void +cairo_svg_surface_set_document_unit (cairo_surface_t *surface, + cairo_svg_unit_t unit); +Use the specified unit for the width and height of the generated SVG file. +See cairo_svg_unit_t for a list of available unit values that can be used +here. +This function can be called at any time before generating the SVG file. +However to minimize the risk of ambiguities it's recommended to call it +before any drawing operations have been performed on the given surface, to +make it clearer what the unit used in the drawing operations is. +The simplest way to do this is to call this function immediately after +creating the SVG surface. +Note if this function is never called, the default unit for SVG documents +generated by cairo will be "pt". This is for historical reasons. + +Parameters + + + + + + +surface +a SVG cairo_surface_t + +unit +SVG unit + + +Since: 1.16 + +cairo_svg_surface_restrict_to_version () +cairo_svg_surface_restrict_to_version +void +cairo_svg_surface_restrict_to_version (cairo_surface_t *surface, + cairo_svg_version_t version); +Restricts the generated SVG file to version +. See cairo_svg_get_versions() +for a list of available version values that can be used here. +This function should only be called before any drawing operations +have been performed on the given surface. The simplest way to do +this is to call this function immediately after creating the +surface. + +Parameters + + + + + + +surface +a SVG cairo_surface_t + +version +SVG version + + +Since: 1.2 + +cairo_svg_get_versions () +cairo_svg_get_versions +void +cairo_svg_get_versions (cairo_svg_version_t const **versions, + int *num_versions); +Used to retrieve the list of supported versions. See +cairo_svg_surface_restrict_to_version(). + +Parameters + + + + + + +versions +supported version list + +num_versions +list length + + +Since: 1.2 + +cairo_svg_version_to_string () +cairo_svg_version_to_string +const char * +cairo_svg_version_to_string (cairo_svg_version_t version); +Get the string representation of the given version + id. This function +will return NULL if version + isn't valid. See cairo_svg_get_versions() +for a way to get the list of valid version ids. + +Parameters + + + + + + +version +a version id + + + +Returns + the string associated to given version. +Since: 1.2 + + + +Types and Values + +CAIRO_HAS_SVG_SURFACE +CAIRO_HAS_SVG_SURFACE +#define CAIRO_HAS_SVG_SURFACE 1 + +Defined if the SVG surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.2 + +enum cairo_svg_version_t +cairo_svg_version_t +cairo_svg_version_t is used to describe the version number of the SVG +specification that a generated SVG file will conform to. + +Members + + + + + + +CAIRO_SVG_VERSION_1_1 +The version 1.1 of the SVG specification. (Since 1.2) + + + +CAIRO_SVG_VERSION_1_2 +The version 1.2 of the SVG specification. (Since 1.2) + + + + +Since: 1.2 + +enum cairo_svg_unit_t +cairo_svg_unit_t +CAIRO_SVG_UNIT_USER +: User unit, a value in the current coordinate system. + If used in the root element for the initial coordinate systems it + corresponds to pixels. (Since 1.16) +CAIRO_SVG_UNIT_EM +: The size of the element's font. (Since 1.16) +CAIRO_SVG_UNIT_EX +: The x-height of the element’s font. (Since 1.16) +CAIRO_SVG_UNIT_PX +: Pixels (1px = 1/96th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_IN +: Inches (1in = 2.54cm = 96px). (Since 1.16) +CAIRO_SVG_UNIT_CM +: Centimeters (1cm = 96px/2.54). (Since 1.16) +CAIRO_SVG_UNIT_MM +: Millimeters (1mm = 1/10th of 1cm). (Since 1.16) +CAIRO_SVG_UNIT_PT +: Points (1pt = 1/72th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_PC +: Picas (1pc = 1/6th of 1in). (Since 1.16) +CAIRO_SVG_UNIT_PERCENT +: Percent, a value that is some fraction of another + reference value. (Since 1.16) +cairo_svg_unit_t is used to describe the units valid for coordinates and +lengths in the SVG specification. +See also: +https://www.w3.org/TR/SVG/coords.htmlUnits +https://www.w3.org/TR/SVG/types.htmlDataTypeLength +https://www.w3.org/TR/css-values-3/lengths + +Members + + + + + + +CAIRO_SVG_UNIT_USER + + +CAIRO_SVG_UNIT_EM + + +CAIRO_SVG_UNIT_EX + + +CAIRO_SVG_UNIT_PX + + +CAIRO_SVG_UNIT_IN + + +CAIRO_SVG_UNIT_CM + + +CAIRO_SVG_UNIT_MM + + +CAIRO_SVG_UNIT_PT + + +CAIRO_SVG_UNIT_PC + + +CAIRO_SVG_UNIT_PERCENT + + + +Since: 1.16 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml new file mode 100644 index 0000000..bf2a8d0 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-tag.xml @@ -0,0 +1,353 @@ + + +]> + + +Tags and Links +3 +CAIRO Library + + +Tags and Links +Hyperlinks and document structure + + + +Functions + + + + + +void +cairo_tag_begin () +void +cairo_tag_end () + + + + + + +Types and Values + + + + + +#defineCAIRO_TAG_DEST +#defineCAIRO_TAG_LINK + + + + + + + + +Description +The tag functions provide the ability to specify hyperlinks and +document logical structure on supported backends. The following tags are supported: + +Link - Create a hyperlink +Destinations - Create a hyperlink destination + +Document Structure Tags - Create PDF Document Structure + + +Link TagsA hyperlink is specified by enclosing the hyperlink text with the CAIRO_TAG_LINK tag. +For example: + +cairo_tag_begin (cr, CAIRO_TAG_LINK, "uri='https://cairographics.org'"); +cairo_move_to (cr, 50, 50); +cairo_show_text (cr, "This is a link to the cairo website."); +cairo_tag_end (cr, CAIRO_TAG_LINK); + +The PDF backend uses one or more rectangles to define the clickable +area of the link. By default cairo will use the extents of the +drawing operations enclosed by the begin/end link tags to define the +clickable area. In some cases, such as a link split across two +lines, the default rectangle is undesirable. +rect +: [optional] The "rect" attribute allows the application to +specify one or more rectangles that form the clickable region. The +value of this attribute is an array of floats. Each rectangle is +specified by four elements in the array: x, y, width, height. The +array size must be a multiple of four. +An example of creating a link with user specified clickable region: + +cairo_font_extents_t font_extents; +cairo_text_extents_t text1_extents; +cairo_text_extents_t text2_extents; +char attribs[100]; +const char *text1 = "This link is split"; +const char *text2 = "across two lines"; + +cairo_font_extents (cr, &font_extents); +cairo_move_to (cr, 450, 50); +cairo_text_extents (cr, text1, &text1_extents); +cairo_move_to (cr, 50, 70); +cairo_text_extents (cr, text2, &text2_extents); +sprintf (attribs, + "rect=[%f %f %f %f %f %f %f %f] uri='https://cairographics.org'", + text1_extents.x_bearing, + text1_extents.y_bearing, + text1_extents.width, + text1_extents.height, + text2_extents.x_bearing, + text2_extents.y_bearing, + text2_extents.width, + text2_extents.height); + +cairo_tag_begin (cr, CAIRO_TAG_LINK, attribs); +cairo_show_text (cr, "This is a link to the cairo website"); +cairo_move_to (cr, 450, 50); +cairo_show_text (cr, text1); +cairo_move_to (cr, 50, 70); +cairo_show_text (cr, text2); +cairo_tag_end (cr, CAIRO_TAG_LINK); + +There are three types of links. Each type has its own attributes as detailed below. + +Internal Links - A link to a location in the same document +URI Links - A link to a Uniform resource identifier + +File Links - A link to a location in another document + + +Internal LinksAn internal link is a link to a location in the same document. The destination +is specified with either: +dest +: a UTF-8 string specifying the destination in the PDF file to link +to. Destinations are created with the CAIRO_TAG_DEST tag. +or the two attributes: +page +: An integer specifying the page number in the PDF file to link to. +pos +: [optional] An array of two floats specifying the x,y position +on the page. +An example of the link attributes to link to a page and x,y position: + +"page=3 pos=[3.1 6.2]" + + +URI LinksA URI link is a link to a Uniform Resource Identifier (RFC 2396). +A URI is specified with the following attribute: +uri +: An ASCII string specifying the URI. +An example of the link attributes to the cairo website: + +"uri='https://cairographics.org'" + + +File LinksA file link is a link a location in another PDF file. +The file attribute (required) specifies the name of the PDF file: +file +: File name of PDF file to link to. +The position is specified by either: + dest +: a UTF-8 string specifying the named destination in the PDF file. +or + page +: An integer specifying the page number in the PDF file. + pos +: [optional] An array of two floats specifying the x,y + position on the page. Position coordinates in external files are in PDF + coordinates (0,0 at bottom left). +An example of the link attributes to PDF file: + +"file='document.pdf' page=16 pos=[25 40]" + + + +Destination TagsA destination is specified by enclosing the destination drawing +operations with the CAIRO_TAG_DEST tag. +name +: [required] A UTF-8 string specifying the name of this destination. +x +: [optional] A float specifying the x coordinate of destination + position on this page. If not specified the default + x coordinate is the left side of the extents of the + operations enclosed by the CAIRO_TAG_DEST begin/end tags. If + no operations are enclosed, the x coordidate is 0. +y +: [optional] A float specifying the y coordinate of destination + position on this page. If not specified the default + y coordinate is the top of the extents of the + operations enclosed by the CAIRO_TAG_DEST begin/end tags. If + no operations are enclosed, the y coordidate is 0. +internal +: A boolean that if true, the destination name may be + omitted from PDF where possible. In this case, links + refer directly to the page and position instead of via + the named destination table. Note that if this + destination is referenced by another PDF (see File Links), + this attribute must be false. Default is false. + +/* Create a hyperlink */ +cairo_tag_begin (cr, CAIRO_TAG_LINK, "dest='mydest' internal"); +cairo_move_to (cr, 50, 50); +cairo_show_text (cr, "This is a hyperlink."); +cairo_tag_end (cr, CAIRO_TAG_LINK); + +/* Create a destination */ +cairo_tag_begin (cr, CAIRO_TAG_DEST, "name='mydest'"); +cairo_move_to (cr, 50, 250); +cairo_show_text (cr, "This paragraph is the destination of the above link."); +cairo_tag_end (cr, CAIRO_TAG_DEST); + + +Document Structure (PDF)The document structure tags provide a means of specifying structural information +such as headers, paragraphs, tables, and figures. The inclusion of structural information facilitates: + +Extraction of text and graphics for copy and paste +Reflow of text and graphics in the viewer +Processing text eg searching and indexing +Conversion to other formats + +Accessability support + + +The list of structure types is specified in section 14.8.4 of the +PDF Reference. +Note the PDF "Link" structure tag is the same as the cairo CAIRO_TAG_LINK tag. +The following example creates a document structure for a document containing two section, each with +a header and a paragraph. + +cairo_tag_begin (cr, "Document", NULL); + +cairo_tag_begin (cr, "Sect", NULL); +cairo_tag_begin (cr, "H1", NULL); +cairo_show_text (cr, "Heading 1"); +cairo_tag_end (cr, "H1"); + +cairo_tag_begin (cr, "P", NULL); +cairo_show_text (cr, "Paragraph 1"); +cairo_tag_end (cr, "P"); +cairo_tag_end (cr, "Sect"); + +cairo_tag_begin (cr, "Sect", NULL); +cairo_tag_begin (cr, "H1", NULL); +cairo_show_text (cr, "Heading 2"); +cairo_tag_end (cr, "H1"); + +cairo_tag_begin (cr, "P", NULL); +cairo_show_text (cr, "Paragraph 2"); +cairo_tag_end (cr, "P"); +cairo_tag_end (cr, "Sect"); + +cairo_tag_end (cr, "Document"); + + + + + +Functions + +cairo_tag_begin () +cairo_tag_begin +void +cairo_tag_begin (cairo_t *cr, + const char *tag_name, + const char *attributes); +Marks the beginning of the tag_name + structure. Call +cairo_tag_end() with the same tag_name + to mark the end of the +structure. +The attributes string is of the form "key1=value2 key2=value2 ...". +Values may be boolean (true/false or 1/0), integer, float, string, +or an array. +String values are enclosed in single quotes +('). Single quotes and backslashes inside the string should be +escaped with a backslash. +Boolean values may be set to true by only +specifying the key. eg the attribute string "key" is the equivalent +to "key=true". +Arrays are enclosed in '[]'. eg "rect=[1.2 4.3 2.0 3.0]". +If no attributes are required, attributes + can be an empty string or NULL. +See Tags and Links Description +for the list of tags and attributes. +Invalid nesting of tags or invalid attributes will cause cr + to +shutdown with a status of CAIRO_STATUS_TAG_ERROR. +See cairo_tag_end(). + +Parameters + + + + + + +cr +a cairo context + +tag_name +tag name + +attributes +tag attributes + + +Since: 1.16 + +cairo_tag_end () +cairo_tag_end +void +cairo_tag_end (cairo_t *cr, + const char *tag_name); +Marks the end of the tag_name + structure. +Invalid nesting of tags will cause cr + to shutdown with a status of +CAIRO_STATUS_TAG_ERROR. +See cairo_tag_begin(). + +Parameters + + + + + + +cr +a cairo context + +tag_name +tag name + + +Since: 1.16 + + + +Types and Values + +CAIRO_TAG_DEST +CAIRO_TAG_DEST +#define CAIRO_TAG_DEST "cairo.dest" + +Create a destination for a hyperlink. Destination tag attributes +are detailed at Destinations. +Since: 1.16 + +CAIRO_TAG_LINK +CAIRO_TAG_LINK +#define CAIRO_TAG_LINK "Link" + +Create hyperlink. Link tag attributes are detailed at +Links. +Since: 1.16 + + + +See Also +cairo_pdf_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-text.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-text.xml new file mode 100644 index 0000000..b62edec --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-text.xml @@ -0,0 +1,1090 @@ + + +]> + + +text +3 +CAIRO Library + + +text +Rendering text and glyphs + + + +Functions + + + + + +void +cairo_select_font_face () +void +cairo_set_font_size () +void +cairo_set_font_matrix () +void +cairo_get_font_matrix () +void +cairo_set_font_options () +void +cairo_get_font_options () +void +cairo_set_font_face () +cairo_font_face_t * +cairo_get_font_face () +void +cairo_set_scaled_font () +cairo_scaled_font_t * +cairo_get_scaled_font () +void +cairo_show_text () +void +cairo_show_glyphs () +void +cairo_show_text_glyphs () +void +cairo_font_extents () +void +cairo_text_extents () +void +cairo_glyph_extents () +cairo_font_face_t * +cairo_toy_font_face_create () +const char * +cairo_toy_font_face_get_family () +cairo_font_slant_t +cairo_toy_font_face_get_slant () +cairo_font_weight_t +cairo_toy_font_face_get_weight () +cairo_glyph_t * +cairo_glyph_allocate () +void +cairo_glyph_free () +cairo_text_cluster_t * +cairo_text_cluster_allocate () +void +cairo_text_cluster_free () + + + + + + +Types and Values + + + + + +cairo_glyph_t +enumcairo_font_slant_t +enumcairo_font_weight_t +cairo_text_cluster_t +enumcairo_text_cluster_flags_t + + + + + + + + +Description +The functions with text in their name form cairo's +toy 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 glyphs in their name form cairo's +low-level 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 http://www.pango.org/. + + + +Functions + +cairo_select_font_face () +cairo_select_font_face +void +cairo_select_font_face (cairo_t *cr, + const char *family, + cairo_font_slant_t slant, + cairo_font_weight_t weight); +Note: The cairo_select_font_face() function call is part of what +the cairo designers call the "toy" text API. It is convenient for +short demos and simple programs, but it is not expected to be +adequate for serious text-using applications. +Selects a family and style of font from a simplified description as +a family name, slant and weight. Cairo provides no operation to +list available family names on the system (this is a "toy", +remember), but the standard CSS2 generic family names, ("serif", +"sans-serif", "cursive", "fantasy", "monospace"), are likely to +work as expected. +If family + starts with the string "cairo +:", or if no native font +backends are compiled in, cairo will use an internal font family. +The internal font family recognizes many modifiers in the family + +string, most notably, it recognizes the string "monospace". That is, +the family name "cairo +:monospace" will use the monospace version of +the internal font family. +For "real" font selection, see the font-backend-specific +font_face_create functions for the font backend you are using. (For +example, if you are using the freetype-based cairo-ft font backend, +see cairo_ft_font_face_create_for_ft_face() or +cairo_ft_font_face_create_for_pattern().) The resulting font face +could then be used with cairo_scaled_font_create() and +cairo_set_scaled_font(). +Similarly, when using the "real" font support, you can call +directly into the underlying font system, (such as fontconfig or +freetype), for operations such as listing available fonts, etc. +It is expected that most applications will need to use a more +comprehensive font handling and text layout library, (for example, +pango), in conjunction with cairo. +If text is drawn without a call to cairo_select_font_face(), (nor +cairo_set_font_face() nor cairo_set_scaled_font()), the default +family is platform-specific, but is essentially "sans-serif". +Default slant is CAIRO_FONT_SLANT_NORMAL, and default weight is +CAIRO_FONT_WEIGHT_NORMAL. +This function is equivalent to a call to cairo_toy_font_face_create() +followed by cairo_set_font_face(). + +Parameters + + + + + + +cr +a cairo_t + +family +a font family name, encoded in UTF-8 + +slant +the slant for the font + +weight +the weight for the font + + +Since: 1.0 + +cairo_set_font_size () +cairo_set_font_size +void +cairo_set_font_size (cairo_t *cr, + double size); +Sets the current font matrix to a scale by a factor of size +, replacing +any font matrix previously set with cairo_set_font_size() or +cairo_set_font_matrix(). This results in a font size of size + user space +units. (More precisely, this matrix will result in the font's +em-square being a size + by size + square in user space.) +If text is drawn without a call to cairo_set_font_size(), (nor +cairo_set_font_matrix() nor cairo_set_scaled_font()), the default +font size is 10.0. + +Parameters + + + + + + +cr +a cairo_t + +size +the new font size, in user space units + + +Since: 1.0 + +cairo_set_font_matrix () +cairo_set_font_matrix +void +cairo_set_font_matrix (cairo_t *cr, + const cairo_matrix_t *matrix); +Sets the current font matrix to matrix +. The font matrix gives a +transformation from the design space of the font (in this space, +the em-square is 1 unit by 1 unit) to user space. Normally, a +simple scale is used (see cairo_set_font_size()), but a more +complex font matrix can be used to shear the font +or stretch it unequally along the two axes + +Parameters + + + + + + +cr +a cairo_t + +matrix +a cairo_matrix_t describing a transform to be applied to +the current font. + + +Since: 1.0 + +cairo_get_font_matrix () +cairo_get_font_matrix +void +cairo_get_font_matrix (cairo_t *cr, + cairo_matrix_t *matrix); +Stores the current font matrix into matrix +. See +cairo_set_font_matrix(). + +Parameters + + + + + + +cr +a cairo_t + +matrix +return value for the matrix + + +Since: 1.0 + +cairo_set_font_options () +cairo_set_font_options +void +cairo_set_font_options (cairo_t *cr, + const cairo_font_options_t *options); +Sets a set of custom font rendering options for the cairo_t. +Rendering options are derived by merging these options with the +options derived from underlying surface; if the value in options + +has a default value (like CAIRO_ANTIALIAS_DEFAULT), then the value +from the surface is used. + +Parameters + + + + + + +cr +a cairo_t + +options +font options to use + + +Since: 1.0 + +cairo_get_font_options () +cairo_get_font_options +void +cairo_get_font_options (cairo_t *cr, + cairo_font_options_t *options); +Retrieves font rendering options set via cairo_set_font_options. +Note that the returned options do not include any options derived +from the underlying surface; they are literally the options +passed to cairo_set_font_options(). + +Parameters + + + + + + +cr +a cairo_t + +options +a cairo_font_options_t object into which to store +the retrieved options. All existing values are overwritten + + +Since: 1.0 + +cairo_set_font_face () +cairo_set_font_face +void +cairo_set_font_face (cairo_t *cr, + cairo_font_face_t *font_face); +Replaces the current cairo_font_face_t object in the cairo_t with +font_face +. The replaced font face in the cairo_t will be +destroyed if there are no other references to it. + +Parameters + + + + + + +cr +a cairo_t + +font_face +a cairo_font_face_t, or NULL to restore to the default font + + +Since: 1.0 + +cairo_get_font_face () +cairo_get_font_face +cairo_font_face_t * +cairo_get_font_face (cairo_t *cr); +Gets the current font face for a cairo_t. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the current font face. This object is owned by +cairo. To keep a reference to it, you must call +cairo_font_face_reference(). +This function never returns NULL. If memory cannot be allocated, a +special "nil" cairo_font_face_t object will be returned on which +cairo_font_face_status() returns CAIRO_STATUS_NO_MEMORY. Using +this nil object will cause its error state to propagate to other +objects it is passed to, (for example, calling +cairo_set_font_face() with a nil font will trigger an error that +will shutdown the cairo_t object). +Since: 1.0 + +cairo_set_scaled_font () +cairo_set_scaled_font +void +cairo_set_scaled_font (cairo_t *cr, + const cairo_scaled_font_t *scaled_font); +Replaces the current font face, font matrix, and font options in +the cairo_t with those of the cairo_scaled_font_t. Except for +some translation, the current CTM of the cairo_t should be the +same as that of the cairo_scaled_font_t, which can be accessed +using cairo_scaled_font_get_ctm(). + +Parameters + + + + + + +cr +a cairo_t + +scaled_font +a cairo_scaled_font_t + + +Since: 1.2 + +cairo_get_scaled_font () +cairo_get_scaled_font +cairo_scaled_font_t * +cairo_get_scaled_font (cairo_t *cr); +Gets the current scaled font for a cairo_t. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the current scaled font. This object is owned by +cairo. To keep a reference to it, you must call +cairo_scaled_font_reference(). +This function never returns NULL. If memory cannot be allocated, a +special "nil" cairo_scaled_font_t object will be returned on which +cairo_scaled_font_status() returns CAIRO_STATUS_NO_MEMORY. Using +this nil object will cause its error state to propagate to other +objects it is passed to, (for example, calling +cairo_set_scaled_font() with a nil font will trigger an error that +will shutdown the cairo_t object). +Since: 1.4 + +cairo_show_text () +cairo_show_text +void +cairo_show_text (cairo_t *cr, + const char *utf8); +A drawing operator that generates the shape from a string of UTF-8 +characters, rendered according to the current font_face, font_size +(font_matrix), and font_options. +This function first computes a set of glyphs for the string of +text. The first glyph is placed so that its origin is at the +current point. The origin of each subsequent glyph is offset from +that of the previous glyph by the advance values of the previous +glyph. +After this call the current point is moved to the origin of where +the next glyph would be placed in this same progression. That is, +the current point will be at the origin of the final glyph offset +by its advance values. This allows for easy display of a single +logical string with multiple calls to cairo_show_text(). +Note: The cairo_show_text() function call is part of what the cairo +designers call the "toy" text API. It is convenient for short demos +and simple programs, but it is not expected to be adequate for +serious text-using applications. See cairo_show_glyphs() for the +"real" text display API in cairo. + +Parameters + + + + + + +cr +a cairo context + +utf8 +a NUL-terminated string of text encoded in UTF-8, or NULL + + +Since: 1.0 + +cairo_show_glyphs () +cairo_show_glyphs +void +cairo_show_glyphs (cairo_t *cr, + const cairo_glyph_t *glyphs, + int num_glyphs); +A drawing operator that generates the shape from an array of glyphs, +rendered according to the current font face, font size +(font matrix), and font options. + +Parameters + + + + + + +cr +a cairo context + +glyphs +array of glyphs to show + +num_glyphs +number of glyphs to show + + +Since: 1.0 + +cairo_show_text_glyphs () +cairo_show_text_glyphs +void +cairo_show_text_glyphs (cairo_t *cr, + const char *utf8, + int utf8_len, + const cairo_glyph_t *glyphs, + int num_glyphs, + const cairo_text_cluster_t *clusters, + int num_clusters, + cairo_text_cluster_flags_t cluster_flags); +This operation has rendering effects similar to cairo_show_glyphs() +but, if the target surface supports it, uses the provided text and +cluster mapping to embed the text for the glyphs shown in the output. +If the target does not support the extended attributes, this function +acts like the basic cairo_show_glyphs() as if it had been passed +glyphs + and num_glyphs +. +The mapping between utf8 + and glyphs + is provided by an array of +clusters. Each cluster covers a number of +text bytes and glyphs, and neighboring clusters cover neighboring +areas of utf8 + and glyphs +. The clusters should collectively cover utf8 + +and glyphs + in entirety. +The first cluster always covers bytes from the beginning of utf8 +. +If cluster_flags + do not have the CAIRO_TEXT_CLUSTER_FLAG_BACKWARD +set, the first cluster also covers the beginning +of glyphs +, otherwise it covers the end of the glyphs + array and +following clusters move backward. +See cairo_text_cluster_t for constraints on valid clusters. + +Parameters + + + + + + +cr +a cairo context + +utf8 +a string of text encoded in UTF-8 + +utf8_len +length of utf8 +in bytes, or -1 if it is NUL-terminated + +glyphs +array of glyphs to show + +num_glyphs +number of glyphs to show + +clusters +array of cluster mapping information + +num_clusters +number of clusters in the mapping + +cluster_flags +cluster mapping flags + + +Since: 1.8 + +cairo_font_extents () +cairo_font_extents +void +cairo_font_extents (cairo_t *cr, + cairo_font_extents_t *extents); +Gets the font extents for the currently selected font. + +Parameters + + + + + + +cr +a cairo_t + +extents +a cairo_font_extents_t object into which the results +will be stored. + + +Since: 1.0 + +cairo_text_extents () +cairo_text_extents +void +cairo_text_extents (cairo_t *cr, + const char *utf8, + cairo_text_extents_t *extents); +Gets the extents for a string of text. The extents describe a +user-space rectangle that encloses the "inked" portion of the text, +(as it would be drawn by cairo_show_text()). Additionally, the +x_advance and y_advance values indicate the amount by which the +current point would be advanced by cairo_show_text(). +Note that whitespace characters do not directly contribute to the +size of the rectangle (extents.width and extents.height). They do +contribute indirectly by changing the position of non-whitespace +characters. In particular, trailing whitespace characters are +likely to not affect the size of the rectangle, though they will +affect the x_advance and y_advance values. + +Parameters + + + + + + +cr +a cairo_t + +utf8 +a NUL-terminated string of text encoded in UTF-8, or NULL + +extents +a cairo_text_extents_t object into which the results +will be stored + + +Since: 1.0 + +cairo_glyph_extents () +cairo_glyph_extents +void +cairo_glyph_extents (cairo_t *cr, + const cairo_glyph_t *glyphs, + int num_glyphs, + cairo_text_extents_t *extents); +Gets the extents for an array of glyphs. The extents describe a +user-space rectangle that encloses the "inked" portion of the +glyphs, (as they would be drawn by cairo_show_glyphs()). +Additionally, the x_advance and y_advance values indicate the +amount by which the current point would be advanced by +cairo_show_glyphs(). +Note that whitespace glyphs do not contribute to the size of the +rectangle (extents.width and extents.height). + +Parameters + + + + + + +cr +a cairo_t + +glyphs +an array of cairo_glyph_t objects + +num_glyphs +the number of elements in glyphs + + +extents +a cairo_text_extents_t object into which the results +will be stored + + +Since: 1.0 + +cairo_toy_font_face_create () +cairo_toy_font_face_create +cairo_font_face_t * +cairo_toy_font_face_create (const char *family, + cairo_font_slant_t slant, + cairo_font_weight_t weight); +Creates a font face from a triplet of family, slant, and weight. +These font faces are used in implementation of the the cairo_t "toy" +font API. +If family + is the zero-length string "", the platform-specific default +family is assumed. The default family then can be queried using +cairo_toy_font_face_get_family(). +The cairo_select_font_face() function uses this to create font faces. +See that function for limitations and other details of toy font faces. + +Parameters + + + + + + +family +a font family name, encoded in UTF-8 + +slant +the slant for the font + +weight +the weight for the font + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.8 + +cairo_toy_font_face_get_family () +cairo_toy_font_face_get_family +const char * +cairo_toy_font_face_get_family (cairo_font_face_t *font_face); +Gets the familly name of a toy font. + +Parameters + + + + + + +font_face +A toy font face + + + +Returns + The family name. This string is owned by the font face +and remains valid as long as the font face is alive (referenced). +Since: 1.8 + +cairo_toy_font_face_get_slant () +cairo_toy_font_face_get_slant +cairo_font_slant_t +cairo_toy_font_face_get_slant (cairo_font_face_t *font_face); +Gets the slant a toy font. + +Parameters + + + + + + +font_face +A toy font face + + + +Returns + The slant value +Since: 1.8 + +cairo_toy_font_face_get_weight () +cairo_toy_font_face_get_weight +cairo_font_weight_t +cairo_toy_font_face_get_weight (cairo_font_face_t *font_face); +Gets the weight a toy font. + +Parameters + + + + + + +font_face +A toy font face + + + +Returns + The weight value +Since: 1.8 + +cairo_glyph_allocate () +cairo_glyph_allocate +cairo_glyph_t * +cairo_glyph_allocate (int num_glyphs); +Allocates an array of cairo_glyph_t's. +This function is only useful in implementations of +cairo_user_scaled_font_text_to_glyphs_func_t where the user +needs to allocate an array of glyphs that cairo will free. +For all other uses, user can use their own allocation method +for glyphs. +This function returns NULL if num_glyphs + is not positive, +or if out of memory. That means, the NULL return value +signals out-of-memory only if num_glyphs + was positive. + +Parameters + + + + + + +num_glyphs +number of glyphs to allocate + + + +Returns + the newly allocated array of glyphs that should be +freed using cairo_glyph_free() +Since: 1.8 + +cairo_glyph_free () +cairo_glyph_free +void +cairo_glyph_free (cairo_glyph_t *glyphs); +Frees an array of cairo_glyph_t's allocated using cairo_glyph_allocate(). +This function is only useful to free glyph array returned +by cairo_scaled_font_text_to_glyphs() where cairo returns +an array of glyphs that the user will free. +For all other uses, user can use their own allocation method +for glyphs. + +Parameters + + + + + + +glyphs +array of glyphs to free, or NULL + + +Since: 1.8 + +cairo_text_cluster_allocate () +cairo_text_cluster_allocate +cairo_text_cluster_t * +cairo_text_cluster_allocate (int num_clusters); +Allocates an array of cairo_text_cluster_t's. +This function is only useful in implementations of +cairo_user_scaled_font_text_to_glyphs_func_t where the user +needs to allocate an array of text clusters that cairo will free. +For all other uses, user can use their own allocation method +for text clusters. +This function returns NULL if num_clusters + is not positive, +or if out of memory. That means, the NULL return value +signals out-of-memory only if num_clusters + was positive. + +Parameters + + + + + + +num_clusters +number of text_clusters to allocate + + + +Returns + the newly allocated array of text clusters that should be +freed using cairo_text_cluster_free() +Since: 1.8 + +cairo_text_cluster_free () +cairo_text_cluster_free +void +cairo_text_cluster_free (cairo_text_cluster_t *clusters); +Frees an array of cairo_text_cluster's allocated using cairo_text_cluster_allocate(). +This function is only useful to free text cluster array returned +by cairo_scaled_font_text_to_glyphs() where cairo returns +an array of text clusters that the user will free. +For all other uses, user can use their own allocation method +for text clusters. + +Parameters + + + + + + +clusters +array of text clusters to free, or NULL + + +Since: 1.8 + + + +Types and Values + +cairo_glyph_t +cairo_glyph_t +typedef struct { + unsigned long index; + double x; + double y; +} cairo_glyph_t; + +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 ligature 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 + +Members + + + + + + +unsigned long index; +glyph index in the font. The exact interpretation of the +glyph index depends on the font technology being used. + + +double x; +the offset in the X direction between the origin used for +drawing or measuring the string and the origin of this glyph. + + +double y; +the offset in the Y direction between the origin used for +drawing or measuring the string and the origin of this glyph. + + + + +Since: 1.0 + +enum cairo_font_slant_t +cairo_font_slant_t +Specifies variants of a font face based on their slant. + +Members + + + + + + +CAIRO_FONT_SLANT_NORMAL +Upright font style, since 1.0 + + + +CAIRO_FONT_SLANT_ITALIC +Italic font style, since 1.0 + + + +CAIRO_FONT_SLANT_OBLIQUE +Oblique font style, since 1.0 + + + + +Since: 1.0 + +enum cairo_font_weight_t +cairo_font_weight_t +Specifies variants of a font face based on their weight. + +Members + + + + + + +CAIRO_FONT_WEIGHT_NORMAL +Normal font weight, since 1.0 + + + +CAIRO_FONT_WEIGHT_BOLD +Bold font weight, since 1.0 + + + + +Since: 1.0 + +cairo_text_cluster_t +cairo_text_cluster_t +typedef struct { + int num_bytes; + int num_glyphs; +} cairo_text_cluster_t; + +The cairo_text_cluster_t structure holds information about a single +text cluster. A text cluster is a minimal +mapping of some glyphs corresponding to some UTF-8 text. +For a cluster to be valid, both num_bytes + and num_glyphs + should +be non-negative, and at least one should be non-zero. +Note that clusters with zero glyphs are not as well supported as +normal clusters. For example, PDF rendering applications typically +ignore those clusters when PDF text is being selected. +See cairo_show_text_glyphs() for how clusters are used in advanced +text operations. + +Members + + + + + + +int num_bytes; +the number of bytes of UTF-8 text covered by cluster + + +int num_glyphs; +the number of glyphs covered by cluster + + + + +Since: 1.8 + +enum cairo_text_cluster_flags_t +cairo_text_cluster_flags_t +Specifies properties of a text cluster mapping. + +Members + + + + + + +CAIRO_TEXT_CLUSTER_FLAG_BACKWARD +The clusters in the cluster array +map to glyphs in the glyph array from end to start. (Since 1.8) + + + + +Since: 1.8 + + + +See Also +cairo_font_face_t, cairo_scaled_font_t, cairo_text_path(), + cairo_glyph_path() + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml new file mode 100644 index 0000000..22d38bb --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-transforms.xml @@ -0,0 +1,389 @@ + + +]> + + +Transformations +3 +CAIRO Library + + +Transformations +Manipulating the current transformation matrix + + + +Functions + + + + + +void +cairo_translate () +void +cairo_scale () +void +cairo_rotate () +void +cairo_transform () +void +cairo_set_matrix () +void +cairo_get_matrix () +void +cairo_identity_matrix () +void +cairo_user_to_device () +void +cairo_user_to_device_distance () +void +cairo_device_to_user () +void +cairo_device_to_user_distance () + + + + + + + + +Description +The current transformation matrix, ctm, is a +two-dimensional affine transformation that maps all coordinates and other +drawing instruments from the user space into the +surface's canonical coordinate system, also known as the device +space. + + + +Functions + +cairo_translate () +cairo_translate +void +cairo_translate (cairo_t *cr, + double tx, + double ty); +Modifies the current transformation matrix (CTM) by translating the +user-space origin by (tx +, ty +). This offset is interpreted as a +user-space coordinate according to the CTM in place before the new +call to cairo_translate(). In other words, the translation of the +user-space origin takes place after any existing transformation. + +Parameters + + + + + + +cr +a cairo context + +tx +amount to translate in the X direction + +ty +amount to translate in the Y direction + + +Since: 1.0 + +cairo_scale () +cairo_scale +void +cairo_scale (cairo_t *cr, + double sx, + double sy); +Modifies the current transformation matrix (CTM) by scaling the X +and Y user-space axes by sx + and sy + respectively. The scaling of +the axes takes place after any existing transformation of user +space. + +Parameters + + + + + + +cr +a cairo context + +sx +scale factor for the X dimension + +sy +scale factor for the Y dimension + + +Since: 1.0 + +cairo_rotate () +cairo_rotate +void +cairo_rotate (cairo_t *cr, + double angle); +Modifies the current transformation matrix (CTM) by rotating the +user-space axes by angle + radians. The rotation of the axes takes +places after any existing transformation of user space. The +rotation direction for positive angles is from the positive X axis +toward the positive Y axis. + +Parameters + + + + + + +cr +a cairo context + +angle +angle (in radians) by which the user-space axes will be +rotated + + +Since: 1.0 + +cairo_transform () +cairo_transform +void +cairo_transform (cairo_t *cr, + const cairo_matrix_t *matrix); +Modifies the current transformation matrix (CTM) by applying +matrix + as an additional transformation. The new transformation of +user space takes place after any existing transformation. + +Parameters + + + + + + +cr +a cairo context + +matrix +a transformation to be applied to the user-space axes + + +Since: 1.0 + +cairo_set_matrix () +cairo_set_matrix +void +cairo_set_matrix (cairo_t *cr, + const cairo_matrix_t *matrix); +Modifies the current transformation matrix (CTM) by setting it +equal to matrix +. + +Parameters + + + + + + +cr +a cairo context + +matrix +a transformation matrix from user space to device space + + +Since: 1.0 + +cairo_get_matrix () +cairo_get_matrix +void +cairo_get_matrix (cairo_t *cr, + cairo_matrix_t *matrix); +Stores the current transformation matrix (CTM) into matrix +. + +Parameters + + + + + + +cr +a cairo context + +matrix +return value for the matrix + + +Since: 1.0 + +cairo_identity_matrix () +cairo_identity_matrix +void +cairo_identity_matrix (cairo_t *cr); +Resets the current transformation matrix (CTM) by setting it equal +to the identity matrix. That is, the user-space and device-space +axes will be aligned and one user-space unit will transform to one +device-space unit. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_user_to_device () +cairo_user_to_device +void +cairo_user_to_device (cairo_t *cr, + double *x, + double *y); +Transform a coordinate from user space to device space by +multiplying the given point by the current transformation matrix +(CTM). + +Parameters + + + + + + +cr +a cairo context + +x +X value of coordinate (in/out parameter) + +y +Y value of coordinate (in/out parameter) + + +Since: 1.0 + +cairo_user_to_device_distance () +cairo_user_to_device_distance +void +cairo_user_to_device_distance (cairo_t *cr, + double *dx, + double *dy); +Transform a distance vector from user space to device space. This +function is similar to cairo_user_to_device() except that the +translation components of the CTM will be ignored when transforming +(dx +,dy +). + +Parameters + + + + + + +cr +a cairo context + +dx +X component of a distance vector (in/out parameter) + +dy +Y component of a distance vector (in/out parameter) + + +Since: 1.0 + +cairo_device_to_user () +cairo_device_to_user +void +cairo_device_to_user (cairo_t *cr, + double *x, + double *y); +Transform a coordinate from device space to user space by +multiplying the given point by the inverse of the current +transformation matrix (CTM). + +Parameters + + + + + + +cr +a cairo + +x +X value of coordinate (in/out parameter) + +y +Y value of coordinate (in/out parameter) + + +Since: 1.0 + +cairo_device_to_user_distance () +cairo_device_to_user_distance +void +cairo_device_to_user_distance (cairo_t *cr, + double *dx, + double *dy); +Transform a distance vector from device space to user space. This +function is similar to cairo_device_to_user() except that the +translation components of the inverse CTM will be ignored when +transforming (dx +,dy +). + +Parameters + + + + + + +cr +a cairo context + +dx +X component of a distance vector (in/out parameter) + +dy +Y component of a distance vector (in/out parameter) + + +Since: 1.0 + + + +Types and Values + + + +See Also +cairo_matrix_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-types.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-types.xml new file mode 100644 index 0000000..916e4f4 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-types.xml @@ -0,0 +1,161 @@ + + +]> + + +Types +3 +CAIRO Library + + +Types +Generic data types + + + +Functions + + + + + +void +(*cairo_destroy_func_t) () + + + + + + +Types and Values + + + + + +typedefcairo_bool_t +cairo_user_data_key_t +cairo_rectangle_int_t + + + + + + + + +Description +This section lists generic data types used in the cairo API. + + + +Functions + +cairo_destroy_func_t () +cairo_destroy_func_t +void +(*cairo_destroy_func_t) (void *data); +cairo_destroy_func_t the type of function which is called when a +data element is destroyed. It is passed the pointer to the data +element and should free any memory and resources allocated for it. + +Parameters + + + + + + +data +The data element being destroyed. + + +Since: 1.0 + + + +Types and Values + +cairo_bool_t +cairo_bool_t +typedef int 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 explicitly is not encouraged; just use the +value as a boolean condition. + + if (cairo_in_stroke (cr, x, y)) { + /* do something */ + } + +Since: 1.0 + +cairo_user_data_key_t +cairo_user_data_key_t +typedef struct { + int unused; +} cairo_user_data_key_t; + +cairo_user_data_key_t is used for attaching user data to cairo +data structures. The actual contents of the struct is never used, +and there is no need to initialize the object; only the unique +address of a cairo_data_key_t object is used. Typically, you +would just use the address of a static cairo_data_key_t object. + +Members + + + + + + +int unused; +not used; ignore. + + + + +Since: 1.0 + +cairo_rectangle_int_t +cairo_rectangle_int_t +typedef struct { + int x, y; + int width, height; +} cairo_rectangle_int_t; + +A data structure for holding a rectangle with integer coordinates. + +Members + + + + + + +int x; +X coordinate of the left side of the rectangle + + +int y; +Y coordinate of the the top side of the rectangle + + +int width; +width of the rectangle + + +int height; +height of the rectangle + + + + +Since: 1.10 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml new file mode 100644 index 0000000..894fd7a --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-user-fonts.xml @@ -0,0 +1,626 @@ + + +]> + + +User Fonts +3 +CAIRO Library + + +User Fonts +Font support with font data provided by the user + + + +Functions + + + + + +cairo_status_t +(*cairo_user_scaled_font_init_func_t) () +cairo_status_t +(*cairo_user_scaled_font_render_glyph_func_t) () +cairo_status_t +(*cairo_user_scaled_font_text_to_glyphs_func_t) () +cairo_status_t +(*cairo_user_scaled_font_unicode_to_glyph_func_t) () +cairo_font_face_t * +cairo_user_font_face_create () +void +cairo_user_font_face_set_init_func () +cairo_user_scaled_font_init_func_t +cairo_user_font_face_get_init_func () +void +cairo_user_font_face_set_render_glyph_func () +cairo_user_scaled_font_render_glyph_func_t +cairo_user_font_face_get_render_glyph_func () +void +cairo_user_font_face_set_unicode_to_glyph_func () +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_user_font_face_get_unicode_to_glyph_func () +void +cairo_user_font_face_set_text_to_glyphs_func () +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_user_font_face_get_text_to_glyphs_func () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_USER_FONT + + + + + + + + +Description +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. + + + +Functions + +cairo_user_scaled_font_init_func_t () +cairo_user_scaled_font_init_func_t +cairo_status_t +(*cairo_user_scaled_font_init_func_t) (cairo_scaled_font_t *scaled_font, + cairo_t *cr, + cairo_font_extents_t *extents); +cairo_user_scaled_font_init_func_t is the type of function which is +called when a scaled-font needs to be created for a user font-face. +The cairo context cr + is not used by the caller, but is prepared in font +space, similar to what the cairo contexts passed to the render_glyph +method will look like. The callback can use this context for extents +computation for example. After the callback is called, cr + is checked +for any error status. +The extents + argument is where the user font sets the font extents for +scaled_font +. It is in font space, which means that for most cases its +ascent and descent members should add to 1.0. extents + is preset to +hold a value of 1.0 for ascent, height, and max_x_advance, and 0.0 for +descent and max_y_advance members. +The callback is optional. If not set, default font extents as described +in the previous paragraph will be used. +Note that scaled_font + is not fully initialized at this +point and trying to use it for text operations in the callback will result +in deadlock. + +Parameters + + + + + + +scaled_font +the scaled-font being created + +cr +a cairo context, in font space + +extents +font extents to fill in, in font space + + + +Returns + CAIRO_STATUS_SUCCESS upon success, or an error status on error. +Since: 1.8 + +cairo_user_scaled_font_render_glyph_func_t () +cairo_user_scaled_font_render_glyph_func_t +cairo_status_t +(*cairo_user_scaled_font_render_glyph_func_t) + (cairo_scaled_font_t *scaled_font, + unsigned long glyph, + cairo_t *cr, + cairo_text_extents_t *extents); +cairo_user_scaled_font_render_glyph_func_t is the type of function which +is called when a user scaled-font needs to render a glyph. +The callback is mandatory, and expected to draw the glyph with code glyph + to +the cairo context cr +. cr + is prepared such that the glyph drawing is done in +font space. That is, the matrix set on cr + is the scale matrix of scaled_font +, +The extents + argument is where the user font sets the font extents for +scaled_font +. However, if user prefers to draw in user space, they can +achieve that by changing the matrix on cr +. All cairo rendering operations +to cr + are permitted, however, the result is undefined if any source other +than the default source on cr + is used. That means, glyph bitmaps should +be rendered using cairo_mask() instead of cairo_paint(). +Other non-default settings on cr + include a font size of 1.0 (given that +it is set up to be in font space), and font options corresponding to +scaled_font +. +The extents + argument is preset to have x_bearing, +width, and y_advance of zero, +y_bearing set to -font_extents.ascent, +height to font_extents.ascent+font_extents.descent, +and x_advance to font_extents.max_x_advance. +The only field user needs to set in majority of cases is +x_advance. +If the width field is zero upon the callback returning +(which is its preset value), the glyph extents are automatically computed +based on the drawings done to cr +. This is in most cases exactly what the +desired behavior is. However, if for any reason the callback sets the +extents, it must be ink extents, and include the extents of all drawing +done to cr + in the callback. + +Parameters + + + + + + +scaled_font +user scaled-font + +glyph +glyph code to render + +cr +cairo context to draw to, in font space + +extents +glyph extents to fill in, in font space + + + +Returns + CAIRO_STATUS_SUCCESS upon success, or +CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. +Since: 1.8 + +cairo_user_scaled_font_text_to_glyphs_func_t () +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_status_t +(*cairo_user_scaled_font_text_to_glyphs_func_t) + (cairo_scaled_font_t *scaled_font, + const char *utf8, + int utf8_len, + cairo_glyph_t **glyphs, + int *num_glyphs, + cairo_text_cluster_t **clusters, + int *num_clusters, + cairo_text_cluster_flags_t *cluster_flags); +cairo_user_scaled_font_text_to_glyphs_func_t is the type of function which +is called to convert input text to an array of glyphs. This is used by the +cairo_show_text() operation. +Using this callback the user-font has full control on glyphs and their +positions. That means, it allows for features like ligatures and kerning, +as well as complex shaping required for scripts like +Arabic and Indic. +The num_glyphs + argument is preset to the number of glyph entries available +in the glyphs + buffer. If the glyphs + buffer is NULL, the value of +num_glyphs + will be zero. If the provided glyph array is too short for +the conversion (or for convenience), a new glyph array may be allocated +using cairo_glyph_allocate() and placed in glyphs +. Upon return, +num_glyphs + should contain the number of generated glyphs. If the value +glyphs + points at has changed after the call, the caller will free the +allocated glyph array using cairo_glyph_free(). The caller will also free +the original value of glyphs +, so the callback shouldn't do so. +The callback should populate the glyph indices and positions (in font space) +assuming that the text is to be shown at the origin. +If clusters + is not NULL, num_clusters + and cluster_flags + are also +non-NULL, and cluster mapping should be computed. The semantics of how +cluster array allocation works is similar to the glyph array. That is, +if clusters + initially points to a non-NULL value, that array may be used +as a cluster buffer, and num_clusters + points to the number of cluster +entries available there. If the provided cluster array is too short for +the conversion (or for convenience), a new cluster array may be allocated +using cairo_text_cluster_allocate() and placed in clusters +. In this case, +the original value of clusters + will still be freed by the caller. Upon +return, num_clusters + should contain the number of generated clusters. +If the value clusters + points at has changed after the call, the caller +will free the allocated cluster array using cairo_text_cluster_free(). +The callback is optional. If num_glyphs + is negative upon +the callback returning or if the return value +is CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, the unicode_to_glyph callback +is tried. See cairo_user_scaled_font_unicode_to_glyph_func_t. +Note: While cairo does not impose any limitation on glyph indices, +some applications may assume that a glyph index fits in a 16-bit +unsigned integer. As such, it is advised that user-fonts keep their +glyphs in the 0 to 65535 range. Furthermore, some applications may +assume that glyph 0 is a special glyph-not-found glyph. User-fonts +are advised to use glyph 0 for such purposes and do not use that +glyph value for other purposes. + +Parameters + + + + + + +scaled_font +the scaled-font being created + +utf8 +a string of text encoded in UTF-8 + +utf8_len +length of utf8 +in bytes + +glyphs +pointer to array of glyphs to fill, in font space + +num_glyphs +pointer to number of glyphs + +clusters +pointer to array of cluster mapping information to fill, or NULL + +num_clusters +pointer to number of clusters + +cluster_flags +pointer to location to store cluster flags corresponding to the +output clusters + + + + +Returns + CAIRO_STATUS_SUCCESS upon success, +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, +or CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. +Since: 1.8 + +cairo_user_scaled_font_unicode_to_glyph_func_t () +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_status_t +(*cairo_user_scaled_font_unicode_to_glyph_func_t) + (cairo_scaled_font_t *scaled_font, + unsigned long unicode, + unsigned long *glyph_index); +cairo_user_scaled_font_unicode_to_glyph_func_t is the type of function which +is called to convert an input Unicode character to a single glyph. +This is used by the cairo_show_text() operation. +This callback is used to provide the same functionality as the +text_to_glyphs callback does (see cairo_user_scaled_font_text_to_glyphs_func_t) +but has much less control on the output, +in exchange for increased ease of use. The inherent assumption to using +this callback is that each character maps to one glyph, and that the +mapping is context independent. It also assumes that glyphs are positioned +according to their advance width. These mean no ligatures, kerning, or +complex scripts can be implemented using this callback. +The callback is optional, and only used if text_to_glyphs callback is not +set or fails to return glyphs. If this callback is not set or if it returns +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, an identity mapping from Unicode +code-points to glyph indices is assumed. +Note: While cairo does not impose any limitation on glyph indices, +some applications may assume that a glyph index fits in a 16-bit +unsigned integer. As such, it is advised that user-fonts keep their +glyphs in the 0 to 65535 range. Furthermore, some applications may +assume that glyph 0 is a special glyph-not-found glyph. User-fonts +are advised to use glyph 0 for such purposes and do not use that +glyph value for other purposes. + +Parameters + + + + + + +scaled_font +the scaled-font being created + +unicode +input unicode character code-point + +glyph_index +output glyph index + + + +Returns + CAIRO_STATUS_SUCCESS upon success, +CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED if fallback options should be tried, +or CAIRO_STATUS_USER_FONT_ERROR or any other error status on error. +Since: 1.8 + +cairo_user_font_face_create () +cairo_user_font_face_create +cairo_font_face_t * +cairo_user_font_face_create (void); +Creates a new user font-face. +Use the setter functions to associate callbacks with the returned +user font. The only mandatory callback is render_glyph. +After the font-face is created, the user can attach arbitrary data +(the actual font data) to it using cairo_font_face_set_user_data() +and access it from the user-font callbacks by using +cairo_scaled_font_get_font_face() followed by +cairo_font_face_get_user_data(). + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.8 + +cairo_user_font_face_set_init_func () +cairo_user_font_face_set_init_func +void +cairo_user_font_face_set_init_func (cairo_font_face_t *font_face, + cairo_user_scaled_font_init_func_t init_func); +Sets the scaled-font initialization function of a user-font. +See cairo_user_scaled_font_init_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. + +Parameters + + + + + + +font_face +A user font face + +init_func +The init callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_init_func () +cairo_user_font_face_get_init_func +cairo_user_scaled_font_init_func_t +cairo_user_font_face_get_init_func (cairo_font_face_t *font_face); +Gets the scaled-font initialization function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The init callback of font_face +or NULL if none set or an error has occurred. +Since: 1.8 + +cairo_user_font_face_set_render_glyph_func () +cairo_user_font_face_set_render_glyph_func +void +cairo_user_font_face_set_render_glyph_func + (cairo_font_face_t *font_face, + cairo_user_scaled_font_render_glyph_func_t render_glyph_func); +Sets the glyph rendering function of a user-font. +See cairo_user_scaled_font_render_glyph_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. +The render_glyph callback is the only mandatory callback of a user-font. +If the callback is NULL and a glyph is tried to be rendered using +font_face +, a CAIRO_STATUS_USER_FONT_ERROR will occur. + +Parameters + + + + + + +font_face +A user font face + +render_glyph_func +The render_glyph callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_render_glyph_func () +cairo_user_font_face_get_render_glyph_func +cairo_user_scaled_font_render_glyph_func_t +cairo_user_font_face_get_render_glyph_func + (cairo_font_face_t *font_face); +Gets the glyph rendering function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The render_glyph callback of font_face +or NULL if none set or an error has occurred. +Since: 1.8 + +cairo_user_font_face_set_unicode_to_glyph_func () +cairo_user_font_face_set_unicode_to_glyph_func +void +cairo_user_font_face_set_unicode_to_glyph_func + (cairo_font_face_t *font_face, + cairo_user_scaled_font_unicode_to_glyph_func_t unicode_to_glyph_func); +Sets the unicode-to-glyph conversion function of a user-font. +See cairo_user_scaled_font_unicode_to_glyph_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. + +Parameters + + + + + + +font_face +A user font face + +unicode_to_glyph_func +The unicode_to_glyph callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_unicode_to_glyph_func () +cairo_user_font_face_get_unicode_to_glyph_func +cairo_user_scaled_font_unicode_to_glyph_func_t +cairo_user_font_face_get_unicode_to_glyph_func + (cairo_font_face_t *font_face); +Gets the unicode-to-glyph conversion function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The unicode_to_glyph callback of font_face +or NULL if none set or an error occurred. +Since: 1.8 + +cairo_user_font_face_set_text_to_glyphs_func () +cairo_user_font_face_set_text_to_glyphs_func +void +cairo_user_font_face_set_text_to_glyphs_func + (cairo_font_face_t *font_face, + cairo_user_scaled_font_text_to_glyphs_func_t text_to_glyphs_func); +Sets th text-to-glyphs conversion function of a user-font. +See cairo_user_scaled_font_text_to_glyphs_func_t for details of how the callback +works. +The font-face should not be immutable or a CAIRO_STATUS_USER_FONT_IMMUTABLE +error will occur. A user font-face is immutable as soon as a scaled-font +is created from it. + +Parameters + + + + + + +font_face +A user font face + +text_to_glyphs_func +The text_to_glyphs callback, or NULL + + +Since: 1.8 + +cairo_user_font_face_get_text_to_glyphs_func () +cairo_user_font_face_get_text_to_glyphs_func +cairo_user_scaled_font_text_to_glyphs_func_t +cairo_user_font_face_get_text_to_glyphs_func + (cairo_font_face_t *font_face); +Gets the text-to-glyphs conversion function of a user-font. + +Parameters + + + + + + +font_face +A user font face + + + +Returns + The text_to_glyphs callback of font_face +or NULL if none set or an error occurred. +Since: 1.8 + + + +Types and Values + +CAIRO_HAS_USER_FONT +CAIRO_HAS_USER_FONT +#define CAIRO_HAS_USER_FONT 1 + +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 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-version.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-version.xml new file mode 100644 index 0000000..7825ecd --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-version.xml @@ -0,0 +1,278 @@ + + +]> + + +Version Information +3 +CAIRO Library + + +Version Information +Compile-time and run-time version checks. + + + +Functions + + + + + +#defineCAIRO_VERSION_ENCODE() +#defineCAIRO_VERSION_STRINGIZE() +int +cairo_version () +const char * +cairo_version_string () + + + + + + +Types and Values + + + + + +#defineCAIRO_VERSION +#defineCAIRO_VERSION_MAJOR +#defineCAIRO_VERSION_MINOR +#defineCAIRO_VERSION_MICRO +#defineCAIRO_VERSION_STRING + + + + + + + + +Description +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). + + _____ 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 + +Here are a few examples of versions that one might see. + +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) + + +Compatibility + +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. + + + +Examining the version + +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. + + +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 + + +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: + + +##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 ()); + + + + + + +Functions + +CAIRO_VERSION_ENCODE() +CAIRO_VERSION_ENCODE +#define CAIRO_VERSION_ENCODE(major, minor, micro) +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. + +Parameters + + + + + + +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. +Since: 1.0 + +CAIRO_VERSION_STRINGIZE() +CAIRO_VERSION_STRINGIZE +#define CAIRO_VERSION_STRINGIZE(major, minor, micro) +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. + +Parameters + + + + + + +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 + +cairo_version () +cairo_version +int +cairo_version (void); +Returns the version of the cairo library encoded in a single +integer as per CAIRO_VERSION_ENCODE. The encoding ensures that +later versions compare greater than earlier versions. +A run-time comparison to check that cairo's version is greater than +or equal to version X.Y.Z could be performed as follows: + +if (cairo_version() >= CAIRO_VERSION_ENCODE(X,Y,Z)) {...} + +See also cairo_version_string() as well as the compile-time +equivalents CAIRO_VERSION and CAIRO_VERSION_STRING. + +Returns + the encoded version. +Since: 1.0 + +cairo_version_string () +cairo_version_string +const char * +cairo_version_string (void); +Returns the version of the cairo library as a human-readable string +of the form "X.Y.Z". +See also cairo_version() as well as the compile-time equivalents +CAIRO_VERSION_STRING and CAIRO_VERSION. + +Returns + a string containing the version. +Since: 1.0 + + + +Types and Values + +CAIRO_VERSION +CAIRO_VERSION +#define CAIRO_VERSION +The version of cairo available at compile-time, encoded using +CAIRO_VERSION_ENCODE(). +Since: 1.0 + +CAIRO_VERSION_MAJOR +CAIRO_VERSION_MAJOR +#define CAIRO_VERSION_MAJOR USE_cairo_version_OR_cairo_version_string_INSTEAD + +The major component of the version of cairo available at compile-time. +Since: 1.0 + +CAIRO_VERSION_MINOR +CAIRO_VERSION_MINOR +#define CAIRO_VERSION_MINOR USE_cairo_version_OR_cairo_version_string_INSTEAD + +The minor component of the version of cairo available at compile-time. +Since: 1.0 + +CAIRO_VERSION_MICRO +CAIRO_VERSION_MICRO +#define CAIRO_VERSION_MICRO USE_cairo_version_OR_cairo_version_string_INSTEAD + +The micro component of the version of cairo available at compile-time. +Since: 1.0 + +CAIRO_VERSION_STRING +CAIRO_VERSION_STRING +#define CAIRO_VERSION_STRING +A human-readable string literal containing the version of cairo available +at compile-time, in the form of "X.Y.Z". +Since: 1.8 + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml new file mode 100644 index 0000000..2a2d0e1 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-win32-fonts.xml @@ -0,0 +1,323 @@ + + +]> + + +Win32 Fonts +3 +CAIRO Library + + +Win32 Fonts +Font support for Microsoft Windows + + + +Functions + + + + + +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw () +cairo_font_face_t * +cairo_win32_font_face_create_for_hfont () +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw_hfont () +cairo_status_t +cairo_win32_scaled_font_select_font () +void +cairo_win32_scaled_font_done_font () +double +cairo_win32_scaled_font_get_metrics_factor () +void +cairo_win32_scaled_font_get_logical_to_device () +void +cairo_win32_scaled_font_get_device_to_logical () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_WIN32_FONT + + + + + + + + +Description +The Microsoft Windows font backend is primarily used to render text on +Microsoft Windows systems. + + + +Functions + +cairo_win32_font_face_create_for_logfontw () +cairo_win32_font_face_create_for_logfontw +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw + (LOGFONTW *logfont); +Creates a new font for the Win32 font backend based on a +LOGFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font(). + +Parameters + + + + + + +logfont +A LOGFONTW structure specifying the font to use. +The lfHeight, lfWidth, lfOrientation and lfEscapement +fields of this structure are ignored. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.0 + +cairo_win32_font_face_create_for_hfont () +cairo_win32_font_face_create_for_hfont +cairo_font_face_t * +cairo_win32_font_face_create_for_hfont + (HFONT font); +Creates a new font for the Win32 font backend based on a +HFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font(). + +Parameters + + + + + + +font +An HFONT structure specifying the font to use. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.2 + +cairo_win32_font_face_create_for_logfontw_hfont () +cairo_win32_font_face_create_for_logfontw_hfont +cairo_font_face_t * +cairo_win32_font_face_create_for_logfontw_hfont + (LOGFONTW *logfont, + HFONT font); +Creates a new font for the Win32 font backend based on a +LOGFONT. This font can then be used with +cairo_set_font_face() or cairo_scaled_font_create(). +The cairo_scaled_font_t +returned from cairo_scaled_font_create() is also for the Win32 backend +and can be used with functions such as cairo_win32_scaled_font_select_font(). + +Parameters + + + + + + +logfont +A LOGFONTW structure specifying the font to use. +If font +is NULL then the lfHeight, lfWidth, lfOrientation and lfEscapement +fields of this structure are ignored. Otherwise lfWidth, lfOrientation and +lfEscapement must be zero. + +font +An HFONT that can be used when the font matrix is a scale by +-lfHeight and the CTM is identity. + + + +Returns + a newly created cairo_font_face_t. Free with +cairo_font_face_destroy() when you are done using it. +Since: 1.6 + +cairo_win32_scaled_font_select_font () +cairo_win32_scaled_font_select_font +cairo_status_t +cairo_win32_scaled_font_select_font (cairo_scaled_font_t *scaled_font, + HDC hdc); +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 +cairo_win32_scaled_font_done_font() to release any resources allocated +by this function. +See cairo_win32_scaled_font_get_metrics_factor() for converting logical +coordinates from the device context to font space. +Normally, calls to SaveDC() and RestoreDC() would be made around +the use of this function to preserve the original graphics state. + +Parameters + + + + + + +scaled_font +A cairo_scaled_font_t from the Win32 font backend. Such an +object can be created with cairo_win32_font_face_create_for_logfontw(). + +hdc +a device context + + + +Returns + CAIRO_STATUS_SUCCESS if the operation succeeded. +otherwise an error such as CAIRO_STATUS_NO_MEMORY and +the device context is unchanged. +Since: 1.0 + +cairo_win32_scaled_font_done_font () +cairo_win32_scaled_font_done_font +void +cairo_win32_scaled_font_done_font (cairo_scaled_font_t *scaled_font); +Releases any resources allocated by cairo_win32_scaled_font_select_font() + +Parameters + + + + + + +scaled_font +A scaled font from the Win32 font backend. + + +Since: 1.0 + +cairo_win32_scaled_font_get_metrics_factor () +cairo_win32_scaled_font_get_metrics_factor +double +cairo_win32_scaled_font_get_metrics_factor + (cairo_scaled_font_t *scaled_font); +Gets a scale factor between logical coordinates in the coordinate +space used by cairo_win32_scaled_font_select_font() (that is, the +coordinate system used by the Windows functions to return metrics) and +font space coordinates. + +Parameters + + + + + + +scaled_font +a scaled font from the Win32 font backend + + + +Returns + factor to multiply logical units by to get font space +coordinates. +Since: 1.0 + +cairo_win32_scaled_font_get_logical_to_device () +cairo_win32_scaled_font_get_logical_to_device +void +cairo_win32_scaled_font_get_logical_to_device + (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *logical_to_device); +Gets the transformation mapping the logical space used by scaled_font + +to device space. + +Parameters + + + + + + +scaled_font +a scaled font from the Win32 font backend + +logical_to_device +matrix to return + + +Since: 1.4 + +cairo_win32_scaled_font_get_device_to_logical () +cairo_win32_scaled_font_get_device_to_logical +void +cairo_win32_scaled_font_get_device_to_logical + (cairo_scaled_font_t *scaled_font, + cairo_matrix_t *device_to_logical); +Gets the transformation mapping device space to the logical space +used by scaled_font +. + +Parameters + + + + + + +scaled_font +a scaled font from the Win32 font backend + +device_to_logical +matrix to return + + +Since: 1.4 + + + +Types and Values + +CAIRO_HAS_WIN32_FONT +CAIRO_HAS_WIN32_FONT +#define CAIRO_HAS_WIN32_FONT 1 + +Defined if the Microsoft Windows font backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.8 + + + +See Also +cairo_font_face_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml new file mode 100644 index 0000000..52b7a71 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-win32.xml @@ -0,0 +1,306 @@ + + +]> + + +Win32 Surfaces +3 +CAIRO Library + + +Win32 Surfaces +Microsoft Windows surface support + + + +Functions + + + + + +cairo_surface_t * +cairo_win32_surface_create () +cairo_surface_t * +cairo_win32_surface_create_with_dib () +cairo_surface_t * +cairo_win32_surface_create_with_ddb () +cairo_surface_t * +cairo_win32_surface_create_with_format () +cairo_surface_t * +cairo_win32_printing_surface_create () +HDC +cairo_win32_surface_get_dc () +cairo_surface_t * +cairo_win32_surface_get_image () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_WIN32_SURFACE + + + + + + + + +Description +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. + + + +Functions + +cairo_win32_surface_create () +cairo_win32_surface_create +cairo_surface_t * +cairo_win32_surface_create (HDC hdc); +Creates a cairo surface that targets the given DC. The DC will be +queried for its initial clip extents, and this will be used as the +size of the cairo surface. The resulting surface will always be of +format CAIRO_FORMAT_RGB24; should you need another surface format, +you will need to create one through +cairo_win32_surface_create_with_format() or +cairo_win32_surface_create_with_dib(). + +Parameters + + + + + + +hdc +the DC to create a surface for + + + +Returns + the newly created surface, NULL on failure +Since: 1.0 + +cairo_win32_surface_create_with_dib () +cairo_win32_surface_create_with_dib +cairo_surface_t * +cairo_win32_surface_create_with_dib (cairo_format_t format, + int width, + int height); +Creates a device-independent-bitmap surface not associated with +any particular existing surface or device context. The created +bitmap will be uninitialized. + +Parameters + + + + + + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created surface +Since: 1.2 + +cairo_win32_surface_create_with_ddb () +cairo_win32_surface_create_with_ddb +cairo_surface_t * +cairo_win32_surface_create_with_ddb (HDC hdc, + cairo_format_t format, + int width, + int height); +Creates a device-dependent-bitmap surface not associated with +any particular existing surface or device context. The created +bitmap will be uninitialized. + +Parameters + + + + + + +hdc +a DC compatible with the surface to create + +format +format of pixels in the surface to create + +width +width of the surface, in pixels + +height +height of the surface, in pixels + + + +Returns + the newly created surface +Since: 1.4 + +cairo_win32_surface_create_with_format () +cairo_win32_surface_create_with_format +cairo_surface_t * +cairo_win32_surface_create_with_format + (HDC hdc, + cairo_format_t format); +Creates a cairo surface that targets the given DC. The DC will be +queried for its initial clip extents, and this will be used as the +size of the cairo surface. +Supported formats are: +CAIRO_FORMAT_ARGB32 +CAIRO_FORMAT_RGB24 +Note: format + only tells cairo how to draw on the surface, not what +the format of the surface is. Namely, cairo does not (and cannot) +check that hdc + actually supports alpha-transparency. + +Parameters + + + + + + +hdc +the DC to create a surface for + +format +format of pixels in the surface to create + + + +Returns + the newly created surface, NULL on failure +Since: 1.14 + +cairo_win32_printing_surface_create () +cairo_win32_printing_surface_create +cairo_surface_t * +cairo_win32_printing_surface_create (HDC hdc); +Creates a cairo surface that targets the given DC. The DC will be +queried for its initial clip extents, and this will be used as the +size of the cairo surface. The DC should be a printing DC; +antialiasing will be ignored, and GDI will be used as much as +possible to draw to the surface. +The returned surface will be wrapped using the paginated surface to +provide correct complex rendering behaviour; cairo_surface_show_page() and +associated methods must be used for correct output. + +Parameters + + + + + + +hdc +the DC to create a surface for + + + +Returns + the newly created surface +Since: 1.6 + +cairo_win32_surface_get_dc () +cairo_win32_surface_get_dc +HDC +cairo_win32_surface_get_dc (cairo_surface_t *surface); +Returns the HDC associated with this surface, or NULL if none. +Also returns NULL if the surface is not a win32 surface. +A call to cairo_surface_flush() is required before using the HDC to +ensure that all pending drawing operations are finished and to +restore any temporary modification cairo has made to its state. A +call to cairo_surface_mark_dirty() is required after the state or +the content of the HDC has been modified. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + HDC or NULL if no HDC available. +Since: 1.2 + +cairo_win32_surface_get_image () +cairo_win32_surface_get_image +cairo_surface_t * +cairo_win32_surface_get_image (cairo_surface_t *surface); +Returns a cairo_surface_t image surface that refers to the same bits +as the DIB of the Win32 surface. If the passed-in win32 surface +is not a DIB surface, NULL is returned. + +Parameters + + + + + + +surface +a cairo_surface_t + + + +Returns + a cairo_surface_t (owned by the win32 cairo_surface_t), +or NULL if the win32 surface is not a DIB. +Since: 1.4 + + + +Types and Values + +CAIRO_HAS_WIN32_SURFACE +CAIRO_HAS_WIN32_SURFACE +#define CAIRO_HAS_WIN32_SURFACE 1 + +Defined if the Microsoft Windows surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml new file mode 100644 index 0000000..5c23f62 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-xcb.xml @@ -0,0 +1,474 @@ + + +]> + + +XCB Surfaces +3 +CAIRO Library + + +XCB Surfaces +X Window System rendering using the XCB library + + + +Functions + + + + + +cairo_surface_t * +cairo_xcb_surface_create () +cairo_surface_t * +cairo_xcb_surface_create_for_bitmap () +cairo_surface_t * +cairo_xcb_surface_create_with_xrender_format () +void +cairo_xcb_surface_set_size () +void +cairo_xcb_surface_set_drawable () +xcb_connection_t * +cairo_xcb_device_get_connection () +void +cairo_xcb_device_debug_cap_xrender_version () +void +cairo_xcb_device_debug_cap_xshm_version () +int +cairo_xcb_device_debug_get_precision () +void +cairo_xcb_device_debug_set_precision () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_XCB_SURFACE +#defineCAIRO_HAS_XCB_SHM_FUNCTIONS + + + + + + + + +Description +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. + + + +Functions + +cairo_xcb_surface_create () +cairo_xcb_surface_create +cairo_surface_t * +cairo_xcb_surface_create (xcb_connection_t *connection, + xcb_drawable_t drawable, + xcb_visualtype_t *visual, + int width, + int height); +Creates an XCB surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided visual. +Note: If drawable + is a Window, then the function +cairo_xcb_surface_set_size() must be called whenever the size of the +window changes. +When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included. + +Parameters + + + + + + +connection +an XCB connection + +drawable +an XCB drawable + +visual +the visual to use for drawing to drawable +. The depth +of the visual must match the depth of the drawable. +Currently, only TrueColor visuals are fully supported. + +width +the current width of drawable + + +height +the current height of drawable + + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.12 + +cairo_xcb_surface_create_for_bitmap () +cairo_xcb_surface_create_for_bitmap +cairo_surface_t * +cairo_xcb_surface_create_for_bitmap (xcb_connection_t *connection, + xcb_screen_t *screen, + xcb_pixmap_t bitmap, + int width, + int height); +Creates an XCB surface that draws to the given bitmap. +This will be drawn to as a CAIRO_FORMAT_A1 object. + +Parameters + + + + + + +connection +an XCB connection + +screen +the XCB screen associated with bitmap + + +bitmap +an XCB drawable (a Pixmap with depth 1) + +width +the current width of bitmap + + +height +the current height of bitmap + + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.12 + +cairo_xcb_surface_create_with_xrender_format () +cairo_xcb_surface_create_with_xrender_format +cairo_surface_t * +cairo_xcb_surface_create_with_xrender_format + (xcb_connection_t *connection, + xcb_screen_t *screen, + xcb_drawable_t drawable, + xcb_render_pictforminfo_t *format, + int width, + int height); +Creates an XCB surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided picture format. +Note: If drawable + is a Window, then the function +cairo_xcb_surface_set_size() must be called whenever the size of the +window changes. +When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included. + +Parameters + + + + + + +connection +an XCB connection + +drawable +an XCB drawable + +screen +the XCB screen associated with drawable + + +format +the picture format to use for drawing to drawable +. The +depth of format +mush match the depth of the drawable. + +width +the current width of drawable + + +height +the current height of drawable + + + + +Returns + a pointer to the newly created surface. The caller +owns the surface and should call cairo_surface_destroy() when done +with it. +This function always returns a valid pointer, but it will return a +pointer to a "nil" surface if an error such as out of memory +occurs. You can use cairo_surface_status() to check for this. +Since: 1.12 + +cairo_xcb_surface_set_size () +cairo_xcb_surface_set_size +void +cairo_xcb_surface_set_size (cairo_surface_t *surface, + int width, + int height); +Informs cairo of the new size of the XCB drawable underlying the +surface. For a surface created for a window (rather than a pixmap), +this function must be called each time the size of the window +changes. (For a subwindow, you are normally resizing the window +yourself, but for a toplevel window, it is necessary to listen for +ConfigureNotify events.) +A pixmap can never change size, so it is never necessary to call +this function on a surface created for a pixmap. +If cairo_surface_flush() wasn't called, some pending operations +might be discarded. + +Parameters + + + + + + +surface +a cairo_surface_t for the XCB backend + +width +the new width of the surface + +height +the new height of the surface + + +Since: 1.12 + +cairo_xcb_surface_set_drawable () +cairo_xcb_surface_set_drawable +void +cairo_xcb_surface_set_drawable (cairo_surface_t *surface, + xcb_drawable_t drawable, + int width, + int height); +Informs cairo of the new drawable and size of the XCB drawable underlying the +surface. +If cairo_surface_flush() wasn't called, some pending operations +might be discarded. + +Parameters + + + + + + +surface +a cairo_surface_t for the XCB backend + +drawable +the new drawable of the surface + +width +the new width of the surface + +height +the new height of the surface + + +Since: 1.12 + +cairo_xcb_device_get_connection () +cairo_xcb_device_get_connection +xcb_connection_t * +cairo_xcb_device_get_connection (cairo_device_t *device); +Get the connection for the XCB device. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + + + +Returns + the xcb_connection_t for the connection +Since: 1.12 + +cairo_xcb_device_debug_cap_xrender_version () +cairo_xcb_device_debug_cap_xrender_version +void +cairo_xcb_device_debug_cap_xrender_version + (cairo_device_t *device, + int major_version, + int minor_version); +Restricts all future XCB surfaces for this devices to the specified version +of the RENDER extension. This function exists solely for debugging purpose. +It let's you find out how cairo would behave with an older version of +the RENDER extension. +Use the special values -1 and -1 for disabling the RENDER extension. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + +major_version +major version to restrict to + +minor_version +minor version to restrict to + + +Since: 1.12 + +cairo_xcb_device_debug_cap_xshm_version () +cairo_xcb_device_debug_cap_xshm_version +void +cairo_xcb_device_debug_cap_xshm_version + (cairo_device_t *device, + int major_version, + int minor_version); +Restricts all future XCB surfaces for this devices to the specified version +of the SHM extension. This function exists solely for debugging purpose. +It let's you find out how cairo would behave with an older version of +the SHM extension. +Use the special values -1 and -1 for disabling the SHM extension. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + +major_version +major version to restrict to + +minor_version +minor version to restrict to + + +Since: 1.12 + +cairo_xcb_device_debug_get_precision () +cairo_xcb_device_debug_get_precision +int +cairo_xcb_device_debug_get_precision (cairo_device_t *device); +Get the Xrender precision mode. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + + + +Returns + the render precision mode +Since: 1.12 + +cairo_xcb_device_debug_set_precision () +cairo_xcb_device_debug_set_precision +void +cairo_xcb_device_debug_set_precision (cairo_device_t *device, + int precision); +Render supports two modes of precision when rendering trapezoids. Set +the precision to the desired mode. + +Parameters + + + + + + +device +a cairo_device_t for the XCB backend + +precision +the precision to use + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_XCB_SURFACE +CAIRO_HAS_XCB_SURFACE +#define CAIRO_HAS_XCB_SURFACE 1 + +Defined if the xcb surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.12 + +CAIRO_HAS_XCB_SHM_FUNCTIONS +CAIRO_HAS_XCB_SHM_FUNCTIONS +#define CAIRO_HAS_XCB_SHM_FUNCTIONS 1 + + + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml new file mode 100644 index 0000000..2f7c6ce --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib-xrender.xml @@ -0,0 +1,162 @@ + + +]> + + +XLib-XRender Backend +3 +CAIRO Library + + +XLib-XRender Backend +X Window System rendering using XLib and the X Render extension + + + +Functions + + + + + +cairo_surface_t * +cairo_xlib_surface_create_with_xrender_format () +XRenderPictFormat * +cairo_xlib_surface_get_xrender_format () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_XLIB_XRENDER_SURFACE + + + + + + + + +Description +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. + + + +Functions + +cairo_xlib_surface_create_with_xrender_format () +cairo_xlib_surface_create_with_xrender_format +cairo_surface_t * +cairo_xlib_surface_create_with_xrender_format + (Display *dpy, + Drawable drawable, + Screen *screen, + XRenderPictFormat *format, + int width, + int height); +Creates an Xlib surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided picture format. +Note: If drawable + is a Window, then the function +cairo_xlib_surface_set_size() must be called whenever the size of the +window changes. + +Parameters + + + + + + +dpy +an X Display + +drawable +an X Drawable, (a Pixmap or a Window) + +screen +the X Screen associated with drawable + + +format +the picture format to use for drawing to drawable +. The depth +of format +must match the depth of the drawable. + +width +the current width of drawable +. + +height +the current height of drawable +. + + + +Returns + the newly created surface +Since: 1.0 + +cairo_xlib_surface_get_xrender_format () +cairo_xlib_surface_get_xrender_format +XRenderPictFormat * +cairo_xlib_surface_get_xrender_format (cairo_surface_t *surface); +Gets the X Render picture format that surface + uses for rendering with the +X Render extension. If the surface was created by +cairo_xlib_surface_create_with_xrender_format() originally, the return +value is the format passed to that constructor. + +Parameters + + + + + + +surface +an xlib surface + + + +Returns + the XRenderPictFormat* associated with surface +, +or NULL if the surface is not an xlib surface +or if the X Render extension is not available. +Since: 1.6 + + + +Types and Values + +CAIRO_HAS_XLIB_XRENDER_SURFACE +CAIRO_HAS_XLIB_XRENDER_SURFACE +#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1 + +Defined if the XLib/XRender surface functions are available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.6 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml new file mode 100644 index 0000000..77d0702 --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo-xlib.xml @@ -0,0 +1,507 @@ + + +]> + + +XLib Surfaces +3 +CAIRO Library + + +XLib Surfaces +X Window System rendering using XLib + + + +Functions + + + + + +cairo_surface_t * +cairo_xlib_surface_create () +cairo_surface_t * +cairo_xlib_surface_create_for_bitmap () +void +cairo_xlib_surface_set_size () +Display * +cairo_xlib_surface_get_display () +Screen * +cairo_xlib_surface_get_screen () +void +cairo_xlib_surface_set_drawable () +Drawable +cairo_xlib_surface_get_drawable () +Visual * +cairo_xlib_surface_get_visual () +int +cairo_xlib_surface_get_width () +int +cairo_xlib_surface_get_height () +int +cairo_xlib_surface_get_depth () +void +cairo_xlib_device_debug_cap_xrender_version () +int +cairo_xlib_device_debug_get_precision () +void +cairo_xlib_device_debug_set_precision () + + + + + + +Types and Values + + + + + +#defineCAIRO_HAS_XLIB_SURFACE + + + + + + + + +Description +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. + + + +Functions + +cairo_xlib_surface_create () +cairo_xlib_surface_create +cairo_surface_t * +cairo_xlib_surface_create (Display *dpy, + Drawable drawable, + Visual *visual, + int width, + int height); +Creates an Xlib surface that draws to the given drawable. +The way that colors are represented in the drawable is specified +by the provided visual. +Note: If drawable + is a Window, then the function +cairo_xlib_surface_set_size() must be called whenever the size of the +window changes. +When drawable + is a Window containing child windows then drawing to +the created surface will be clipped by those child windows. When +the created surface is used as a source, the contents of the +children will be included. + +Parameters + + + + + + +dpy +an X Display + +drawable +an X Drawable, (a Pixmap or a Window) + +visual +the visual to use for drawing to drawable +. The depth +of the visual must match the depth of the drawable. +Currently, only TrueColor visuals are fully supported. + +width +the current width of drawable +. + +height +the current height of drawable +. + + + +Returns + the newly created surface +Since: 1.0 + +cairo_xlib_surface_create_for_bitmap () +cairo_xlib_surface_create_for_bitmap +cairo_surface_t * +cairo_xlib_surface_create_for_bitmap (Display *dpy, + Pixmap bitmap, + Screen *screen, + int width, + int height); +Creates an Xlib surface that draws to the given bitmap. +This will be drawn to as a CAIRO_FORMAT_A1 object. + +Parameters + + + + + + +dpy +an X Display + +bitmap +an X Drawable, (a depth-1 Pixmap) + +screen +the X Screen associated with bitmap + + +width +the current width of bitmap +. + +height +the current height of bitmap +. + + + +Returns + the newly created surface +Since: 1.0 + +cairo_xlib_surface_set_size () +cairo_xlib_surface_set_size +void +cairo_xlib_surface_set_size (cairo_surface_t *surface, + int width, + int height); +Informs cairo of the new size of the X Drawable underlying the +surface. For a surface created for a Window (rather than a Pixmap), +this function must be called each time the size of the window +changes. (For a subwindow, you are normally resizing the window +yourself, but for a toplevel window, it is necessary to listen for +ConfigureNotify events.) +A Pixmap can never change size, so it is never necessary to call +this function on a surface created for a Pixmap. + +Parameters + + + + + + +surface +a cairo_surface_t for the XLib backend + +width +the new width of the surface + +height +the new height of the surface + + +Since: 1.0 + +cairo_xlib_surface_get_display () +cairo_xlib_surface_get_display +Display * +cairo_xlib_surface_get_display (cairo_surface_t *surface); +Get the X Display for the underlying X Drawable. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the display. +Since: 1.2 + +cairo_xlib_surface_get_screen () +cairo_xlib_surface_get_screen +Screen * +cairo_xlib_surface_get_screen (cairo_surface_t *surface); +Get the X Screen for the underlying X Drawable. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the screen. +Since: 1.2 + +cairo_xlib_surface_set_drawable () +cairo_xlib_surface_set_drawable +void +cairo_xlib_surface_set_drawable (cairo_surface_t *surface, + Drawable drawable, + int width, + int height); +Informs cairo of a new X Drawable underlying the +surface. The drawable must match the display, screen +and format of the existing drawable or the application +will get X protocol errors and will probably terminate. +No checks are done by this function to ensure this +compatibility. + +Parameters + + + + + + +surface +a cairo_surface_t for the XLib backend + +drawable +the new drawable for the surface + +width +the width of the new drawable + +height +the height of the new drawable + + +Since: 1.0 + +cairo_xlib_surface_get_drawable () +cairo_xlib_surface_get_drawable +Drawable +cairo_xlib_surface_get_drawable (cairo_surface_t *surface); +Get the underlying X Drawable used for the surface. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the drawable. +Since: 1.2 + +cairo_xlib_surface_get_visual () +cairo_xlib_surface_get_visual +Visual * +cairo_xlib_surface_get_visual (cairo_surface_t *surface); +Gets the X Visual associated with surface +, suitable for use with the +underlying X Drawable. If surface + was created by +cairo_xlib_surface_create(), the return value is the Visual passed to that +constructor. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the Visual or NULL if there is no appropriate Visual for +surface +. +Since: 1.2 + +cairo_xlib_surface_get_width () +cairo_xlib_surface_get_width +int +cairo_xlib_surface_get_width (cairo_surface_t *surface); +Get the width of the X Drawable underlying the surface in pixels. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the width of the surface in pixels. +Since: 1.2 + +cairo_xlib_surface_get_height () +cairo_xlib_surface_get_height +int +cairo_xlib_surface_get_height (cairo_surface_t *surface); +Get the height of the X Drawable underlying the surface in pixels. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the height of the surface in pixels. +Since: 1.2 + +cairo_xlib_surface_get_depth () +cairo_xlib_surface_get_depth +int +cairo_xlib_surface_get_depth (cairo_surface_t *surface); +Get the number of bits used to represent each pixel value. + +Parameters + + + + + + +surface +a cairo_xlib_surface_t + + + +Returns + the depth of the surface in bits. +Since: 1.2 + +cairo_xlib_device_debug_cap_xrender_version () +cairo_xlib_device_debug_cap_xrender_version +void +cairo_xlib_device_debug_cap_xrender_version + (cairo_device_t *device, + int major_version, + int minor_version); +Restricts all future Xlib surfaces for this devices to the specified version +of the RENDER extension. This function exists solely for debugging purpose. +It lets you find out how cairo would behave with an older version of +the RENDER extension. +Use the special values -1 and -1 for disabling the RENDER extension. + +Parameters + + + + + + +device +a cairo_device_t for the Xlib backend + +major_version +major version to restrict to + +minor_version +minor version to restrict to + + +Since: 1.12 + +cairo_xlib_device_debug_get_precision () +cairo_xlib_device_debug_get_precision +int +cairo_xlib_device_debug_get_precision (cairo_device_t *device); +Get the Xrender precision mode. + +Parameters + + + + + + +device +a cairo_device_t for the Xlib backend + + + +Returns + the render precision mode +Since: 1.12 + +cairo_xlib_device_debug_set_precision () +cairo_xlib_device_debug_set_precision +void +cairo_xlib_device_debug_set_precision (cairo_device_t *device, + int precision); +Render supports two modes of precision when rendering trapezoids. Set +the precision to the desired mode. + +Parameters + + + + + + +device +a cairo_device_t for the Xlib backend + +precision +the precision to use + + +Since: 1.12 + + + +Types and Values + +CAIRO_HAS_XLIB_SURFACE +CAIRO_HAS_XLIB_SURFACE +#define CAIRO_HAS_XLIB_SURFACE 1 + +Defined if the Xlib surface backend is available. +This macro can be used to conditionally compile backend-specific code. +Since: 1.0 + + + +See Also +cairo_surface_t + + + + diff --git a/libs/cairo-1.16.0/doc/public/xml/cairo.xml b/libs/cairo-1.16.0/doc/public/xml/cairo.xml new file mode 100644 index 0000000..c4b546f --- /dev/null +++ b/libs/cairo-1.16.0/doc/public/xml/cairo.xml @@ -0,0 +1,2538 @@ + + +]> + + +cairo_t +3 +CAIRO Library + + +cairo_t +The cairo drawing context + + + +Functions + + + + + +cairo_t * +cairo_create () +cairo_t * +cairo_reference () +void +cairo_destroy () +cairo_status_t +cairo_status () +void +cairo_save () +void +cairo_restore () +cairo_surface_t * +cairo_get_target () +void +cairo_push_group () +void +cairo_push_group_with_content () +cairo_pattern_t * +cairo_pop_group () +void +cairo_pop_group_to_source () +cairo_surface_t * +cairo_get_group_target () +void +cairo_set_source_rgb () +void +cairo_set_source_rgba () +void +cairo_set_source () +void +cairo_set_source_surface () +cairo_pattern_t * +cairo_get_source () +void +cairo_set_antialias () +cairo_antialias_t +cairo_get_antialias () +void +cairo_set_dash () +int +cairo_get_dash_count () +void +cairo_get_dash () +void +cairo_set_fill_rule () +cairo_fill_rule_t +cairo_get_fill_rule () +void +cairo_set_line_cap () +cairo_line_cap_t +cairo_get_line_cap () +void +cairo_set_line_join () +cairo_line_join_t +cairo_get_line_join () +void +cairo_set_line_width () +double +cairo_get_line_width () +void +cairo_set_miter_limit () +double +cairo_get_miter_limit () +void +cairo_set_operator () +cairo_operator_t +cairo_get_operator () +void +cairo_set_tolerance () +double +cairo_get_tolerance () +void +cairo_clip () +void +cairo_clip_preserve () +void +cairo_clip_extents () +cairo_bool_t +cairo_in_clip () +void +cairo_reset_clip () +void +cairo_rectangle_list_destroy () +cairo_rectangle_list_t * +cairo_copy_clip_rectangle_list () +void +cairo_fill () +void +cairo_fill_preserve () +void +cairo_fill_extents () +cairo_bool_t +cairo_in_fill () +void +cairo_mask () +void +cairo_mask_surface () +void +cairo_paint () +void +cairo_paint_with_alpha () +void +cairo_stroke () +void +cairo_stroke_preserve () +void +cairo_stroke_extents () +cairo_bool_t +cairo_in_stroke () +void +cairo_copy_page () +void +cairo_show_page () +unsigned int +cairo_get_reference_count () +cairo_status_t +cairo_set_user_data () +void * +cairo_get_user_data () + + + + + + +Types and Values + + + + + +typedefcairo_t +enumcairo_antialias_t +enumcairo_fill_rule_t +enumcairo_line_cap_t +enumcairo_line_join_t +enumcairo_operator_t +cairo_rectangle_t +cairo_rectangle_list_t + + + + + + + + +Description +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 losing the current state. +Use cairo_restore() to restore to the saved state. + + + +Functions + +cairo_create () +cairo_create +cairo_t * +cairo_create (cairo_surface_t *target); +Creates a new cairo_t with all graphics state parameters set to +default values and with target + as a target surface. The target +surface should be constructed with a backend-specific function such +as cairo_image_surface_create() (or any other +cairo_backend_surface_create() +variant). +This function references target +, so you can immediately +call cairo_surface_destroy() on it if you don't need to +maintain a separate reference to it. + +Parameters + + + + + + +target +target surface for the context + + + +Returns + 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. +This function never returns NULL. If memory cannot be +allocated, a special cairo_t object will be returned on +which cairo_status() returns CAIRO_STATUS_NO_MEMORY. If +you attempt to target a surface which does not support +writing (such as cairo_mime_surface_t) then a +CAIRO_STATUS_WRITE_ERROR will be raised. You can use this +object normally, but no drawing will be done. +Since: 1.0 + +cairo_reference () +cairo_reference +cairo_t * +cairo_reference (cairo_t *cr); +Increases the reference count on cr + by one. This prevents +cr + from being destroyed until a matching call to cairo_destroy() +is made. +Use cairo_get_reference_count() to get the number of references to +a cairo_t. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the referenced cairo_t. +Since: 1.0 + +cairo_destroy () +cairo_destroy +void +cairo_destroy (cairo_t *cr); +Decreases the reference count on cr + by one. If the result +is zero, then cr + and all associated resources are freed. +See cairo_reference(). + +Parameters + + + + + + +cr +a cairo_t + + +Since: 1.0 + +cairo_status () +cairo_status +cairo_status_t +cairo_status (cairo_t *cr); +Checks whether an error has previously occurred for this context. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current status of this context, see cairo_status_t +Since: 1.0 + +cairo_save () +cairo_save +void +cairo_save (cairo_t *cr); +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. + +Parameters + + + + + + +cr +a cairo_t + + +Since: 1.0 + +cairo_restore () +cairo_restore +void +cairo_restore (cairo_t *cr); +Restores cr + to the state saved by a preceding call to +cairo_save() and removes that state from the stack of +saved states. + +Parameters + + + + + + +cr +a cairo_t + + +Since: 1.0 + +cairo_get_target () +cairo_get_target +cairo_surface_t * +cairo_get_target (cairo_t *cr); +Gets the target surface for the cairo context as passed to +cairo_create(). +This function will always return a valid pointer, but the result +can be a "nil" surface if cr + is already in an error state, +(ie. cairo_status() != CAIRO_STATUS_SUCCESS). +A nil surface is indicated by cairo_surface_status() +!= CAIRO_STATUS_SUCCESS. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the target surface. This object is owned by cairo. To +keep a reference to it, you must call cairo_surface_reference(). +Since: 1.0 + +cairo_push_group () +cairo_push_group +void +cairo_push_group (cairo_t *cr); +Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to cairo_pop_group() or cairo_pop_group_to_source(). These calls +provide the result of any drawing to the group as a pattern, +(either as an explicit object, or set as the source pattern). +This group functionality can be convenient for performing +intermediate compositing. One common use of a group is to render +objects as opaque within the group, (so that they occlude each +other), and then blend the result with translucence onto the +destination. +Groups can be nested arbitrarily deep by making balanced calls to +cairo_push_group()/cairo_pop_group(). Each call pushes/pops the new +target group onto/from a stack. +The cairo_push_group() function calls cairo_save() so that any +changes to the graphics state will not be visible outside the +group, (the pop_group functions call cairo_restore()). +By default the intermediate group will have a content type of +CAIRO_CONTENT_COLOR_ALPHA. Other content types can be chosen for +the group by using cairo_push_group_with_content() instead. +As an example, here is how one might fill and stroke a path with +translucence, but without any portion of the fill being visible +under the stroke: + +cairo_push_group (cr); +cairo_set_source (cr, fill_pattern); +cairo_fill_preserve (cr); +cairo_set_source (cr, stroke_pattern); +cairo_stroke (cr); +cairo_pop_group_to_source (cr); +cairo_paint_with_alpha (cr, alpha); + + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.2 + +cairo_push_group_with_content () +cairo_push_group_with_content +void +cairo_push_group_with_content (cairo_t *cr, + cairo_content_t content); +Temporarily redirects drawing to an intermediate surface known as a +group. The redirection lasts until the group is completed by a call +to cairo_pop_group() or cairo_pop_group_to_source(). These calls +provide the result of any drawing to the group as a pattern, +(either as an explicit object, or set as the source pattern). +The group will have a content type of content +. The ability to +control this content type is the only distinction between this +function and cairo_push_group() which you should see for a more +detailed description of group rendering. + +Parameters + + + + + + +cr +a cairo context + +content +a cairo_content_t indicating the type of group that +will be created + + +Since: 1.2 + +cairo_pop_group () +cairo_pop_group +cairo_pattern_t * +cairo_pop_group (cairo_t *cr); +Terminates the redirection begun by a call to cairo_push_group() or +cairo_push_group_with_content() and returns a new pattern +containing the results of all drawing operations performed to the +group. +The cairo_pop_group() function calls cairo_restore(), (balancing a +call to cairo_save() by the push_group function), so that any +changes to the graphics state will not be visible outside the +group. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + a newly created (surface) pattern containing the +results of all drawing operations performed to the group. The +caller owns the returned object and should call +cairo_pattern_destroy() when finished with it. +Since: 1.2 + +cairo_pop_group_to_source () +cairo_pop_group_to_source +void +cairo_pop_group_to_source (cairo_t *cr); +Terminates the redirection begun by a call to cairo_push_group() or +cairo_push_group_with_content() and installs the resulting pattern +as the source pattern in the given cairo context. +The behavior of this function is equivalent to the sequence of +operations: + +cairo_pattern_t *group = cairo_pop_group (cr); +cairo_set_source (cr, group); +cairo_pattern_destroy (group); + +but is more convenient as their is no need for a variable to store +the short-lived pointer to the pattern. +The cairo_pop_group() function calls cairo_restore(), (balancing a +call to cairo_save() by the push_group function), so that any +changes to the graphics state will not be visible outside the +group. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.2 + +cairo_get_group_target () +cairo_get_group_target +cairo_surface_t * +cairo_get_group_target (cairo_t *cr); +Gets the current destination surface for the context. This is either +the original target surface as passed to cairo_create() or the target +surface for the current group as started by the most recent call to +cairo_push_group() or cairo_push_group_with_content(). +This function will always return a valid pointer, but the result +can be a "nil" surface if cr + is already in an error state, +(ie. cairo_status() != CAIRO_STATUS_SUCCESS). +A nil surface is indicated by cairo_surface_status() +!= CAIRO_STATUS_SUCCESS. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the target surface. This object is owned by cairo. To +keep a reference to it, you must call cairo_surface_reference(). +Since: 1.2 + +cairo_set_source_rgb () +cairo_set_source_rgb +void +cairo_set_source_rgb (cairo_t *cr, + double red, + double green, + double blue); +Sets the source pattern within cr + to an opaque color. This opaque +color will then be used for any subsequent drawing operation until +a new source pattern is set. +The color components are floating point numbers in the range 0 to + + +If the values passed in are outside that range, they will be +clamped. + + +The default source pattern is opaque black, (that is, it is +equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, 0.0)). + +Parameters + + + + + + +cr +a cairo context + +red +red component of color + +green +green component of color + +blue +blue component of color + + +Since: 1.0 + +cairo_set_source_rgba () +cairo_set_source_rgba +void +cairo_set_source_rgba (cairo_t *cr, + double red, + double green, + double blue, + double alpha); +Sets the source pattern within cr + to a translucent color. This +color will then be used for any subsequent drawing operation until +a new source pattern is set. +The color and alpha components are floating point numbers in the +range 0 to 1. If the values passed in are outside that range, they +will be clamped. +The default source pattern is opaque black, (that is, it is +equivalent to cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 1.0)). + +Parameters + + + + + + +cr +a cairo context + +red +red component of color + +green +green component of color + +blue +blue component of color + +alpha +alpha component of color + + +Since: 1.0 + +cairo_set_source () +cairo_set_source +void +cairo_set_source (cairo_t *cr, + cairo_pattern_t *source); +Sets the source pattern within cr + to source +. This pattern +will then be used for any subsequent drawing operation until a new +source pattern is set. +Note: The pattern's transformation matrix will be locked to the +user space in effect at the time of cairo_set_source(). This means +that further modifications of the current transformation matrix +will not affect the source pattern. See cairo_pattern_set_matrix(). +The default source pattern is a solid pattern that is opaque black, +(that is, it is equivalent to cairo_set_source_rgb(cr, 0.0, 0.0, +0.0)). + +Parameters + + + + + + +cr +a cairo context + +source +a cairo_pattern_t to be used as the source for +subsequent drawing operations. + + +Since: 1.0 + +cairo_set_source_surface () +cairo_set_source_surface +void +cairo_set_source_surface (cairo_t *cr, + cairo_surface_t *surface, + double x, + double y); +This is a convenience function for creating a pattern from surface + +and setting it as the source in cr + with cairo_set_source(). +The x + and y + parameters give the user-space coordinate at which +the surface origin should appear. (The surface origin is its +upper-left corner before any transformation has been applied.) The +x + and y + parameters are negated and then set as translation values +in the pattern matrix. +Other than the initial translation pattern matrix, as described +above, all other pattern attributes, (such as its extend mode), are +set to the default values as in cairo_pattern_create_for_surface(). +The resulting pattern can be queried with cairo_get_source() so +that these attributes can be modified if desired, (eg. to create a +repeating pattern with cairo_pattern_set_extend()). + +Parameters + + + + + + +cr +a cairo context + +surface +a surface to be used to set the source pattern + +x +User-space X coordinate for surface origin + +y +User-space Y coordinate for surface origin + + +Since: 1.0 + +cairo_get_source () +cairo_get_source +cairo_pattern_t * +cairo_get_source (cairo_t *cr); +Gets the current source pattern for cr +. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current source pattern. This object is owned by +cairo. To keep a reference to it, you must call +cairo_pattern_reference(). +Since: 1.0 + +cairo_set_antialias () +cairo_set_antialias +void +cairo_set_antialias (cairo_t *cr, + cairo_antialias_t antialias); +Set the antialiasing mode of the rasterizer used for drawing shapes. +This value is a hint, and a particular backend may or may not support +a particular value. At the current time, no backend supports +CAIRO_ANTIALIAS_SUBPIXEL when drawing shapes. +Note that this option does not affect text rendering, instead see +cairo_font_options_set_antialias(). + +Parameters + + + + + + +cr +a cairo_t + +antialias +the new antialiasing mode + + +Since: 1.0 + +cairo_get_antialias () +cairo_get_antialias +cairo_antialias_t +cairo_get_antialias (cairo_t *cr); +Gets the current shape antialiasing mode, as set by +cairo_set_antialias(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current shape antialiasing mode. +Since: 1.0 + +cairo_set_dash () +cairo_set_dash +void +cairo_set_dash (cairo_t *cr, + const double *dashes, + int num_dashes, + double offset); +Sets the dash pattern to be used by cairo_stroke(). A dash pattern +is specified by dashes +, an array of positive values. Each value +provides the length of alternate "on" and "off" portions of the +stroke. The offset + specifies an offset into the pattern at which +the stroke begins. +Each "on" segment will have caps applied as if the segment were a +separate sub-path. In particular, it is valid to use an "on" length +of 0.0 with CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE in order +to distributed dots or squares along a path. +Note: The length values are in user-space units as evaluated at the +time of stroking. This is not necessarily the same as the user +space at the time of cairo_set_dash(). +If num_dashes + is 0 dashing is disabled. +If num_dashes + is 1 a symmetric pattern is assumed with alternating +on and off portions of the size specified by the single value in +dashes +. +If any value in dashes + is negative, or if all values are 0, then +cr + will be put into an error state with a status of +CAIRO_STATUS_INVALID_DASH. + +Parameters + + + + + + +cr +a cairo context + +dashes +an array specifying alternate lengths of on and off stroke portions + +num_dashes +the length of the dashes array + +offset +an offset into the dash pattern at which the stroke should start + + +Since: 1.0 + +cairo_get_dash_count () +cairo_get_dash_count +int +cairo_get_dash_count (cairo_t *cr); +This function returns the length of the dash array in cr + (0 if dashing +is not currently in effect). +See also cairo_set_dash() and cairo_get_dash(). + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the length of the dash array, or 0 if no dash array set. +Since: 1.4 + +cairo_get_dash () +cairo_get_dash +void +cairo_get_dash (cairo_t *cr, + double *dashes, + double *offset); +Gets the current dash array. If not NULL, dashes + should be big +enough to hold at least the number of values returned by +cairo_get_dash_count(). + +Parameters + + + + + + +cr +a cairo_t + +dashes +return value for the dash array, or NULL + +offset +return value for the current dash offset, or NULL + + +Since: 1.4 + +cairo_set_fill_rule () +cairo_set_fill_rule +void +cairo_set_fill_rule (cairo_t *cr, + cairo_fill_rule_t fill_rule); +Set the current fill rule within the cairo context. The fill rule +is used to determine which regions are inside or outside a complex +(potentially self-intersecting) path. The current fill rule affects +both cairo_fill() and cairo_clip(). See cairo_fill_rule_t for details +on the semantics of each available fill rule. +The default fill rule is CAIRO_FILL_RULE_WINDING. + +Parameters + + + + + + +cr +a cairo_t + +fill_rule +a fill rule, specified as a cairo_fill_rule_t + + +Since: 1.0 + +cairo_get_fill_rule () +cairo_get_fill_rule +cairo_fill_rule_t +cairo_get_fill_rule (cairo_t *cr); +Gets the current fill rule, as set by cairo_set_fill_rule(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current fill rule. +Since: 1.0 + +cairo_set_line_cap () +cairo_set_line_cap +void +cairo_set_line_cap (cairo_t *cr, + cairo_line_cap_t line_cap); +Sets the current line cap style within the cairo context. See +cairo_line_cap_t for details about how the available line cap +styles are drawn. +As with the other stroke parameters, the current line cap style is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default line cap style is CAIRO_LINE_CAP_BUTT. + +Parameters + + + + + + +cr +a cairo context + +line_cap +a line cap style + + +Since: 1.0 + +cairo_get_line_cap () +cairo_get_line_cap +cairo_line_cap_t +cairo_get_line_cap (cairo_t *cr); +Gets the current line cap style, as set by cairo_set_line_cap(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current line cap style. +Since: 1.0 + +cairo_set_line_join () +cairo_set_line_join +void +cairo_set_line_join (cairo_t *cr, + cairo_line_join_t line_join); +Sets the current line join style within the cairo context. See +cairo_line_join_t for details about how the available line join +styles are drawn. +As with the other stroke parameters, the current line join style is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default line join style is CAIRO_LINE_JOIN_MITER. + +Parameters + + + + + + +cr +a cairo context + +line_join +a line join style + + +Since: 1.0 + +cairo_get_line_join () +cairo_get_line_join +cairo_line_join_t +cairo_get_line_join (cairo_t *cr); +Gets the current line join style, as set by cairo_set_line_join(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current line join style. +Since: 1.0 + +cairo_set_line_width () +cairo_set_line_width +void +cairo_set_line_width (cairo_t *cr, + double width); +Sets the current line width within the cairo context. The line +width value specifies the diameter of a pen that is circular in +user space, (though device-space pen may be an ellipse in general +due to scaling/shear/rotation of the CTM). +Note: When the description above refers to user space and CTM it +refers to the user space and CTM in effect at the time of the +stroking operation, not the user space and CTM in effect at the +time of the call to cairo_set_line_width(). The simplest usage +makes both of these spaces identical. That is, if there is no +change to the CTM between a call to cairo_set_line_width() and the +stroking operation, then one can just pass user-space values to +cairo_set_line_width() and ignore this note. +As with the other stroke parameters, the current line width is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default line width value is 2.0. + +Parameters + + + + + + +cr +a cairo_t + +width +a line width + + +Since: 1.0 + +cairo_get_line_width () +cairo_get_line_width +double +cairo_get_line_width (cairo_t *cr); +This function returns the current line width value exactly as set by +cairo_set_line_width(). Note that the value is unchanged even if +the CTM has changed between the calls to cairo_set_line_width() and +cairo_get_line_width(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current line width. +Since: 1.0 + +cairo_set_miter_limit () +cairo_set_miter_limit +void +cairo_set_miter_limit (cairo_t *cr, + double limit); +Sets the current miter limit within the cairo context. +If the current line join style is set to CAIRO_LINE_JOIN_MITER +(see cairo_set_line_join()), the miter limit is used to determine +whether the lines should be joined with a bevel instead of a miter. +Cairo divides the length of the miter by the line width. +If the result is greater than the miter limit, the style is +converted to a bevel. +As with the other stroke parameters, the current line miter limit is +examined by cairo_stroke(), cairo_stroke_extents(), and +cairo_stroke_to_path(), but does not have any effect during path +construction. +The default miter limit value is 10.0, which will convert joins +with interior angles less than 11 degrees to bevels instead of +miters. For reference, a miter limit of 2.0 makes the miter cutoff +at 60 degrees, and a miter limit of 1.414 makes the cutoff at 90 +degrees. +A miter limit for a desired angle can be computed as: miter limit = +1/sin(angle/2) + +Parameters + + + + + + +cr +a cairo context + +limit +miter limit to set + + +Since: 1.0 + +cairo_get_miter_limit () +cairo_get_miter_limit +double +cairo_get_miter_limit (cairo_t *cr); +Gets the current miter limit, as set by cairo_set_miter_limit(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current miter limit. +Since: 1.0 + +cairo_set_operator () +cairo_set_operator +void +cairo_set_operator (cairo_t *cr, + cairo_operator_t op); +Sets the compositing operator to be used for all drawing +operations. See cairo_operator_t for details on the semantics of +each available compositing operator. +The default operator is CAIRO_OPERATOR_OVER. + +Parameters + + + + + + +cr +a cairo_t + +op +a compositing operator, specified as a cairo_operator_t + + +Since: 1.0 + +cairo_get_operator () +cairo_get_operator +cairo_operator_t +cairo_get_operator (cairo_t *cr); +Gets the current compositing operator for a cairo context. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current compositing operator. +Since: 1.0 + +cairo_set_tolerance () +cairo_set_tolerance +void +cairo_set_tolerance (cairo_t *cr, + double tolerance); +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.) The accuracy of paths +within Cairo is limited by the precision of its internal arithmetic, and +the prescribed tolerance + is restricted to the smallest +representable internal value. + +Parameters + + + + + + +cr +a cairo_t + +tolerance +the tolerance, in device units (typically pixels) + + +Since: 1.0 + +cairo_get_tolerance () +cairo_get_tolerance +double +cairo_get_tolerance (cairo_t *cr); +Gets the current tolerance value, as set by cairo_set_tolerance(). + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current tolerance value. +Since: 1.0 + +cairo_clip () +cairo_clip +void +cairo_clip (cairo_t *cr); +Establishes a new clip region by intersecting the current clip +region with the current path as it would be filled by cairo_fill() +and according to the current fill rule (see cairo_set_fill_rule()). +After cairo_clip(), the current path will be cleared from the cairo +context. +The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region. +Calling cairo_clip() can only make the clip region smaller, never +larger. But the current clip is part of the graphics state, so a +temporary restriction of the clip region can be achieved by +calling cairo_clip() within a cairo_save()/cairo_restore() +pair. The only other means of increasing the size of the clip +region is cairo_reset_clip(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_clip_preserve () +cairo_clip_preserve +void +cairo_clip_preserve (cairo_t *cr); +Establishes a new clip region by intersecting the current clip +region with the current path as it would be filled by cairo_fill() +and according to the current fill rule (see cairo_set_fill_rule()). +Unlike cairo_clip(), cairo_clip_preserve() preserves the path within +the cairo context. +The current clip region affects all drawing operations by +effectively masking out any changes to the surface that are outside +the current clip region. +Calling cairo_clip_preserve() can only make the clip region smaller, never +larger. But the current clip is part of the graphics state, so a +temporary restriction of the clip region can be achieved by +calling cairo_clip_preserve() within a cairo_save()/cairo_restore() +pair. The only other means of increasing the size of the clip +region is cairo_reset_clip(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_clip_extents () +cairo_clip_extents +void +cairo_clip_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +Computes a bounding box in user coordinates covering the area inside the +current clip. + +Parameters + + + + + + +cr +a cairo context + +x1 +left of the resulting extents + +y1 +top of the resulting extents + +x2 +right of the resulting extents + +y2 +bottom of the resulting extents + + +Since: 1.4 + +cairo_in_clip () +cairo_in_clip +cairo_bool_t +cairo_in_clip (cairo_t *cr, + double x, + double y); +Tests whether the given point is inside the area that would be +visible through the current clip, i.e. the area that would be filled by +a cairo_paint() operation. +See cairo_clip(), and cairo_clip_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x +X coordinate of the point to test + +y +Y coordinate of the point to test + + + +Returns + A non-zero value if the point is inside, or zero if +outside. +Since: 1.10 + +cairo_reset_clip () +cairo_reset_clip +void +cairo_reset_clip (cairo_t *cr); +Reset the current clip region to its original, unrestricted +state. That is, set the clip region to an infinitely large shape +containing the target surface. Equivalently, if infinity is too +hard to grasp, one can imagine the clip region being reset to the +exact bounds of the target surface. +Note that code meant to be reusable should not call +cairo_reset_clip() as it will cause results unexpected by +higher-level code which calls cairo_clip(). Consider using +cairo_save() and cairo_restore() around cairo_clip() as a more +robust means of temporarily restricting the clip region. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_rectangle_list_destroy () +cairo_rectangle_list_destroy +void +cairo_rectangle_list_destroy (cairo_rectangle_list_t *rectangle_list); +Unconditionally frees rectangle_list + and all associated +references. After this call, the rectangle_list + pointer must not +be dereferenced. + +Parameters + + + + + + +rectangle_list +a rectangle list, as obtained from cairo_copy_clip_rectangle_list() + + +Since: 1.4 + +cairo_copy_clip_rectangle_list () +cairo_copy_clip_rectangle_list +cairo_rectangle_list_t * +cairo_copy_clip_rectangle_list (cairo_t *cr); +Gets the current clip region as a list of rectangles in user coordinates. +Never returns NULL. +The status in the list may be CAIRO_STATUS_CLIP_NOT_REPRESENTABLE to +indicate that the clip region cannot be represented as a list of +user-space rectangles. The status may have other values to indicate +other errors. + +Parameters + + + + + + +cr +a cairo context + + + +Returns + the current clip region as a list of rectangles in user coordinates, +which should be destroyed using cairo_rectangle_list_destroy(). +Since: 1.4 + +cairo_fill () +cairo_fill +void +cairo_fill (cairo_t *cr); +A drawing operator that fills the current path according to the +current fill rule, (each sub-path is implicitly closed before being +filled). After cairo_fill(), the current path will be cleared from +the cairo context. See cairo_set_fill_rule() and +cairo_fill_preserve(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_fill_preserve () +cairo_fill_preserve +void +cairo_fill_preserve (cairo_t *cr); +A drawing operator that fills the current path according to the +current fill rule, (each sub-path is implicitly closed before being +filled). Unlike cairo_fill(), cairo_fill_preserve() preserves the +path within the cairo context. +See cairo_set_fill_rule() and cairo_fill(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_fill_extents () +cairo_fill_extents +void +cairo_fill_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +Computes a bounding box in user coordinates covering the area that +would be affected, (the "inked" area), by a cairo_fill() operation +given the current path and fill parameters. If the current path is +empty, returns an empty rectangle ((0,0), (0,0)). Surface +dimensions and clipping are not taken into account. +Contrast with cairo_path_extents(), which is similar, but returns +non-zero extents for some paths with no inked area, (such as a +simple line segment). +Note that cairo_fill_extents() must necessarily do more work to +compute the precise inked areas in light of the fill rule, so +cairo_path_extents() may be more desirable for sake of performance +if the non-inked path extents are desired. +See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x1 +left of the resulting extents + +y1 +top of the resulting extents + +x2 +right of the resulting extents + +y2 +bottom of the resulting extents + + +Since: 1.0 + +cairo_in_fill () +cairo_in_fill +cairo_bool_t +cairo_in_fill (cairo_t *cr, + double x, + double y); +Tests whether the given point is inside the area that would be +affected by a cairo_fill() operation given the current path and +filling parameters. Surface dimensions and clipping are not taken +into account. +See cairo_fill(), cairo_set_fill_rule() and cairo_fill_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x +X coordinate of the point to test + +y +Y coordinate of the point to test + + + +Returns + A non-zero value if the point is inside, or zero if +outside. +Since: 1.0 + +cairo_mask () +cairo_mask +void +cairo_mask (cairo_t *cr, + cairo_pattern_t *pattern); +A drawing operator that paints the current source +using the alpha channel of pattern + as a mask. (Opaque +areas of pattern + are painted with the source, transparent +areas are not painted.) + +Parameters + + + + + + +cr +a cairo context + +pattern +a cairo_pattern_t + + +Since: 1.0 + +cairo_mask_surface () +cairo_mask_surface +void +cairo_mask_surface (cairo_t *cr, + cairo_surface_t *surface, + double surface_x, + double surface_y); +A drawing operator that paints the current source +using the alpha channel of surface + as a mask. (Opaque +areas of surface + are painted with the source, transparent +areas are not painted.) + +Parameters + + + + + + +cr +a cairo context + +surface +a cairo_surface_t + +surface_x +X coordinate at which to place the origin of surface + + +surface_y +Y coordinate at which to place the origin of surface + + + +Since: 1.0 + +cairo_paint () +cairo_paint +void +cairo_paint (cairo_t *cr); +A drawing operator that paints the current source everywhere within +the current clip region. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_paint_with_alpha () +cairo_paint_with_alpha +void +cairo_paint_with_alpha (cairo_t *cr, + double alpha); +A drawing operator that paints the current source everywhere within +the current clip region using a mask of constant alpha value +alpha +. The effect is similar to cairo_paint(), but the drawing +is faded out using the alpha value. + +Parameters + + + + + + +cr +a cairo context + +alpha +alpha value, between 0 (transparent) and 1 (opaque) + + +Since: 1.0 + +cairo_stroke () +cairo_stroke +void +cairo_stroke (cairo_t *cr); +A drawing operator that strokes the current path according to the +current line width, line join, line cap, and dash settings. After +cairo_stroke(), the current path will be cleared from the cairo +context. See cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). +Note: Degenerate segments and sub-paths are treated specially and +provide a useful result. These can result in two different +situations: + + +Zero-length "on" segments set in cairo_set_dash(). If the cap +style is CAIRO_LINE_CAP_ROUND or CAIRO_LINE_CAP_SQUARE then these +segments will be drawn as circular dots or squares respectively. In +the case of CAIRO_LINE_CAP_SQUARE, the orientation of the squares +is determined by the direction of the underlying path. + + +A sub-path created by cairo_move_to() followed by either a +cairo_close_path() or one or more calls to cairo_line_to() to the +same coordinate as the cairo_move_to(). If the cap style is +CAIRO_LINE_CAP_ROUND then these sub-paths will be drawn as circular +dots. Note that in the case of CAIRO_LINE_CAP_SQUARE a degenerate +sub-path will not be drawn at all, (since the correct orientation +is indeterminate). + + +In no case will a cap style of CAIRO_LINE_CAP_BUTT cause anything +to be drawn in the case of either degenerate segments or sub-paths. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_stroke_preserve () +cairo_stroke_preserve +void +cairo_stroke_preserve (cairo_t *cr); +A drawing operator that strokes the current path according to the +current line width, line join, line cap, and dash settings. Unlike +cairo_stroke(), cairo_stroke_preserve() preserves the path within the +cairo context. +See cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_stroke_extents () +cairo_stroke_extents +void +cairo_stroke_extents (cairo_t *cr, + double *x1, + double *y1, + double *x2, + double *y2); +Computes a bounding box in user coordinates covering the area that +would be affected, (the "inked" area), by a cairo_stroke() +operation given the current path and stroke parameters. +If the current path is empty, returns an empty rectangle ((0,0), (0,0)). +Surface dimensions and clipping are not taken into account. +Note that if the line width is set to exactly zero, then +cairo_stroke_extents() will return an empty rectangle. Contrast with +cairo_path_extents() which can be used to compute the non-empty +bounds as the line width approaches zero. +Note that cairo_stroke_extents() must necessarily do more work to +compute the precise inked areas in light of the stroke parameters, +so cairo_path_extents() may be more desirable for sake of +performance if non-inked path extents are desired. +See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x1 +left of the resulting extents + +y1 +top of the resulting extents + +x2 +right of the resulting extents + +y2 +bottom of the resulting extents + + +Since: 1.0 + +cairo_in_stroke () +cairo_in_stroke +cairo_bool_t +cairo_in_stroke (cairo_t *cr, + double x, + double y); +Tests whether the given point is inside the area that would be +affected by a cairo_stroke() operation given the current path and +stroking parameters. Surface dimensions and clipping are not taken +into account. +See cairo_stroke(), cairo_set_line_width(), cairo_set_line_join(), +cairo_set_line_cap(), cairo_set_dash(), and +cairo_stroke_preserve(). + +Parameters + + + + + + +cr +a cairo context + +x +X coordinate of the point to test + +y +Y coordinate of the point to test + + + +Returns + A non-zero value if the point is inside, or zero if +outside. +Since: 1.0 + +cairo_copy_page () +cairo_copy_page +void +cairo_copy_page (cairo_t *cr); +Emits the current page for backends that support multiple pages, but +doesn't clear it, so, the contents of the current page will be retained +for the next page too. Use cairo_show_page() if you want to get an +empty page after the emission. +This is a convenience function that simply calls +cairo_surface_copy_page() on cr +'s target. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_show_page () +cairo_show_page +void +cairo_show_page (cairo_t *cr); +Emits and clears the current page for backends that support multiple +pages. Use cairo_copy_page() if you don't want to clear the page. +This is a convenience function that simply calls +cairo_surface_show_page() on cr +'s target. + +Parameters + + + + + + +cr +a cairo context + + +Since: 1.0 + +cairo_get_reference_count () +cairo_get_reference_count +unsigned int +cairo_get_reference_count (cairo_t *cr); +Returns the current reference count of cr +. + +Parameters + + + + + + +cr +a cairo_t + + + +Returns + the current reference count of cr +. If the +object is a nil object, 0 will be returned. +Since: 1.4 + +cairo_set_user_data () +cairo_set_user_data +cairo_status_t +cairo_set_user_data (cairo_t *cr, + const cairo_user_data_key_t *key, + void *user_data, + cairo_destroy_func_t destroy); +Attach user data to cr +. To remove user data from a surface, +call this function with the key that was used to set it and NULL +for data +. + +Parameters + + + + + + +cr +a cairo_t + +key +the address of a cairo_user_data_key_t to attach the user data to + +user_data +the user data to attach to the cairo_t + +destroy +a cairo_destroy_func_t which will be called when the +cairo_t is destroyed or when new user data is attached using the +same key. + + + +Returns + CAIRO_STATUS_SUCCESS or CAIRO_STATUS_NO_MEMORY if a +slot could not be allocated for the user data. +Since: 1.4 + +cairo_get_user_data () +cairo_get_user_data +void * +cairo_get_user_data (cairo_t *cr, + const cairo_user_data_key_t *key); +Return user data previously attached to cr + using the specified +key. If no user data has been attached with the given key this +function returns NULL. + +Parameters + + + + + + +cr +a cairo_t + +key +the address of the cairo_user_data_key_t the user data was +attached to + + + +Returns + the user data previously attached or NULL. +Since: 1.4 + + + +Types and Values + +cairo_t +cairo_t +typedef struct _cairo cairo_t; + +A cairo_t contains the current state of the rendering device, +including coordinates of yet to be drawn shapes. +Cairo contexts, as cairo_t objects are named, are central to +cairo and all drawing with cairo is always done to a cairo_t +object. +Memory management of cairo_t is done with +cairo_reference() and cairo_destroy(). +Since: 1.0 + +enum cairo_antialias_t +cairo_antialias_t +Specifies the type of antialiasing to do when rendering text or shapes. +As it is not necessarily clear from the above what advantages a particular +antialias method provides, since 1.12, there is also a set of hints: +CAIRO_ANTIALIAS_FAST +: Allow the backend to degrade raster quality for speed +CAIRO_ANTIALIAS_GOOD +: A balance between speed and quality +CAIRO_ANTIALIAS_BEST +: A high-fidelity, but potentially slow, raster mode +These make no guarantee on how the backend will perform its rasterisation +(if it even rasterises!), nor that they have any differing effect other +than to enable some form of antialiasing. In the case of glyph rendering, +CAIRO_ANTIALIAS_FAST + and CAIRO_ANTIALIAS_GOOD + will be mapped to +CAIRO_ANTIALIAS_GRAY +, with CAIRO_ANTALIAS_BEST + being equivalent to +CAIRO_ANTIALIAS_SUBPIXEL +. +The interpretation of CAIRO_ANTIALIAS_DEFAULT + is left entirely up to +the backend, typically this will be similar to CAIRO_ANTIALIAS_GOOD +. + +Members + + + + + + +CAIRO_ANTIALIAS_DEFAULT +Use the default antialiasing for + the subsystem and target device, since 1.0 + + + +CAIRO_ANTIALIAS_NONE +Use a bilevel alpha mask, since 1.0 + + + +CAIRO_ANTIALIAS_GRAY +Perform single-color antialiasing (using + shades of gray for black text on a white background, for example), since 1.0 + + + +CAIRO_ANTIALIAS_SUBPIXEL +Perform antialiasing by taking + advantage of the order of subpixel elements on devices + such as LCD panels, since 1.0 + + + +CAIRO_ANTIALIAS_FAST +Hint that the backend should perform some +antialiasing but prefer speed over quality, since 1.12 + + + +CAIRO_ANTIALIAS_GOOD +The backend should balance quality against +performance, since 1.12 + + + +CAIRO_ANTIALIAS_BEST +Hint that the backend should render at the highest +quality, sacrificing speed if necessary, since 1.12 + + + + +Since: 1.0 + +enum cairo_fill_rule_t +cairo_fill_rule_t +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.) +The default fill rule is CAIRO_FILL_RULE_WINDING. +New entries may be added in future versions. + +Members + + + + + + +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. (Since 1.0) + + + +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. (Since 1.0) + + + + +Since: 1.0 + +enum cairo_line_cap_t +cairo_line_cap_t +Specifies how to render the endpoints of the path when stroking. +The default line cap style is CAIRO_LINE_CAP_BUTT. + +Members + + + + + + +CAIRO_LINE_CAP_BUTT +start(stop) the line exactly at the start(end) point (Since 1.0) + + + +CAIRO_LINE_CAP_ROUND +use a round ending, the center of the circle is the end point (Since 1.0) + + + +CAIRO_LINE_CAP_SQUARE +use squared ending, the center of the square is the end point (Since 1.0) + + + + +Since: 1.0 + +enum cairo_line_join_t +cairo_line_join_t +Specifies how to render the junction of two lines when stroking. +The default line join style is CAIRO_LINE_JOIN_MITER. + +Members + + + + + + +CAIRO_LINE_JOIN_MITER +use a sharp (angled) corner, see +cairo_set_miter_limit() (Since 1.0) + + + +CAIRO_LINE_JOIN_ROUND +use a rounded join, the center of the circle is the +joint point (Since 1.0) + + + +CAIRO_LINE_JOIN_BEVEL +use a cut-off join, the join is cut off at half +the line width from the joint point (Since 1.0) + + + + +Since: 1.0 + +enum cairo_operator_t +cairo_operator_t +cairo_operator_t is used to set the compositing operator for all cairo +drawing operations. +The default operator is CAIRO_OPERATOR_OVER. +The operators marked as unbounded modify their +destination even outside of the mask layer (that is, their effect is not +bound by the mask layer). However, their effect can still be limited by +way of clipping. +To keep things simple, the operator descriptions here +document the behavior for when both source and destination are either fully +transparent or fully opaque. The actual implementation works for +translucent layers too. +For a more detailed explanation of the effects of each operator, including +the mathematical definitions, see +https://cairographics.org/operators/. + +Members + + + + + + +CAIRO_OPERATOR_CLEAR +clear destination layer (bounded) (Since 1.0) + + + +CAIRO_OPERATOR_SOURCE +replace destination layer (bounded) (Since 1.0) + + + +CAIRO_OPERATOR_OVER +draw source layer on top of destination layer +(bounded) (Since 1.0) + + + +CAIRO_OPERATOR_IN +draw source where there was destination content +(unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_OUT +draw source where there was no destination +content (unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_ATOP +draw source on top of destination content and +only there (Since 1.0) + + + +CAIRO_OPERATOR_DEST +ignore the source (Since 1.0) + + + +CAIRO_OPERATOR_DEST_OVER +draw destination on top of source (Since 1.0) + + + +CAIRO_OPERATOR_DEST_IN +leave destination only where there was +source content (unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_DEST_OUT +leave destination only where there was no +source content (Since 1.0) + + + +CAIRO_OPERATOR_DEST_ATOP +leave destination on top of source content +and only there (unbounded) (Since 1.0) + + + +CAIRO_OPERATOR_XOR +source and destination are shown where there is only +one of them (Since 1.0) + + + +CAIRO_OPERATOR_ADD +source and destination layers are accumulated (Since 1.0) + + + +CAIRO_OPERATOR_SATURATE +like over, but assuming source and dest are +disjoint geometries (Since 1.0) + + + +CAIRO_OPERATOR_MULTIPLY +source and destination layers are multiplied. +This causes the result to be at least as dark as the darker inputs. (Since 1.10) + + + +CAIRO_OPERATOR_SCREEN +source and destination are complemented and +multiplied. This causes the result to be at least as light as the lighter +inputs. (Since 1.10) + + + +CAIRO_OPERATOR_OVERLAY +multiplies or screens, depending on the +lightness of the destination color. (Since 1.10) + + + +CAIRO_OPERATOR_DARKEN +replaces the destination with the source if it +is darker, otherwise keeps the source. (Since 1.10) + + + +CAIRO_OPERATOR_LIGHTEN +replaces the destination with the source if it +is lighter, otherwise keeps the source. (Since 1.10) + + + +CAIRO_OPERATOR_COLOR_DODGE +brightens the destination color to reflect +the source color. (Since 1.10) + + + +CAIRO_OPERATOR_COLOR_BURN +darkens the destination color to reflect +the source color. (Since 1.10) + + + +CAIRO_OPERATOR_HARD_LIGHT +Multiplies or screens, dependent on source +color. (Since 1.10) + + + +CAIRO_OPERATOR_SOFT_LIGHT +Darkens or lightens, dependent on source +color. (Since 1.10) + + + +CAIRO_OPERATOR_DIFFERENCE +Takes the difference of the source and +destination color. (Since 1.10) + + + +CAIRO_OPERATOR_EXCLUSION +Produces an effect similar to difference, but +with lower contrast. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_HUE +Creates a color with the hue of the source +and the saturation and luminosity of the target. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_SATURATION +Creates a color with the saturation +of the source and the hue and luminosity of the target. Painting with +this mode onto a gray area produces no change. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_COLOR +Creates a color with the hue and saturation +of the source and the luminosity of the target. This preserves the gray +levels of the target and is useful for coloring monochrome images or +tinting color images. (Since 1.10) + + + +CAIRO_OPERATOR_HSL_LUMINOSITY +Creates a color with the luminosity of +the source and the hue and saturation of the target. This produces an +inverse effect to CAIRO_OPERATOR_HSL_COLOR +. (Since 1.10) + + + + +Since: 1.0 + +cairo_rectangle_t +cairo_rectangle_t +typedef struct { + double x, y, width, height; +} cairo_rectangle_t; + +A data structure for holding a rectangle. + +Members + + + + + + +double x; +X coordinate of the left side of the rectangle + + +double y; +Y coordinate of the the top side of the rectangle + + +double width; +width of the rectangle + + +double height; +height of the rectangle + + + + +Since: 1.4 + +cairo_rectangle_list_t +cairo_rectangle_list_t +typedef struct { + cairo_status_t status; + cairo_rectangle_t *rectangles; + int num_rectangles; +} cairo_rectangle_list_t; + +A data structure for holding a dynamically allocated +array of rectangles. + +Members + + + + + + +cairo_status_t status; +Error status of the rectangle list + + +cairo_rectangle_t *rectangles; +Array containing the rectangles + + +int num_rectangles; +Number of rectangles in this list + + + + +Since: 1.4 + + + +See Also +cairo_surface_t + + + + -- cgit v1.2.1