summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/mfluadir/otfcc/include/otfcc/font.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/mfluadir/otfcc/include/otfcc/font.h')
-rw-r--r--Build/source/texk/web2c/mfluadir/otfcc/include/otfcc/font.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/mfluadir/otfcc/include/otfcc/font.h b/Build/source/texk/web2c/mfluadir/otfcc/include/otfcc/font.h
new file mode 100644
index 00000000000..1159c9c80d3
--- /dev/null
+++ b/Build/source/texk/web2c/mfluadir/otfcc/include/otfcc/font.h
@@ -0,0 +1,120 @@
+#ifndef CARYLL_FONT_H
+#define CARYLL_FONT_H
+
+#include "sfnt.h"
+
+struct _caryll_font;
+typedef struct _caryll_font otfcc_Font;
+
+#include "otfcc/glyph-order.h"
+
+#include "otfcc/table/fvar.h"
+
+#include "otfcc/table/head.h"
+#include "otfcc/table/glyf.h"
+#include "otfcc/table/CFF.h"
+#include "otfcc/table/maxp.h"
+#include "otfcc/table/hhea.h"
+#include "otfcc/table/hmtx.h"
+#include "otfcc/table/hdmx.h"
+#include "otfcc/table/vhea.h"
+#include "otfcc/table/vmtx.h"
+#include "otfcc/table/OS_2.h"
+#include "otfcc/table/post.h"
+#include "otfcc/table/name.h"
+#include "otfcc/table/meta.h"
+
+#include "otfcc/table/cmap.h"
+#include "otfcc/table/cvt.h"
+#include "otfcc/table/fpgm-prep.h"
+#include "otfcc/table/gasp.h"
+#include "otfcc/table/VDMX.h"
+
+#include "otfcc/table/LTSH.h"
+#include "otfcc/table/VORG.h"
+
+#include "otfcc/table/GDEF.h"
+#include "otfcc/table/BASE.h"
+#include "otfcc/table/otl.h"
+
+#include "otfcc/table/CPAL.h"
+#include "otfcc/table/COLR.h"
+#include "otfcc/table/SVG.h"
+
+#include "otfcc/table/_TSI.h"
+#include "otfcc/table/TSI5.h"
+
+typedef enum { FONTTYPE_TTF, FONTTYPE_CFF } otfcc_font_subtype;
+
+struct _caryll_font {
+ otfcc_font_subtype subtype;
+
+ table_fvar *fvar;
+
+ table_head *head;
+ table_hhea *hhea;
+ table_maxp *maxp;
+ table_OS_2 *OS_2;
+ table_hmtx *hmtx;
+ table_post *post;
+ table_hdmx *hdmx;
+
+ table_vhea *vhea;
+ table_vmtx *vmtx;
+ table_VORG *VORG;
+
+ table_CFF *CFF_;
+ table_glyf *glyf;
+ table_cmap *cmap;
+ table_name *name;
+ table_meta *meta;
+
+ table_fpgm_prep *fpgm;
+ table_fpgm_prep *prep;
+ table_cvt *cvt_;
+ table_gasp *gasp;
+ table_VDMX *VDMX;
+
+ table_LTSH *LTSH;
+
+ table_OTL *GSUB;
+ table_OTL *GPOS;
+ table_GDEF *GDEF;
+ table_BASE *BASE;
+
+ table_CPAL *CPAL;
+ table_COLR *COLR;
+ table_SVG *SVG_;
+
+ table_TSI *TSI_01;
+ table_TSI *TSI_23;
+ table_TSI5 *TSI5;
+
+ otfcc_GlyphOrder *glyph_order;
+};
+
+extern caryll_ElementInterfaceOf(otfcc_Font) {
+ caryll_RT(otfcc_Font);
+ void (*consolidate)(otfcc_Font * font, const otfcc_Options *options);
+ void *(*createTable)(otfcc_Font * font, const uint32_t tag);
+ void (*deleteTable)(otfcc_Font * font, const uint32_t tag);
+}
+otfcc_iFont;
+
+// Font builder interfaces
+typedef struct otfcc_IFontBuilder {
+ otfcc_Font *(*read)(void *source, uint32_t index, const otfcc_Options *options);
+ void (*free)(struct otfcc_IFontBuilder *self);
+} otfcc_IFontBuilder;
+otfcc_IFontBuilder *otfcc_newOTFReader(void);
+otfcc_IFontBuilder *otfcc_newJsonReader(void);
+
+// Font serializer interface
+typedef struct otfcc_IFontSerializer {
+ void *(*serialize)(otfcc_Font *font, const otfcc_Options *options);
+ void (*free)(struct otfcc_IFontSerializer *self);
+} otfcc_IFontSerializer;
+otfcc_IFontSerializer *otfcc_newJsonWriter(void);
+otfcc_IFontSerializer *otfcc_newOTFWriter(void);
+
+#endif