--- /dev/null
+/* m17n-flt.h -- header file for the FLT API of the m17n library.
+ Copyright (C) 2007
+ National Institute of Advanced Industrial Science and Technology (AIST)
+ Registration Number H15PRO112
+
+ This file is part of the m17n library.
+
+ The m17n library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License
+ as published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ The m17n 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the m17n library; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ 02111-1307, USA. */
+
+#ifndef _M17N_FLT_H_
+#define _M17N_FLT_H_
+
+#ifndef _M17N_H_
+#include <m17n.h>
+#endif
+
+M17N_BEGIN_HEADER
+
+#if !defined (FOR_DOXYGEN) || defined (DOXYGEN_INTERNAL_MODULE)
+
+extern void m17n_init_flt (void);
+#undef M17N_INIT
+#define M17N_INIT() m17n_init_flt ()
+
+extern void m17n_fini_flt (void);
+#undef M17N_FINI
+#define M17N_FINI() m17n_fini_flt ()
+
+#endif
+
+/***en @defgroup m17nFLT FLT API */
+/***ja @defgroup m17nGUI FLT API */
+/*=*/
+
+/*** @ingroup m17nFLT */
+
+typedef struct _MFLTGlyph MFLTGlyph;
+
+struct _MFLTGlyph
+{
+ int c;
+ unsigned int code;
+ int from, to;
+ int ascent, descent, lbearing, rbearing;
+ int xadv, yadv, xoff, yoff;
+ unsigned int internal;
+};
+
+typedef struct _MFLTGlyphAdjustment MFLTGlyphAdjustment;
+
+struct _MFLTGlyphAdjustment
+{
+ int xadv, yadv, xoff, yoff;
+ short back;
+ unsigned advance_is_absolute : 1;
+ unsigned set : 1;
+};
+
+typedef struct _MFLTGlyphString MFLTGlyphString;
+
+struct _MFLTGlyphString
+{
+ int glyph_size;
+ MFLTGlyph *glyphs;
+ int allocated;
+ int used;
+ void *pointer;
+};
+
+typedef struct _MFLT_OTF_Spec MFLT_OTF_Spec;
+
+struct _MFLT_OTF_Spec
+{
+ MSymbol sym;
+ unsigned int script, langsys;
+ int gsub_count;
+ unsigned int *gsub;
+ int gpos_count;
+ unsigned int *gpos;
+ void *pointer;
+};
+
+typedef struct _MFLTFont MFLTFont;
+
+struct _MFLTFont
+{
+ int x_ppem, y_ppem;
+ int (*get_glyph_id) (MFLTFont *font, MFLTGlyph *g);
+ int (*get_metric) (MFLTFont *font, MFLTGlyphString *gstring, int form, int to);
+ int (*drive_otf) (MFLTFont *font, MFLT_OTF_Spec *spec,
+ MFLTGlyphString *in, int from, int to,
+ MFLTGlyphString *out, MFLTGlyphAdjustment *adjustment);
+ /* Arbitrary data can follow. */
+};
+
+extern int mflt_run (MFLTGlyphString *gstring, int from, int to,
+ MFLTFont *font, MSymbol layouter_name);
+
+M17N_END_HEADER
+
+#endif /* _M17N_FLT_H_ */
+
+/*
+ Local Variables:
+ coding: euc-japan
+ End:
+*/