class Cairo::ScaledFont
Public Class Methods
new(p1, p2, p3, p4)
click to toggle source
static VALUE cr_scaled_font_initialize (VALUE self, VALUE face, VALUE matrix, VALUE ctm, VALUE options) { cairo_scaled_font_t *font; font = cairo_scaled_font_create (RVAL2CRFONTFACE (face), RVAL2CRMATRIX (matrix), RVAL2CRMATRIX (ctm), RVAL2CRFONTOPTIONS (options)); cr_scaled_font_check_status (font); DATA_PTR (self) = font; return Qnil; }
Public Instance Methods
ctm()
click to toggle source
static VALUE cr_scaled_font_get_ctm (VALUE self) { cairo_matrix_t ctm; cairo_scaled_font_get_font_matrix (_SELF (self), &ctm); cr_scaled_font_check_status (_SELF (self)); return CRMATRIX2RVAL (&ctm); }
extents()
click to toggle source
static VALUE cr_scaled_font_extents (VALUE self) { cairo_font_extents_t extents; cairo_scaled_font_extents (_SELF (self), &extents); cr_scaled_font_check_status (_SELF (self)); return CRFONTEXTENTS2RVAL (&extents); }
font_face()
click to toggle source
static VALUE cr_scaled_font_get_font_face (VALUE self) { cairo_font_face_t *face; face = cairo_scaled_font_get_font_face (_SELF (self)); cr_scaled_font_check_status (_SELF (self)); return CRFONTFACE2RVAL (face); }
font_matrix()
click to toggle source
static VALUE cr_scaled_font_get_font_matrix (VALUE self) { cairo_matrix_t font_matrix; cairo_scaled_font_get_font_matrix (_SELF (self), &font_matrix); cr_scaled_font_check_status (_SELF (self)); return CRMATRIX2RVAL (&font_matrix); }
font_options()
click to toggle source
static VALUE cr_scaled_font_get_font_options (VALUE self) { cairo_font_options_t *options; VALUE rb_options; options = cairo_font_options_create (); rb_cairo_check_status (cairo_font_options_status (options)); /* TODO: Use rb_ensure() */ rb_options = CRFONTOPTIONS2RVAL (options); cairo_font_options_destroy (options); options = RVAL2CRFONTOPTIONS (rb_options); cairo_scaled_font_get_font_options (_SELF (self), options); cr_scaled_font_check_status (_SELF (self)); rb_cairo_check_status (cairo_font_options_status (options)); return rb_options; }
glyph_extents(p1)
click to toggle source
static VALUE cr_scaled_font_glyph_extents (VALUE self, VALUE rb_glyphs) { cairo_text_extents_t extents; cairo_glyph_t *glyphs; int count; RB_CAIRO__GLYPHS_TO_ARRAY (rb_glyphs, glyphs, count); cairo_scaled_font_glyph_extents (_SELF (self), glyphs, count, &extents); cr_scaled_font_check_status (_SELF (self)); return CRTEXTEXTENTS2RVAL (&extents); }
scale_matrix()
click to toggle source
static VALUE cr_scaled_font_get_scale_matrix (VALUE self) { cairo_matrix_t matrix; cairo_scaled_font_get_scale_matrix (_SELF (self), &matrix); cr_scaled_font_check_status (_SELF (self)); return CRMATRIX2RVAL (&matrix); }
text_extents(p1)
click to toggle source
static VALUE cr_scaled_font_text_extents (VALUE self, VALUE utf8) { cairo_text_extents_t extents; cairo_scaled_font_text_extents (_SELF (self), StringValueCStr (utf8), &extents); cr_scaled_font_check_status (_SELF (self)); return CRTEXTEXTENTS2RVAL (&extents); }
text_to_glyphs(p1, p2, p3)
click to toggle source
static VALUE cr_scaled_font_text_to_glyphs (VALUE self, VALUE rb_x, VALUE rb_y, VALUE rb_utf8) { double x, y; const char *utf8; int utf8_len; cairo_glyph_t *glyphs = NULL; int num_glyphs; cairo_text_cluster_t *clusters = NULL; int num_clusters; cairo_text_cluster_flags_t cluster_flags; cairo_status_t status; VALUE rb_glyphs, rb_clusters; x = NUM2DBL (rb_x); y = NUM2DBL (rb_y); utf8 = RSTRING_PTR (rb_utf8); utf8_len = (int) RSTRING_LEN (rb_utf8); status = cairo_scaled_font_text_to_glyphs (_SELF (self), x, y, utf8, utf8_len, &glyphs, &num_glyphs, &clusters, &num_clusters, &cluster_flags); rb_cairo_check_status (status); rb_glyphs = rb_cairo__glyphs_to_ruby_object (glyphs, num_glyphs); cairo_glyph_free (glyphs); rb_clusters = rb_cairo__text_clusters_to_ruby_object (clusters, num_clusters); cairo_text_cluster_free (clusters); return rb_ary_new3 (3, rb_glyphs, rb_clusters, INT2NUM (cluster_flags)); }