diff options
Diffstat (limited to 'Build/source/texk/web2c/mfluadir/otfcc/lib/table/otl/subtables/gpos-common.h')
-rw-r--r-- | Build/source/texk/web2c/mfluadir/otfcc/lib/table/otl/subtables/gpos-common.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/mfluadir/otfcc/lib/table/otl/subtables/gpos-common.h b/Build/source/texk/web2c/mfluadir/otfcc/lib/table/otl/subtables/gpos-common.h new file mode 100644 index 00000000000..e232bbb6ecd --- /dev/null +++ b/Build/source/texk/web2c/mfluadir/otfcc/lib/table/otl/subtables/gpos-common.h @@ -0,0 +1,43 @@ +#ifndef CARYLL_TABLE_OTL_GPOS_COMMON_H +#define CARYLL_TABLE_OTL_GPOS_COMMON_H + +#include "common.h" + +// anchors +otl_Anchor otl_anchor_absent(void); +otl_Anchor otl_read_anchor(font_file_pointer data, uint32_t tableLength, uint32_t offset); +json_value *otl_dump_anchor(otl_Anchor a); +otl_Anchor otl_parse_anchor(json_value *v); +bk_Block *bkFromAnchor(otl_Anchor a); + +// mark arrays +typedef struct { + sds className; + glyphclass_t classID; + UT_hash_handle hh; +} otl_ClassnameHash; + +void otl_readMarkArray(otl_MarkArray *array, otl_Coverage *cov, font_file_pointer data, + uint32_t tableLength, uint32_t offset); +void otl_parseMarkArray(json_value *_marks, otl_MarkArray *array, otl_ClassnameHash **h, + const otfcc_Options *options); + +// position values +extern const uint8_t FORMAT_DX; +extern const uint8_t FORMAT_DY; +extern const uint8_t FORMAT_DWIDTH; +extern const uint8_t FORMAT_DHEIGHT; +extern const uint8_t bits_in[0x100]; + +uint8_t position_format_length(uint16_t format); +otl_PositionValue position_zero(void); +otl_PositionValue read_gpos_value(font_file_pointer data, uint32_t tableLength, uint32_t offset, + uint16_t format); +uint8_t required_position_format(otl_PositionValue v); +void write_gpos_value(caryll_Buffer *buf, otl_PositionValue v, uint16_t format); +bk_Block *bk_gpos_value(otl_PositionValue v, uint16_t format); + +json_value *gpos_dump_value(otl_PositionValue value); +otl_PositionValue gpos_parse_value(json_value *pos); + +#endif |