summaryrefslogtreecommitdiff
path: root/pango/pangofc-font.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2003-08-03 02:35:20 +0000
committerOwen Taylor <otaylor@src.gnome.org>2003-08-03 02:35:20 +0000
commit94f39b93e929db7881070f4b5e1f5dc3c106e3fb (patch)
tree1fa92651d4e9d2c7c41d413468f37bdb8095cd52 /pango/pangofc-font.h
parente2ea77ce2f99c122a0087c28fcd9316be4d6e205 (diff)
downloadpango-94f39b93e929db7881070f4b5e1f5dc3c106e3fb.tar.gz
Make pangoxft depend on pangoft2.
Sat Aug 2 14:33:28 2003 Owen Taylor <otaylor@redhat.com> * pango/Makefile.am (libpangoxft_1_0_la_LIBADD): Make pangoxft depend on pangoft2. * pango/pangofc-fontmap.[ch]: Make pangofc-fontmap.cI into a real base class. * pango/pangofc-font.[ch]: Move some of the pangoxft/ pangoft2 implementation here. * pango/pangoft2.c pango/pangoft2-fontmap.c pango/pangoft2-private.h pango/pangoxft-font.c pango/pangoxft2-fontmap.c pango/pangoxft-private.h: Adapt to the new scheme * modules/*/Makefile.am Modules/*/*/*-fc.c: Don't build separate FT2 and Xft shapers, just build one Fc shaper. * docs/pango-sections.txt docs/pango-docs.sgml docs/tmpl/pangofc-font{,map}.sgml: Basic docs for the new stuff. * configure.in: Up pango_module_version to 1.4.0.
Diffstat (limited to 'pango/pangofc-font.h')
-rw-r--r--pango/pangofc-font.h66
1 files changed, 57 insertions, 9 deletions
diff --git a/pango/pangofc-font.h b/pango/pangofc-font.h
index 6e666542..315abd2e 100644
--- a/pango/pangofc-font.h
+++ b/pango/pangofc-font.h
@@ -1,5 +1,5 @@
/* Pango
- * pangofc-font.h: Shared interfaces for fontconfig-based backends
+ * pangofc-font.h: Base fontmap type for fontconfig-based backends
*
* Copyright (C) 2003 Red Hat Software
*
@@ -23,11 +23,11 @@
#define __PANGO_FC_FONT_H__
#include <freetype/freetype.h>
+#include <fontconfig/fontconfig.h>
#include <pango/pango-font.h>
+#include <pango/pango-fontmap.h>
#include <pango/pango-glyph.h>
-#if defined(PANGO_ENABLE_ENGINE) || defined(PANGO_ENABLE_BACKEND)
-
G_BEGIN_DECLS
#define PANGO_TYPE_FC_FONT (pango_fc_font_get_type ())
@@ -37,19 +37,68 @@ G_BEGIN_DECLS
typedef struct _PangoFcFont PangoFcFont;
typedef struct _PangoFcFontClass PangoFcFontClass;
+#if defined(PANGO_ENABLE_ENGINE) || defined(PANGO_ENABLE_BACKEND)
+
+/**
+ * PANGO_RENDER_TYPE_FC:
+ *
+ * A string constant used to identify shape engines that work
+ * with the fontconfig based backends. See the @engine_type field
+ * of #PangoEngineInfo.
+ **/
+#define PANGO_RENDER_TYPE_FC "PangoRenderFc"
+
#ifdef PANGO_ENABLE_BACKEND
#define PANGO_FC_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FC_FONT, PangoFcFontClass))
#define PANGO_IS_FC_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FC_FONT))
#define PANGO_FC_FONT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FC_FONT, PangoFcFontClass))
+/**
+ * PangoFcFont:
+ *
+ * #PangoFcFontMap is a base class for font implementations
+ * using the FontConfig and FreeType libraries and is used in
+ * conjunction with #PangoFcFontMap. When deriving from this
+ * class, you need to implement all of its virtual functions
+ * other than shutdown() along with the get_glyph_extents()
+ * virtual function from #PangoFont.
+ **/
struct _PangoFcFont
{
PangoFont parent_instance;
+
+ FcPattern *font_pattern; /* fully resolved pattern */
+ PangoFontMap *fontmap; /* associated map */
+ PangoFontDescription *description;
+
+ GSList *metrics_by_lang;
};
+/**
+ * PangoFcFontClass:
+ * @lock_face: Returns the FT_Face of the font and increases
+ * the reference count for the face by one.
+ * @unlock_face: Decreases the reference count for the
+ * FT_Face of the font by one. When the count is zero,
+ * the #PangoFcFont subclass is allowed to free the
+ * FT_Face.
+ * @has_char: Return %TRUE if the the font contains a glyph
+ * corresponding to the specified character.
+ * @get_glyph: Gets the glyph that corresponds to the given
+ * Unicode character.
+ * @get_unknown_glyph: Gets the glyph that should be used to
+ * display an unknown-glyph indication for the specified
+ * unicode character.
+ * @shutdown: Performs any font-specific shutdown code that
+ * needs to be done when pango_fc_font_map_shutdown is called.
+ * May be %NULL.
+ *
+ * Class structure for #PangoFcFont.
+ **/
struct _PangoFcFontClass
{
+ /*< private >*/
PangoFontClass parent_class;
/*< public >*/
@@ -61,8 +110,7 @@ struct _PangoFcFontClass
gunichar wc);
PangoGlyph (*get_unknown_glyph) (PangoFcFont *font,
gunichar wc);
- void (*kern_glyphs) (PangoFcFont *font,
- PangoGlyphString *glyphs);
+ void (*shutdown) (PangoFcFont *font);
/*< private >*/
/* Padding for future expansion */
@@ -74,8 +122,6 @@ struct _PangoFcFontClass
#endif /* PANGO_ENABLE_BACKEND */
-GType pango_fc_font_get_type (void);
-
FT_Face pango_fc_font_lock_face (PangoFcFont *font);
void pango_fc_font_unlock_face (PangoFcFont *font);
gboolean pango_fc_font_has_char (PangoFcFont *font,
@@ -87,8 +133,10 @@ PangoGlyph pango_fc_font_get_unknown_glyph (PangoFcFont *font,
void pango_fc_font_kern_glyphs (PangoFcFont *font,
PangoGlyphString *glyphs);
-G_END_DECLS
-
#endif /* PANGO_ENABLE_ENGINE || PANGO_ENABLE_BACKEND */
+GType pango_fc_font_get_type (void);
+
+G_END_DECLS
+
#endif /* __PANGO_FC_FONT_H__ */