From: handa Date: Wed, 15 Aug 2007 11:15:19 +0000 (+0000) Subject: New file. X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=2fae45ae739ab592f76a8a349160bffca88efb1c;p=m17n%2Fm17n-lib.git New file. --- diff --git a/src/m17n-flt.h b/src/m17n-flt.h new file mode 100644 index 0000000..44a9db5 --- /dev/null +++ b/src/m17n-flt.h @@ -0,0 +1,120 @@ +/* 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 +#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: +*/