#if HAVE_PANGO_FT2
Pango_font *
-All_font_metrics::find_pango_font (PangoFontDescription *description,
- Real magnification,
+All_font_metrics::find_pango_font (PangoFontDescription const *description,
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);
#include "grob.hh"
#include "paper-score.hh"
+#include "warn.hh"
#include "ly-smobs.icc"
SCM
Grob::mark_smob (SCM ses)
{
+ ASSERT_LIVE_IS_ALLOWED();
+
Grob *s = (Grob *) SCM_CELL_WORD_1 (ses);
scm_gc_mark (s->immutable_property_alist_);
All_font_metrics (string search_path);
~All_font_metrics ();
-#if HAVE_PANGO_FT2
- Pango_font *find_pango_font (PangoFontDescription *description,
- Real magnification,
+ Pango_font *find_pango_font (PangoFontDescription const *description,
Real scale);
-#endif
Font_metric *find_font (string name);
Open_type_font *find_otf (string name);
public:
SCM physical_font_tab () const;
Pango_font (PangoFT2FontMap *,
- PangoFontDescription *,
+ PangoFontDescription const *,
Real);
~Pango_font ();
#include "stencil.hh"
Pango_font::Pango_font (PangoFT2FontMap *fontmap,
- PangoFontDescription *description,
+ PangoFontDescription const *description,
Real output_scale)
{
(void) fontmap;
+
physical_font_tab_ = scm_c_make_hash_table (11);
PangoDirection pango_dir = PANGO_DIRECTION_LTR;
context_
= pango_ft2_get_context (PANGO_RESOLUTION, PANGO_RESOLUTION);
- // context_ = pango_ft2_font_map_create_context (fontmap);
pango_description_ = pango_font_description_copy (description);
attribute_list_ = pango_attr_list_new ();
PangoFontDescription *description
= pango_font_description_from_string (scm_i_string_chars (descr));
+
+ pango_font_description_set_size (description,
+ gint (factor *
+ pango_font_description_get_size (description)));
+
+
Font_metric *fm = all_fonts_global->find_pango_font (description,
- factor,
output_scale (layout));
+ pango_font_description_free (description);
+
sizes = scm_acons (size_key, fm->self_scm (), sizes);
scm_hash_set_x (table, descr, sizes);