summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2000-05-28 02:11:42 +0000
committerOwen Taylor <otaylor@src.gnome.org>2000-05-28 02:11:42 +0000
commit987301d5df4f16a1df132e2b4c4dd8a94b708ce2 (patch)
tree855b25d0004f50ae02b25ba604eeb3a1160fff71
parent2c10e7197f33eb1bf6d8771de13b241263dc041b (diff)
downloadpango-987301d5df4f16a1df132e2b4c4dd8a94b708ce2.tar.gz
Install pango-fontmap.h.
Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com> * pango/Makefile.am (pangoinclude_HEADERS): Install pango-fontmap.h. * pango/pangox-fontcache.c pango/pangox.h: Add a simple cache from XLFD => font struct. * pango/pango-fontmap.c: Use this when loading and unloading fonts.
-rw-r--r--ChangeLog16
-rw-r--r--ChangeLog.pre-1-016
-rw-r--r--ChangeLog.pre-1-1016
-rw-r--r--ChangeLog.pre-1-216
-rw-r--r--ChangeLog.pre-1-416
-rw-r--r--ChangeLog.pre-1-616
-rw-r--r--ChangeLog.pre-1-816
-rw-r--r--pango/Makefile.am4
-rw-r--r--pango/pango-context.c1
-rw-r--r--pango/pangox-fontmap.c21
-rw-r--r--pango/pangox.c9
-rw-r--r--pango/pangox.h17
12 files changed, 152 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 8d920c1e..2a3eb02d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/Makefile.am (pangoinclude_HEADERS): Install
+ pango-fontmap.h.
+
+ * pango/pangox-fontcache.c pango/pangox.h: Add a simple
+ cache from XLFD => font struct.
+
+ * pango/pango-fontmap.c: Use this when loading and unloading
+ fonts.
+
+Sat May 27 21:57:03 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/pango-context.c (pango_context_add_font_map):
+ Ref font map.
+
Sat May 27 21:06:13 2000 Owen Taylor <otaylor@redhat.com>
* modules/thai/thai.c modules/basic/basic:
diff --git a/ChangeLog.pre-1-0 b/ChangeLog.pre-1-0
index 8d920c1e..2a3eb02d 100644
--- a/ChangeLog.pre-1-0
+++ b/ChangeLog.pre-1-0
@@ -1,3 +1,19 @@
+Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/Makefile.am (pangoinclude_HEADERS): Install
+ pango-fontmap.h.
+
+ * pango/pangox-fontcache.c pango/pangox.h: Add a simple
+ cache from XLFD => font struct.
+
+ * pango/pango-fontmap.c: Use this when loading and unloading
+ fonts.
+
+Sat May 27 21:57:03 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/pango-context.c (pango_context_add_font_map):
+ Ref font map.
+
Sat May 27 21:06:13 2000 Owen Taylor <otaylor@redhat.com>
* modules/thai/thai.c modules/basic/basic:
diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10
index 8d920c1e..2a3eb02d 100644
--- a/ChangeLog.pre-1-10
+++ b/ChangeLog.pre-1-10
@@ -1,3 +1,19 @@
+Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/Makefile.am (pangoinclude_HEADERS): Install
+ pango-fontmap.h.
+
+ * pango/pangox-fontcache.c pango/pangox.h: Add a simple
+ cache from XLFD => font struct.
+
+ * pango/pango-fontmap.c: Use this when loading and unloading
+ fonts.
+
+Sat May 27 21:57:03 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/pango-context.c (pango_context_add_font_map):
+ Ref font map.
+
Sat May 27 21:06:13 2000 Owen Taylor <otaylor@redhat.com>
* modules/thai/thai.c modules/basic/basic:
diff --git a/ChangeLog.pre-1-2 b/ChangeLog.pre-1-2
index 8d920c1e..2a3eb02d 100644
--- a/ChangeLog.pre-1-2
+++ b/ChangeLog.pre-1-2
@@ -1,3 +1,19 @@
+Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/Makefile.am (pangoinclude_HEADERS): Install
+ pango-fontmap.h.
+
+ * pango/pangox-fontcache.c pango/pangox.h: Add a simple
+ cache from XLFD => font struct.
+
+ * pango/pango-fontmap.c: Use this when loading and unloading
+ fonts.
+
+Sat May 27 21:57:03 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/pango-context.c (pango_context_add_font_map):
+ Ref font map.
+
Sat May 27 21:06:13 2000 Owen Taylor <otaylor@redhat.com>
* modules/thai/thai.c modules/basic/basic:
diff --git a/ChangeLog.pre-1-4 b/ChangeLog.pre-1-4
index 8d920c1e..2a3eb02d 100644
--- a/ChangeLog.pre-1-4
+++ b/ChangeLog.pre-1-4
@@ -1,3 +1,19 @@
+Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/Makefile.am (pangoinclude_HEADERS): Install
+ pango-fontmap.h.
+
+ * pango/pangox-fontcache.c pango/pangox.h: Add a simple
+ cache from XLFD => font struct.
+
+ * pango/pango-fontmap.c: Use this when loading and unloading
+ fonts.
+
+Sat May 27 21:57:03 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/pango-context.c (pango_context_add_font_map):
+ Ref font map.
+
Sat May 27 21:06:13 2000 Owen Taylor <otaylor@redhat.com>
* modules/thai/thai.c modules/basic/basic:
diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6
index 8d920c1e..2a3eb02d 100644
--- a/ChangeLog.pre-1-6
+++ b/ChangeLog.pre-1-6
@@ -1,3 +1,19 @@
+Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/Makefile.am (pangoinclude_HEADERS): Install
+ pango-fontmap.h.
+
+ * pango/pangox-fontcache.c pango/pangox.h: Add a simple
+ cache from XLFD => font struct.
+
+ * pango/pango-fontmap.c: Use this when loading and unloading
+ fonts.
+
+Sat May 27 21:57:03 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/pango-context.c (pango_context_add_font_map):
+ Ref font map.
+
Sat May 27 21:06:13 2000 Owen Taylor <otaylor@redhat.com>
* modules/thai/thai.c modules/basic/basic:
diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8
index 8d920c1e..2a3eb02d 100644
--- a/ChangeLog.pre-1-8
+++ b/ChangeLog.pre-1-8
@@ -1,3 +1,19 @@
+Sat May 27 22:05:53 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/Makefile.am (pangoinclude_HEADERS): Install
+ pango-fontmap.h.
+
+ * pango/pangox-fontcache.c pango/pangox.h: Add a simple
+ cache from XLFD => font struct.
+
+ * pango/pango-fontmap.c: Use this when loading and unloading
+ fonts.
+
+Sat May 27 21:57:03 2000 Owen Taylor <otaylor@redhat.com>
+
+ * pango/pango-context.c (pango_context_add_font_map):
+ Ref font map.
+
Sat May 27 21:06:13 2000 Owen Taylor <otaylor@redhat.com>
* modules/thai/thai.c modules/basic/basic:
diff --git a/pango/Makefile.am b/pango/Makefile.am
index 74518397..b865ae58 100644
--- a/pango/Makefile.am
+++ b/pango/Makefile.am
@@ -26,7 +26,8 @@ libpango_la_SOURCES = \
libpangox_la_SOURCES = \
pangox.c \
- pangox-fontmap.c
+ pangox-fontcache.c \
+ pangox-fontmap.c
# We use the -release flag for now until the API settles
# down at which point we'll either use the GTK+ versioning
@@ -46,6 +47,7 @@ pangoinclude_HEADERS = \
pango-coverage.h \
pango-engine.h \
pango-font.h \
+ pango-fontmap.h \
pango-glyph.h \
pango-item.h \
pango-layout.h \
diff --git a/pango/pango-context.c b/pango/pango-context.c
index e34262b1..04325402 100644
--- a/pango/pango-context.c
+++ b/pango/pango-context.c
@@ -131,6 +131,7 @@ pango_context_add_font_map (PangoContext *context,
g_return_if_fail (context != NULL);
g_return_if_fail (font_map != NULL);
+ g_object_ref (G_OBJECT (font_map));
context->font_maps = g_slist_append (context->font_maps, font_map);
}
diff --git a/pango/pangox-fontmap.c b/pango/pangox-fontmap.c
index 4b4f0463..125aada5 100644
--- a/pango/pangox-fontmap.c
+++ b/pango/pangox-fontmap.c
@@ -71,6 +71,8 @@ struct _PangoXFontMap
Display *display;
+ PangoXFontCache *font_cache;
+
GHashTable *families;
GHashTable *size_infos;
@@ -235,7 +237,6 @@ pango_x_font_map_for_display (Display *display)
if (xfontmap->display == display)
{
- g_object_ref (G_OBJECT (xfontmap));
return PANGO_FONT_MAP (xfontmap);
}
}
@@ -243,6 +244,7 @@ pango_x_font_map_for_display (Display *display)
xfontmap = (PangoXFontMap *)g_type_create_instance (PANGO_TYPE_X_FONT_MAP);
xfontmap->display = display;
+ xfontmap->font_cache = pango_x_font_cache_new (display);
/* Get a maximum of MAX_FONTS fontnames from the X server.
Use "-*" as the pattern rather than "-*-*-*-*-*-*-*-*-*-*-*-*-*-*" since
@@ -263,6 +265,7 @@ pango_x_font_map_for_display (Display *display)
pango_x_font_map_read_aliases (xfontmap);
+ g_object_ref (G_OBJECT (xfontmap));
fontmaps = g_list_prepend (fontmaps, xfontmap);
/* This is a little screwed up, since different screens on the same display
@@ -271,14 +274,17 @@ pango_x_font_map_for_display (Display *display)
screen = DefaultScreen (xfontmap->display);
xfontmap->resolution = (PANGO_SCALE * 72.27 / 25.4) * ((double) DisplayWidthMM (xfontmap->display, screen) /
DisplayWidth (xfontmap->display, screen));
-
- g_object_ref (G_OBJECT (xfontmap));
return PANGO_FONT_MAP (xfontmap);
}
static void
pango_x_font_map_finalize (GObject *object)
{
+ PangoXFontMap *xfontmap = PANGO_X_FONT_MAP (object);
+
+ pango_x_font_cache_free (xfontmap->font_cache);
+ /* FIXME: Lots more here */
+
fontmaps = g_list_remove (fontmaps, object);
}
@@ -1385,3 +1391,12 @@ pango_x_font_entry_remove (PangoXFontEntry *entry,
{
entry->cached_fonts = g_slist_remove (entry->cached_fonts, font);
}
+
+PangoXFontCache *
+pango_x_font_map_get_font_cache (PangoFontMap *font_map)
+{
+ g_return_val_if_fail (font_map != NULL, NULL);
+ g_return_val_if_fail (PANGO_IS_X_FONT_MAP (font_map), NULL);
+
+ return PANGO_X_FONT_MAP (font_map)->font_cache;
+}
diff --git a/pango/pangox.c b/pango/pangox.c
index c08d26aa..26b5a31b 100644
--- a/pango/pangox.c
+++ b/pango/pangox.c
@@ -125,8 +125,13 @@ static void
pango_x_make_font_struct (PangoFont *font, PangoXSubfontInfo *info)
{
PangoXFont *xfont = (PangoXFont *)font;
+ PangoFontMap *fontmap;
+ PangoXFontCache *cache;
+
+ fontmap = pango_x_font_map_for_display (xfont->display);
+ cache = pango_x_font_map_get_font_cache (fontmap);
- info->font_struct = XLoadQueryFont (xfont->display, info->xlfd);
+ info->font_struct = pango_x_font_cache_load (cache, info->xlfd);
if (!info->font_struct)
g_warning ("Cannot load font for XLFD '%s\n", info->xlfd);
@@ -1290,5 +1295,3 @@ pango_x_get_item_properties (PangoItem *item,
}
}
-
-
diff --git a/pango/pangox.h b/pango/pangox.h
index 2c465b61..d71bb2dd 100644
--- a/pango/pangox.h
+++ b/pango/pangox.h
@@ -85,7 +85,18 @@ PangoGlyph pango_x_get_unknown_glyph (PangoFont *font);
/* API for libraries that want to use PangoX mixed with classic X fonts.
*/
-PangoFontMap *pango_x_font_map_for_display (Display *display);
+typedef struct _PangoXFontCache PangoXFontCache;
+
+PangoXFontCache *pango_x_font_cache_new (Display *display);
+void pango_x_font_cache_free (PangoXFontCache *cache);
+
+XFontStruct * pango_x_font_cache_load (PangoXFontCache *cache,
+ char *xlfd);
+void pango_x_font_cache_unload (PangoXFontCache *cache,
+ XFontStruct *fs);
+
+PangoFontMap * pango_x_font_map_for_display (Display *display);
+PangoXFontCache *pango_x_font_map_get_font_cache (PangoFontMap *font_map);
#ifdef __cplusplus
}
@@ -93,7 +104,3 @@ PangoFontMap *pango_x_font_map_for_display (Display *display);
#endif /* __PANGOX_H__ */
-
-
-
-