/* otf.h -- Header file for libotf (OpenType font library).
-Copyright (C) 2003, 2004, 2005, 2006, 2007
+Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H15PRO167
#endif
/* Version name of this library. */
-#define LIBOTF_VERSION "0.9.6"
+#define LIBOTF_VERSION "0.9.10"
/* Major version number. */
#define LIBOTF_MAJOR_VERSION 0
/* Minor version number. */
#define LIBOTF_MINOR_VERSION 9
/* Release (i.e. patch level) number. */
-#define LIBOTF_RELEASE_NUMBER 6
+#define LIBOTF_RELEASE_NUMBER 10
/***
Table of contents:
(3-6) OTF_drive_tables()
(3-7) OTF_get_unicode()
(3-8) OTF_drive_gsub_alternate()
+ (3-9) OTF_iterate_on_feature()
(4) API for error handling
(4-1) Error codes
unsigned version;
unsigned numTables;
OTF_EncodingRecord *EncodingRecord;
- /* Mapping table: Unicode->GlyphID */
+ /* Mapping table: Unicode->GlyphID (for BMP only) */
unsigned short *unicode_table;
+ /* Maximum Glyph ID that corresponds to a Unicode character. */
int max_glyph_id;
/* Mapping table: GlyphID->Unicode */
unsigned short *decode_table;
+ /* Index of the EncodingRecord for Unicode->GlyphID mapping.
+ -1 means that the font supports only Unicode BMP characters. */
+ int table_index;
} OTF_cmap;
extern int OTF_drive_cmap2 (OTF *otf, OTF_GlyphString *gstring,
int platform_id, int encoding_id);
+
+/***
+ Store variable glyphs of character C in the array CODE. The array
+ size must be 256. The Nth element of CODE is the glyph corresponding
+ to the variation selector (N + 1). The return value is the number
+ of variation glyphs. */
+
+extern int OTF_get_variation_glyphs (OTF *otf, int c, OTF_GlyphID code[256]);
+
+
/*** (3-3) OTF_drive_gdef() */
/***
const char *script, const char *language,
const char *features);
+/*** (3-9) OTF_iterate_on_feature() */
+typedef int (*OTF_Feature_Callback) (OTF *otf, const char *feature,
+ unsigned glyph_id);
+
+extern int OTF_iterate_gsub_feature (OTF *otf, OTF_Feature_Callback callback,
+ const char *script, const char *language,
+ const char *feature);
+
/*** (4) API for error handling ***/
/*** (4-1) Error codes ***/
extern void OTF_tag_name (OTF_Tag tag, char *name);
+extern int OTF_put_data (OTF *otf, char *id, void *data,
+ void (*freer) (void *data));
+
+extern void *OTF_get_data (OTF *otf, char *id);
+
+extern OTF_Tag *OTF_get_drive_log (OTF *otf);
+
#ifdef __cplusplus
}
#endif