diff options
Diffstat (limited to 'Build/source/texk/web2c/mfluadir/otfcc/lib/table/head.c')
-rw-r--r-- | Build/source/texk/web2c/mfluadir/otfcc/lib/table/head.c | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/Build/source/texk/web2c/mfluadir/otfcc/lib/table/head.c b/Build/source/texk/web2c/mfluadir/otfcc/lib/table/head.c deleted file mode 100644 index e5478aab4ec..00000000000 --- a/Build/source/texk/web2c/mfluadir/otfcc/lib/table/head.c +++ /dev/null @@ -1,137 +0,0 @@ -#include "head.h" - -#include "support/util.h" - -static INLINE void initHead(table_head *head) { - memset(head, 0, sizeof(*head)); - head->magicNumber = 0x5f0f3cf5; - head->unitsPerEm = 1000; -} -static INLINE void disposeHead(table_head *head) { - // trivial -} -caryll_standardRefType(table_head, table_iHead, initHead, disposeHead); - -table_head *otfcc_readHead(const otfcc_Packet packet, const otfcc_Options *options) { - FOR_TABLE(OTFCC_CHR('h','e','a','d'), table) { - font_file_pointer data = table.data; - uint32_t length = table.length; - - if (length < 54) { - logWarning("table 'head' corrupted.\n"); - } else { - table_head *head; - NEW(head); - head->version = read_32s(data); - head->fontRevision = read_32u(data + 4); - head->checkSumAdjustment = read_32u(data + 8); - head->magicNumber = read_32u(data + 12); - head->flags = read_16u(data + 16); - head->unitsPerEm = read_16u(data + 18); - head->created = read_64u(data + 20); - head->modified = read_64u(data + 28); - head->xMin = read_16u(data + 36); - head->yMin = read_16u(data + 38); - head->xMax = read_16u(data + 40); - head->yMax = read_16u(data + 42); - head->macStyle = read_16u(data + 44); - head->lowestRecPPEM = read_16u(data + 46); - head->fontDirectoryHint = read_16u(data + 48); - head->indexToLocFormat = read_16u(data + 50); - head->glyphDataFormat = read_16u(data + 52); - return head; - } - } - return NULL; -} - -static const char *headFlagsLabels[] = {"baselineAtY_0", - "lsbAtX_0", - "instrMayDependOnPointSize", - "alwaysUseIntegerSize", - "instrMayAlterAdvanceWidth", - "designedForVertical", - "_reserved1", - "designedForComplexScript", - "hasMetamorphosisEffects", - "containsStrongRTL", - "containsIndicRearrangement", - "fontIsLossless", - "fontIsConverted", - "optimizedForCleartype", - "lastResortFont", - NULL}; -static const char *macStyleLabels[] = {"bold", "italic", "underline", "outline", - "shadow", "condensed", "extended", NULL}; - -void otfcc_dumpHead(const table_head *table, json_value *root, const otfcc_Options *options) { - if (!table) return; - loggedStep("head") { - json_value *head = json_object_new(15); - json_object_push(head, "version", json_double_new(otfcc_from_fixed(table->version))); - json_object_push(head, "fontRevision", - json_double_new(otfcc_from_fixed(table->fontRevision))); - json_object_push(head, "flags", otfcc_dump_flags(table->flags, headFlagsLabels)); - json_object_push(head, "unitsPerEm", json_integer_new(table->unitsPerEm)); - json_object_push(head, "created", json_integer_new(table->created)); - json_object_push(head, "modified", json_integer_new(table->modified)); - json_object_push(head, "xMin", json_integer_new(table->xMin)); - json_object_push(head, "xMax", json_integer_new(table->xMax)); - json_object_push(head, "yMin", json_integer_new(table->yMin)); - json_object_push(head, "yMax", json_integer_new(table->yMax)); - json_object_push(head, "macStyle", otfcc_dump_flags(table->macStyle, macStyleLabels)); - json_object_push(head, "lowestRecPPEM", json_integer_new(table->lowestRecPPEM)); - json_object_push(head, "fontDirectoryHint", json_integer_new(table->fontDirectoryHint)); - json_object_push(head, "indexToLocFormat", json_integer_new(table->indexToLocFormat)); - json_object_push(head, "glyphDataFormat", json_integer_new(table->glyphDataFormat)); - json_object_push(root, "head", head); - } -} - -table_head *otfcc_parseHead(const json_value *root, const otfcc_Options *options) { - table_head *head = table_iHead.create(); - json_value *table = NULL; - if ((table = json_obj_get_type(root, "head", json_object))) { - loggedStep("head") { - head->version = otfcc_to_fixed(json_obj_getnum_fallback(table, "version", 0)); - head->fontRevision = otfcc_to_fixed(json_obj_getnum_fallback(table, "fontRevision", 0)); - head->flags = otfcc_parse_flags(json_obj_get(table, "flags"), headFlagsLabels); - head->unitsPerEm = json_obj_getnum_fallback(table, "unitsPerEm", 0); - head->created = json_obj_getnum_fallback(table, "created", 0); - head->modified = json_obj_getnum_fallback(table, "modified", 0); - head->xMin = json_obj_getnum_fallback(table, "xMin", 0); - head->xMax = json_obj_getnum_fallback(table, "xMax", 0); - head->yMin = json_obj_getnum_fallback(table, "yMin", 0); - head->yMax = json_obj_getnum_fallback(table, "yMax", 0); - head->macStyle = otfcc_parse_flags(json_obj_get(table, "macStyle"), macStyleLabels); - head->lowestRecPPEM = json_obj_getnum_fallback(table, "lowestRecPPEM", 0); - head->fontDirectoryHint = json_obj_getnum_fallback(table, "fontDirectoryHint", 0); - head->indexToLocFormat = json_obj_getnum_fallback(table, "indexToLocFormat", 0); - head->glyphDataFormat = json_obj_getnum_fallback(table, "glyphDataFormat", 0); - } - } - return head; -} - -caryll_Buffer *otfcc_buildHead(const table_head *head, const otfcc_Options *options) { - if (!head) return NULL; - caryll_Buffer *buf = bufnew(); - bufwrite32b(buf, head->version); - bufwrite32b(buf, head->fontRevision); - bufwrite32b(buf, head->checkSumAdjustment); - bufwrite32b(buf, head->magicNumber); - bufwrite16b(buf, head->flags); - bufwrite16b(buf, head->unitsPerEm); - bufwrite64b(buf, head->created); - bufwrite64b(buf, head->modified); - bufwrite16b(buf, head->xMin); - bufwrite16b(buf, head->yMin); - bufwrite16b(buf, head->xMax); - bufwrite16b(buf, head->yMax); - bufwrite16b(buf, head->macStyle); - bufwrite16b(buf, head->lowestRecPPEM); - bufwrite16b(buf, head->fontDirectoryHint); - bufwrite16b(buf, head->indexToLocFormat); - bufwrite16b(buf, head->glyphDataFormat); - return buf; -} |