diff options
Diffstat (limited to 'pango/pangoxft-fontmap.c')
-rw-r--r-- | pango/pangoxft-fontmap.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/pango/pangoxft-fontmap.c b/pango/pangoxft-fontmap.c index 6d91ea6b..cc3f62b5 100644 --- a/pango/pangoxft-fontmap.c +++ b/pango/pangoxft-fontmap.c @@ -49,6 +49,8 @@ struct _PangoXftFontMap PangoXftSubstituteFunc substitute_func; gpointer substitute_data; GDestroyNotify substitute_destroy; + + PangoRenderer *renderer; }; struct _PangoXftFontMapClass @@ -87,6 +89,9 @@ pango_xft_font_map_finalize (GObject *object) { PangoXftFontMap *xftfontmap = PANGO_XFT_FONT_MAP (object); + if (xftfontmap->renderer) + g_object_unref (xftfontmap->renderer); + fontmaps = g_slist_remove (fontmaps, object); if (xftfontmap->substitute_destroy) @@ -323,6 +328,24 @@ pango_xft_get_context (Display *display, return pango_fc_font_map_create_context (PANGO_FC_FONT_MAP (fontmap)); } +/** + * _pango_xft_font_map_get_renderer: + * @fontmap: a #PangoXftFontmap + * + * Gets the singleton PangoXFTRenderer for this fontmap. + * + * Return value: + **/ +PangoRenderer * +_pango_xft_font_map_get_renderer (PangoXftFontMap *xftfontmap) +{ + if (!xftfontmap->renderer) + xftfontmap->renderer = pango_xft_renderer_new (xftfontmap->display, + xftfontmap->screen); + + return xftfontmap->renderer; +} + static void pango_xft_font_map_default_substitute (PangoFcFontMap *fcfontmap, FcPattern *pattern) |