summaryrefslogtreecommitdiff
path: root/pango/pangofc-font-private.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-07-04 20:36:00 +0000
committerMatthias Clasen <mclasen@redhat.com>2019-07-04 17:28:40 -0400
commitd21ea13a22b1cab8c9cb604aa3fcd2ca8073befd (patch)
tree8d79daeb8f4254e319fede8bcc970f80cec83a2a /pango/pangofc-font-private.h
parent5112387e2c5d4e298d5781070b2f0749a2f7f005 (diff)
downloadpango-d21ea13a22b1cab8c9cb604aa3fcd2ca8073befd.tar.gz
Header cleanup
Abolish the PANGO_ENABLE_BACKEND and PANGO_ENABLE_ENGINE defines. All backend-only apis are moved into private headers, all apis that were engine-only are marked as deprecated, since engines are.
Diffstat (limited to 'pango/pangofc-font-private.h')
-rw-r--r--pango/pangofc-font-private.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/pango/pangofc-font-private.h b/pango/pangofc-font-private.h
new file mode 100644
index 00000000..3e85413b
--- /dev/null
+++ b/pango/pangofc-font-private.h
@@ -0,0 +1,148 @@
+/* Pango
+ * pangofc-font.h: Base fontmap type for fontconfig-based backends
+ *
+ * Copyright (C) 2003 Red Hat Software
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PANGO_FC_FONT_PRIVATE_H__
+#define __PANGO_FC_FONT_PRIVATE_H__
+
+#include <pango/pango-glyph.h>
+#include <pango/pangofc-font.h>
+#include <pango/pango-font-private.h>
+
+/* Freetype has undefined macros in its header */
+#ifdef PANGO_COMPILATION
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wundef"
+#endif
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include <fontconfig/fontconfig.h>
+
+#ifdef PANGO_COMPILATION
+#pragma GCC diagnostic pop
+#endif
+
+G_BEGIN_DECLS
+
+
+/**
+ * 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"
+
+#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:
+ *
+ * #PangoFcFont 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 */
+ gpointer priv; /* used internally */
+ PangoMatrix matrix; /* used internally */
+ PangoFontDescription *description;
+
+ GSList *metrics_by_lang;
+
+ guint is_hinted : 1;
+ guint is_transformed : 1;
+};
+
+/**
+ * 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: (nullable): Gets the glyph that
+ * should be used to display an unknown-glyph indication
+ * for the specified Unicode character. May be %NULL.
+ * @shutdown: (nullable): 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 >*/
+ FT_Face (*lock_face) (PangoFcFont *font);
+ void (*unlock_face) (PangoFcFont *font);
+ gboolean (*has_char) (PangoFcFont *font,
+ gunichar wc);
+ guint (*get_glyph) (PangoFcFont *font,
+ gunichar wc);
+ PangoGlyph (*get_unknown_glyph) (PangoFcFont *font,
+ gunichar wc);
+ void (*shutdown) (PangoFcFont *font);
+ /*< private >*/
+
+ /* Padding for future expansion */
+ void (*_pango_reserved1) (void);
+ void (*_pango_reserved2) (void);
+ void (*_pango_reserved3) (void);
+ void (*_pango_reserved4) (void);
+};
+
+
+PANGO_AVAILABLE_IN_1_4
+gboolean pango_fc_font_has_char (PangoFcFont *font,
+ gunichar wc);
+PANGO_AVAILABLE_IN_1_4
+guint pango_fc_font_get_glyph (PangoFcFont *font,
+ gunichar wc);
+#ifndef PANGO_DISABLE_DEPRECATED
+PANGO_DEPRECATED_FOR(PANGO_GET_UNKNOWN_GLYPH)
+PangoGlyph pango_fc_font_get_unknown_glyph (PangoFcFont *font,
+ gunichar wc);
+PANGO_DEPRECATED_IN_1_32
+void pango_fc_font_kern_glyphs (PangoFcFont *font,
+ PangoGlyphString *glyphs);
+#endif /* PANGO_DISABLE_DEPRECATED */
+
+
+G_END_DECLS
+#endif /* __PANGO_FC_FONT_PRIVATE_H__ */