summaryrefslogtreecommitdiff
path: root/pango/pangoxft-fontmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pangoxft-fontmap.c')
-rw-r--r--pango/pangoxft-fontmap.c23
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)