summaryrefslogtreecommitdiff
path: root/pango/pangoxft-fontmap.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2004-09-24 17:40:46 +0000
committerOwen Taylor <otaylor@src.gnome.org>2004-09-24 17:40:46 +0000
commit0b140650f239bd8fec38c9e5a2d09e95dd8440c0 (patch)
treef5e9cda843855b2f5fbd2be472269660ead9aac3 /pango/pangoxft-fontmap.c
parent763ab93cb59c0f3ff1b540afbbe1b5a689d2a4fb (diff)
downloadpango-0b140650f239bd8fec38c9e5a2d09e95dd8440c0.tar.gz
Up version to 1.7.0.
Fri Sep 24 12:59:22 2004 Owen Taylor <otaylor@redhat.com> * configure.in: Up version to 1.7.0. * pango/pango-renderer.[ch] pango/pango.h pango/Makefile.am: Add PangoRenderer, a base class that is subclassed to produce rendering drivers for different backends and purposes. * pango/pangoft2-private.h pango/pangoft2-render.c pango/pangoft2.c: Move rendering into pangoft2-render.c, use PangoRenderer. * pango/pangoft2-fontmap.c pango/pangoft2-private.h: Add _pango_ft2_font_map_get_renderer() to retrieve a singleton fontmap for the fontmap. * pango/pangoxft-render.[ch] pango/pangoxft.c pango/Makefile.am: Make Xft rendering use PangoRenderer, add publically visible, subclassable PangoXftRenderer. * pango/pangoxft-fontmap.c pango/pangoxft-private.h: Add _pango_xft_font_map_get_renderer() to retrieve a singleton fontmap for the fontmap. * examples/xftview.c examples/Makefile.am: Add a test program using the Xft backend. * docs/*: Update minimally for PangoRenderer.
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)