| cairo.h | cairo.h | |||
|---|---|---|---|---|
| skipping to change at line 102 | skipping to change at line 102 | |||
| * #cairo_bool_t is used for boolean values. Returns of type | * #cairo_bool_t is used for boolean values. Returns of type | |||
| * #cairo_bool_t will always be either 0 or 1, but testing against | * #cairo_bool_t will always be either 0 or 1, but testing against | |||
| * these values explicitly is not encouraged; just use the | * these values explicitly is not encouraged; just use the | |||
| * value as a boolean condition. | * value as a boolean condition. | |||
| * | * | |||
| * <informalexample><programlisting> | * <informalexample><programlisting> | |||
| * if (cairo_in_stroke (cr, x, y)) { | * if (cairo_in_stroke (cr, x, y)) { | |||
| * /<!-- -->* do something *<!-- -->/ | * /<!-- -->* do something *<!-- -->/ | |||
| * } | * } | |||
| * </programlisting></informalexample> | * </programlisting></informalexample> | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef int cairo_bool_t; | typedef int cairo_bool_t; | |||
| /** | /** | |||
| * cairo_t: | * cairo_t: | |||
| * | * | |||
| * A #cairo_t contains the current state of the rendering device, | * A #cairo_t contains the current state of the rendering device, | |||
| * including coordinates of yet to be drawn shapes. | * including coordinates of yet to be drawn shapes. | |||
| * | * | |||
| * Cairo contexts, as #cairo_t objects are named, are central to | * Cairo contexts, as #cairo_t objects are named, are central to | |||
| * cairo and all drawing with cairo is always done to a #cairo_t | * cairo and all drawing with cairo is always done to a #cairo_t | |||
| * object. | * object. | |||
| * | * | |||
| * Memory management of #cairo_t is done with | * Memory management of #cairo_t is done with | |||
| * cairo_reference() and cairo_destroy(). | * cairo_reference() and cairo_destroy(). | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo cairo_t; | typedef struct _cairo cairo_t; | |||
| /** | /** | |||
| * cairo_surface_t: | * cairo_surface_t: | |||
| * | * | |||
| * A #cairo_surface_t represents an image, either as the destination | * A #cairo_surface_t represents an image, either as the destination | |||
| * of a drawing operation or as source when drawing onto another | * of a drawing operation or as source when drawing onto another | |||
| * surface. To draw to a #cairo_surface_t, create a cairo context | * surface. To draw to a #cairo_surface_t, create a cairo context | |||
| * with the surface as the target, using cairo_create(). | * with the surface as the target, using cairo_create(). | |||
| skipping to change at line 144 | skipping to change at line 148 | |||
| * of its creation. If cairo creates the surface and backing storage for | * of its creation. If cairo creates the surface and backing storage for | |||
| * the user, it will be initially cleared; for example, | * the user, it will be initially cleared; for example, | |||
| * cairo_image_surface_create() and cairo_surface_create_similar(). | * cairo_image_surface_create() and cairo_surface_create_similar(). | |||
| * Alternatively, if the user passes in a reference to some backing storage | * 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 | * 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 | * not modified; for example, cairo_image_surface_create_for_data() and | |||
| * cairo_xlib_surface_create(). | * cairo_xlib_surface_create(). | |||
| * | * | |||
| * Memory management of #cairo_surface_t is done with | * Memory management of #cairo_surface_t is done with | |||
| * cairo_surface_reference() and cairo_surface_destroy(). | * cairo_surface_reference() and cairo_surface_destroy(). | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo_surface cairo_surface_t; | typedef struct _cairo_surface cairo_surface_t; | |||
| /** | /** | |||
| * cairo_device_t: | * cairo_device_t: | |||
| * | * | |||
| * A #cairo_device_t represents the driver interface for drawing | * A #cairo_device_t represents the driver interface for drawing | |||
| * operations to a #cairo_surface_t. There are different subtypes of | * operations to a #cairo_surface_t. There are different subtypes of | |||
| * #cairo_device_t for different drawing backends; for example, | * #cairo_device_t for different drawing backends; for example, | |||
| * cairo_xcb_device_create() creates a device that wraps the connection | * cairo_egl_device_create() creates a device that wraps an EGL display and | |||
| * to an X Windows System using the XCB library. | * context. | |||
| * | * | |||
| * The type of a device can be queried with cairo_device_get_type(). | * The type of a device can be queried with cairo_device_get_type(). | |||
| * | * | |||
| * Memory management of #cairo_device_t is done with | * Memory management of #cairo_device_t is done with | |||
| * cairo_device_reference() and cairo_device_destroy(). | * cairo_device_reference() and cairo_device_destroy(). | |||
| * | * | |||
| * Since: 1.10 | * Since: 1.10 | |||
| **/ | **/ | |||
| typedef struct _cairo_device cairo_device_t; | typedef struct _cairo_device cairo_device_t; | |||
| skipping to change at line 181 | skipping to change at line 187 | |||
| * @x0: X translation component of the affine transformation | * @x0: X translation component of the affine transformation | |||
| * @y0: Y translation component of the affine transformation | * @y0: Y translation component of the affine transformation | |||
| * | * | |||
| * A #cairo_matrix_t holds an affine transformation, such as a scale, | * A #cairo_matrix_t holds an affine transformation, such as a scale, | |||
| * rotation, shear, or a combination of those. The transformation of | * rotation, shear, or a combination of those. The transformation of | |||
| * a point (x, y) is given by: | * a point (x, y) is given by: | |||
| * <programlisting> | * <programlisting> | |||
| * x_new = xx * x + xy * y + x0; | * x_new = xx * x + xy * y + x0; | |||
| * y_new = yx * x + yy * y + y0; | * y_new = yx * x + yy * y + y0; | |||
| * </programlisting> | * </programlisting> | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo_matrix { | typedef struct _cairo_matrix { | |||
| double xx; double yx; | double xx; double yx; | |||
| double xy; double yy; | double xy; double yy; | |||
| double x0; double y0; | double x0; double y0; | |||
| } cairo_matrix_t; | } cairo_matrix_t; | |||
| /** | /** | |||
| * cairo_pattern_t: | * cairo_pattern_t: | |||
| * | * | |||
| * A #cairo_pattern_t represents a source when drawing onto a | * A #cairo_pattern_t represents a source when drawing onto a | |||
| * surface. There are different subtypes of #cairo_pattern_t, | * surface. There are different subtypes of #cairo_pattern_t, | |||
| * for different types of sources; for example, | * for different types of sources; for example, | |||
| * cairo_pattern_create_rgb() creates a pattern for a solid | * cairo_pattern_create_rgb() creates a pattern for a solid | |||
| * opaque color. | * opaque color. | |||
| * | * | |||
| * Other than various cairo_pattern_create_<emphasis>type</emphasis>() | * Other than various | |||
| * functions, some of the pattern types can be implicitly created | * <function>cairo_pattern_create_<emphasis>type</emphasis>()</function> | |||
| * using various cairo_set_source_<emphasis>type</emphasis>() functions; | * functions, some of the pattern types can be implicitly created using var | |||
| ious | ||||
| * <function>cairo_set_source_<emphasis>type</emphasis>()</function> functi | ||||
| ons; | ||||
| * for example cairo_set_source_rgb(). | * for example cairo_set_source_rgb(). | |||
| * | * | |||
| * The type of a pattern can be queried with cairo_pattern_get_type(). | * The type of a pattern can be queried with cairo_pattern_get_type(). | |||
| * | * | |||
| * Memory management of #cairo_pattern_t is done with | * Memory management of #cairo_pattern_t is done with | |||
| * cairo_pattern_reference() and cairo_pattern_destroy(). | * cairo_pattern_reference() and cairo_pattern_destroy(). | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo_pattern cairo_pattern_t; | typedef struct _cairo_pattern cairo_pattern_t; | |||
| /** | /** | |||
| * cairo_destroy_func_t: | * cairo_destroy_func_t: | |||
| * @data: The data element being destroyed. | * @data: The data element being destroyed. | |||
| * | * | |||
| * #cairo_destroy_func_t the type of function which is called when a | * #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 | * data element is destroyed. It is passed the pointer to the data | |||
| * element and should free any memory and resources allocated for it. | * element and should free any memory and resources allocated for it. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef void (*cairo_destroy_func_t) (void *data); | typedef void (*cairo_destroy_func_t) (void *data); | |||
| /** | /** | |||
| * cairo_user_data_key_t: | * cairo_user_data_key_t: | |||
| * @unused: not used; ignore. | * @unused: not used; ignore. | |||
| * | * | |||
| * #cairo_user_data_key_t is used for attaching user data to cairo | * #cairo_user_data_key_t is used for attaching user data to cairo | |||
| * data structures. The actual contents of the struct is never used, | * data structures. The actual contents of the struct is never used, | |||
| * and there is no need to initialize the object; only the unique | * and there is no need to initialize the object; only the unique | |||
| * address of a #cairo_data_key_t object is used. Typically, you | * 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. | * would just use the address of a static #cairo_data_key_t object. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo_user_data_key { | typedef struct _cairo_user_data_key { | |||
| int unused; | int unused; | |||
| } cairo_user_data_key_t; | } cairo_user_data_key_t; | |||
| /** | /** | |||
| * cairo_status_t: | * cairo_status_t: | |||
| * @CAIRO_STATUS_SUCCESS: no error has occurred | * @CAIRO_STATUS_SUCCESS: no error has occurred (Since 1.0) | |||
| * @CAIRO_STATUS_NO_MEMORY: out of memory | * @CAIRO_STATUS_NO_MEMORY: out of memory (Since 1.0) | |||
| * @CAIRO_STATUS_INVALID_RESTORE: cairo_restore() called without matching c | * @CAIRO_STATUS_INVALID_RESTORE: cairo_restore() called without matching c | |||
| airo_save() | airo_save() (Since 1.0) | |||
| * @CAIRO_STATUS_INVALID_POP_GROUP: no saved group to pop, i.e. cairo_pop_g | * @CAIRO_STATUS_INVALID_POP_GROUP: no saved group to pop, i.e. cairo_pop_g | |||
| roup() without matching cairo_push_group() | roup() without matching cairo_push_group() (Since 1.0) | |||
| * @CAIRO_STATUS_NO_CURRENT_POINT: no current point defined | * @CAIRO_STATUS_NO_CURRENT_POINT: no current point defined (Since 1.0) | |||
| * @CAIRO_STATUS_INVALID_MATRIX: invalid matrix (not invertible) | * @CAIRO_STATUS_INVALID_MATRIX: invalid matrix (not invertible) (Since 1.0 | |||
| * @CAIRO_STATUS_INVALID_STATUS: invalid value for an input #cairo_status_t | ) | |||
| * @CAIRO_STATUS_NULL_POINTER: %NULL pointer | * @CAIRO_STATUS_INVALID_STATUS: invalid value for an input #cairo_status_t | |||
| * @CAIRO_STATUS_INVALID_STRING: input string not valid UTF-8 | (Since 1.0) | |||
| * @CAIRO_STATUS_INVALID_PATH_DATA: input path data not valid | * @CAIRO_STATUS_NULL_POINTER: %NULL pointer (Since 1.0) | |||
| * @CAIRO_STATUS_READ_ERROR: error while reading from input stream | * @CAIRO_STATUS_INVALID_STRING: input string not valid UTF-8 (Since 1.0) | |||
| * @CAIRO_STATUS_WRITE_ERROR: error while writing to output stream | * @CAIRO_STATUS_INVALID_PATH_DATA: input path data not valid (Since 1.0) | |||
| * @CAIRO_STATUS_SURFACE_FINISHED: target surface has been finished | * @CAIRO_STATUS_READ_ERROR: error while reading from input stream (Since 1 | |||
| * @CAIRO_STATUS_SURFACE_TYPE_MISMATCH: the surface type is not appropriate | .0) | |||
| for the operation | * @CAIRO_STATUS_WRITE_ERROR: error while writing to output stream (Since 1 | |||
| * @CAIRO_STATUS_PATTERN_TYPE_MISMATCH: the pattern type is not appropriate | .0) | |||
| for the operation | * @CAIRO_STATUS_SURFACE_FINISHED: target surface has been finished (Since | |||
| * @CAIRO_STATUS_INVALID_CONTENT: invalid value for an input #cairo_content | 1.0) | |||
| _t | * @CAIRO_STATUS_SURFACE_TYPE_MISMATCH: the surface type is not appropriate | |||
| * @CAIRO_STATUS_INVALID_FORMAT: invalid value for an input #cairo_format_t | for the operation (Since 1.0) | |||
| * @CAIRO_STATUS_INVALID_VISUAL: invalid value for an input Visual* | * @CAIRO_STATUS_PATTERN_TYPE_MISMATCH: the pattern type is not appropriate | |||
| * @CAIRO_STATUS_FILE_NOT_FOUND: file not found | for the operation (Since 1.0) | |||
| * @CAIRO_STATUS_INVALID_DASH: invalid value for a dash setting | * @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 (Sinc e 1.2) | * @CAIRO_STATUS_INVALID_DSC_COMMENT: invalid value for a DSC comment (Sinc e 1.2) | |||
| * @CAIRO_STATUS_INVALID_INDEX: invalid index passed to getter (Since 1.4) | * @CAIRO_STATUS_INVALID_INDEX: invalid index passed to getter (Since 1.4) | |||
| * @CAIRO_STATUS_CLIP_NOT_REPRESENTABLE: clip region not representable in d esired format (Since 1.4) | * @CAIRO_STATUS_CLIP_NOT_REPRESENTABLE: clip region not representable in d esired format (Since 1.4) | |||
| * @CAIRO_STATUS_TEMP_FILE_ERROR: error creating or writing to a temporary file (Since 1.6) | * @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_INVALID_STRIDE: invalid value for stride (Since 1.6) | |||
| * @CAIRO_STATUS_FONT_TYPE_MISMATCH: the font type is not appropriate for t he operation (Since 1.8) | * @CAIRO_STATUS_FONT_TYPE_MISMATCH: the font type is not appropriate for t he operation (Since 1.8) | |||
| * @CAIRO_STATUS_USER_FONT_IMMUTABLE: the user-font is immutable (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 fu nction (Since 1.8) | * @CAIRO_STATUS_USER_FONT_ERROR: error occurred in a user-font callback fu nction (Since 1.8) | |||
| * @CAIRO_STATUS_NEGATIVE_COUNT: negative number used where it is not allow ed (Since 1.8) | * @CAIRO_STATUS_NEGATIVE_COUNT: negative number used where it is not allow ed (Since 1.8) | |||
| * @CAIRO_STATUS_INVALID_CLUSTERS: input clusters do not represent the acco mpanying text and glyph array (Since 1.8) | * @CAIRO_STATUS_INVALID_CLUSTERS: input clusters do not represent the acco mpanying text and glyph array (Since 1.8) | |||
| * @CAIRO_STATUS_INVALID_SLANT: invalid value for an input #cairo_font_slan t_t (Since 1.8) | * @CAIRO_STATUS_INVALID_SLANT: invalid value for an input #cairo_font_slan t_t (Since 1.8) | |||
| * @CAIRO_STATUS_INVALID_WEIGHT: invalid value for an input #cairo_font_wei ght_t (Since 1.8) | * @CAIRO_STATUS_INVALID_WEIGHT: invalid value for an input #cairo_font_wei ght_t (Since 1.8) | |||
| * @CAIRO_STATUS_INVALID_SIZE: invalid value (typically too big) for the si ze of the input (surface, pattern, etc.) (Since 1.10) | * @CAIRO_STATUS_INVALID_SIZE: invalid value (typically too big) for the si ze of the input (surface, pattern, etc.) (Since 1.10) | |||
| * @CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED: user-font method not implemente d (Since 1.10) | * @CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED: user-font method not implemente d (Since 1.10) | |||
| * @CAIRO_STATUS_DEVICE_TYPE_MISMATCH: the device type is not appropriate f or the operation (Since 1.10) | * @CAIRO_STATUS_DEVICE_TYPE_MISMATCH: the device type is not appropriate f or the operation (Since 1.10) | |||
| * @CAIRO_STATUS_DEVICE_ERROR: an operation to the device caused an unspeci fied error (Since 1.10) | * @CAIRO_STATUS_DEVICE_ERROR: an operation to the device caused an unspeci fied 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_LAST_STATUS: this is a special value indicating the number of | * @CAIRO_STATUS_LAST_STATUS: this is a special value indicating the number of | |||
| * status values defined in this enumeration. When using this value, not e | * status values defined in this enumeration. When using this value, not e | |||
| * that the version of cairo at run-time may have additional status value s | * that the version of cairo at run-time may have additional status value s | |||
| * defined than the value of this symbol at compile-time. (Since 1.10) | * defined than the value of this symbol at compile-time. (Since 1.10) | |||
| * | * | |||
| * #cairo_status_t is used to indicate errors that can occur when | * #cairo_status_t is used to indicate errors that can occur when | |||
| * using Cairo. In some cases it is returned directly by functions. | * using Cairo. In some cases it is returned directly by functions. | |||
| * but when using #cairo_t, the last error, if any, is stored in | * but when using #cairo_t, the last error, if any, is stored in | |||
| * the context and can be retrieved with cairo_status(). | * the context and can be retrieved with cairo_status(). | |||
| * | * | |||
| * New entries may be added in future versions. Use cairo_status_to_string () | * New entries may be added in future versions. Use cairo_status_to_string () | |||
| * to get a human-readable representation of an error message. | * to get a human-readable representation of an error message. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_status { | typedef enum _cairo_status { | |||
| CAIRO_STATUS_SUCCESS = 0, | CAIRO_STATUS_SUCCESS = 0, | |||
| CAIRO_STATUS_NO_MEMORY, | CAIRO_STATUS_NO_MEMORY, | |||
| CAIRO_STATUS_INVALID_RESTORE, | CAIRO_STATUS_INVALID_RESTORE, | |||
| CAIRO_STATUS_INVALID_POP_GROUP, | CAIRO_STATUS_INVALID_POP_GROUP, | |||
| CAIRO_STATUS_NO_CURRENT_POINT, | CAIRO_STATUS_NO_CURRENT_POINT, | |||
| CAIRO_STATUS_INVALID_MATRIX, | CAIRO_STATUS_INVALID_MATRIX, | |||
| CAIRO_STATUS_INVALID_STATUS, | CAIRO_STATUS_INVALID_STATUS, | |||
| skipping to change at line 322 | skipping to change at line 344 | |||
| CAIRO_STATUS_USER_FONT_IMMUTABLE, | CAIRO_STATUS_USER_FONT_IMMUTABLE, | |||
| CAIRO_STATUS_USER_FONT_ERROR, | CAIRO_STATUS_USER_FONT_ERROR, | |||
| CAIRO_STATUS_NEGATIVE_COUNT, | CAIRO_STATUS_NEGATIVE_COUNT, | |||
| CAIRO_STATUS_INVALID_CLUSTERS, | CAIRO_STATUS_INVALID_CLUSTERS, | |||
| CAIRO_STATUS_INVALID_SLANT, | CAIRO_STATUS_INVALID_SLANT, | |||
| CAIRO_STATUS_INVALID_WEIGHT, | CAIRO_STATUS_INVALID_WEIGHT, | |||
| CAIRO_STATUS_INVALID_SIZE, | CAIRO_STATUS_INVALID_SIZE, | |||
| CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, | CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, | |||
| CAIRO_STATUS_DEVICE_TYPE_MISMATCH, | CAIRO_STATUS_DEVICE_TYPE_MISMATCH, | |||
| CAIRO_STATUS_DEVICE_ERROR, | CAIRO_STATUS_DEVICE_ERROR, | |||
| CAIRO_STATUS_INVALID_MESH_CONSTRUCTION, | ||||
| CAIRO_STATUS_DEVICE_FINISHED, | ||||
| CAIRO_STATUS_LAST_STATUS | CAIRO_STATUS_LAST_STATUS | |||
| } cairo_status_t; | } cairo_status_t; | |||
| /** | /** | |||
| * cairo_content_t: | * cairo_content_t: | |||
| * @CAIRO_CONTENT_COLOR: The surface will hold color content only. | * @CAIRO_CONTENT_COLOR: The surface will hold color content only. (Since 1 | |||
| * @CAIRO_CONTENT_ALPHA: The surface will hold alpha content only. | .0) | |||
| * @CAIRO_CONTENT_COLOR_ALPHA: The surface will hold color and alpha conten | * @CAIRO_CONTENT_ALPHA: The surface will hold alpha content only. (Since 1 | |||
| t. | .0) | |||
| * @CAIRO_CONTENT_COLOR_ALPHA: The surface will hold color and alpha conten | ||||
| t. (Since 1.0) | ||||
| * | * | |||
| * #cairo_content_t is used to describe the content that a surface will | * #cairo_content_t is used to describe the content that a surface will | |||
| * contain, whether color information, alpha information (translucence | * contain, whether color information, alpha information (translucence | |||
| * vs. opacity), or both. | * vs. opacity), or both. | |||
| * | * | |||
| * Note: The large values here are designed to keep #cairo_content_t | * Note: The large values here are designed to keep #cairo_content_t | |||
| * values distinct from #cairo_format_t values so that the | * values distinct from #cairo_format_t values so that the | |||
| * implementation can detect the error if users confuse the two types. | * implementation can detect the error if users confuse the two types. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_content { | typedef enum _cairo_content { | |||
| CAIRO_CONTENT_COLOR = 0x1000, | CAIRO_CONTENT_COLOR = 0x1000, | |||
| CAIRO_CONTENT_ALPHA = 0x2000, | CAIRO_CONTENT_ALPHA = 0x2000, | |||
| CAIRO_CONTENT_COLOR_ALPHA = 0x3000 | CAIRO_CONTENT_COLOR_ALPHA = 0x3000 | |||
| } cairo_content_t; | } cairo_content_t; | |||
| /** | /** | |||
| * cairo_format_t: | ||||
| * @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 | ||||
| * endianess of the platform. On a big-endian machine, the | ||||
| * first pixel is in the uppermost bit, on a little-endian | ||||
| * machine the first pixel is in the least-significant bit. (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) | ||||
| * | ||||
| * #cairo_format_t is used to identify the memory format of | ||||
| * image data. | ||||
| * | ||||
| * New entries may be added in future versions. | ||||
| * | ||||
| * Since: 1.0 | ||||
| **/ | ||||
| typedef enum _cairo_format { | ||||
| CAIRO_FORMAT_INVALID = -1, | ||||
| CAIRO_FORMAT_ARGB32 = 0, | ||||
| CAIRO_FORMAT_RGB24 = 1, | ||||
| CAIRO_FORMAT_A8 = 2, | ||||
| CAIRO_FORMAT_A1 = 3, | ||||
| CAIRO_FORMAT_RGB16_565 = 4, | ||||
| CAIRO_FORMAT_RGB30 = 5 | ||||
| } cairo_format_t; | ||||
| /** | ||||
| * cairo_write_func_t: | * cairo_write_func_t: | |||
| * @closure: the output closure | * @closure: the output closure | |||
| * @data: the buffer containing the data to write | * @data: the buffer containing the data to write | |||
| * @length: the amount of data to write | * @length: the amount of data to write | |||
| * | * | |||
| * #cairo_write_func_t is the type of function which is called when a | * #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 | * 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 | * closure which was specified by the user at the time the write | |||
| * function was registered, the data to write and the length of the | * function was registered, the data to write and the length of the | |||
| * data in bytes. The write function should return | * data in bytes. The write function should return | |||
| * %CAIRO_STATUS_SUCCESS if all the data was successfully written, | * %CAIRO_STATUS_SUCCESS if all the data was successfully written, | |||
| * %CAIRO_STATUS_WRITE_ERROR otherwise. | * %CAIRO_STATUS_WRITE_ERROR otherwise. | |||
| * | * | |||
| * Returns: the status code of the write operation | * Returns: the status code of the write operation | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef cairo_status_t (*cairo_write_func_t) (void *closure, | typedef cairo_status_t (*cairo_write_func_t) (void *closure, | |||
| const unsigned char *data, | const unsigned char *data, | |||
| unsigned int length); | unsigned int length); | |||
| /** | /** | |||
| * cairo_read_func_t: | * cairo_read_func_t: | |||
| * @closure: the input closure | * @closure: the input closure | |||
| * @data: the buffer into which to read the data | * @data: the buffer into which to read the data | |||
| * @length: the amount of data to read | * @length: the amount of data to read | |||
| * | * | |||
| * #cairo_read_func_t is the type of function which is called when a | * #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 | * 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 | * closure which was specified by the user at the time the read | |||
| * function was registered, the buffer to read the data into and the | * function was registered, the buffer to read the data into and the | |||
| * length of the data in bytes. The read function should return | * length of the data in bytes. The read function should return | |||
| * %CAIRO_STATUS_SUCCESS if all the data was successfully read, | * %CAIRO_STATUS_SUCCESS if all the data was successfully read, | |||
| * %CAIRO_STATUS_READ_ERROR otherwise. | * %CAIRO_STATUS_READ_ERROR otherwise. | |||
| * | * | |||
| * Returns: the status code of the read operation | * Returns: the status code of the read operation | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef cairo_status_t (*cairo_read_func_t) (void *closure, | typedef cairo_status_t (*cairo_read_func_t) (void *closure, | |||
| unsigned char *data, | unsigned char *data, | |||
| unsigned int length); | unsigned int length); | |||
| /** | ||||
| * cairo_rectangle_int_t: | ||||
| * @x: X coordinate of the left side of the rectangle | ||||
| * @y: Y coordinate of the the top side of the rectangle | ||||
| * @width: width of the rectangle | ||||
| * @height: height of the rectangle | ||||
| * | ||||
| * A data structure for holding a rectangle with integer coordinates. | ||||
| * | ||||
| * Since: 1.10 | ||||
| **/ | ||||
| typedef struct _cairo_rectangle_int { | ||||
| int x, y; | ||||
| int width, height; | ||||
| } cairo_rectangle_int_t; | ||||
| /* Functions for manipulating state objects */ | /* Functions for manipulating state objects */ | |||
| cairo_public cairo_t * | cairo_public cairo_t * | |||
| cairo_create (cairo_surface_t *target); | cairo_create (cairo_surface_t *target); | |||
| cairo_public cairo_t * | cairo_public cairo_t * | |||
| cairo_reference (cairo_t *cr); | cairo_reference (cairo_t *cr); | |||
| cairo_public void | cairo_public void | |||
| cairo_destroy (cairo_t *cr); | cairo_destroy (cairo_t *cr); | |||
| skipping to change at line 431 | skipping to change at line 519 | |||
| cairo_public cairo_pattern_t * | cairo_public cairo_pattern_t * | |||
| cairo_pop_group (cairo_t *cr); | cairo_pop_group (cairo_t *cr); | |||
| cairo_public void | cairo_public void | |||
| cairo_pop_group_to_source (cairo_t *cr); | cairo_pop_group_to_source (cairo_t *cr); | |||
| /* Modify state */ | /* Modify state */ | |||
| /** | /** | |||
| * cairo_operator_t: | * cairo_operator_t: | |||
| * @CAIRO_OPERATOR_CLEAR: clear destination layer (bounded) | * @CAIRO_OPERATOR_CLEAR: clear destination layer (bounded) (Since 1.0) | |||
| * @CAIRO_OPERATOR_SOURCE: replace destination layer (bounded) | * @CAIRO_OPERATOR_SOURCE: replace destination layer (bounded) (Since 1.0) | |||
| * @CAIRO_OPERATOR_OVER: draw source layer on top of destination layer | * @CAIRO_OPERATOR_OVER: draw source layer on top of destination layer | |||
| * (bounded) | * (bounded) (Since 1.0) | |||
| * @CAIRO_OPERATOR_IN: draw source where there was destination content | * @CAIRO_OPERATOR_IN: draw source where there was destination content | |||
| * (unbounded) | * (unbounded) (Since 1.0) | |||
| * @CAIRO_OPERATOR_OUT: draw source where there was no destination | * @CAIRO_OPERATOR_OUT: draw source where there was no destination | |||
| * content (unbounded) | * content (unbounded) (Since 1.0) | |||
| * @CAIRO_OPERATOR_ATOP: draw source on top of destination content and | * @CAIRO_OPERATOR_ATOP: draw source on top of destination content and | |||
| * only there | * only there (Since 1.0) | |||
| * @CAIRO_OPERATOR_DEST: ignore the source | * @CAIRO_OPERATOR_DEST: ignore the source (Since 1.0) | |||
| * @CAIRO_OPERATOR_DEST_OVER: draw destination on top of source | * @CAIRO_OPERATOR_DEST_OVER: draw destination on top of source (Since 1.0) | |||
| * @CAIRO_OPERATOR_DEST_IN: leave destination only where there was | * @CAIRO_OPERATOR_DEST_IN: leave destination only where there was | |||
| * source content (unbounded) | * source content (unbounded) (Since 1.0) | |||
| * @CAIRO_OPERATOR_DEST_OUT: leave destination only where there was no | * @CAIRO_OPERATOR_DEST_OUT: leave destination only where there was no | |||
| * source content | * source content (Since 1.0) | |||
| * @CAIRO_OPERATOR_DEST_ATOP: leave destination on top of source content | * @CAIRO_OPERATOR_DEST_ATOP: leave destination on top of source content | |||
| * and only there (unbounded) | * and only there (unbounded) (Since 1.0) | |||
| * @CAIRO_OPERATOR_XOR: source and destination are shown where there is onl y | * @CAIRO_OPERATOR_XOR: source and destination are shown where there is onl y | |||
| * one of them | * one of them (Since 1.0) | |||
| * @CAIRO_OPERATOR_ADD: source and destination layers are accumulated | * @CAIRO_OPERATOR_ADD: source and destination layers are accumulated (Sinc | |||
| e 1.0) | ||||
| * @CAIRO_OPERATOR_SATURATE: like over, but assuming source and dest are | * @CAIRO_OPERATOR_SATURATE: like over, but assuming source and dest are | |||
| * disjoint geometries | * disjoint geometries (Since 1.0) | |||
| * @CAIRO_OPERATOR_MULTIPLY: source and destination layers are multiplied. | * @CAIRO_OPERATOR_MULTIPLY: source and destination layers are multiplied. | |||
| * This causes the result to be at least as dark as the darker inputs. | * This causes the result to be at least as dark as the darker inputs. (Sin ce 1.10) | |||
| * @CAIRO_OPERATOR_SCREEN: source and destination are complemented and | * @CAIRO_OPERATOR_SCREEN: source and destination are complemented and | |||
| * multiplied. This causes the result to be at least as light as the lighte r | * multiplied. This causes the result to be at least as light as the lighte r | |||
| * inputs. | * inputs. (Since 1.10) | |||
| * @CAIRO_OPERATOR_OVERLAY: multiplies or screens, depending on the | * @CAIRO_OPERATOR_OVERLAY: multiplies or screens, depending on the | |||
| * lightness of the destination color. | * lightness of the destination color. (Since 1.10) | |||
| * @CAIRO_OPERATOR_DARKEN: replaces the destination with the source if it | * @CAIRO_OPERATOR_DARKEN: replaces the destination with the source if it | |||
| * is darker, otherwise keeps the source. | * is darker, otherwise keeps the source. (Since 1.10) | |||
| * @CAIRO_OPERATOR_LIGHTEN: replaces the destination with the source if it | * @CAIRO_OPERATOR_LIGHTEN: replaces the destination with the source if it | |||
| * is lighter, otherwise keeps the source. | * is lighter, otherwise keeps the source. (Since 1.10) | |||
| * @CAIRO_OPERATOR_COLOR_DODGE: brightens the destination color to reflect | * @CAIRO_OPERATOR_COLOR_DODGE: brightens the destination color to reflect | |||
| * the source color. | * the source color. (Since 1.10) | |||
| * @CAIRO_OPERATOR_COLOR_BURN: darkens the destination color to reflect | * @CAIRO_OPERATOR_COLOR_BURN: darkens the destination color to reflect | |||
| * the source color. | * the source color. (Since 1.10) | |||
| * @CAIRO_OPERATOR_HARD_LIGHT: Multiplies or screens, dependant on source | * @CAIRO_OPERATOR_HARD_LIGHT: Multiplies or screens, dependent on source | |||
| * color. | * color. (Since 1.10) | |||
| * @CAIRO_OPERATOR_SOFT_LIGHT: Darkens or lightens, dependant on source | * @CAIRO_OPERATOR_SOFT_LIGHT: Darkens or lightens, dependent on source | |||
| * color. | * color. (Since 1.10) | |||
| * @CAIRO_OPERATOR_DIFFERENCE: Takes the difference of the source and | * @CAIRO_OPERATOR_DIFFERENCE: Takes the difference of the source and | |||
| * destination color. | * destination color. (Since 1.10) | |||
| * @CAIRO_OPERATOR_EXCLUSION: Produces an effect similar to difference, but | * @CAIRO_OPERATOR_EXCLUSION: Produces an effect similar to difference, but | |||
| * with lower contrast. | * with lower contrast. (Since 1.10) | |||
| * @CAIRO_OPERATOR_HSL_HUE: Creates a color with the hue of the source | * @CAIRO_OPERATOR_HSL_HUE: Creates a color with the hue of the source | |||
| * and the saturation and luminosity of the target. | * and the saturation and luminosity of the target. (Since 1.10) | |||
| * @CAIRO_OPERATOR_HSL_SATURATION: Creates a color with the saturation | * @CAIRO_OPERATOR_HSL_SATURATION: Creates a color with the saturation | |||
| * of the source and the hue and luminosity of the target. Painting with | * of the source and the hue and luminosity of the target. Painting with | |||
| * this mode onto a gray area prduces no change. | * this mode onto a gray area produces no change. (Since 1.10) | |||
| * @CAIRO_OPERATOR_HSL_COLOR: Creates a color with the hue and saturation | * @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 | * 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 | * levels of the target and is useful for coloring monochrome images or | |||
| * tinting color images. | * tinting color images. (Since 1.10) | |||
| * @CAIRO_OPERATOR_HSL_LUMINOSITY: Creates a color with the luminosity of | * @CAIRO_OPERATOR_HSL_LUMINOSITY: Creates a color with the luminosity of | |||
| * the source and the hue and saturation of the target. This produces an | * the source and the hue and saturation of the target. This produces an | |||
| * inverse effect to @CAIRO_OPERATOR_HSL_COLOR. | * inverse effect to @CAIRO_OPERATOR_HSL_COLOR. (Since 1.10) | |||
| * | * | |||
| * #cairo_operator_t is used to set the compositing operator for all cairo | * #cairo_operator_t is used to set the compositing operator for all cairo | |||
| * drawing operations. | * drawing operations. | |||
| * | * | |||
| * The default operator is %CAIRO_OPERATOR_OVER. | * The default operator is %CAIRO_OPERATOR_OVER. | |||
| * | * | |||
| * The operators marked as <firstterm>unbounded</firstterm> modify their | * The operators marked as <firstterm>unbounded</firstterm> modify their | |||
| * destination even outside of the mask layer (that is, their effect is not | * 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 | * bound by the mask layer). However, their effect can still be limited by | |||
| * way of clipping. | * way of clipping. | |||
| * | * | |||
| * To keep things simple, the operator descriptions here | * To keep things simple, the operator descriptions here | |||
| * document the behavior for when both source and destination are either fu lly | * document the behavior for when both source and destination are either fu lly | |||
| * transparent or fully opaque. The actual implementation works for | * transparent or fully opaque. The actual implementation works for | |||
| * translucent layers too. | * translucent layers too. | |||
| * For a more detailed explanation of the effects of each operator, includi ng | * For a more detailed explanation of the effects of each operator, includi ng | |||
| * the mathematical definitions, see | * the mathematical definitions, see | |||
| * <ulink url="http://cairographics.org/operators/">http://cairographics.or g/operators/</ulink>. | * <ulink url="http://cairographics.org/operators/">http://cairographics.or g/operators/</ulink>. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_operator { | typedef enum _cairo_operator { | |||
| CAIRO_OPERATOR_CLEAR, | CAIRO_OPERATOR_CLEAR, | |||
| CAIRO_OPERATOR_SOURCE, | CAIRO_OPERATOR_SOURCE, | |||
| CAIRO_OPERATOR_OVER, | CAIRO_OPERATOR_OVER, | |||
| CAIRO_OPERATOR_IN, | CAIRO_OPERATOR_IN, | |||
| CAIRO_OPERATOR_OUT, | CAIRO_OPERATOR_OUT, | |||
| CAIRO_OPERATOR_ATOP, | CAIRO_OPERATOR_ATOP, | |||
| skipping to change at line 570 | skipping to change at line 660 | |||
| cairo_surface_t *surface, | cairo_surface_t *surface, | |||
| double x, | double x, | |||
| double y); | double y); | |||
| cairo_public void | cairo_public void | |||
| cairo_set_tolerance (cairo_t *cr, double tolerance); | cairo_set_tolerance (cairo_t *cr, double tolerance); | |||
| /** | /** | |||
| * cairo_antialias_t: | * cairo_antialias_t: | |||
| * @CAIRO_ANTIALIAS_DEFAULT: Use the default antialiasing for | * @CAIRO_ANTIALIAS_DEFAULT: Use the default antialiasing for | |||
| * the subsystem and target device | * the subsystem and target device, since 1.0 | |||
| * @CAIRO_ANTIALIAS_NONE: Use a bilevel alpha mask | * @CAIRO_ANTIALIAS_NONE: Use a bilevel alpha mask, since 1.0 | |||
| * @CAIRO_ANTIALIAS_GRAY: Perform single-color antialiasing (using | * @CAIRO_ANTIALIAS_GRAY: Perform single-color antialiasing (using | |||
| * shades of gray for black text on a white background, for example). | * shades of gray for black text on a white background, for example), sinc e 1.0 | |||
| * @CAIRO_ANTIALIAS_SUBPIXEL: Perform antialiasing by taking | * @CAIRO_ANTIALIAS_SUBPIXEL: Perform antialiasing by taking | |||
| * advantage of the order of subpixel elements on devices | * advantage of the order of subpixel elements on devices | |||
| * such as LCD panels | * 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 highes | ||||
| t | ||||
| * quality, sacrificing speed if necessary, since 1.12 | ||||
| * | * | |||
| * Specifies the type of antialiasing to do when rendering text or shapes. | * Specifies the type of antialiasing to do when rendering text or shapes. | |||
| * | ||||
| * As it is not necessarily clear from the above what advantages a particul | ||||
| ar | ||||
| * antialias method provides, since 1.12, there is also a set of hints: | ||||
| * @CAIRO_ANTIALIAS_FAST: Allow the backend to degrade raster quality for s | ||||
| peed | ||||
| * @CAIRO_ANTIALIAS_GOOD: A balance between speed and quality | ||||
| * @CAIRO_ANTIALIAS_BEST: A high-fidelity, but potentially slow, raster mod | ||||
| e | ||||
| * | ||||
| * These make no guarantee on how the backend will perform its rasterisatio | ||||
| n | ||||
| * (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. | ||||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_antialias { | typedef enum _cairo_antialias { | |||
| CAIRO_ANTIALIAS_DEFAULT, | CAIRO_ANTIALIAS_DEFAULT, | |||
| /* method */ | ||||
| CAIRO_ANTIALIAS_NONE, | CAIRO_ANTIALIAS_NONE, | |||
| CAIRO_ANTIALIAS_GRAY, | CAIRO_ANTIALIAS_GRAY, | |||
| CAIRO_ANTIALIAS_SUBPIXEL | CAIRO_ANTIALIAS_SUBPIXEL, | |||
| /* hints */ | ||||
| CAIRO_ANTIALIAS_FAST, | ||||
| CAIRO_ANTIALIAS_GOOD, | ||||
| CAIRO_ANTIALIAS_BEST | ||||
| } cairo_antialias_t; | } cairo_antialias_t; | |||
| cairo_public void | cairo_public void | |||
| cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias); | cairo_set_antialias (cairo_t *cr, cairo_antialias_t antialias); | |||
| /** | /** | |||
| * cairo_fill_rule_t: | * cairo_fill_rule_t: | |||
| * @CAIRO_FILL_RULE_WINDING: If the path crosses the ray from | * @CAIRO_FILL_RULE_WINDING: If the path crosses the ray from | |||
| * left-to-right, counts +1. If the path crosses the ray | * left-to-right, counts +1. If the path crosses the ray | |||
| * from right to left, counts -1. (Left and right are determined | * from right to left, counts -1. (Left and right are determined | |||
| * from the perspective of looking along the ray from the starting | * from the perspective of looking along the ray from the starting | |||
| * point.) If the total count is non-zero, the point will be filled. | * 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 | * @CAIRO_FILL_RULE_EVEN_ODD: Counts the total number of | |||
| * intersections, without regard to the orientation of the contour. If | * intersections, without regard to the orientation of the contour. If | |||
| * the total number of intersections is odd, the point will be | * the total number of intersections is odd, the point will be | |||
| * filled. | * filled. (Since 1.0) | |||
| * | * | |||
| * #cairo_fill_rule_t is used to select how paths are filled. For both | * #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 | * 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 | * determined by taking a ray from that point to infinity and looking | |||
| * at intersections with the path. The ray can be in any direction, | * 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 | * 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. | * or have a tricky intersection such as intersecting tangent to the path. | |||
| * (Note that filling is not actually implemented in this way. This | * (Note that filling is not actually implemented in this way. This | |||
| * is just a description of the rule that is applied.) | * is just a description of the rule that is applied.) | |||
| * | * | |||
| * The default fill rule is %CAIRO_FILL_RULE_WINDING. | * The default fill rule is %CAIRO_FILL_RULE_WINDING. | |||
| * | * | |||
| * New entries may be added in future versions. | * New entries may be added in future versions. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_fill_rule { | typedef enum _cairo_fill_rule { | |||
| CAIRO_FILL_RULE_WINDING, | CAIRO_FILL_RULE_WINDING, | |||
| CAIRO_FILL_RULE_EVEN_ODD | CAIRO_FILL_RULE_EVEN_ODD | |||
| } cairo_fill_rule_t; | } cairo_fill_rule_t; | |||
| cairo_public void | cairo_public void | |||
| cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule); | cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule); | |||
| cairo_public void | cairo_public void | |||
| cairo_set_line_width (cairo_t *cr, double width); | cairo_set_line_width (cairo_t *cr, double width); | |||
| /** | /** | |||
| * cairo_line_cap_t: | * cairo_line_cap_t: | |||
| * @CAIRO_LINE_CAP_BUTT: start(stop) the line exactly at the start(end) poi | * @CAIRO_LINE_CAP_BUTT: start(stop) the line exactly at the start(end) poi | |||
| nt | nt (Since 1.0) | |||
| * @CAIRO_LINE_CAP_ROUND: use a round ending, the center of the circle is t | * @CAIRO_LINE_CAP_ROUND: use a round ending, the center of the circle is t | |||
| he end point | he end point (Since 1.0) | |||
| * @CAIRO_LINE_CAP_SQUARE: use squared ending, the center of the square is | * @CAIRO_LINE_CAP_SQUARE: use squared ending, the center of the square is | |||
| the end point | the end point (Since 1.0) | |||
| * | * | |||
| * Specifies how to render the endpoints of the path when stroking. | * Specifies how to render the endpoints of the path when stroking. | |||
| * | * | |||
| * The default line cap style is %CAIRO_LINE_CAP_BUTT. | * The default line cap style is %CAIRO_LINE_CAP_BUTT. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_line_cap { | typedef enum _cairo_line_cap { | |||
| CAIRO_LINE_CAP_BUTT, | CAIRO_LINE_CAP_BUTT, | |||
| CAIRO_LINE_CAP_ROUND, | CAIRO_LINE_CAP_ROUND, | |||
| CAIRO_LINE_CAP_SQUARE | CAIRO_LINE_CAP_SQUARE | |||
| } cairo_line_cap_t; | } cairo_line_cap_t; | |||
| cairo_public void | cairo_public void | |||
| cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap); | cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap); | |||
| /** | /** | |||
| * cairo_line_join_t: | * cairo_line_join_t: | |||
| * @CAIRO_LINE_JOIN_MITER: use a sharp (angled) corner, see | * @CAIRO_LINE_JOIN_MITER: use a sharp (angled) corner, see | |||
| * cairo_set_miter_limit() | * cairo_set_miter_limit() (Since 1.0) | |||
| * @CAIRO_LINE_JOIN_ROUND: use a rounded join, the center of the circle is the | * @CAIRO_LINE_JOIN_ROUND: use a rounded join, the center of the circle is the | |||
| * joint point | * joint point (Since 1.0) | |||
| * @CAIRO_LINE_JOIN_BEVEL: use a cut-off join, the join is cut off at half | * @CAIRO_LINE_JOIN_BEVEL: use a cut-off join, the join is cut off at half | |||
| * the line width from the joint point | * the line width from the joint point (Since 1.0) | |||
| * | * | |||
| * Specifies how to render the junction of two lines when stroking. | * Specifies how to render the junction of two lines when stroking. | |||
| * | * | |||
| * The default line join style is %CAIRO_LINE_JOIN_MITER. | * The default line join style is %CAIRO_LINE_JOIN_MITER. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_line_join { | typedef enum _cairo_line_join { | |||
| CAIRO_LINE_JOIN_MITER, | CAIRO_LINE_JOIN_MITER, | |||
| CAIRO_LINE_JOIN_ROUND, | CAIRO_LINE_JOIN_ROUND, | |||
| CAIRO_LINE_JOIN_BEVEL | CAIRO_LINE_JOIN_BEVEL | |||
| } cairo_line_join_t; | } cairo_line_join_t; | |||
| cairo_public void | cairo_public void | |||
| cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join); | cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join); | |||
| skipping to change at line 903 | skipping to change at line 1030 | |||
| * resolution. A #cairo_scaled_font_t is most useful for low-level font | * resolution. A #cairo_scaled_font_t is most useful for low-level font | |||
| * usage where a library or application wants to cache a reference | * usage where a library or application wants to cache a reference | |||
| * to a scaled font to speed up the computation of metrics. | * to a scaled font to speed up the computation of metrics. | |||
| * | * | |||
| * There are various types of scaled fonts, depending on the | * There are various types of scaled fonts, depending on the | |||
| * <firstterm>font backend</firstterm> they use. The type of a | * <firstterm>font backend</firstterm> they use. The type of a | |||
| * scaled font can be queried using cairo_scaled_font_get_type(). | * scaled font can be queried using cairo_scaled_font_get_type(). | |||
| * | * | |||
| * Memory management of #cairo_scaled_font_t is done with | * Memory management of #cairo_scaled_font_t is done with | |||
| * cairo_scaled_font_reference() and cairo_scaled_font_destroy(). | * cairo_scaled_font_reference() and cairo_scaled_font_destroy(). | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo_scaled_font cairo_scaled_font_t; | typedef struct _cairo_scaled_font cairo_scaled_font_t; | |||
| /** | /** | |||
| * cairo_font_face_t: | * cairo_font_face_t: | |||
| * | * | |||
| * A #cairo_font_face_t specifies all aspects of a font other | * 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 | * than the size or font matrix (a font matrix is used to distort | |||
| * a font by sheering it or scaling it unequally in the two | * a font by sheering it or scaling it unequally in the two | |||
| * directions) . A font face can be set on a #cairo_t by using | * 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_face(); the size and font matrix are set with | |||
| * cairo_set_font_size() and cairo_set_font_matrix(). | * cairo_set_font_size() and cairo_set_font_matrix(). | |||
| * | * | |||
| * There are various types of font faces, depending on the | * There are various types of font faces, depending on the | |||
| * <firstterm>font backend</firstterm> they use. The type of a | * <firstterm>font backend</firstterm> they use. The type of a | |||
| * font face can be queried using cairo_font_face_get_type(). | * font face can be queried using cairo_font_face_get_type(). | |||
| * | * | |||
| * Memory management of #cairo_font_face_t is done with | * Memory management of #cairo_font_face_t is done with | |||
| * cairo_font_face_reference() and cairo_font_face_destroy(). | * cairo_font_face_reference() and cairo_font_face_destroy(). | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo_font_face cairo_font_face_t; | typedef struct _cairo_font_face cairo_font_face_t; | |||
| /** | /** | |||
| * cairo_glyph_t: | * cairo_glyph_t: | |||
| * @index: glyph index in the font. The exact interpretation of the | * @index: glyph index in the font. The exact interpretation of the | |||
| * glyph index depends on the font technology being used. | * glyph index depends on the font technology being used. | |||
| * @x: the offset in the X direction between the origin used for | * @x: the offset in the X direction between the origin used for | |||
| * drawing or measuring the string and the origin of this glyph. | * drawing or measuring the string and the origin of this glyph. | |||
| * @y: the offset in the Y direction between the origin used for | * @y: the offset in the Y direction between the origin used for | |||
| skipping to change at line 948 | skipping to change at line 1079 | |||
| * (alternates to be used in different contexts, for example), or a | * (alternates to be used in different contexts, for example), or a | |||
| * glyph can be a <firstterm>ligature</firstterm> of multiple | * glyph can be a <firstterm>ligature</firstterm> of multiple | |||
| * characters. Cairo doesn't expose any way of converting input text | * characters. Cairo doesn't expose any way of converting input text | |||
| * into glyphs, so in order to use the Cairo interfaces that take | * into glyphs, so in order to use the Cairo interfaces that take | |||
| * arrays of glyphs, you must directly access the appropriate | * arrays of glyphs, you must directly access the appropriate | |||
| * underlying font system. | * underlying font system. | |||
| * | * | |||
| * Note that the offsets given by @x and @y are not cumulative. When | * Note that the offsets given by @x and @y are not cumulative. When | |||
| * drawing or measuring text, each glyph is individually positioned | * drawing or measuring text, each glyph is individually positioned | |||
| * with respect to the overall origin | * with respect to the overall origin | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct { | typedef struct { | |||
| unsigned long index; | unsigned long index; | |||
| double x; | double x; | |||
| double y; | double y; | |||
| } cairo_glyph_t; | } cairo_glyph_t; | |||
| cairo_public cairo_glyph_t * | cairo_public cairo_glyph_t * | |||
| cairo_glyph_allocate (int num_glyphs); | cairo_glyph_allocate (int num_glyphs); | |||
| skipping to change at line 995 | skipping to change at line 1128 | |||
| cairo_public cairo_text_cluster_t * | cairo_public cairo_text_cluster_t * | |||
| cairo_text_cluster_allocate (int num_clusters); | cairo_text_cluster_allocate (int num_clusters); | |||
| cairo_public void | cairo_public void | |||
| cairo_text_cluster_free (cairo_text_cluster_t *clusters); | cairo_text_cluster_free (cairo_text_cluster_t *clusters); | |||
| /** | /** | |||
| * cairo_text_cluster_flags_t: | * cairo_text_cluster_flags_t: | |||
| * @CAIRO_TEXT_CLUSTER_FLAG_BACKWARD: The clusters in the cluster array | * @CAIRO_TEXT_CLUSTER_FLAG_BACKWARD: The clusters in the cluster array | |||
| * map to glyphs in the glyph array from end to start. | * map to glyphs in the glyph array from end to start. (Since 1.8) | |||
| * | * | |||
| * Specifies properties of a text cluster mapping. | * Specifies properties of a text cluster mapping. | |||
| * | * | |||
| * Since: 1.8 | * Since: 1.8 | |||
| **/ | **/ | |||
| typedef enum _cairo_text_cluster_flags { | typedef enum _cairo_text_cluster_flags { | |||
| CAIRO_TEXT_CLUSTER_FLAG_BACKWARD = 0x00000001 | CAIRO_TEXT_CLUSTER_FLAG_BACKWARD = 0x00000001 | |||
| } cairo_text_cluster_flags_t; | } cairo_text_cluster_flags_t; | |||
| /** | /** | |||
| skipping to change at line 1031 | skipping to change at line 1164 | |||
| * | * | |||
| * The #cairo_text_extents_t structure stores the extents of a single | * The #cairo_text_extents_t structure stores the extents of a single | |||
| * glyph or a string of glyphs in user-space coordinates. Because text | * glyph or a string of glyphs in user-space coordinates. Because text | |||
| * extents are in user-space coordinates, they are mostly, but not | * extents are in user-space coordinates, they are mostly, but not | |||
| * entirely, independent of the current transformation matrix. If you call | * entirely, independent of the current transformation matrix. If you call | |||
| * <literal>cairo_scale(cr, 2.0, 2.0)</literal>, text will | * <literal>cairo_scale(cr, 2.0, 2.0)</literal>, text will | |||
| * be drawn twice as big, but the reported text extents will not be | * 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 | * doubled. They will change slightly due to hinting (so you can't | |||
| * assume that metrics are independent of the transformation matrix), | * assume that metrics are independent of the transformation matrix), | |||
| * but otherwise will remain unchanged. | * but otherwise will remain unchanged. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct { | typedef struct { | |||
| double x_bearing; | double x_bearing; | |||
| double y_bearing; | double y_bearing; | |||
| double width; | double width; | |||
| double height; | double height; | |||
| double x_advance; | double x_advance; | |||
| double y_advance; | double y_advance; | |||
| } cairo_text_extents_t; | } cairo_text_extents_t; | |||
| skipping to change at line 1053 | skipping to change at line 1188 | |||
| * @ascent: the distance that the font extends above the baseline. | * @ascent: the distance that the font extends above the baseline. | |||
| * Note that this is not always exactly equal to the maximum | * Note that this is not always exactly equal to the maximum | |||
| * of the extents of all the glyphs in the font, but rather | * of the extents of all the glyphs in the font, but rather | |||
| * is picked to express the font designer's intent as to | * is picked to express the font designer's intent as to | |||
| * how the font should align with elements above it. | * how the font should align with elements above it. | |||
| * @descent: the distance that the font extends below the baseline. | * @descent: the distance that the font extends below the baseline. | |||
| * This value is positive for typical fonts that include | * This value is positive for typical fonts that include | |||
| * portions below the baseline. Note that this is not always | * portions below the baseline. Note that this is not always | |||
| * exactly equal to the maximum of the extents of all the | * exactly equal to the maximum of the extents of all the | |||
| * glyphs in the font, but rather is picked to express the | * glyphs in the font, but rather is picked to express the | |||
| * font designer's intent as to how the the font should | * font designer's intent as to how the font should | |||
| * align with elements below it. | * align with elements below it. | |||
| * @height: the recommended vertical distance between baselines when | * @height: the recommended vertical distance between baselines when | |||
| * setting consecutive lines of text with the font. This | * setting consecutive lines of text with the font. This | |||
| * is greater than @ascent+@descent by a | * is greater than @ascent+@descent by a | |||
| * quantity known as the <firstterm>line spacing</firstterm> | * quantity known as the <firstterm>line spacing</firstterm> | |||
| * or <firstterm>external leading</firstterm>. When space | * or <firstterm>external leading</firstterm>. When space | |||
| * is at a premium, most fonts can be set with only | * is at a premium, most fonts can be set with only | |||
| * a distance of @ascent+@descent between lines. | * a distance of @ascent+@descent between lines. | |||
| * @max_x_advance: the maximum distance in the X direction that | * @max_x_advance: the maximum distance in the X direction that | |||
| * the the origin is advanced for any glyph in the font. | * the origin is advanced for any glyph in the font. | |||
| * @max_y_advance: the maximum distance in the Y direction that | * @max_y_advance: the maximum distance in the Y direction that | |||
| * the the origin is advanced for any glyph in the font. | * the origin is advanced for any glyph in the font. | |||
| * this will be zero for normal fonts used for horizontal | * This will be zero for normal fonts used for horizontal | |||
| * writing. (The scripts of East Asia are sometimes written | * writing. (The scripts of East Asia are sometimes written | |||
| * vertically.) | * vertically.) | |||
| * | * | |||
| * The #cairo_font_extents_t structure stores metric information for | * The #cairo_font_extents_t structure stores metric information for | |||
| * a font. Values are given in the current user-space coordinate | * a font. Values are given in the current user-space coordinate | |||
| * system. | * system. | |||
| * | * | |||
| * Because font metrics are in user-space coordinates, they are | * Because font metrics are in user-space coordinates, they are | |||
| * mostly, but not entirely, independent of the current transformation | * mostly, but not entirely, independent of the current transformation | |||
| * matrix. If you call <literal>cairo_scale(cr, 2.0, 2.0)</literal>, | * matrix. If you call <literal>cairo_scale(cr, 2.0, 2.0)</literal>, | |||
| * text will be drawn twice as big, but the reported text extents will | * 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 | * not be doubled. They will change slightly due to hinting (so you | |||
| * can't assume that metrics are independent of the transformation | * can't assume that metrics are independent of the transformation | |||
| * matrix), but otherwise will remain unchanged. | * matrix), but otherwise will remain unchanged. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct { | typedef struct { | |||
| double ascent; | double ascent; | |||
| double descent; | double descent; | |||
| double height; | double height; | |||
| double max_x_advance; | double max_x_advance; | |||
| double max_y_advance; | double max_y_advance; | |||
| } cairo_font_extents_t; | } cairo_font_extents_t; | |||
| /** | /** | |||
| * cairo_font_slant_t: | * cairo_font_slant_t: | |||
| * @CAIRO_FONT_SLANT_NORMAL: Upright font style | * @CAIRO_FONT_SLANT_NORMAL: Upright font style, since 1.0 | |||
| * @CAIRO_FONT_SLANT_ITALIC: Italic font style | * @CAIRO_FONT_SLANT_ITALIC: Italic font style, since 1.0 | |||
| * @CAIRO_FONT_SLANT_OBLIQUE: Oblique font style | * @CAIRO_FONT_SLANT_OBLIQUE: Oblique font style, since 1.0 | |||
| * | * | |||
| * Specifies variants of a font face based on their slant. | * Specifies variants of a font face based on their slant. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_font_slant { | typedef enum _cairo_font_slant { | |||
| CAIRO_FONT_SLANT_NORMAL, | CAIRO_FONT_SLANT_NORMAL, | |||
| CAIRO_FONT_SLANT_ITALIC, | CAIRO_FONT_SLANT_ITALIC, | |||
| CAIRO_FONT_SLANT_OBLIQUE | CAIRO_FONT_SLANT_OBLIQUE | |||
| } cairo_font_slant_t; | } cairo_font_slant_t; | |||
| /** | /** | |||
| * cairo_font_weight_t: | * cairo_font_weight_t: | |||
| * @CAIRO_FONT_WEIGHT_NORMAL: Normal font weight | * @CAIRO_FONT_WEIGHT_NORMAL: Normal font weight, since 1.0 | |||
| * @CAIRO_FONT_WEIGHT_BOLD: Bold font weight | * @CAIRO_FONT_WEIGHT_BOLD: Bold font weight, since 1.0 | |||
| * | * | |||
| * Specifies variants of a font face based on their weight. | * Specifies variants of a font face based on their weight. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_font_weight { | typedef enum _cairo_font_weight { | |||
| CAIRO_FONT_WEIGHT_NORMAL, | CAIRO_FONT_WEIGHT_NORMAL, | |||
| CAIRO_FONT_WEIGHT_BOLD | CAIRO_FONT_WEIGHT_BOLD | |||
| } cairo_font_weight_t; | } cairo_font_weight_t; | |||
| /** | /** | |||
| * cairo_subpixel_order_t: | * cairo_subpixel_order_t: | |||
| * @CAIRO_SUBPIXEL_ORDER_DEFAULT: Use the default subpixel order for | * @CAIRO_SUBPIXEL_ORDER_DEFAULT: Use the default subpixel order for | |||
| * for the target device | * for the target device, since 1.0 | |||
| * @CAIRO_SUBPIXEL_ORDER_RGB: Subpixel elements are arranged horizontally | * @CAIRO_SUBPIXEL_ORDER_RGB: Subpixel elements are arranged horizontally | |||
| * with red at the left | * with red at the left, since 1.0 | |||
| * @CAIRO_SUBPIXEL_ORDER_BGR: Subpixel elements are arranged horizontally | * @CAIRO_SUBPIXEL_ORDER_BGR: Subpixel elements are arranged horizontally | |||
| * with blue at the left | * with blue at the left, since 1.0 | |||
| * @CAIRO_SUBPIXEL_ORDER_VRGB: Subpixel elements are arranged vertically | * @CAIRO_SUBPIXEL_ORDER_VRGB: Subpixel elements are arranged vertically | |||
| * with red at the top | * with red at the top, since 1.0 | |||
| * @CAIRO_SUBPIXEL_ORDER_VBGR: Subpixel elements are arranged vertically | * @CAIRO_SUBPIXEL_ORDER_VBGR: Subpixel elements are arranged vertically | |||
| * with blue at the top | * with blue at the top, since 1.0 | |||
| * | * | |||
| * The subpixel order specifies the order of color elements within | * The subpixel order specifies the order of color elements within | |||
| * each pixel on the display device when rendering with an | * each pixel on the display device when rendering with an | |||
| * antialiasing mode of %CAIRO_ANTIALIAS_SUBPIXEL. | * antialiasing mode of %CAIRO_ANTIALIAS_SUBPIXEL. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_subpixel_order { | typedef enum _cairo_subpixel_order { | |||
| CAIRO_SUBPIXEL_ORDER_DEFAULT, | CAIRO_SUBPIXEL_ORDER_DEFAULT, | |||
| CAIRO_SUBPIXEL_ORDER_RGB, | CAIRO_SUBPIXEL_ORDER_RGB, | |||
| CAIRO_SUBPIXEL_ORDER_BGR, | CAIRO_SUBPIXEL_ORDER_BGR, | |||
| CAIRO_SUBPIXEL_ORDER_VRGB, | CAIRO_SUBPIXEL_ORDER_VRGB, | |||
| CAIRO_SUBPIXEL_ORDER_VBGR | CAIRO_SUBPIXEL_ORDER_VBGR | |||
| } cairo_subpixel_order_t; | } cairo_subpixel_order_t; | |||
| /** | /** | |||
| * cairo_hint_style_t: | * cairo_hint_style_t: | |||
| * @CAIRO_HINT_STYLE_DEFAULT: Use the default hint style for | * @CAIRO_HINT_STYLE_DEFAULT: Use the default hint style for | |||
| * font backend and target device | * font backend and target device, since 1.0 | |||
| * @CAIRO_HINT_STYLE_NONE: Do not hint outlines | * @CAIRO_HINT_STYLE_NONE: Do not hint outlines, since 1.0 | |||
| * @CAIRO_HINT_STYLE_SLIGHT: Hint outlines slightly to improve | * @CAIRO_HINT_STYLE_SLIGHT: Hint outlines slightly to improve | |||
| * contrast while retaining good fidelity to the original | * contrast while retaining good fidelity to the original | |||
| * shapes. | * shapes, since 1.0 | |||
| * @CAIRO_HINT_STYLE_MEDIUM: Hint outlines with medium strength | * @CAIRO_HINT_STYLE_MEDIUM: Hint outlines with medium strength | |||
| * giving a compromise between fidelity to the original shapes | * giving a compromise between fidelity to the original shapes | |||
| * and contrast | * and contrast, since 1.0 | |||
| * @CAIRO_HINT_STYLE_FULL: Hint outlines to maximize contrast | * @CAIRO_HINT_STYLE_FULL: Hint outlines to maximize contrast, since 1.0 | |||
| * | * | |||
| * Specifies the type of hinting to do on font outlines. Hinting | * Specifies the type of hinting to do on font outlines. Hinting | |||
| * is the process of fitting outlines to the pixel grid in order | * is the process of fitting outlines to the pixel grid in order | |||
| * to improve the appearance of the result. Since hinting outlines | * to improve the appearance of the result. Since hinting outlines | |||
| * involves distorting them, it also reduces the faithfulness | * involves distorting them, it also reduces the faithfulness | |||
| * to the original outline shapes. Not all of the outline hinting | * to the original outline shapes. Not all of the outline hinting | |||
| * styles are supported by all font backends. | * styles are supported by all font backends. | |||
| * | * | |||
| * New entries may be added in future versions. | * New entries may be added in future versions. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_hint_style { | typedef enum _cairo_hint_style { | |||
| CAIRO_HINT_STYLE_DEFAULT, | CAIRO_HINT_STYLE_DEFAULT, | |||
| CAIRO_HINT_STYLE_NONE, | CAIRO_HINT_STYLE_NONE, | |||
| CAIRO_HINT_STYLE_SLIGHT, | CAIRO_HINT_STYLE_SLIGHT, | |||
| CAIRO_HINT_STYLE_MEDIUM, | CAIRO_HINT_STYLE_MEDIUM, | |||
| CAIRO_HINT_STYLE_FULL | CAIRO_HINT_STYLE_FULL | |||
| } cairo_hint_style_t; | } cairo_hint_style_t; | |||
| /** | /** | |||
| * cairo_hint_metrics_t: | * cairo_hint_metrics_t: | |||
| * @CAIRO_HINT_METRICS_DEFAULT: Hint metrics in the default | * @CAIRO_HINT_METRICS_DEFAULT: Hint metrics in the default | |||
| * manner for the font backend and target device | * manner for the font backend and target device, since 1.0 | |||
| * @CAIRO_HINT_METRICS_OFF: Do not hint font metrics | * @CAIRO_HINT_METRICS_OFF: Do not hint font metrics, since 1.0 | |||
| * @CAIRO_HINT_METRICS_ON: Hint font metrics | * @CAIRO_HINT_METRICS_ON: Hint font metrics, since 1.0 | |||
| * | * | |||
| * Specifies whether to hint font metrics; hinting font metrics | * Specifies whether to hint font metrics; hinting font metrics | |||
| * means quantizing them so that they are integer values in | * means quantizing them so that they are integer values in | |||
| * device space. Doing this improves the consistency of | * device space. Doing this improves the consistency of | |||
| * letter and line spacing, however it also means that text | * letter and line spacing, however it also means that text | |||
| * will be laid out differently at different zoom factors. | * will be laid out differently at different zoom factors. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_hint_metrics { | typedef enum _cairo_hint_metrics { | |||
| CAIRO_HINT_METRICS_DEFAULT, | CAIRO_HINT_METRICS_DEFAULT, | |||
| CAIRO_HINT_METRICS_OFF, | CAIRO_HINT_METRICS_OFF, | |||
| CAIRO_HINT_METRICS_ON | CAIRO_HINT_METRICS_ON | |||
| } cairo_hint_metrics_t; | } cairo_hint_metrics_t; | |||
| /** | /** | |||
| * cairo_font_options_t: | * cairo_font_options_t: | |||
| * | * | |||
| * An opaque structure holding all options that are used when | * An opaque structure holding all options that are used when | |||
| * rendering fonts. | * rendering fonts. | |||
| * | * | |||
| * Individual features of a #cairo_font_options_t can be set or | * Individual features of a #cairo_font_options_t can be set or | |||
| * accessed using functions named | * accessed using functions named | |||
| * cairo_font_options_set_<emphasis>feature_name</emphasis> and | * <function>cairo_font_options_set_<emphasis>feature_name</emphasis>()</fu | |||
| * cairo_font_options_get_<emphasis>feature_name</emphasis>, like | nction> and | |||
| * <function>cairo_font_options_get_<emphasis>feature_name</emphasis>()</fu | ||||
| nction>, like | ||||
| * cairo_font_options_set_antialias() and | * cairo_font_options_set_antialias() and | |||
| * cairo_font_options_get_antialias(). | * cairo_font_options_get_antialias(). | |||
| * | * | |||
| * New features may be added to a #cairo_font_options_t in the | * New features may be added to a #cairo_font_options_t in the | |||
| * future. For this reason, cairo_font_options_copy(), | * future. For this reason, cairo_font_options_copy(), | |||
| * cairo_font_options_equal(), cairo_font_options_merge(), and | * cairo_font_options_equal(), cairo_font_options_merge(), and | |||
| * cairo_font_options_hash() should be used to copy, check | * cairo_font_options_hash() should be used to copy, check | |||
| * for equality, merge, or compute a hash value of | * for equality, merge, or compute a hash value of | |||
| * #cairo_font_options_t objects. | * #cairo_font_options_t objects. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct _cairo_font_options cairo_font_options_t; | typedef struct _cairo_font_options cairo_font_options_t; | |||
| cairo_public cairo_font_options_t * | cairo_public cairo_font_options_t * | |||
| cairo_font_options_create (void); | cairo_font_options_create (void); | |||
| cairo_public cairo_font_options_t * | cairo_public cairo_font_options_t * | |||
| cairo_font_options_copy (const cairo_font_options_t *original); | cairo_font_options_copy (const cairo_font_options_t *original); | |||
| cairo_public void | cairo_public void | |||
| skipping to change at line 1352 | skipping to change at line 1501 | |||
| cairo_font_face_destroy (cairo_font_face_t *font_face); | cairo_font_face_destroy (cairo_font_face_t *font_face); | |||
| cairo_public unsigned int | cairo_public unsigned int | |||
| cairo_font_face_get_reference_count (cairo_font_face_t *font_face); | cairo_font_face_get_reference_count (cairo_font_face_t *font_face); | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_font_face_status (cairo_font_face_t *font_face); | cairo_font_face_status (cairo_font_face_t *font_face); | |||
| /** | /** | |||
| * cairo_font_type_t: | * cairo_font_type_t: | |||
| * @CAIRO_FONT_TYPE_TOY: The font was created using cairo's toy font api | * @CAIRO_FONT_TYPE_TOY: The font was created using cairo's toy font api (S | |||
| * @CAIRO_FONT_TYPE_FT: The font is of type FreeType | ince: 1.2) | |||
| * @CAIRO_FONT_TYPE_WIN32: The font is of type Win32 | * @CAIRO_FONT_TYPE_FT: The font is of type FreeType (Since: 1.2) | |||
| * @CAIRO_FONT_TYPE_QUARTZ: The font is of type Quartz (Since: 1.6) | * @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) | * @CAIRO_FONT_TYPE_USER: The font was create using cairo's user font api ( Since: 1.8) | |||
| * | * | |||
| * #cairo_font_type_t is used to describe the type of a given font | * #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 | * face or scaled font. The font types are also known as "font | |||
| * backends" within cairo. | * backends" within cairo. | |||
| * | * | |||
| * The type of a font face is determined by the function used to | * The type of a font face is determined by the function used to | |||
| * create it, which will generally be of the form | * create it, which will generally be of the form | |||
| * cairo_<emphasis>type</emphasis>_font_face_create(). The font face type c | * <function>cairo_<emphasis>type</emphasis>_font_face_create(<!-- -->)</fu | |||
| an be queried | nction>. | |||
| * with cairo_font_face_get_type() | * 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 | * The various #cairo_font_face_t functions can be used with a font face | |||
| * of any type. | * of any type. | |||
| * | * | |||
| * The type of a scaled font is determined by the type of the font | * 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 | * face passed to cairo_scaled_font_create(). The scaled font type can | |||
| * be queried with cairo_scaled_font_get_type() | * be queried with cairo_scaled_font_get_type() | |||
| * | * | |||
| * The various #cairo_scaled_font_t functions can be used with scaled | * The various #cairo_scaled_font_t functions can be used with scaled | |||
| * fonts of any type, but some font backends also provide | * fonts of any type, but some font backends also provide | |||
| * type-specific functions that must only be called with a scaled font | * type-specific functions that must only be called with a scaled font | |||
| * of the appropriate type. These functions have names that begin with | * of the appropriate type. These functions have names that begin with | |||
| * cairo_<emphasis>type</emphasis>_scaled_font() such as cairo_ft_scaled_fo | * <function>cairo_<emphasis>type</emphasis>_scaled_font(<!-- -->)</functio | |||
| nt_lock_face(). | n> | |||
| * such as cairo_ft_scaled_font_lock_face(). | ||||
| * | * | |||
| * The behavior of calling a type-specific function with a scaled font | * The behavior of calling a type-specific function with a scaled font | |||
| * of the wrong type is undefined. | * of the wrong type is undefined. | |||
| * | * | |||
| * New entries may be added in future versions. | * New entries may be added in future versions. | |||
| * | * | |||
| * Since: 1.2 | * Since: 1.2 | |||
| **/ | **/ | |||
| typedef enum _cairo_font_type { | typedef enum _cairo_font_type { | |||
| CAIRO_FONT_TYPE_TOY, | CAIRO_FONT_TYPE_TOY, | |||
| skipping to change at line 1622 | skipping to change at line 1773 | |||
| * as well as complex <firstterm>shaping</firstterm> required for scripts l ike | * as well as complex <firstterm>shaping</firstterm> required for scripts l ike | |||
| * Arabic and Indic. | * Arabic and Indic. | |||
| * | * | |||
| * The @num_glyphs argument is preset to the number of glyph entries availa ble | * The @num_glyphs argument is preset to the number of glyph entries availa ble | |||
| * in the @glyphs buffer. If the @glyphs buffer is %NULL, the value of | * 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 | * @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 | * the conversion (or for convenience), a new glyph array may be allocated | |||
| * using cairo_glyph_allocate() and placed in @glyphs. Upon return, | * using cairo_glyph_allocate() and placed in @glyphs. Upon return, | |||
| * @num_glyphs should contain the number of generated glyphs. If the value | * @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 | * @glyphs points at has changed after the call, the caller will free the | |||
| * allocated glyph array using cairo_glyph_free(). | * allocated glyph array using cairo_glyph_free(). The caller will also fr | |||
| ee | ||||
| * the original value of @glyphs, so the callback shouldn't do so. | ||||
| * The callback should populate the glyph indices and positions (in font sp ace) | * The callback should populate the glyph indices and positions (in font sp ace) | |||
| * assuming that the text is to be shown at the origin. | * assuming that the text is to be shown at the origin. | |||
| * | * | |||
| * If @clusters is not %NULL, @num_clusters and @cluster_flags are also | * If @clusters is not %NULL, @num_clusters and @cluster_flags are also | |||
| * non-%NULL, and cluster mapping should be computed. The semantics of how | * non-%NULL, and cluster mapping should be computed. The semantics of how | |||
| * cluster array allocation works is similar to the glyph array. That is, | * 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 us ed | * if @clusters initially points to a non-%NULL value, that array may be us ed | |||
| * as a cluster buffer, and @num_clusters points to the number of cluster | * 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 | * entries available there. If the provided cluster array is too short for | |||
| * the conversion (or for convenience), a new cluster array may be allocate d | * the conversion (or for convenience), a new cluster array may be allocate d | |||
| * using cairo_text_cluster_allocate() and placed in @clusters. Upon retur | * using cairo_text_cluster_allocate() and placed in @clusters. In this ca | |||
| n, | se, | |||
| * @num_clusters should contain the number of generated clusters. | * 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 | * If the value @clusters points at has changed after the call, the caller | |||
| * will free the allocated cluster array using cairo_text_cluster_free(). | * will free the allocated cluster array using cairo_text_cluster_free(). | |||
| * | * | |||
| * The callback is optional. If @num_glyphs is negative upon | * The callback is optional. If @num_glyphs is negative upon | |||
| * the callback returning or if the return value | * the callback returning or if the return value | |||
| * is %CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, the unicode_to_glyph callbac k | * is %CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, the unicode_to_glyph callbac k | |||
| * is tried. See #cairo_user_scaled_font_unicode_to_glyph_func_t. | * is tried. See #cairo_user_scaled_font_unicode_to_glyph_func_t. | |||
| * | * | |||
| * Note: While cairo does not impose any limitation on glyph indices, | * Note: While cairo does not impose any limitation on glyph indices, | |||
| * some applications may assume that a glyph index fits in a 16-bit | * some applications may assume that a glyph index fits in a 16-bit | |||
| skipping to change at line 1792 | skipping to change at line 1945 | |||
| cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix); | cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix); | |||
| cairo_public cairo_surface_t * | cairo_public cairo_surface_t * | |||
| cairo_get_target (cairo_t *cr); | cairo_get_target (cairo_t *cr); | |||
| cairo_public cairo_surface_t * | cairo_public cairo_surface_t * | |||
| cairo_get_group_target (cairo_t *cr); | cairo_get_group_target (cairo_t *cr); | |||
| /** | /** | |||
| * cairo_path_data_type_t: | * cairo_path_data_type_t: | |||
| * @CAIRO_PATH_MOVE_TO: A move-to operation | * @CAIRO_PATH_MOVE_TO: A move-to operation, since 1.0 | |||
| * @CAIRO_PATH_LINE_TO: A line-to operation | * @CAIRO_PATH_LINE_TO: A line-to operation, since 1.0 | |||
| * @CAIRO_PATH_CURVE_TO: A curve-to operation | * @CAIRO_PATH_CURVE_TO: A curve-to operation, since 1.0 | |||
| * @CAIRO_PATH_CLOSE_PATH: A close-path operation | * @CAIRO_PATH_CLOSE_PATH: A close-path operation, since 1.0 | |||
| * | * | |||
| * #cairo_path_data_t is used to describe the type of one portion | * #cairo_path_data_t is used to describe the type of one portion | |||
| * of a path when represented as a #cairo_path_t. | * of a path when represented as a #cairo_path_t. | |||
| * See #cairo_path_data_t for details. | * See #cairo_path_data_t for details. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_path_data_type { | typedef enum _cairo_path_data_type { | |||
| CAIRO_PATH_MOVE_TO, | CAIRO_PATH_MOVE_TO, | |||
| CAIRO_PATH_LINE_TO, | CAIRO_PATH_LINE_TO, | |||
| CAIRO_PATH_CURVE_TO, | CAIRO_PATH_CURVE_TO, | |||
| CAIRO_PATH_CLOSE_PATH | CAIRO_PATH_CLOSE_PATH | |||
| } cairo_path_data_type_t; | } cairo_path_data_type_t; | |||
| /** | /** | |||
| * cairo_path_data_t: | * cairo_path_data_t: | |||
| skipping to change at line 1873 | skipping to change at line 2028 | |||
| * cairo_path_destroy (path); | * cairo_path_destroy (path); | |||
| * </programlisting></informalexample> | * </programlisting></informalexample> | |||
| * | * | |||
| * As of cairo 1.4, cairo does not mind if there are more elements in | * 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 | * 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 | * users of the cairo API to hold extra values in the path data | |||
| * structure. For this reason, it is recommended that applications | * structure. For this reason, it is recommended that applications | |||
| * always use <literal>data->header.length</literal> to | * always use <literal>data->header.length</literal> to | |||
| * iterate over the path data, instead of hardcoding the number of | * iterate over the path data, instead of hardcoding the number of | |||
| * elements for each element type. | * elements for each element type. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef union _cairo_path_data_t cairo_path_data_t; | typedef union _cairo_path_data_t cairo_path_data_t; | |||
| union _cairo_path_data_t { | union _cairo_path_data_t { | |||
| struct { | struct { | |||
| cairo_path_data_type_t type; | cairo_path_data_type_t type; | |||
| int length; | int length; | |||
| } header; | } header; | |||
| struct { | struct { | |||
| double x, y; | double x, y; | |||
| } point; | } point; | |||
| skipping to change at line 1903 | skipping to change at line 2060 | |||
| * cairo_copy_path_flat() as well the input value for | * cairo_copy_path_flat() as well the input value for | |||
| * cairo_append_path(). | * cairo_append_path(). | |||
| * | * | |||
| * See #cairo_path_data_t for hints on how to iterate over the | * See #cairo_path_data_t for hints on how to iterate over the | |||
| * actual data within the path. | * actual data within the path. | |||
| * | * | |||
| * The num_data member gives the number of elements in the data | * The num_data member gives the number of elements in the data | |||
| * array. This number is larger than the number of independent path | * array. This number is larger than the number of independent path | |||
| * portions (defined in #cairo_path_data_type_t), since the data | * portions (defined in #cairo_path_data_type_t), since the data | |||
| * includes both headers and coordinates for each portion. | * includes both headers and coordinates for each portion. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef struct cairo_path { | typedef struct cairo_path { | |||
| cairo_status_t status; | cairo_status_t status; | |||
| cairo_path_data_t *data; | cairo_path_data_t *data; | |||
| int num_data; | int num_data; | |||
| } cairo_path_t; | } cairo_path_t; | |||
| cairo_public cairo_path_t * | cairo_public cairo_path_t * | |||
| cairo_copy_path (cairo_t *cr); | cairo_copy_path (cairo_t *cr); | |||
| skipping to change at line 1938 | skipping to change at line 2097 | |||
| cairo_public const char * | cairo_public const char * | |||
| cairo_status_to_string (cairo_status_t status); | cairo_status_to_string (cairo_status_t status); | |||
| /* Backend device manipulation */ | /* Backend device manipulation */ | |||
| cairo_public cairo_device_t * | cairo_public cairo_device_t * | |||
| cairo_device_reference (cairo_device_t *device); | cairo_device_reference (cairo_device_t *device); | |||
| /** | /** | |||
| * cairo_device_type_t: | * cairo_device_type_t: | |||
| * @CAIRO_DEVICE_TYPE_DRM: The surface is of type Direct Render Manager | * @CAIRO_DEVICE_TYPE_DRM: The device is of type Direct Render Manager, sin | |||
| * @CAIRO_DEVICE_TYPE_GL: The surface is of type OpenGL | ce 1.10 | |||
| * @CAIRO_DEVICE_TYPE_SCRIPT: The surface is of type script | * @CAIRO_DEVICE_TYPE_GL: The device is of type OpenGL, since 1.10 | |||
| * @CAIRO_DEVICE_TYPE_XCB: The surface is of type xcb | * @CAIRO_DEVICE_TYPE_SCRIPT: The device is of type script, since 1.10 | |||
| * @CAIRO_DEVICE_TYPE_XLIB: The surface is of type xlib | * @CAIRO_DEVICE_TYPE_XCB: The device is of type xcb, since 1.10 | |||
| * @CAIRO_DEVICE_TYPE_XML: The surface is of type XML | * @CAIRO_DEVICE_TYPE_XLIB: The device is of type xlib, since 1.10 | |||
| * cairo_surface_create_for_rectangle() | * @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 | ||||
| * | * | |||
| * #cairo_device_type_t is used to describe the type of a given | * #cairo_device_type_t is used to describe the type of a given | |||
| * device. The devices types are also known as "backends" within cairo. | * device. The devices types are also known as "backends" within cairo. | |||
| * | * | |||
| * The device type can be queried with cairo_device_get_type() | * The device type can be queried with cairo_device_get_type() | |||
| * | * | |||
| * The various #cairo_device_t functions can be used with surfaces of | * The various #cairo_device_t functions can be used with devices of | |||
| * any type, but some backends also provide type-specific functions | * any type, but some backends also provide type-specific functions | |||
| * that must only be called with a device of the appropriate | * that must only be called with a device of the appropriate | |||
| * type. These functions have names that begin with | * type. These functions have names that begin with | |||
| * cairo_<emphasis>type</emphasis>_device<!-- --> such as cairo_xcb_device_ | * <literal>cairo_<emphasis>type</emphasis>_device</literal> such as | |||
| debug_set_render_version(). | * cairo_xcb_device_debug_cap_xrender_version(). | |||
| * | * | |||
| * The behavior of calling a type-specific function with a surface of | * The behavior of calling a type-specific function with a device of | |||
| * the wrong type is undefined. | * the wrong type is undefined. | |||
| * | * | |||
| * New entries may be added in future versions. | * New entries may be added in future versions. | |||
| * | * | |||
| * Since: 1.10 | * Since: 1.10 | |||
| **/ | **/ | |||
| typedef enum _cairo_device_type { | typedef enum _cairo_device_type { | |||
| CAIRO_DEVICE_TYPE_DRM, | CAIRO_DEVICE_TYPE_DRM, | |||
| CAIRO_DEVICE_TYPE_GL, | CAIRO_DEVICE_TYPE_GL, | |||
| CAIRO_DEVICE_TYPE_SCRIPT, | CAIRO_DEVICE_TYPE_SCRIPT, | |||
| CAIRO_DEVICE_TYPE_XCB, | CAIRO_DEVICE_TYPE_XCB, | |||
| CAIRO_DEVICE_TYPE_XLIB, | CAIRO_DEVICE_TYPE_XLIB, | |||
| CAIRO_DEVICE_TYPE_XML | CAIRO_DEVICE_TYPE_XML, | |||
| CAIRO_DEVICE_TYPE_COGL, | ||||
| CAIRO_DEVICE_TYPE_WIN32, | ||||
| CAIRO_DEVICE_TYPE_INVALID = -1 | ||||
| } cairo_device_type_t; | } cairo_device_type_t; | |||
| cairo_public cairo_device_type_t | cairo_public cairo_device_type_t | |||
| cairo_device_get_type (cairo_device_t *device); | cairo_device_get_type (cairo_device_t *device); | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_device_status (cairo_device_t *device); | cairo_device_status (cairo_device_t *device); | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_device_acquire (cairo_device_t *device); | cairo_device_acquire (cairo_device_t *device); | |||
| skipping to change at line 2016 | skipping to change at line 2182 | |||
| /* Surface manipulation */ | /* Surface manipulation */ | |||
| cairo_public cairo_surface_t * | cairo_public cairo_surface_t * | |||
| cairo_surface_create_similar (cairo_surface_t *other, | cairo_surface_create_similar (cairo_surface_t *other, | |||
| cairo_content_t content, | cairo_content_t content, | |||
| int width, | int width, | |||
| int height); | int height); | |||
| cairo_public cairo_surface_t * | cairo_public cairo_surface_t * | |||
| cairo_surface_create_similar_image (cairo_surface_t *other, | ||||
| cairo_format_t format, | ||||
| int width, | ||||
| int height); | ||||
| cairo_public cairo_surface_t * | ||||
| cairo_surface_map_to_image (cairo_surface_t *surface, | ||||
| const cairo_rectangle_int_t *extents); | ||||
| cairo_public void | ||||
| cairo_surface_unmap_image (cairo_surface_t *surface, | ||||
| cairo_surface_t *image); | ||||
| cairo_public cairo_surface_t * | ||||
| cairo_surface_create_for_rectangle (cairo_surface_t *target, | cairo_surface_create_for_rectangle (cairo_surface_t *target, | |||
| double x, | double x, | |||
| double y, | double y, | |||
| double width, | double width, | |||
| double height); | double height); | |||
| typedef enum { | ||||
| CAIRO_SURFACE_OBSERVER_NORMAL = 0, | ||||
| CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS = 0x1 | ||||
| } cairo_surface_observer_mode_t; | ||||
| cairo_public cairo_surface_t * | ||||
| cairo_surface_create_observer (cairo_surface_t *target, | ||||
| cairo_surface_observer_mode_t mode); | ||||
| typedef void (*cairo_surface_observer_callback_t) (cairo_surface_t *observe | ||||
| r, | ||||
| cairo_surface_t *target, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_add_paint_callback (cairo_surface_t *abstract_surfac | ||||
| e, | ||||
| cairo_surface_observer_callback_t | ||||
| func, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_add_mask_callback (cairo_surface_t *abstract_surface | ||||
| , | ||||
| cairo_surface_observer_callback_t | ||||
| func, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_add_fill_callback (cairo_surface_t *abstract_surface | ||||
| , | ||||
| cairo_surface_observer_callback_t | ||||
| func, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_add_stroke_callback (cairo_surface_t *abstract_surfa | ||||
| ce, | ||||
| cairo_surface_observer_callback_ | ||||
| t func, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_add_glyphs_callback (cairo_surface_t *abstract_surfa | ||||
| ce, | ||||
| cairo_surface_observer_callback_ | ||||
| t func, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_add_flush_callback (cairo_surface_t *abstract_surfac | ||||
| e, | ||||
| cairo_surface_observer_callback_t | ||||
| func, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_add_finish_callback (cairo_surface_t *abstract_surfa | ||||
| ce, | ||||
| cairo_surface_observer_callback_ | ||||
| t func, | ||||
| void *data); | ||||
| cairo_public cairo_status_t | ||||
| cairo_surface_observer_print (cairo_surface_t *surface, | ||||
| cairo_write_func_t write_func, | ||||
| void *closure); | ||||
| cairo_public double | ||||
| cairo_surface_observer_elapsed (cairo_surface_t *surface); | ||||
| cairo_public cairo_status_t | ||||
| cairo_device_observer_print (cairo_device_t *device, | ||||
| cairo_write_func_t write_func, | ||||
| void *closure); | ||||
| cairo_public double | ||||
| cairo_device_observer_elapsed (cairo_device_t *device); | ||||
| cairo_public double | ||||
| cairo_device_observer_paint_elapsed (cairo_device_t *device); | ||||
| cairo_public double | ||||
| cairo_device_observer_mask_elapsed (cairo_device_t *device); | ||||
| cairo_public double | ||||
| cairo_device_observer_fill_elapsed (cairo_device_t *device); | ||||
| cairo_public double | ||||
| cairo_device_observer_stroke_elapsed (cairo_device_t *device); | ||||
| cairo_public double | ||||
| cairo_device_observer_glyphs_elapsed (cairo_device_t *device); | ||||
| cairo_public cairo_surface_t * | cairo_public cairo_surface_t * | |||
| cairo_surface_reference (cairo_surface_t *surface); | cairo_surface_reference (cairo_surface_t *surface); | |||
| cairo_public void | cairo_public void | |||
| cairo_surface_finish (cairo_surface_t *surface); | cairo_surface_finish (cairo_surface_t *surface); | |||
| cairo_public void | cairo_public void | |||
| cairo_surface_destroy (cairo_surface_t *surface); | cairo_surface_destroy (cairo_surface_t *surface); | |||
| cairo_public cairo_device_t * | cairo_public cairo_device_t * | |||
| cairo_surface_get_device (cairo_surface_t *surface); | cairo_surface_get_device (cairo_surface_t *surface); | |||
| cairo_public unsigned int | cairo_public unsigned int | |||
| cairo_surface_get_reference_count (cairo_surface_t *surface); | cairo_surface_get_reference_count (cairo_surface_t *surface); | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_surface_status (cairo_surface_t *surface); | cairo_surface_status (cairo_surface_t *surface); | |||
| /** | /** | |||
| * cairo_surface_type_t: | * cairo_surface_type_t: | |||
| * @CAIRO_SURFACE_TYPE_IMAGE: The surface is of type image | * @CAIRO_SURFACE_TYPE_IMAGE: The surface is of type image, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_PDF: The surface is of type pdf | * @CAIRO_SURFACE_TYPE_PDF: The surface is of type pdf, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_PS: The surface is of type ps | * @CAIRO_SURFACE_TYPE_PS: The surface is of type ps, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_XLIB: The surface is of type xlib | * @CAIRO_SURFACE_TYPE_XLIB: The surface is of type xlib, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_XCB: The surface is of type xcb | * @CAIRO_SURFACE_TYPE_XCB: The surface is of type xcb, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_GLITZ: The surface is of type glitz | * @CAIRO_SURFACE_TYPE_GLITZ: The surface is of type glitz, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_QUARTZ: The surface is of type quartz | * @CAIRO_SURFACE_TYPE_QUARTZ: The surface is of type quartz, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_WIN32: The surface is of type win32 | * @CAIRO_SURFACE_TYPE_WIN32: The surface is of type win32, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_BEOS: The surface is of type beos | * @CAIRO_SURFACE_TYPE_BEOS: The surface is of type beos, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb | * @CAIRO_SURFACE_TYPE_DIRECTFB: The surface is of type directfb, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_SVG: The surface is of type svg | * @CAIRO_SURFACE_TYPE_SVG: The surface is of type svg, since 1.2 | |||
| * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2 | * @CAIRO_SURFACE_TYPE_OS2: The surface is of type os2, since 1.4 | |||
| * @CAIRO_SURFACE_TYPE_WIN32_PRINTING: The surface is a win32 printing surf | * @CAIRO_SURFACE_TYPE_WIN32_PRINTING: The surface is a win32 printing surf | |||
| ace | ace, since 1.6 | |||
| * @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image | * @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image, s | |||
| ince 1.6 | ||||
| * @CAIRO_SURFACE_TYPE_SCRIPT: The surface is of type script, since 1.10 | * @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_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_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_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_GL: The surface is of type OpenGL, since 1.10 | |||
| * @CAIRO_SURFACE_TYPE_DRM: The surface is of type Direct Render Manager, s ince 1.10 | * @CAIRO_SURFACE_TYPE_DRM: The surface is of type Direct Render Manager, s ince 1.10 | |||
| * @CAIRO_SURFACE_TYPE_TEE: The surface is of type 'tee' (a multiplexing su rface), since 1.10 | * @CAIRO_SURFACE_TYPE_TEE: The surface is of type 'tee' (a multiplexing su rface), since 1.10 | |||
| * @CAIRO_SURFACE_TYPE_XML: The surface is of type XML (for debugging), sin ce 1.10 | * @CAIRO_SURFACE_TYPE_XML: The surface is of type XML (for debugging), sin ce 1.10 | |||
| * @CAIRO_SURFACE_TYPE_SKIA: The surface is of type Skia, since 1.10 | * @CAIRO_SURFACE_TYPE_SKIA: The surface is of type Skia, since 1.10 | |||
| * @CAIRO_SURFACE_TYPE_SUBSURFACE: The surface is a subsurface created with | * @CAIRO_SURFACE_TYPE_SUBSURFACE: The surface is a subsurface created with | |||
| * cairo_surface_create_for_rectangle(), since 1.10 | * cairo_surface_create_for_rectangle(), since 1.10 | |||
| * @CAIRO_SURFACE_TYPE_COGL: This surface is of type Cogl, since 1.12 | ||||
| * | * | |||
| * #cairo_surface_type_t is used to describe the type of a given | * #cairo_surface_type_t is used to describe the type of a given | |||
| * surface. The surface types are also known as "backends" or "surface | * surface. The surface types are also known as "backends" or "surface | |||
| * backends" within cairo. | * backends" within cairo. | |||
| * | * | |||
| * The type of a surface is determined by the function used to create | * The type of a surface is determined by the function used to create | |||
| * it, which will generally be of the form cairo_<emphasis>type</emphasis>_ | * it, which will generally be of the form | |||
| surface_create(), | * <function>cairo_<emphasis>type</emphasis>_surface_create(<!-- -->)</func | |||
| tion>, | ||||
| * (though see cairo_surface_create_similar() as well). | * (though see cairo_surface_create_similar() as well). | |||
| * | * | |||
| * The surface type can be queried with cairo_surface_get_type() | * The surface type can be queried with cairo_surface_get_type() | |||
| * | * | |||
| * The various #cairo_surface_t functions can be used with surfaces of | * The various #cairo_surface_t functions can be used with surfaces of | |||
| * any type, but some backends also provide type-specific functions | * any type, but some backends also provide type-specific functions | |||
| * that must only be called with a surface of the appropriate | * that must only be called with a surface of the appropriate | |||
| * type. These functions have names that begin with | * type. These functions have names that begin with | |||
| * cairo_<emphasis>type</emphasis>_surface<!-- --> such as cairo_image_surf ace_get_width(). | * <literal>cairo_<emphasis>type</emphasis>_surface</literal> such as cairo _image_surface_get_width(). | |||
| * | * | |||
| * The behavior of calling a type-specific function with a surface of | * The behavior of calling a type-specific function with a surface of | |||
| * the wrong type is undefined. | * the wrong type is undefined. | |||
| * | * | |||
| * New entries may be added in future versions. | * New entries may be added in future versions. | |||
| * | * | |||
| * Since: 1.2 | * Since: 1.2 | |||
| **/ | **/ | |||
| typedef enum _cairo_surface_type { | typedef enum _cairo_surface_type { | |||
| CAIRO_SURFACE_TYPE_IMAGE, | CAIRO_SURFACE_TYPE_IMAGE, | |||
| skipping to change at line 2115 | skipping to change at line 2375 | |||
| CAIRO_SURFACE_TYPE_QUARTZ_IMAGE, | CAIRO_SURFACE_TYPE_QUARTZ_IMAGE, | |||
| CAIRO_SURFACE_TYPE_SCRIPT, | CAIRO_SURFACE_TYPE_SCRIPT, | |||
| CAIRO_SURFACE_TYPE_QT, | CAIRO_SURFACE_TYPE_QT, | |||
| CAIRO_SURFACE_TYPE_RECORDING, | CAIRO_SURFACE_TYPE_RECORDING, | |||
| CAIRO_SURFACE_TYPE_VG, | CAIRO_SURFACE_TYPE_VG, | |||
| CAIRO_SURFACE_TYPE_GL, | CAIRO_SURFACE_TYPE_GL, | |||
| CAIRO_SURFACE_TYPE_DRM, | CAIRO_SURFACE_TYPE_DRM, | |||
| CAIRO_SURFACE_TYPE_TEE, | CAIRO_SURFACE_TYPE_TEE, | |||
| CAIRO_SURFACE_TYPE_XML, | CAIRO_SURFACE_TYPE_XML, | |||
| CAIRO_SURFACE_TYPE_SKIA, | CAIRO_SURFACE_TYPE_SKIA, | |||
| CAIRO_SURFACE_TYPE_SUBSURFACE | CAIRO_SURFACE_TYPE_SUBSURFACE, | |||
| CAIRO_SURFACE_TYPE_COGL | ||||
| } cairo_surface_type_t; | } cairo_surface_type_t; | |||
| cairo_public cairo_surface_type_t | cairo_public cairo_surface_type_t | |||
| cairo_surface_get_type (cairo_surface_t *surface); | cairo_surface_get_type (cairo_surface_t *surface); | |||
| cairo_public cairo_content_t | cairo_public cairo_content_t | |||
| cairo_surface_get_content (cairo_surface_t *surface); | cairo_surface_get_content (cairo_surface_t *surface); | |||
| #if CAIRO_HAS_PNG_FUNCTIONS | #if CAIRO_HAS_PNG_FUNCTIONS | |||
| skipping to change at line 2151 | skipping to change at line 2412 | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_surface_set_user_data (cairo_surface_t *surface, | cairo_surface_set_user_data (cairo_surface_t *surface, | |||
| const cairo_user_data_key_t *key, | const cairo_user_data_key_t *key, | |||
| void *user_data, | void *user_data, | |||
| cairo_destroy_func_t destroy); | cairo_destroy_func_t destroy); | |||
| #define CAIRO_MIME_TYPE_JPEG "image/jpeg" | #define CAIRO_MIME_TYPE_JPEG "image/jpeg" | |||
| #define CAIRO_MIME_TYPE_PNG "image/png" | #define CAIRO_MIME_TYPE_PNG "image/png" | |||
| #define CAIRO_MIME_TYPE_JP2 "image/jp2" | #define CAIRO_MIME_TYPE_JP2 "image/jp2" | |||
| #define CAIRO_MIME_TYPE_URI "text/x-uri" | #define CAIRO_MIME_TYPE_URI "text/x-uri" | |||
| #define CAIRO_MIME_TYPE_UNIQUE_ID "application/x-cairo.uuid" | ||||
| cairo_public void | cairo_public void | |||
| cairo_surface_get_mime_data (cairo_surface_t *surface, | cairo_surface_get_mime_data (cairo_surface_t *surface, | |||
| const char *mime_type, | const char *mime_type, | |||
| const unsigned char **data, | const unsigned char **data, | |||
| unsigned long *length); | unsigned long *length); | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_surface_set_mime_data (cairo_surface_t *surface, | cairo_surface_set_mime_data (cairo_surface_t *surface, | |||
| const char *mime_type, | const char *mime_type, | |||
| const unsigned char *data, | const unsigned char *data, | |||
| unsigned long length, | unsigned long length, | |||
| cairo_destroy_func_t destroy, | cairo_destroy_func_t destroy, | |||
| void *closure); | void *closure); | |||
| cairo_public cairo_bool_t | ||||
| cairo_surface_supports_mime_type (cairo_surface_t *surface, | ||||
| const char *mime_type); | ||||
| cairo_public void | cairo_public void | |||
| cairo_surface_get_font_options (cairo_surface_t *surface, | cairo_surface_get_font_options (cairo_surface_t *surface, | |||
| cairo_font_options_t *options); | cairo_font_options_t *options); | |||
| cairo_public void | cairo_public void | |||
| cairo_surface_flush (cairo_surface_t *surface); | cairo_surface_flush (cairo_surface_t *surface); | |||
| cairo_public void | cairo_public void | |||
| cairo_surface_mark_dirty (cairo_surface_t *surface); | cairo_surface_mark_dirty (cairo_surface_t *surface); | |||
| skipping to change at line 2214 | skipping to change at line 2480 | |||
| cairo_surface_copy_page (cairo_surface_t *surface); | cairo_surface_copy_page (cairo_surface_t *surface); | |||
| cairo_public void | cairo_public void | |||
| cairo_surface_show_page (cairo_surface_t *surface); | cairo_surface_show_page (cairo_surface_t *surface); | |||
| cairo_public cairo_bool_t | cairo_public cairo_bool_t | |||
| cairo_surface_has_show_text_glyphs (cairo_surface_t *surface); | cairo_surface_has_show_text_glyphs (cairo_surface_t *surface); | |||
| /* Image-surface functions */ | /* Image-surface functions */ | |||
| /** | ||||
| * cairo_format_t: | ||||
| * @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.) | ||||
| * @CAIRO_FORMAT_RGB24: each pixel is a 32-bit quantity, with | ||||
| * the upper 8 bits unused. Red, Green, and Blue are stored | ||||
| * in the remaining 24 bits in that order. | ||||
| * @CAIRO_FORMAT_A8: each pixel is a 8-bit quantity holding | ||||
| * an alpha value. | ||||
| * @CAIRO_FORMAT_A1: each pixel is a 1-bit quantity holding | ||||
| * an alpha value. Pixels are packed together into 32-bit | ||||
| * quantities. The ordering of the bits matches the | ||||
| * endianess of the platform. On a big-endian machine, the | ||||
| * first pixel is in the uppermost bit, on a little-endian | ||||
| * machine the first pixel is in the least-significant bit. | ||||
| * @CAIRO_FORMAT_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. | ||||
| * | ||||
| * #cairo_format_t is used to identify the memory format of | ||||
| * image data. | ||||
| * | ||||
| * New entries may be added in future versions. | ||||
| **/ | ||||
| typedef enum _cairo_format { | ||||
| CAIRO_FORMAT_INVALID = -1, | ||||
| CAIRO_FORMAT_ARGB32 = 0, | ||||
| CAIRO_FORMAT_RGB24 = 1, | ||||
| CAIRO_FORMAT_A8 = 2, | ||||
| CAIRO_FORMAT_A1 = 3, | ||||
| CAIRO_FORMAT_RGB16_565 = 4 | ||||
| } cairo_format_t; | ||||
| cairo_public cairo_surface_t * | cairo_public cairo_surface_t * | |||
| cairo_image_surface_create (cairo_format_t format, | cairo_image_surface_create (cairo_format_t format, | |||
| int width, | int width, | |||
| int height); | int height); | |||
| cairo_public int | cairo_public int | |||
| cairo_format_stride_for_width (cairo_format_t format, | cairo_format_stride_for_width (cairo_format_t format, | |||
| int width); | int width); | |||
| cairo_public cairo_surface_t * | cairo_public cairo_surface_t * | |||
| skipping to change at line 2306 | skipping to change at line 2535 | |||
| cairo_recording_surface_create (cairo_content_t content, | cairo_recording_surface_create (cairo_content_t content, | |||
| const cairo_rectangle_t *extents); | const cairo_rectangle_t *extents); | |||
| cairo_public void | cairo_public void | |||
| cairo_recording_surface_ink_extents (cairo_surface_t *surface, | cairo_recording_surface_ink_extents (cairo_surface_t *surface, | |||
| double *x0, | double *x0, | |||
| double *y0, | double *y0, | |||
| double *width, | double *width, | |||
| double *height); | double *height); | |||
| cairo_public cairo_bool_t | ||||
| cairo_recording_surface_get_extents (cairo_surface_t *surface, | ||||
| cairo_rectangle_t *extents); | ||||
| /* raster-source pattern (callback) functions */ | ||||
| /** | ||||
| * cairo_raster_source_acquire_func_t: | ||||
| * @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 | ||||
| * | ||||
| * #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 sourc | ||||
| es | ||||
| * on the device. The region of sample data provided should be defined usin | ||||
| g | ||||
| * cairo_surface_set_device_offset() to specify the top-left corner of the | ||||
| * sample data (along with width and height of the surface). | ||||
| * | ||||
| * Returns: a #cairo_surface_t | ||||
| * | ||||
| * Since: 1.12 | ||||
| **/ | ||||
| typedef 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_release_func_t: | ||||
| * @pattern: the pattern being rendered from | ||||
| * @callback_data: the user data supplied during creation | ||||
| * @surface: the surface created during acquire | ||||
| * | ||||
| * #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. | ||||
| * | ||||
| * Since: 1.12 | ||||
| **/ | ||||
| typedef void | ||||
| (*cairo_raster_source_release_func_t) (cairo_pattern_t *pattern, | ||||
| void *callback_data, | ||||
| cairo_surface_t *surface); | ||||
| /** | ||||
| * cairo_raster_source_snapshot_func_t: | ||||
| * @pattern: the pattern being rendered from | ||||
| * @callback_data: the user data supplied during creation | ||||
| * | ||||
| * #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. | ||||
| * | ||||
| * Return value: CAIRO_STATUS_SUCCESS on success, or one of the | ||||
| * #cairo_status_t error codes for failure. | ||||
| * | ||||
| * Since: 1.12 | ||||
| **/ | ||||
| typedef cairo_status_t | ||||
| (*cairo_raster_source_snapshot_func_t) (cairo_pattern_t *pattern, | ||||
| void *callback_data); | ||||
| /** | ||||
| * cairo_raster_source_copy_func_t: | ||||
| * @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 | ||||
| * | ||||
| * #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. | ||||
| * | ||||
| * Return value: CAIRO_STATUS_SUCCESS on success, or one of the | ||||
| * #cairo_status_t error codes for failure. | ||||
| * | ||||
| * Since: 1.12 | ||||
| **/ | ||||
| typedef cairo_status_t | ||||
| (*cairo_raster_source_copy_func_t) (cairo_pattern_t *pattern, | ||||
| void *callback_data, | ||||
| const cairo_pattern_t *other); | ||||
| /** | ||||
| * cairo_raster_source_finish_func_t: | ||||
| * @pattern: the pattern being rendered from | ||||
| * @callback_data: the user data supplied during creation | ||||
| * | ||||
| * #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. | ||||
| * | ||||
| * Since: 1.12 | ||||
| **/ | ||||
| typedef void | ||||
| (*cairo_raster_source_finish_func_t) (cairo_pattern_t *pattern, | ||||
| void *callback_data); | ||||
| cairo_public cairo_pattern_t * | ||||
| cairo_pattern_create_raster_source (void *user_data, | ||||
| cairo_content_t content, | ||||
| int width, int height); | ||||
| cairo_public void | ||||
| cairo_raster_source_pattern_set_callback_data (cairo_pattern_t *pattern, | ||||
| void *data); | ||||
| cairo_public void * | ||||
| cairo_raster_source_pattern_get_callback_data (cairo_pattern_t *pattern); | ||||
| cairo_public 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); | ||||
| cairo_public 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); | ||||
| cairo_public void | ||||
| cairo_raster_source_pattern_set_snapshot (cairo_pattern_t *pattern, | ||||
| cairo_raster_source_snapshot_func_ | ||||
| t snapshot); | ||||
| cairo_public cairo_raster_source_snapshot_func_t | ||||
| cairo_raster_source_pattern_get_snapshot (cairo_pattern_t *pattern); | ||||
| cairo_public void | ||||
| cairo_raster_source_pattern_set_copy (cairo_pattern_t *pattern, | ||||
| cairo_raster_source_copy_func_t copy); | ||||
| cairo_public cairo_raster_source_copy_func_t | ||||
| cairo_raster_source_pattern_get_copy (cairo_pattern_t *pattern); | ||||
| cairo_public void | ||||
| cairo_raster_source_pattern_set_finish (cairo_pattern_t *pattern, | ||||
| cairo_raster_source_finish_func_t fi | ||||
| nish); | ||||
| cairo_public cairo_raster_source_finish_func_t | ||||
| cairo_raster_source_pattern_get_finish (cairo_pattern_t *pattern); | ||||
| /* Pattern creation functions */ | /* Pattern creation functions */ | |||
| cairo_public cairo_pattern_t * | cairo_public cairo_pattern_t * | |||
| cairo_pattern_create_rgb (double red, double green, double blue); | cairo_pattern_create_rgb (double red, double green, double blue); | |||
| cairo_public cairo_pattern_t * | cairo_public cairo_pattern_t * | |||
| cairo_pattern_create_rgba (double red, double green, double blue, | cairo_pattern_create_rgba (double red, double green, double blue, | |||
| double alpha); | double alpha); | |||
| cairo_public cairo_pattern_t * | cairo_public cairo_pattern_t * | |||
| skipping to change at line 2327 | skipping to change at line 2705 | |||
| cairo_public cairo_pattern_t * | cairo_public cairo_pattern_t * | |||
| cairo_pattern_create_linear (double x0, double y0, | cairo_pattern_create_linear (double x0, double y0, | |||
| double x1, double y1); | double x1, double y1); | |||
| cairo_public cairo_pattern_t * | cairo_public cairo_pattern_t * | |||
| cairo_pattern_create_radial (double cx0, double cy0, double radius0, | cairo_pattern_create_radial (double cx0, double cy0, double radius0, | |||
| double cx1, double cy1, double radius1); | double cx1, double cy1, double radius1); | |||
| cairo_public cairo_pattern_t * | cairo_public cairo_pattern_t * | |||
| cairo_pattern_create_mesh (void); | ||||
| cairo_public cairo_pattern_t * | ||||
| cairo_pattern_reference (cairo_pattern_t *pattern); | cairo_pattern_reference (cairo_pattern_t *pattern); | |||
| cairo_public void | cairo_public void | |||
| cairo_pattern_destroy (cairo_pattern_t *pattern); | cairo_pattern_destroy (cairo_pattern_t *pattern); | |||
| cairo_public unsigned int | cairo_public unsigned int | |||
| cairo_pattern_get_reference_count (cairo_pattern_t *pattern); | cairo_pattern_get_reference_count (cairo_pattern_t *pattern); | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_pattern_status (cairo_pattern_t *pattern); | cairo_pattern_status (cairo_pattern_t *pattern); | |||
| skipping to change at line 2351 | skipping to change at line 2732 | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_pattern_set_user_data (cairo_pattern_t *pattern, | cairo_pattern_set_user_data (cairo_pattern_t *pattern, | |||
| const cairo_user_data_key_t *key, | const cairo_user_data_key_t *key, | |||
| void *user_data, | void *user_data, | |||
| cairo_destroy_func_t destroy); | cairo_destroy_func_t destroy); | |||
| /** | /** | |||
| * cairo_pattern_type_t: | * cairo_pattern_type_t: | |||
| * @CAIRO_PATTERN_TYPE_SOLID: The pattern is a solid (uniform) | * @CAIRO_PATTERN_TYPE_SOLID: The pattern is a solid (uniform) | |||
| * color. It may be opaque or translucent. | * color. It may be opaque or translucent, since 1.2. | |||
| * @CAIRO_PATTERN_TYPE_SURFACE: The pattern is a based on a surface (an ima | * @CAIRO_PATTERN_TYPE_SURFACE: The pattern is a based on a surface (an ima | |||
| ge). | ge), since 1.2. | |||
| * @CAIRO_PATTERN_TYPE_LINEAR: The pattern is a linear gradient. | * @CAIRO_PATTERN_TYPE_LINEAR: The pattern is a linear gradient, since 1.2. | |||
| * @CAIRO_PATTERN_TYPE_RADIAL: The pattern is a radial gradient. | * @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 providi | ||||
| ng raster data, since 1.12. | ||||
| * | * | |||
| * #cairo_pattern_type_t is used to describe the type of a given pattern. | * #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 | * The type of a pattern is determined by the function used to create | |||
| * it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() | * it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() | |||
| * functions create SOLID patterns. The remaining | * functions create SOLID patterns. The remaining | |||
| * cairo_pattern_create<!-- --> functions map to pattern types in obvious | * cairo_pattern_create<!-- --> functions map to pattern types in obvious | |||
| * ways. | * ways. | |||
| * | * | |||
| * The pattern type can be queried with cairo_pattern_get_type() | * The pattern type can be queried with cairo_pattern_get_type() | |||
| skipping to change at line 2382 | skipping to change at line 2765 | |||
| * will be shutdown and put into an error state. | * will be shutdown and put into an error state. | |||
| * | * | |||
| * New entries may be added in future versions. | * New entries may be added in future versions. | |||
| * | * | |||
| * Since: 1.2 | * Since: 1.2 | |||
| **/ | **/ | |||
| typedef enum _cairo_pattern_type { | typedef enum _cairo_pattern_type { | |||
| CAIRO_PATTERN_TYPE_SOLID, | CAIRO_PATTERN_TYPE_SOLID, | |||
| CAIRO_PATTERN_TYPE_SURFACE, | CAIRO_PATTERN_TYPE_SURFACE, | |||
| CAIRO_PATTERN_TYPE_LINEAR, | CAIRO_PATTERN_TYPE_LINEAR, | |||
| CAIRO_PATTERN_TYPE_RADIAL | CAIRO_PATTERN_TYPE_RADIAL, | |||
| CAIRO_PATTERN_TYPE_MESH, | ||||
| CAIRO_PATTERN_TYPE_RASTER_SOURCE | ||||
| } cairo_pattern_type_t; | } cairo_pattern_type_t; | |||
| cairo_public cairo_pattern_type_t | cairo_public cairo_pattern_type_t | |||
| cairo_pattern_get_type (cairo_pattern_t *pattern); | cairo_pattern_get_type (cairo_pattern_t *pattern); | |||
| cairo_public void | cairo_public void | |||
| cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, | cairo_pattern_add_color_stop_rgb (cairo_pattern_t *pattern, | |||
| double offset, | double offset, | |||
| double red, double green, double blue); | double red, double green, double blue); | |||
| cairo_public void | cairo_public void | |||
| cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, | cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, | |||
| double offset, | double offset, | |||
| double red, double green, double blue, | double red, double green, double blue, | |||
| double alpha); | double alpha); | |||
| cairo_public void | cairo_public void | |||
| cairo_mesh_pattern_begin_patch (cairo_pattern_t *pattern); | ||||
| cairo_public void | ||||
| cairo_mesh_pattern_end_patch (cairo_pattern_t *pattern); | ||||
| cairo_public void | ||||
| cairo_mesh_pattern_curve_to (cairo_pattern_t *pattern, | ||||
| double x1, double y1, | ||||
| double x2, double y2, | ||||
| double x3, double y3); | ||||
| cairo_public void | ||||
| cairo_mesh_pattern_line_to (cairo_pattern_t *pattern, | ||||
| double x, double y); | ||||
| cairo_public void | ||||
| cairo_mesh_pattern_move_to (cairo_pattern_t *pattern, | ||||
| double x, double y); | ||||
| cairo_public void | ||||
| cairo_mesh_pattern_set_control_point (cairo_pattern_t *pattern, | ||||
| unsigned int point_num, | ||||
| double x, double y); | ||||
| cairo_public void | ||||
| cairo_mesh_pattern_set_corner_color_rgb (cairo_pattern_t *pattern, | ||||
| unsigned int corner_num, | ||||
| double red, double green, double bl | ||||
| ue); | ||||
| cairo_public void | ||||
| cairo_mesh_pattern_set_corner_color_rgba (cairo_pattern_t *pattern, | ||||
| unsigned int corner_num, | ||||
| double red, double green, double b | ||||
| lue, | ||||
| double alpha); | ||||
| cairo_public void | ||||
| cairo_pattern_set_matrix (cairo_pattern_t *pattern, | cairo_pattern_set_matrix (cairo_pattern_t *pattern, | |||
| const cairo_matrix_t *matrix); | const cairo_matrix_t *matrix); | |||
| cairo_public void | cairo_public void | |||
| cairo_pattern_get_matrix (cairo_pattern_t *pattern, | cairo_pattern_get_matrix (cairo_pattern_t *pattern, | |||
| cairo_matrix_t *matrix); | cairo_matrix_t *matrix); | |||
| /** | /** | |||
| * cairo_extend_t: | * cairo_extend_t: | |||
| * @CAIRO_EXTEND_NONE: pixels outside of the source pattern | * @CAIRO_EXTEND_NONE: pixels outside of the source pattern | |||
| * are fully transparent | * are fully transparent (Since 1.0) | |||
| * @CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating | * @CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating (Since 1.0) | |||
| * @CAIRO_EXTEND_REFLECT: the pattern is tiled by reflecting | * @CAIRO_EXTEND_REFLECT: the pattern is tiled by reflecting | |||
| * at the edges (Implemented for surface patterns since 1.6) | * at the edges (Since 1.0; but only implemented for surface patterns sin ce 1.6) | |||
| * @CAIRO_EXTEND_PAD: pixels outside of the pattern copy | * @CAIRO_EXTEND_PAD: pixels outside of the pattern copy | |||
| * the closest pixel from the source (Since 1.2; but only | * the closest pixel from the source (Since 1.2; but only | |||
| * implemented for surface patterns since 1.6) | * implemented for surface patterns since 1.6) | |||
| * | * | |||
| * #cairo_extend_t is used to describe how pattern color/alpha will be | * #cairo_extend_t is used to describe how pattern color/alpha will be | |||
| * determined for areas "outside" the pattern's natural area, (for | * determined for areas "outside" the pattern's natural area, (for | |||
| * example, outside the surface bounds or outside the gradient | * example, outside the surface bounds or outside the gradient | |||
| * geometry). | * geometry). | |||
| * | * | |||
| * Mesh patterns are not affected by the extend mode. | ||||
| * | ||||
| * The default extend mode is %CAIRO_EXTEND_NONE for surface patterns | * The default extend mode is %CAIRO_EXTEND_NONE for surface patterns | |||
| * and %CAIRO_EXTEND_PAD for gradient patterns. | * and %CAIRO_EXTEND_PAD for gradient patterns. | |||
| * | * | |||
| * New entries may be added in future versions. | * New entries may be added in future versions. | |||
| * | ||||
| * Since: 1.0 | ||||
| **/ | **/ | |||
| typedef enum _cairo_extend { | typedef enum _cairo_extend { | |||
| CAIRO_EXTEND_NONE, | CAIRO_EXTEND_NONE, | |||
| CAIRO_EXTEND_REPEAT, | CAIRO_EXTEND_REPEAT, | |||
| CAIRO_EXTEND_REFLECT, | CAIRO_EXTEND_REFLECT, | |||
| CAIRO_EXTEND_PAD | CAIRO_EXTEND_PAD | |||
| } cairo_extend_t; | } cairo_extend_t; | |||
| cairo_public void | cairo_public void | |||
| cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend); | cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend); | |||
| cairo_public cairo_extend_t | cairo_public cairo_extend_t | |||
| cairo_pattern_get_extend (cairo_pattern_t *pattern); | cairo_pattern_get_extend (cairo_pattern_t *pattern); | |||
| /** | /** | |||
| * cairo_filter_t: | * cairo_filter_t: | |||
| * @CAIRO_FILTER_FAST: A high-performance filter, with quality similar | * @CAIRO_FILTER_FAST: A high-performance filter, with quality similar | |||
| * to %CAIRO_FILTER_NEAREST | * to %CAIRO_FILTER_NEAREST (Since 1.0) | |||
| * @CAIRO_FILTER_GOOD: A reasonable-performance filter, with quality | * @CAIRO_FILTER_GOOD: A reasonable-performance filter, with quality | |||
| * similar to %CAIRO_FILTER_BILINEAR | * similar to %CAIRO_FILTER_BILINEAR (Since 1.0) | |||
| * @CAIRO_FILTER_BEST: The highest-quality available, performance may | * @CAIRO_FILTER_BEST: The highest-quality available, performance may | |||
| * not be suitable for interactive use. | * not be suitable for interactive use. (Since 1.0) | |||
| * @CAIRO_FILTER_NEAREST: Nearest-neighbor filtering | * @CAIRO_FILTER_NEAREST: Nearest-neighbor filtering (Since 1.0) | |||
| * @CAIRO_FILTER_BILINEAR: Linear interpolation in two dimensions | * @CAIRO_FILTER_BILINEAR: Linear interpolation in two dimensions (Since 1. | |||
| 0) | ||||
| * @CAIRO_FILTER_GAUSSIAN: This filter value is currently | * @CAIRO_FILTER_GAUSSIAN: This filter value is currently | |||
| * unimplemented, and should not be used in current code. | * unimplemented, and should not be used in current code. (Since 1.0) | |||
| * | * | |||
| * #cairo_filter_t is used to indicate what filtering should be | * #cairo_filter_t is used to indicate what filtering should be | |||
| * applied when reading pixel values from patterns. See | * applied when reading pixel values from patterns. See | |||
| * cairo_pattern_set_source() for indicating the desired filter to be | * cairo_pattern_set_filter() for indicating the desired filter to be | |||
| * used with a particular pattern. | * used with a particular pattern. | |||
| */ | * | |||
| * Since: 1.0 | ||||
| **/ | ||||
| typedef enum _cairo_filter { | typedef enum _cairo_filter { | |||
| CAIRO_FILTER_FAST, | CAIRO_FILTER_FAST, | |||
| CAIRO_FILTER_GOOD, | CAIRO_FILTER_GOOD, | |||
| CAIRO_FILTER_BEST, | CAIRO_FILTER_BEST, | |||
| CAIRO_FILTER_NEAREST, | CAIRO_FILTER_NEAREST, | |||
| CAIRO_FILTER_BILINEAR, | CAIRO_FILTER_BILINEAR, | |||
| CAIRO_FILTER_GAUSSIAN | CAIRO_FILTER_GAUSSIAN | |||
| } cairo_filter_t; | } cairo_filter_t; | |||
| cairo_public void | cairo_public void | |||
| skipping to change at line 2503 | skipping to change at line 2930 | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_pattern_get_linear_points (cairo_pattern_t *pattern, | cairo_pattern_get_linear_points (cairo_pattern_t *pattern, | |||
| double *x0, double *y0, | double *x0, double *y0, | |||
| double *x1, double *y1); | double *x1, double *y1); | |||
| cairo_public cairo_status_t | cairo_public cairo_status_t | |||
| cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, | cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, | |||
| double *x0, double *y0, double *r0, | double *x0, double *y0, double *r0, | |||
| double *x1, double *y1, double *r1); | double *x1, double *y1, double *r1); | |||
| cairo_public cairo_status_t | ||||
| cairo_mesh_pattern_get_patch_count (cairo_pattern_t *pattern, | ||||
| unsigned int *count); | ||||
| cairo_public cairo_path_t * | ||||
| cairo_mesh_pattern_get_path (cairo_pattern_t *pattern, | ||||
| unsigned int patch_num); | ||||
| cairo_public 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); | ||||
| cairo_public 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); | ||||
| /* Matrix functions */ | /* Matrix functions */ | |||
| cairo_public void | cairo_public void | |||
| cairo_matrix_init (cairo_matrix_t *matrix, | cairo_matrix_init (cairo_matrix_t *matrix, | |||
| double xx, double yx, | double xx, double yx, | |||
| double xy, double yy, | double xy, double yy, | |||
| double x0, double y0); | double x0, double y0); | |||
| cairo_public void | cairo_public void | |||
| cairo_matrix_init_identity (cairo_matrix_t *matrix); | cairo_matrix_init_identity (cairo_matrix_t *matrix); | |||
| skipping to change at line 2568 | skipping to change at line 3016 | |||
| * It allows set-theoretical operations like cairo_region_union() and | * It allows set-theoretical operations like cairo_region_union() and | |||
| * cairo_region_intersect() to be performed on them. | * cairo_region_intersect() to be performed on them. | |||
| * | * | |||
| * Memory management of #cairo_region_t is done with | * Memory management of #cairo_region_t is done with | |||
| * cairo_region_reference() and cairo_region_destroy(). | * cairo_region_reference() and cairo_region_destroy(). | |||
| * | * | |||
| * Since: 1.10 | * Since: 1.10 | |||
| **/ | **/ | |||
| typedef struct _cairo_region cairo_region_t; | typedef struct _cairo_region cairo_region_t; | |||
| /** | ||||
| * cairo_rectangle_int_t: | ||||
| * @x: X coordinate of the left side of the rectangle | ||||
| * @y: Y coordinate of the the top side of the rectangle | ||||
| * @width: width of the rectangle | ||||
| * @height: height of the rectangle | ||||
| * | ||||
| * A data structure for holding a rectangle with integer coordinates. | ||||
| * | ||||
| * Since: 1.10 | ||||
| **/ | ||||
| typedef struct _cairo_rectangle_int { | ||||
| int x, y; | ||||
| int width, height; | ||||
| } cairo_rectangle_int_t; | ||||
| typedef enum _cairo_region_overlap { | typedef enum _cairo_region_overlap { | |||
| CAIRO_REGION_OVERLAP_IN, /* completely inside region */ | CAIRO_REGION_OVERLAP_IN, /* completely inside region */ | |||
| CAIRO_REGION_OVERLAP_OUT, /* completely outside region */ | CAIRO_REGION_OVERLAP_OUT, /* completely outside region */ | |||
| CAIRO_REGION_OVERLAP_PART /* partly inside region */ | CAIRO_REGION_OVERLAP_PART /* partly inside region */ | |||
| } cairo_region_overlap_t; | } cairo_region_overlap_t; | |||
| cairo_public cairo_region_t * | cairo_public cairo_region_t * | |||
| cairo_region_create (void); | cairo_region_create (void); | |||
| cairo_public cairo_region_t * | cairo_public cairo_region_t * | |||
| End of changes. 126 change blocks. | ||||
| 225 lines changed or deleted | 709 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||