summaryrefslogtreecommitdiff
path: root/pango/pangoft2-private.h
diff options
context:
space:
mode:
authorAlexander Larsson <alla@lysator.liu.se>2001-11-18 16:06:02 +0000
committerAlexander Larsson <alexl@src.gnome.org>2001-11-18 16:06:02 +0000
commit0766534429b5830716e782418179ea63f8f1f65d (patch)
tree1ab6b8c50e572af8320c8f3623b8135276c010f6 /pango/pangoft2-private.h
parentb12c0fb6263fd542bb03f8bb10076a0653694f12 (diff)
downloadpango-0766534429b5830716e782418179ea63f8f1f65d.tar.gz
Check for LEX and YACC. This will be made optional later, with the build
2001-11-17 Alexander Larsson <alla@lysator.liu.se> * configure.in: Check for LEX and YACC. This will be made optional later, with the build sources checked in to cvs. Generate pango/mini-xft/Makefile * modules/basic/basic-ft2.c: Use the new pangoft2 API. * pango/Makefile.am: Build mini-xft. Add new files. * pango/pango-context.[ch]: Support only one fontmap per context. Use pango_font_map_load_fontset() and PangoFontset instead of internal fontset. * pango/pango-fontmap.[ch]: New virtual function pango_font_map_load_fontset() and default implementation that uses pango_font_map_load_font(). * pango/pango-utils.[ch] (pango_lookup_aliases): Utility function for looking up aliases. This can be used by backend that has no backend specific aliases. * pango/pangoft2-fontcache.c: Removed file. * pango/pangoft2-fontmap.c: * pango/pangoft2-private.h: * pango/pangoft2.c: * pango/pangoft2.h: Major rewrite. Doesn't handle fontsets. Uses mini-xft so that it will always match the PangoXft backend. Simplified the public API. * pango/pangowin32.c: * pango/pangox.c: pango_context_add_font_map -> pango_context_set_font_map * pango/pangoxft-font.c: * pango/pangoxft-fontmap.c: * pango/pangoxft-private.h: New code to handle fontsets. * pango/mini-xft/*: Mini version of libXft from XFree86 in order to have the pangoFT2 and pangXft backends have same config files and generate the same fonts.
Diffstat (limited to 'pango/pangoft2-private.h')
-rw-r--r--pango/pangoft2-private.h76
1 files changed, 32 insertions, 44 deletions
diff --git a/pango/pangoft2-private.h b/pango/pangoft2-private.h
index cc12206e..5dd5b3d5 100644
--- a/pango/pangoft2-private.h
+++ b/pango/pangoft2-private.h
@@ -25,6 +25,7 @@
#include "pango-modules.h"
#include "pangoft2.h"
+#include "mini-xft/MiniXft.h"
/* Debugging... */
/*#define DEBUGGING 1*/
@@ -52,43 +53,27 @@
((d) - PANGO_SCALE_26_6 / 2) / PANGO_SCALE_26_6)
#define PANGO_UNITS_26_6(d) (PANGO_SCALE_26_6 * (d))
-typedef struct _PangoFT2OA PangoFT2OA;
-typedef struct _PangoFT2Font PangoFT2Font;
+typedef struct _PangoFT2Font PangoFT2Font;
typedef struct _PangoFT2GlyphInfo PangoFT2GlyphInfo;
-typedef struct _PangoFT2Face PangoFT2Face;
-typedef struct _PangoFT2SubfontInfo PangoFT2SubfontInfo;
+typedef struct _PangoFT2Face PangoFT2Face;
+typedef struct _PangoFT2Family PangoFT2Family;
-struct _PangoFT2OA
-{
- FT_Open_Args *open_args;
- FT_Long face_index;
-};
struct _PangoFT2Font
{
PangoFont font;
- /* A PangoFT2Font consists of one or several FT2 fonts (faces) that
- * are assumed to blend visually well, and cover separate parts of
- * the Unicode characters. The FT2 faces are not kept unnecessarily
- * open, thus also we keep both the FT_Open_Args (and face index),
- * and FT_Face.
- */
- PangoFT2OA **oa;
- FT_Face *faces;
- int n_fonts;
+ MiniXftPattern *font_pattern;
+ FT_Face face;
int size;
- GSList *metrics_by_lang;
-
PangoFontMap *fontmap;
+ PangoFontDescription *description;
+
/* If TRUE, font is in cache of recently unused fonts and not otherwise
- * in use.
- */
+ * in use. */
gboolean in_cache;
-
- PangoFT2Face *entry;
GHashTable *glyph_info;
};
@@ -103,27 +88,30 @@ struct _PangoFT2Face
{
PangoFontFace parent_instance;
- FT_Open_Args **open_args;
- FT_Long *face_indices;
- int n_fonts;
- PangoFontDescription *description;
- PangoCoverage *coverage;
- char *face_name;
-
- GSList *cached_fonts;
+ PangoFT2Family *family;
+ char *style;
};
-PangoMap *pango_ft2_get_shaper_map (PangoLanguage *language);
-PangoCoverage *pango_ft2_face_get_coverage (PangoFT2Face *face,
- PangoFont *font,
- PangoLanguage *language);
-void pango_ft2_face_remove (PangoFT2Face *face,
- PangoFont *font);
-FT_Library *pango_ft2_fontmap_get_library (PangoFontMap *fontmap);
-void pango_ft2_fontmap_cache_add (PangoFontMap *fontmap,
- PangoFT2Font *ft2font);
-void pango_ft2_fontmap_cache_remove (PangoFontMap *fontmap,
- PangoFT2Font *ft2font);
-const char *pango_ft2_ft_strerror (FT_Error error);
+PangoFT2Font * _pango_ft2_font_new (PangoFontMap *font,
+ MiniXftPattern *pattern);
+PangoMap *_pango_ft2_get_shaper_map (PangoLanguage *language);
+void _pango_ft2_font_map_set_coverage (PangoFontMap *fontmap,
+ const char *name,
+ PangoCoverage *coverage);
+PangoCoverage *_pango_ft2_font_map_get_coverage (PangoFontMap *fontmap,
+ const char *name);
+void _pango_ft2_face_remove (PangoFT2Face *face,
+ PangoFont *font);
+FT_Library _pango_ft2_font_map_get_library (PangoFontMap *fontmap);
+void _pango_ft2_font_map_cache_add (PangoFontMap *fontmap,
+ PangoFT2Font *ft2font);
+void _pango_ft2_font_map_cache_remove (PangoFontMap *fontmap,
+ PangoFT2Font *ft2font);
+void _pango_ft2_font_map_add (PangoFontMap *fontmap,
+ PangoFT2Font *ft2font);
+void _pango_ft2_font_map_remove (PangoFontMap *fontmap,
+ PangoFT2Font *ft2font);
+const char *_pango_ft2_ft_strerror (FT_Error error);
+PangoFontDescription *_pango_ft2_font_desc_from_pattern (MiniXftPattern *pattern);
#endif /* __PANGOFT2_PRIVATE_H__ */