+All_font_metrics::All_font_metrics (All_font_metrics const &)
+{
+}
+
+#if HAVE_PANGO_FT2
+
+Pango_font *
+All_font_metrics::find_pango_font (PangoFontDescription *description,
+ Real magnification,
+ Real output_scale)
+{
+ pango_font_description_set_size (description,
+ gint (magnification *
+ pango_font_description_get_size (description)));
+
+ gchar *pango_fn = pango_font_description_to_filename (description);
+ SCM key = ly_symbol2scm (pango_fn);
+
+ SCM val;
+ if (!pango_dict_->try_retrieve (key, &val))
+ {
+ if (be_verbose_global)
+ progress_indication ("[" + String (pango_fn));
+
+ Pango_font *pf = new Pango_font (pango_ft2_fontmap_,
+ RIGHT,
+ description,
+ output_scale);
+ val = pf->self_scm ();
+ pango_dict_->set (key, val);
+ scm_gc_unprotect_object (val);
+
+ if (be_verbose_global)
+ progress_indication ("]");
+
+ pf->description_ = scm_cons (SCM_BOOL_F,
+ scm_make_real (1.0));
+ }
+ g_free (pango_fn);
+ return dynamic_cast<Pango_font *> (unsmob_metrics (val));
+}
+
+#endif
+
+String
+kpathsea_find_file (String name, String ext)