cairo_face::cairo_face(boost::shared_ptr<freetype_engine> const& engine, face_ptr const& face) : face_(face) { static cairo_user_data_key_t key; c_face_ = cairo_ft_font_face_create_for_ft_face(face->get_face(), FT_LOAD_NO_HINTING); cairo_font_face_set_user_data(c_face_, &key, new handle(engine, face), destroy); }
cairo_face::cairo_face(std::shared_ptr<font_library> const& library, face_ptr const& face) : face_(face) { static cairo_user_data_key_t key; c_face_ = cairo_ft_font_face_create_for_ft_face(face->get_face(), FT_LOAD_NO_HINTING); cairo_font_face_set_user_data(c_face_, &key, new handle(library, face), destroy); }
font_face_cache_key font_face_cache::make_face_key(const face_ptr font_face, double size) { std::string font_name ( font_face->get_face()->family_name); font_name.append(font_face->get_face()->style_name); return std::make_pair(font_name, size); }