static VALUE cr_get_font_options (VALUE self) { cairo_font_options_t *options = cairo_font_options_create (); rb_cairo_check_status (cairo_font_options_status (options)); cairo_get_font_options (_SELF, options); rb_cairo_check_status (cairo_font_options_status (options)); return CRFONTOPTIONS2RVAL (options); }
static cairo_test_status_t test_cairo_surface_get_font_options (cairo_surface_t *surface) { cairo_font_options_t *options; cairo_status_t status; options = cairo_font_options_create (); if (likely (!cairo_font_options_status (options))) cairo_surface_get_font_options (surface, options); status = cairo_font_options_status (options); cairo_font_options_destroy (options); return status ? CAIRO_TEST_ERROR : CAIRO_TEST_SUCCESS; }
/** * cairo_font_options_get_subpixel_order: * @options: a #cairo_font_options_t * * Gets the subpixel order for the font options object. * See the documentation for #cairo_subpixel_order_t for full details. * * Return value: the subpixel order for the font options object **/ cairo_subpixel_order_t cairo_font_options_get_subpixel_order (const cairo_font_options_t *options) { if (cairo_font_options_status ((cairo_font_options_t *) options)) return CAIRO_SUBPIXEL_ORDER_DEFAULT; return options->subpixel_order; }
/** * cairo_font_options_destroy: * @options: a #cairo_font_options_t * * Destroys a #cairo_font_options_t object created with * cairo_font_options_create() or cairo_font_options_copy(). **/ void cairo_font_options_destroy (cairo_font_options_t *options) { if (cairo_font_options_status (options)) return; free (options); }
/** * _cairo_font_options_get_lcd_filter: * @options: a #cairo_font_options_t * * Gets the LCD filter for the font options object. * See the documentation for #cairo_lcd_filter_t for full details. * * Return value: the LCD filter for the font options object * * Since: 1.8 **/ cairo_lcd_filter_t _cairo_font_options_get_lcd_filter (const cairo_font_options_t *options) { if (cairo_font_options_status ((cairo_font_options_t *) options)) return CAIRO_LCD_FILTER_DEFAULT; return options->lcd_filter; }
/** * cairo_font_options_get_antialias: * @options: a #cairo_font_options_t * * Gets the antialiasing mode for the font options object. * * Return value: the antialiasing mode **/ cairo_antialias_t cairo_font_options_get_antialias (const cairo_font_options_t *options) { if (cairo_font_options_status ((cairo_font_options_t *) options)) return CAIRO_ANTIALIAS_DEFAULT; return options->antialias; }
/** * cairo_font_options_get_hint_style: * @options: a #cairo_font_options_t * * Gets the hint style for font outlines for the font options object. * See the documentation for #cairo_hint_style_t for full details. * * Return value: the hint style for the font options object **/ cairo_hint_style_t cairo_font_options_get_hint_style (const cairo_font_options_t *options) { if (cairo_font_options_status ((cairo_font_options_t *) options)) return CAIRO_HINT_STYLE_DEFAULT; return options->hint_style; }
/** * _cairo_font_options_get_round_glyph_positions: * @options: a #cairo_font_options_t * * Gets the glyph position rounding option for the font options object. * * Return value: The round glyph posistions flag for the font options object. * * Since: 1.12 **/ cairo_round_glyph_positions_t _cairo_font_options_get_round_glyph_positions (const cairo_font_options_t *options) { if (cairo_font_options_status ((cairo_font_options_t *) options)) return CAIRO_ROUND_GLYPH_POS_DEFAULT; return options->round_glyph_positions; }
/** * cairo_font_options_get_hint_metrics: * @options: a #cairo_font_options_t * * Gets the metrics hinting mode for the font options object. * See the documentation for #cairo_hint_metrics_t for full details. * * Return value: the metrics hinting mode for the font options object **/ cairo_hint_metrics_t cairo_font_options_get_hint_metrics (const cairo_font_options_t *options) { if (cairo_font_options_status ((cairo_font_options_t *) options)) return CAIRO_HINT_METRICS_DEFAULT; return options->hint_metrics; }
/** * cairo_font_options_equal: * @options: a #cairo_font_options_t * @other: another #cairo_font_options_t * * Compares two font options objects for equality. * * Return value: %TRUE if all fields of the two font options objects match. * Note that this function will return %FALSE if either object is in * error. **/ cairo_bool_t cairo_font_options_equal (const cairo_font_options_t *options, const cairo_font_options_t *other) { if (cairo_font_options_status ((cairo_font_options_t *) options)) return FALSE; if (cairo_font_options_status ((cairo_font_options_t *) other)) return FALSE; if (options == other) return TRUE; return (options->antialias == other->antialias && options->subpixel_order == other->subpixel_order && options->hint_style == other->hint_style && options->hint_metrics == other->hint_metrics); }
/** * cairo_font_options_set_subpixel_order: * @options: a #cairo_font_options_t * @subpixel_order: the new subpixel order * * Sets the subpixel order for the font options object. The subpixel * order specifies the order of color elements within each pixel on * the display device when rendering with an antialiasing mode of * %CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for * #cairo_subpixel_order_t for full details. **/ void cairo_font_options_set_subpixel_order (cairo_font_options_t *options, cairo_subpixel_order_t subpixel_order) { if (cairo_font_options_status (options)) return; options->subpixel_order = subpixel_order; }
/** * cairo_font_options_set_antialias: * @options: a #cairo_font_options_t * @antialias: the new antialiasing mode * * Sets the antialiasing mode for the font options object. This * specifies the type of antialiasing to do when rendering text. **/ void cairo_font_options_set_antialias (cairo_font_options_t *options, cairo_antialias_t antialias) { if (cairo_font_options_status (options)) return; options->antialias = antialias; }
/** * _cairo_font_options_set_round_glyph_positions: * @options: a #cairo_font_options_t * @round: the new rounding value * * Sets the rounding options for the font options object. If rounding is set, a * glyph's position will be rounded to integer values. * * Since: 1.12 **/ void _cairo_font_options_set_round_glyph_positions (cairo_font_options_t *options, cairo_round_glyph_positions_t round) { if (cairo_font_options_status (options)) return; options->round_glyph_positions = round; }
/** * cairo_font_options_set_hint_style: * @options: a #cairo_font_options_t * @hint_style: the new hint style * * Sets the hint style for font outlines for the font options object. * This controls whether to fit font outlines to the pixel grid, * and if so, whether to optimize for fidelity or contrast. * See the documentation for #cairo_hint_style_t for full details. **/ void cairo_font_options_set_hint_style (cairo_font_options_t *options, cairo_hint_style_t hint_style) { if (cairo_font_options_status (options)) return; options->hint_style = hint_style; }
/** * cairo_font_options_set_hint_metrics: * @options: a #cairo_font_options_t * @hint_metrics: the new metrics hinting mode * * Sets the metrics hinting mode for the font options object. This * controls whether metrics are quantized to integer values in * device units. * See the documentation for #cairo_hint_metrics_t for full details. **/ void cairo_font_options_set_hint_metrics (cairo_font_options_t *options, cairo_hint_metrics_t hint_metrics) { if (cairo_font_options_status (options)) return; options->hint_metrics = hint_metrics; }
/** * _cairo_font_options_set_lcd_filter: * @options: a #cairo_font_options_t * @lcd_filter: the new LCD filter * * Sets the LCD filter for the font options object. The LCD filter * specifies how pixels are filtered when rendered with an antialiasing * mode of %CAIRO_ANTIALIAS_SUBPIXEL. See the documentation for * #cairo_lcd_filter_t for full details. * * Since: 1.8 **/ void _cairo_font_options_set_lcd_filter (cairo_font_options_t *options, cairo_lcd_filter_t lcd_filter) { if (cairo_font_options_status (options)) return; options->lcd_filter = lcd_filter; }
/** * cairo_font_options_merge: * @options: a #cairo_font_options_t * @other: another #cairo_font_options_t * * Merges non-default options from @other into @options, replacing * existing values. This operation can be thought of as somewhat * similar to compositing @other onto @options with the operation * of %CAIRO_OPERATION_OVER. **/ void cairo_font_options_merge (cairo_font_options_t *options, const cairo_font_options_t *other) { if (cairo_font_options_status (options)) return; if (cairo_font_options_status ((cairo_font_options_t *) other)) return; if (other->antialias != CAIRO_ANTIALIAS_DEFAULT) options->antialias = other->antialias; if (other->subpixel_order != CAIRO_SUBPIXEL_ORDER_DEFAULT) options->subpixel_order = other->subpixel_order; if (other->hint_style != CAIRO_HINT_STYLE_DEFAULT) options->hint_style = other->hint_style; if (other->hint_metrics != CAIRO_HINT_METRICS_DEFAULT) options->hint_metrics = other->hint_metrics; }
/** * cairo_font_options_destroy: * @options: a #cairo_font_options_t * * Destroys a #cairo_font_options_t object created with * cairo_font_options_create() or cairo_font_options_copy(). **/ void cairo_font_options_destroy (cairo_font_options_t *options) { if (cairo_font_options_status (options)) return; //+EAWebKitChange //11/10/2011 cairo_free (options); //-EAWebKitChange }
/** * cairo_font_options_hash: * @options: a #cairo_font_options_t * * Compute a hash for the font options object; this value will * be useful when storing an object containing a #cairo_font_options_t * in a hash table. * * Return value: the hash value for the font options object. * The return value can be cast to a 32-bit type if a * 32-bit hash value is needed. **/ unsigned long cairo_font_options_hash (const cairo_font_options_t *options) { if (cairo_font_options_status ((cairo_font_options_t *) options)) options = &_cairo_font_options_nil; /* force default values */ return ((options->antialias) | (options->subpixel_order << 4) | (options->hint_style << 8) | (options->hint_metrics << 16)); }
static PyObject * font_options_set_subpixel_order (PycairoFontOptions *o, PyObject *args) { cairo_subpixel_order_t so = CAIRO_SUBPIXEL_ORDER_DEFAULT; if (!PyArg_ParseTuple(args, "|i:FontOptions.set_subpixel_order", &so)) return NULL; cairo_font_options_set_subpixel_order (o->font_options, so); if (Pycairo_Check_Status (cairo_font_options_status (o->font_options))) return NULL; Py_RETURN_NONE; }
static PyObject * font_options_set_hint_style (PycairoFontOptions *o, PyObject *args) { cairo_hint_style_t hs = CAIRO_HINT_STYLE_DEFAULT; if (!PyArg_ParseTuple(args, "|i:FontOptions.set_hint_style", &hs)) return NULL; cairo_font_options_set_hint_style (o->font_options, hs); if (Pycairo_Check_Status (cairo_font_options_status (o->font_options))) return NULL; Py_RETURN_NONE; }
static PyObject * font_options_set_hint_metrics (PycairoFontOptions *o, PyObject *args) { cairo_hint_metrics_t hm = CAIRO_HINT_METRICS_DEFAULT; if (!PyArg_ParseTuple(args, "|i:FontOptions.set_hint_metrics", &hm)) return NULL; cairo_font_options_set_hint_metrics (o->font_options, hm); if (Pycairo_Check_Status (cairo_font_options_status (o->font_options))) return NULL; Py_RETURN_NONE; }
static PyObject * font_options_set_antialias (PycairoFontOptions *o, PyObject *args) { cairo_antialias_t aa = CAIRO_ANTIALIAS_DEFAULT; if (!PyArg_ParseTuple(args, "|i:FontOptions.set_antialias", &aa)) return NULL; cairo_font_options_set_antialias (o->font_options, aa); if (Pycairo_Check_Status (cairo_font_options_status (o->font_options))) return NULL; Py_RETURN_NONE; }
/** * cairo_font_options_merge: * @options: a #cairo_font_options_t * @other: another #cairo_font_options_t * * Merges non-default options from @other into @options, replacing * existing values. This operation can be thought of as somewhat * similar to compositing @other onto @options with the operation * of %CAIRO_OPERATION_OVER. **/ void cairo_font_options_merge (cairo_font_options_t *options, const cairo_font_options_t *other) { if (cairo_font_options_status (options)) return; if (cairo_font_options_status ((cairo_font_options_t *) other)) return; if (other->antialias != CAIRO_ANTIALIAS_DEFAULT) options->antialias = other->antialias; if (other->subpixel_order != CAIRO_SUBPIXEL_ORDER_DEFAULT) options->subpixel_order = other->subpixel_order; if (other->lcd_filter != CAIRO_LCD_FILTER_DEFAULT) options->lcd_filter = other->lcd_filter; if (other->hint_style != CAIRO_HINT_STYLE_DEFAULT) options->hint_style = other->hint_style; if (other->hint_metrics != CAIRO_HINT_METRICS_DEFAULT) options->hint_metrics = other->hint_metrics; if (other->round_glyph_positions != CAIRO_ROUND_GLYPH_POS_DEFAULT) options->round_glyph_positions = other->round_glyph_positions; }
static PyObject * font_options_new (PyTypeObject *type, PyObject *args, PyObject *kwds) { PyObject *o = type->tp_alloc(type, 0); if (o != NULL) { cairo_font_options_t *font_options = cairo_font_options_create(); if (Pycairo_Check_Status (cairo_font_options_status (font_options))) { cairo_font_options_destroy (font_options); Py_DECREF(o); return NULL; } ((PycairoFontOptions *)o)->font_options = font_options; } return o; }
static cairo_status_t _cairo_toy_font_face_scaled_font_create (void *abstract_font_face, const cairo_matrix_t *font_matrix, const cairo_matrix_t *ctm, const cairo_font_options_t *options, cairo_scaled_font_t **scaled_font) { cairo_toy_font_face_t *font_face = abstract_font_face; const cairo_scaled_font_backend_t * backend = CAIRO_SCALED_FONT_BACKEND_DEFAULT; cairo_status_t status; status = cairo_font_options_status ((cairo_font_options_t *) options); if (status) return status; return backend->create_toy (font_face, font_matrix, ctm, options, scaled_font); }
/* PycairoFontOptions_FromFontOptions * Create a new PycairoFontOptions from a cairo_font_options_t * font_options - a cairo_font_options_t to 'wrap' into a Python object. * it is unreferenced if the PycairoFontOptions creation fails * Return value: New reference or NULL on failure */ PyObject * PycairoFontOptions_FromFontOptions (cairo_font_options_t *font_options) { PyObject *o; assert (font_options != NULL); if (Pycairo_Check_Status (cairo_font_options_status (font_options))) { cairo_font_options_destroy (font_options); return NULL; } o = PycairoFontOptions_Type.tp_alloc (&PycairoFontOptions_Type, 0); if (o == NULL) cairo_font_options_destroy (font_options); else ((PycairoFontOptions *)o)->font_options = font_options; return o; }
/** * cairo_font_options_copy: * @original: a #cairo_font_options_t * * Allocates a new font options object copying the option values from * @original. * * Return value: a newly allocated #cairo_font_options_t. Free with * cairo_font_options_destroy(). This function always returns a * valid pointer; if memory cannot be allocated, then a special * error object is returned where all operations on the object do nothing. * You can check for this with cairo_font_options_status(). **/ cairo_font_options_t * cairo_font_options_copy (const cairo_font_options_t *original) { cairo_font_options_t *options; if (cairo_font_options_status ((cairo_font_options_t *) original)) return (cairo_font_options_t *) &_cairo_font_options_nil; options = malloc (sizeof (cairo_font_options_t)); if (!options) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); return (cairo_font_options_t *) &_cairo_font_options_nil; } _cairo_font_options_init_copy (options, original); return options; }
static cairo_status_t _cairo_toy_font_face_scaled_font_create (void *abstract_font_face, const cairo_matrix_t *font_matrix, const cairo_matrix_t *ctm, const cairo_font_options_t *options, cairo_scaled_font_t **scaled_font) { cairo_toy_font_face_t *font_face = abstract_font_face; cairo_status_t status; if (font_face->base.status) return font_face->base.status; status = cairo_font_options_status ((cairo_font_options_t *) options); if (status) return status; if (CAIRO_SCALED_FONT_BACKEND_DEFAULT != &_cairo_user_scaled_font_backend) { const cairo_scaled_font_backend_t * backend = CAIRO_SCALED_FONT_BACKEND_DEFAULT; *scaled_font = NULL; status = backend->create_toy (font_face, font_matrix, ctm, options, scaled_font); if (status != CAIRO_INT_STATUS_UNSUPPORTED) return _cairo_font_face_set_error (&font_face->base, status); if (*scaled_font) cairo_scaled_font_destroy (*scaled_font); } status = _cairo_user_scaled_font_backend.create_toy (font_face, font_matrix, ctm, options, scaled_font); return _cairo_font_face_set_error (&font_face->base, status); }
/** * cairo_font_options_copy: * @original: a #cairo_font_options_t * * Allocates a new font options object copying the option values from * @original. * * Return value: a newly allocated #cairo_font_options_t. Free with * cairo_font_options_destroy(). This function always returns a * valid pointer; if memory cannot be allocated, then a special * error object is returned where all operations on the object do nothing. * You can check for this with cairo_font_options_status(). **/ cairo_font_options_t * cairo_font_options_copy (const cairo_font_options_t *original) { cairo_font_options_t *options; if (cairo_font_options_status ((cairo_font_options_t *) original)) return (cairo_font_options_t *) &_cairo_font_options_nil; //+EAWebKitChange //11/10/2011 options = cairo_malloc (sizeof (cairo_font_options_t)); //-EAWebKitChange if (!options) { _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); return (cairo_font_options_t *) &_cairo_font_options_nil; } _cairo_font_options_init_copy (options, original); return options; }