class Cairo::FreeTypeFontFace - cairo-1.16.4 Documentation

# class Cairo::FreeTypeFontFace

### Public Class Methods

new(p1) click to toggle source

    static VALUE
    cr_freetype_font_face_initialize (VALUE self, VALUE path)
    {
      FT_Face freetype_face;
      FT_Error error;
      cairo_font_face_t *face;
      cairo_status_t status;

      error = FT_New_Face (cr_freetype_library,
                           StringValueCStr(path),
                           0,
                           &freetype_face);
      cr_freetype_error_check (error, "failed to open FreeType font", path);
      cr_freetype_n_faces++;

      face = cairo_ft_font_face_create_for_ft_face (freetype_face, 0);
      cr_font_face_check_status (face);
      status =
        cairo_font_face_set_user_data (face,
                                       &cr_freetype_face_key,
                                       freetype_face,
                                       (cairo_destroy_func_t) cr_freetype_done_face);
      if (status != CAIRO_STATUS_SUCCESS) {
        cairo_font_face_destroy (face);
        FT_Done_Face (freetype_face);
        rb_cairo_check_status (status);
      }

      DATA_PTR (self) = face;

      return Qnil;
    }