summaryrefslogtreecommitdiff
path: root/pango/pangocoretext-private.h
diff options
context:
space:
mode:
authorKristian Rietveld <kris@lanedo.com>2011-10-14 11:25:21 +0200
committerKristian Rietveld <kris@lanedo.com>2012-01-28 11:24:26 +0100
commit37e74619215ede8a4fa7f5edabab14b517e673b2 (patch)
treeda27a427e7fe293451bddd0cde4d9f4d8b1e67d0 /pango/pangocoretext-private.h
parent2edc014f3c244be31deab6e584db54f87d223965 (diff)
downloadpango-37e74619215ede8a4fa7f5edabab14b517e673b2.tar.gz
CoreText backend: implement font fallbacks
We implement font fallbacks by making use of CTFontCopyDefaultCascadeList, a public, non-exposed, symbol in the CoreText library. We might want to handle this differently. The code now also uses a PangoCoreTextFontsetKey and PangoCoreTextFontKey, similar to the font config backend. This has also helped to clean up the code in general. This patch contains two fixes by Michael Natterer: 1. Fix a bug in pango_core_text_font_key_equal() where the return value of memcmp() was wrongly interpreted. 2. Cache PangoCoverage in PangoCoreTextFont.
Diffstat (limited to 'pango/pangocoretext-private.h')
-rw-r--r--pango/pangocoretext-private.h31
1 files changed, 20 insertions, 11 deletions
diff --git a/pango/pangocoretext-private.h b/pango/pangocoretext-private.h
index 4ed0e8e5..3e0dafdc 100644
--- a/pango/pangocoretext-private.h
+++ b/pango/pangocoretext-private.h
@@ -44,10 +44,14 @@ typedef struct _PangoCoreTextFace PangoCoreTextFace;
typedef struct _PangoCoreTextFontMap PangoCoreTextFontMap;
typedef struct _PangoCoreTextFontMapClass PangoCoreTextFontMapClass;
+typedef struct _PangoCoreTextFontsetKey PangoCoreTextFontsetKey;
+typedef struct _PangoCoreTextFontKey PangoCoreTextFontKey;
+
struct _PangoCoreTextFontMap
{
PangoFontMap parent_instance;
+ GHashTable *fontset_hash;
GHashTable *font_hash;
GHashTable *families;
@@ -70,22 +74,15 @@ struct _PangoCoreTextFontMapClass
gconstpointer key_b);
PangoCoreTextFont * (* create_font) (PangoCoreTextFontMap *fontmap,
- PangoContext *context,
- PangoCoreTextFace *face,
- const PangoFontDescription *desc);
+ PangoCoreTextFontKey *key);
+
+ double (* get_resolution) (PangoCoreTextFontMap *fontmap,
+ PangoContext *context);
};
GType pango_core_text_font_map_get_type (void) G_GNUC_CONST;
-const char * _pango_core_text_face_get_postscript_name (PangoCoreTextFace *face);
-gboolean _pango_core_text_face_get_synthetic_italic (PangoCoreTextFace *face);
-PangoCoverage * _pango_core_text_face_get_coverage (PangoCoreTextFace *face,
- PangoLanguage *language);
-
-void _pango_core_text_font_set_font_description (PangoCoreTextFont *afont,
- const PangoFontDescription *desc);
-PangoFontDescription *_pango_core_text_font_get_font_description (PangoCoreTextFont *afont);
void _pango_core_text_font_set_font_map (PangoCoreTextFont *afont,
PangoCoreTextFontMap *fontmap);
void _pango_core_text_font_set_face (PangoCoreTextFont *afont,
@@ -94,9 +91,21 @@ PangoCoreTextFace * _pango_core_text_font_get_face (PangoCoreTextF
gpointer _pango_core_text_font_get_context_key (PangoCoreTextFont *afont);
void _pango_core_text_font_set_context_key (PangoCoreTextFont *afont,
gpointer context_key);
+void _pango_core_text_font_set_font_key (PangoCoreTextFont *font,
+ PangoCoreTextFontKey *key);
void _pango_core_text_font_set_ctfont (PangoCoreTextFont *font,
CTFontRef font_ref);
+PangoFontDescription *_pango_core_text_font_description_from_ct_font_descriptor (CTFontDescriptorRef desc);
+
+int pango_core_text_font_key_get_absolute_size (const PangoCoreTextFontKey *key);
+double pango_core_text_font_key_get_resolution (const PangoCoreTextFontKey *key);
+gboolean pango_core_text_font_key_get_synthetic_italic (const PangoCoreTextFontKey *key);
+gpointer pango_core_text_font_key_get_context_key (const PangoCoreTextFontKey *key);
+const PangoMatrix *pango_core_text_font_key_get_matrix (const PangoCoreTextFontKey *key);
+PangoGravity pango_core_text_font_key_get_gravity (const PangoCoreTextFontKey *key);
+CTFontDescriptorRef pango_core_text_font_key_get_ctfontdescriptor (const PangoCoreTextFontKey *key);
+
G_END_DECLS
#endif /* __PANGOCORETEXT_PRIVATE_H__ */