### GPL Copyright Notice for Source Files Source: https://github.com/cairo/cairo/blob/master/test/pdiff/gpl.txt Include this notice at the start of each source file to convey the exclusion of warranty and specify licensing terms under the GPL. ```text Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ``` -------------------------------- ### GPL Interactive Program Notice Source: https://github.com/cairo/cairo/blob/master/test/pdiff/gpl.txt Display this notice when an interactive program starts to inform users about its warranty status and redistribution terms. ```text Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. ``` -------------------------------- ### Tag Source Tree Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md Tag the entire source tree with the release version and sign the tag using your GPG key. ```bash Tag the entire source tree with a "${THIS_RELEASE}" tag, and sign the tag with your GPG key (asks for your GPG password, and you may need to set `GIT_COMMITTER_NAME` and `GIT_COMMITTER_EMAIL` to match your public-key's setting or this fails.) ``` -------------------------------- ### Verify Build and Tests with Meson Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md Ensure the code passes 'meson dist' without warnings or errors. Use '--no-tests' only for development snapshots if the test suite fails. ```bash meson dist ``` ```bash meson dist --no-tests ``` -------------------------------- ### Add Release Index Entry Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md For minor releases, add a new XML index entry to 'doc/public/cairo-docs.xml' for the stable release. ```xml Index of new symbols in X.Y ``` -------------------------------- ### Generate Release Archive with Meson Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md The 'meson dist' command generates the final tar file and an sha1sum file for the release. ```bash meson dist ``` -------------------------------- ### Checkout Release Branch Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md For stable releases, checkout the appropriate release branch using git. ```bash git checkout origin/1.14 -b 1.14 ``` -------------------------------- ### Generate Shortlog for Release Announcement Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md Generate a shortlog of all changes made since the last release. This is used to create the "shortlog" excerpt for the release announcement message. ```bash git shortlog ${LAST_RELEASE}... ``` -------------------------------- ### Quartz Surface Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and managing Quartz surfaces. ```APIDOC ## cairo_quartz_surface_create ### Description Creates a new Quartz surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **format** (cairo_format_t) - The desired format of the surface. - **width** (double) - The width of the surface in points. - **height** (double) - The height of the surface in points. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Quartz surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_quartz_surface_create_for_cg_context ### Description Creates a new Quartz surface from a Core Graphics context. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **c** (CGContextRef) - The Core Graphics context. - **width** (double) - The width of the surface in points. - **height** (double) - The height of the surface in points. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Quartz surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_quartz_surface_get_cg_context ### Description Gets the Core Graphics context of a Quartz surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Quartz surface. ### Request Example (Not applicable) ### Response #### Success Response (CGContextRef) - Returns the CGContextRef of the surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_quartz_image_surface_create ### Description Creates a new Quartz image surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **format** (cairo_format_t) - The desired format of the surface. - **width** (int) - The width of the surface in pixels. - **height** (int) - The height of the surface in pixels. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Quartz image surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_quartz_image_surface_get_image ### Description Gets the Core Graphics image representation of a Quartz image surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Quartz image surface. ### Request Example (Not applicable) ### Response #### Success Response (CGImageRef) - Returns the CGImageRef of the surface. #### Response Example (Not applicable) ``` -------------------------------- ### Win32 Surface Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and managing Win32 surfaces. ```APIDOC ## cairo_win32_surface_create ### Description Creates a new Win32 surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **hdc** (HDC) - The device context to create the surface from. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Win32 surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_surface_create_with_dib ### Description Creates a new Win32 surface using a DIB (Device-Independent Bitmap). ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **hdc** (HDC) - The device context. - **dib** (HBITMAP) - The DIB handle. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Win32 surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_surface_create_with_ddb ### Description Creates a new Win32 surface using a DDB (Device-Dependent Bitmap). ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **hdc** (HDC) - The device context. - **bitmap** (HBITMAP) - The DDB handle. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Win32 surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_surface_create_with_format ### Description Creates a new Win32 surface with a specified format. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **hdc** (HDC) - The device context. - **format** (cairo_format_t) - The desired surface format. - **width** (int) - The width of the surface. - **height** (int) - The height of the surface. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Win32 surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_printing_surface_create ### Description Creates a new Win32 printing surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **printer_name** (const char *) - The name of the printer. - **driver_name** (const char *) - The name of the printer driver. - **port_name** (const char *) - The name of the printer port. - **width** (double) - The width of the page in points. - **height** (double) - The height of the page in points. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Win32 printing surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_surface_get_dc ### Description Gets the device context of a Win32 surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Win32 surface. ### Request Example (Not applicable) ### Response #### Success Response (HDC) - Returns the HDC of the surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_surface_get_image ### Description Gets the image representation of a Win32 surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Win32 surface. ### Request Example (Not applicable) ### Response #### Success Response (HBITMAP) - Returns the HBITMAP of the surface. #### Response Example (Not applicable) ``` -------------------------------- ### View Git Log for Changes Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md Use 'git log --stat' to review changes since the last release. This helps in summarizing updates for the NEWS file. ```bash git log --stat ${LAST_RELEASE}.. ``` -------------------------------- ### Cairo XCB Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and managing XCB surfaces, including Xrender and shared memory support. ```APIDOC ## cairo_xcb_surface_create ### Description Creates an XCB surface. ### Endpoint cairo_xcb_surface_create ## cairo_xcb_surface_create_for_bitmap ### Description Creates an XCB surface from a bitmap. ### Endpoint cairo_xcb_surface_create_for_bitmap ## cairo_xcb_surface_create_with_xrender_format ### Description Creates an XCB surface with a specific Xrender format. ### Endpoint cairo_xcb_surface_create_with_xrender_format ## cairo_xcb_surface_set_size ### Description Sets the size of an XCB surface. ### Endpoint cairo_xcb_surface_set_size ## cairo_xcb_surface_set_drawable ### Description Sets the drawable for an XCB surface. ### Endpoint cairo_xcb_surface_set_drawable ## cairo_xcb_device_get_connection ### Description Retrieves the XCB connection from an XCB device. ### Endpoint cairo_xcb_device_get_connection ``` -------------------------------- ### Xlib Surface Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and managing Xlib surfaces. ```APIDOC ## cairo_xlib_surface_create ### Description Creates a new Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **dpy** (Display *) - The X display. - **drawable** (XID) - The X drawable. - **visual** (XVisual *) - The X visual. - **width** (int) - The width of the surface. - **height** (int) - The height of the surface. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Xlib surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_create_for_bitmap ### Description Creates a new Xlib surface from a bitmap. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **dpy** (Display *) - The X display. - **bitmap** (Pixmap) - The X bitmap. - **width** (int) - The width of the surface. - **height** (int) - The height of the surface. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the Xlib surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_set_size ### Description Sets the size of the Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. - **width** (int) - The desired width. - **height** (int) - The desired height. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_get_display ### Description Gets the X display of an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. ### Request Example (Not applicable) ### Response #### Success Response (Display *) - Returns the X display. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_get_screen ### Description Gets the X screen of an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. ### Request Example (Not applicable) ### Response #### Success Response (int) - Returns the X screen number. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_set_drawable ### Description Sets the X drawable for an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. - **drawable** (XID) - The X drawable. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_get_drawable ### Description Gets the X drawable of an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. ### Request Example (Not applicable) ### Response #### Success Response (XID) - Returns the X drawable. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_get_visual ### Description Gets the X visual of an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. ### Request Example (Not applicable) ### Response #### Success Response (XVisual *) - Returns the X visual. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_get_width ### Description Gets the width of an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. ### Request Example (Not applicable) ### Response #### Success Response (int) - Returns the width of the surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_get_height ### Description Gets the height of an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. ### Request Example (Not applicable) ### Response #### Success Response (int) - Returns the height of the surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_xlib_surface_get_depth ### Description Gets the depth of an Xlib surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The Xlib surface. ### Request Example (Not applicable) ### Response #### Success Response (int) - Returns the depth of the surface. #### Response Example (Not applicable) ``` -------------------------------- ### Determine New Version Numbers Source: https://github.com/cairo/cairo/blob/master/doc/releasing.md Calculate the next version number based on the release type (minor, micro, snapshot). Even numbers are for official releases, odd for development snapshots. ```bash LAST_RELEASE="X.Y.Z" # e.g. 1.12.0 THIS_RELEASE="X.Y+2.0" # e.g. 1.14.0 ``` ```bash LAST_RELEASE="X.Y.Z" # e.g. 1.14.0 THIS_RELEASE="X.Y.Z+2" # e.g. 1.14.2 ``` ```bash LAST_RELEASE="X.Y.Z" # e.g. 1.14.0 THIS_RELEASE="X.Y+1.0" # e.g. 1.15.2 ``` ```bash LAST_RELEASE="X.Y.Z" # e.g. 1.15.2 THIS_RELEASE="X.Y.Z+2" # e.g. 1.15.4 ``` -------------------------------- ### PostScript Surface Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and configuring PostScript surfaces. ```APIDOC ## cairo_ps_surface_create ### Description Creates a new PostScript surface with the specified filename and dimensions. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **filename** (const char *) - The name of the PostScript file to create. - **width** (double) - The width of the PostScript page in points. - **height** (double) - The height of the PostScript page in points. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the PostScript surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_create_for_stream ### Description Creates a new PostScript surface that writes to a stream. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **write_func** (cairo_write_func_t) - The function to write data to the stream. - **closure** (void *) - User data for the write function. - **width** (double) - The width of the PostScript page in points. - **height** (double) - The height of the PostScript page in points. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the PostScript surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_restrict_to_level ### Description Restricts the PostScript level used for the surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PostScript surface. - **level** (cairo_ps_level_t) - The desired PostScript level. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_get_levels ### Description Gets a list of supported PostScript levels. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - None ### Request Example (Not applicable) ### Response #### Success Response (const cairo_ps_level_t **) - Returns a pointer to an array of supported PostScript levels. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_level_to_string ### Description Converts a PostScript level to its string representation. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **level** (cairo_ps_level_t) - The PostScript level. ### Request Example (Not applicable) ### Response #### Success Response (const char *) - Returns a string representation of the PostScript level. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_set_eps ### Description Sets whether the PostScript surface should be generated as an Encapsulated PostScript (EPS) file. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PostScript surface. - **eps** (cairo_bool_t) - CAIRO_TRUE to enable EPS, CAIRO_FALSE otherwise. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_get_eps ### Description Gets whether the PostScript surface is set to generate an Encapsulated PostScript (EPS) file. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PostScript surface. ### Request Example (Not applicable) ### Response #### Success Response (cairo_bool_t) - Returns CAIRO_TRUE if EPS is enabled, CAIRO_FALSE otherwise. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_set_size ### Description Sets the size of the PostScript surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PostScript surface. - **width** (double) - The desired width in points. - **height** (double) - The desired height in points. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_dsc_begin_setup ### Description Begins a DSC setup section for the PostScript surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PostScript surface. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_dsc_begin_page_setup ### Description Begins a DSC page setup section for the PostScript surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PostScript surface. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_ps_surface_dsc_comment ### Description Adds a DSC comment to the PostScript output. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PostScript surface. - **comment** (const char *) - The DSC comment string. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` -------------------------------- ### Cairo Xlib Xrender Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions related to Xrender integration with Xlib surfaces. ```APIDOC ## cairo_xlib_surface_create_with_xrender_format ### Description Creates an Xlib surface that uses a specific Xrender format. ### Endpoint cairo_xlib_surface_create_with_xrender_format ## cairo_xlib_surface_get_xrender_format ### Description Retrieves the Xrender format used by an Xlib surface. ### Endpoint cairo_xlib_surface_get_xrender_format ``` -------------------------------- ### GPL Organizational Copyright Disclaimer Source: https://github.com/cairo/cairo/blob/master/test/pdiff/gpl.txt A sample copyright disclaimer for an organization to sign, relinquishing copyright interest in a program written by an employee. ```text Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice ``` -------------------------------- ### PDF Surface Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and configuring PDF surfaces. ```APIDOC ## cairo_pdf_surface_create ### Description Creates a new PDF surface with the specified filename and dimensions. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **filename** (const char *) - The name of the PDF file to create. - **width** (double) - The width of the PDF page in points. - **height** (double) - The height of the PDF page in points. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the PDF surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_create_for_stream ### Description Creates a new PDF surface that writes to a stream. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **write_func** (cairo_write_func_t) - The function to write data to the stream. - **closure** (void *) - User data for the write function. - **width** (double) - The width of the PDF page in points. - **height** (double) - The height of the PDF page in points. ### Request Example (Not applicable) ### Response #### Success Response (cairo_surface_t *) - Returns a new cairo_surface_t * representing the PDF surface. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_restrict_to_version ### Description Restricts the PDF version used for the surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PDF surface. - **version** (cairo_pdf_version_t) - The desired PDF version. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_get_versions ### Description Gets a list of supported PDF versions. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - None ### Request Example (Not applicable) ### Response #### Success Response (const cairo_pdf_version_t **) - Returns a pointer to an array of supported PDF versions. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_version_to_string ### Description Converts a PDF version to its string representation. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **version** (cairo_pdf_version_t) - The PDF version. ### Request Example (Not applicable) ### Response #### Success Response (const char *) - Returns a string representation of the PDF version. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_set_size ### Description Sets the size of the PDF surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PDF surface. - **width** (double) - The desired width in points. - **height** (double) - The desired height in points. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_add_outline ### Description Adds an outline entry to the PDF document. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PDF surface. - **parent_id** (unsigned int) - The ID of the parent outline entry. - **name** (const char *) - The name of the outline entry. - **flags** (cairo_pdf_outline_flags_t) - Flags for the outline entry. - **link** (const char *) - A link associated with the outline entry. ### Request Example (Not applicable) ### Response #### Success Response (unsigned int) - Returns the ID of the newly created outline entry. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_set_metadata ### Description Sets metadata for the PDF surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PDF surface. - **metadata** (const cairo_pdf_metadata_t *) - Pointer to the metadata structure. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_set_custom_metadata ### Description Sets custom metadata for the PDF surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PDF surface. - **name** (const char *) - The name of the custom metadata. - **value** (const char *) - The value of the custom metadata. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_set_page_label ### Description Sets the page label for the current page of the PDF surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PDF surface. - **label** (const char *) - The page label. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_pdf_surface_set_thumbnail_size ### Description Sets the thumbnail size for the PDF surface. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **surface** (cairo_surface_t *) - The PDF surface. - **width** (int) - The desired thumbnail width. - **height** (int) - The desired thumbnail height. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` -------------------------------- ### Cairo Raster Source Pattern Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and configuring raster source patterns in Cairo. ```APIDOC ## cairo_pattern_create_raster_source ### Description Creates a new raster source pattern. ### Method APIDOC ### Endpoint cairo_pattern_create_raster_source ## cairo_raster_source_pattern_set_callback_data ### Description Sets the callback data for a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_set_callback_data ## cairo_raster_source_pattern_get_callback_data ### Description Gets the callback data for a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_get_callback_data ## cairo_raster_source_pattern_set_acquire ### Description Sets the acquire function for a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_set_acquire ## cairo_raster_source_pattern_get_acquire ### Description Gets the acquire function of a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_get_acquire ## cairo_raster_source_pattern_set_snapshot ### Description Sets the snapshot function for a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_set_snapshot ## cairo_raster_source_pattern_get_snapshot ### Description Gets the snapshot function of a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_get_snapshot ## cairo_raster_source_pattern_set_copy ### Description Sets the copy function for a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_set_copy ## cairo_raster_source_pattern_get_copy ### Description Gets the copy function of a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_get_copy ## cairo_raster_source_pattern_set_finish ### Description Sets the finish function for a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_set_finish ## cairo_raster_source_pattern_get_finish ### Description Gets the finish function of a raster source pattern. ### Method APIDOC ### Endpoint cairo_raster_source_pattern_get_finish ``` -------------------------------- ### Cairo Path Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating, manipulating, and querying paths in Cairo. ```APIDOC ## cairo_copy_path ### Description Copies the current path. ### Method APIDOC ### Endpoint cairo_copy_path ## cairo_copy_path_flat ### Description Copies the current path, converting curves to line segments. ### Method APIDOC ### Endpoint cairo_copy_path_flat ## cairo_path_destroy ### Description Frees a path. ### Method APIDOC ### Endpoint cairo_path_destroy ## cairo_append_path ### Description Appends a copy of a path to the current path. ### Method APIDOC ### Endpoint cairo_append_path ## cairo_has_current_point ### Description Checks if the current path has a current point. ### Method APIDOC ### Endpoint cairo_has_current_point ## cairo_get_current_point ### Description Gets the current point of the path. ### Method APIDOC ### Endpoint cairo_get_current_point ## cairo_new_path ### Description Clears the current path and starts a new one. ### Method APIDOC ### Endpoint cairo_new_path ## cairo_new_sub_path ### Description Starts a new sub-path within the current path. ### Method APIDOC ### Endpoint cairo_new_sub_path ## cairo_close_path ### Description Closes the current sub-path by drawing a line to its starting point. ### Method APIDOC ### Endpoint cairo_close_path ## cairo_arc ### Description Adds a circular arc to the current path. ### Method APIDOC ### Endpoint cairo_arc ## cairo_arc_negative ### Description Adds a negative-oriented circular arc to the current path. ### Method APIDOC ### Endpoint cairo_arc_negative ## cairo_curve_to ### Description Adds a cubic Bezier curve to the current path. ### Method APIDOC ### Endpoint cairo_curve_to ## cairo_line_to ### Description Adds a line segment to the current path. ### Method APIDOC ### Endpoint cairo_line_to ## cairo_move_to ### Description Moves the current point to a new location. ### Method APIDOC ### Endpoint cairo_move_to ## cairo_rectangle ### Description Adds a rectangular path to the current path. ### Method APIDOC ### Endpoint cairo_rectangle ## cairo_glyph_path ### Description Adds a path representing a set of glyphs. ### Method APIDOC ### Endpoint cairo_glyph_path ## cairo_text_path ### Description Adds a path representing a string of text. ### Method APIDOC ### Endpoint cairo_text_path ## cairo_rel_curve_to ### Description Adds a relative cubic Bezier curve to the current path. ### Method APIDOC ### Endpoint cairo_rel_curve_to ## cairo_rel_line_to ### Description Adds a relative line segment to the current path. ### Method APIDOC ### Endpoint cairo_rel_line_to ## cairo_rel_move_to ### Description Moves the current point relative to its current position. ### Method APIDOC ### Endpoint cairo_rel_move_to ## cairo_path_extents ### Description Calculates the bounding box of the current path. ### Method APIDOC ### Endpoint cairo_path_extents ``` -------------------------------- ### Cairo Surface Observer Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and managing observer surfaces, allowing callbacks for drawing operations. ```APIDOC ## cairo_surface_create_observer ### Description Creates an observer surface. ### Endpoint cairo_surface_create_observer ## cairo_surface_observer_add_fill_callback ### Description Adds a callback for fill operations on an observer surface. ### Endpoint cairo_surface_observer_add_fill_callback ## cairo_surface_observer_add_finish_callback ### Description Adds a callback for finish operations on an observer surface. ### Endpoint cairo_surface_observer_add_finish_callback ## cairo_surface_observer_add_flush_callback ### Description Adds a callback for flush operations on an observer surface. ### Endpoint cairo_surface_observer_add_flush_callback ## cairo_surface_observer_add_glyphs_callback ### Description Adds a callback for glyph operations on an observer surface. ### Endpoint cairo_surface_observer_add_glyphs_callback ## cairo_surface_observer_add_mask_callback ### Description Adds a callback for mask operations on an observer surface. ### Endpoint cairo_surface_observer_add_mask_callback ## cairo_surface_observer_add_paint_callback ### Description Adds a callback for paint operations on an observer surface. ### Endpoint cairo_surface_observer_add_paint_callback ## cairo_surface_observer_add_stroke_callback ### Description Adds a callback for stroke operations on an observer surface. ### Endpoint cairo_surface_observer_add_stroke_callback ## cairo_surface_observer_elapsed ### Description Retrieves the elapsed time for operations on an observer surface. ### Endpoint cairo_surface_observer_elapsed ## cairo_surface_observer_print ### Description Prints observer information. ### Endpoint cairo_surface_observer_print ``` -------------------------------- ### Cairo Font Options Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating, configuring, and managing Cairo font options. ```APIDOC ## cairo_font_options_create ### Description Creates a new set of font options. ### Method APIDOC ### Endpoint cairo_font_options_create ## cairo_font_options_copy ### Description Copies an existing set of font options. ### Method APIDOC ### Endpoint cairo_font_options_copy ## cairo_font_options_destroy ### Description Frees a set of font options. ### Method APIDOC ### Endpoint cairo_font_options_destroy ## cairo_font_options_status ### Description Checks the status of a set of font options. ### Method APIDOC ### Endpoint cairo_font_options_status ## cairo_font_options_merge ### Description Merges two sets of font options. ### Method APIDOC ### Endpoint cairo_font_options_merge ## cairo_font_options_hash ### Description Computes a hash value for a set of font options. ### Method APIDOC ### Endpoint cairo_font_options_hash ## cairo_font_options_equal ### Description Compares two sets of font options for equality. ### Method APIDOC ### Endpoint cairo_font_options_equal ## cairo_font_options_set_antialias ### Description Sets the antialiasing mode for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_antialias ## cairo_font_options_get_antialias ### Description Gets the antialiasing mode from font options. ### Method APIDOC ### Endpoint cairo_font_options_get_antialias ## cairo_font_options_set_subpixel_order ### Description Sets the subpixel order for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_subpixel_order ## cairo_font_options_get_subpixel_order ### Description Gets the subpixel order from font options. ### Method APIDOC ### Endpoint cairo_font_options_get_subpixel_order ## cairo_font_options_set_hint_style ### Description Sets the hinting style for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_hint_style ## cairo_font_options_get_hint_style ### Description Gets the hinting style from font options. ### Method APIDOC ### Endpoint cairo_font_options_get_hint_style ## cairo_font_options_set_hint_metrics ### Description Sets the hinting metrics for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_hint_metrics ## cairo_font_options_get_hint_metrics ### Description Gets the hinting metrics from font options. ### Method APIDOC ### Endpoint cairo_font_options_get_hint_metrics ## cairo_font_options_get_variations ### Description Gets the variations from font options. ### Method APIDOC ### Endpoint cairo_font_options_get_variations ## cairo_font_options_set_variations ### Description Sets the variations for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_variations ## cairo_font_options_set_color_mode ### Description Sets the color mode for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_color_mode ## cairo_font_options_get_color_mode ### Description Gets the color mode from font options. ### Method APIDOC ### Endpoint cairo_font_options_get_color_mode ## cairo_font_options_set_color_palette ### Description Sets the color palette for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_color_palette ## cairo_font_options_get_color_palette ### Description Gets the color palette from font options. ### Method APIDOC ### Endpoint cairo_font_options_get_color_palette ## cairo_font_options_set_custom_palette_color ### Description Sets a custom color in the palette for font options. ### Method APIDOC ### Endpoint cairo_font_options_set_custom_palette_color ## cairo_font_options_get_custom_palette_color ### Description Gets a custom color from the palette for font options. ### Method APIDOC ### Endpoint cairo_font_options_get_custom_palette_color ``` -------------------------------- ### Win32 Font Functions Source: https://github.com/cairo/cairo/blob/master/doc/public/cairo-sections.txt Functions for creating and managing font faces using the Win32 GDI. ```APIDOC ## cairo_win32_font_face_create_for_logfontw ### Description Creates a font face from a Windows LOGFONTW structure. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **logfontw** (const LOGFONTW *) - Pointer to the LOGFONTW structure. ### Request Example (Not applicable) ### Response #### Success Response (cairo_font_face_t *) - Returns a new cairo_font_face_t * on success. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_font_face_create_for_hfont ### Description Creates a font face from a Windows HFONT handle. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **hfont** (HFONT) - The HFONT handle. ### Request Example (Not applicable) ### Response #### Success Response (cairo_font_face_t *) - Returns a new cairo_font_face_t * on success. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_font_face_create_for_logfontw_hfont ### Description Creates a font face from a Windows LOGFONTW structure and HFONT handle. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **logfontw** (const LOGFONTW *) - Pointer to the LOGFONTW structure. - **hfont** (HFONT) - The HFONT handle. ### Request Example (Not applicable) ### Response #### Success Response (cairo_font_face_t *) - Returns a new cairo_font_face_t * on success. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_scaled_font_select_font ### Description Selects a font for a Win32 scaled font. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **scaled_font** (cairo_scaled_font_t *) - The scaled font. - **hfont** (HFONT) - The HFONT handle to select. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_scaled_font_done_font ### Description Releases the font associated with a Win32 scaled font. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **scaled_font** (cairo_scaled_font_t *) - The scaled font. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_scaled_font_get_metrics_factor ### Description Gets the metrics factor for a Win32 scaled font. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **scaled_font** (cairo_scaled_font_t *) - The scaled font. ### Request Example (Not applicable) ### Response #### Success Response (double) - Returns the metrics factor. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_scaled_font_get_logical_to_device ### Description Gets the logical-to-device transformation for a Win32 scaled font. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **scaled_font** (cairo_scaled_font_t *) - The scaled font. - **matrix** (cairo_matrix_t *) - Pointer to a cairo_matrix_t to store the transformation. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ``` ```APIDOC ## cairo_win32_scaled_font_get_device_to_logical ### Description Gets the device-to-logical transformation for a Win32 scaled font. ### Method (Not applicable, C function) ### Endpoint (Not applicable) ### Parameters - **scaled_font** (cairo_scaled_font_t *) - The scaled font. - **matrix** (cairo_matrix_t *) - Pointer to a cairo_matrix_t to store the transformation. ### Request Example (Not applicable) ### Response #### Success Response (void) - No return value. #### Response Example (Not applicable) ```