Iosevka/font-src/gen/otd-conv/metadata.js
be5invis 7c78329244 * Replace autoRef with semantic inclusion for more stable results.
* Move files around to make repository organized better.
2020-10-17 15:45:00 -07:00

98 lines
3.3 KiB
JavaScript

const { Ot } = require("ot-builder");
exports.convertHead = convertHead;
function convertHead(otdHead) {
const head = new Ot.Head.Table();
head.fontRevision = otdHead.fontRevision;
head.flags = otdHead.flags;
head.fontDirectionHint = otdHead.fontDirectionHint;
head.unitsPerEm = otdHead.unitsPerEm;
head.macStyle = macStyleObjToEnum(otdHead.macStyle);
head.lowestRecPPEM = otdHead.lowestRecPPEM;
head.glyphDataFormat = otdHead.glyphDataFormat;
return head;
}
exports.convertHhea = convertHhea;
function convertHhea(otdHhea) {
const hhea = new Ot.MetricHead.Hhea();
hhea.ascender = otdHhea.ascender;
hhea.descender = otdHhea.descender;
hhea.lineGap = otdHhea.lineGap;
hhea.caretSlopeRise = otdHhea.caretSlopeRise;
hhea.caretSlopeRun = otdHhea.caretSlopeRun;
hhea.caretOffset = otdHhea.caretOffset;
return hhea;
}
exports.convertPost = convertPost;
function convertPost(otdPost) {
const post = new Ot.Post.Table(3, 0);
post.italicAngle = otdPost.italicAngle;
post.underlinePosition = otdPost.underlinePosition;
post.underlineThickness = otdPost.underlineThickness;
post.isFixedPitch = otdPost.isFixedPitch;
return post;
}
exports.convertMaxp = convertMaxp;
function convertMaxp(otdMaxp) {
const maxp = Ot.Maxp.Table.TrueType();
return maxp;
}
exports.convertOs2 = convertOs2;
function convertOs2(otdOs2) {
const os2 = new Ot.Os2.Table(4);
os2.achVendID = otdOs2.achVendID;
os2.panose = otdOs2.panose;
os2.fsSelection = fsSelectionObjToEnum(otdOs2.fsSelection);
os2.fsType = otdOs2.fsType;
os2.sCapHeight = otdOs2.sCapHeight;
os2.sFamilyClass = otdOs2.sFamilyClass;
os2.sTypoAscender = otdOs2.sTypoAscender;
os2.sTypoDescender = otdOs2.sTypoDescender;
os2.sTypoLineGap = otdOs2.sTypoLineGap;
os2.sxHeight = otdOs2.sxHeight;
os2.usBreakChar = otdOs2.usBreakChar;
os2.usDefaultChar = otdOs2.usDefaultChar;
os2.usFirstCharIndex = otdOs2.usFirstCharIndex;
os2.usLastCharIndex = otdOs2.usLastCharIndex;
os2.usMaxContext = otdOs2.usMaxContext;
os2.usWeightClass = otdOs2.usWeightClass;
os2.usWidthClass = otdOs2.usWidthClass;
os2.usWinAscent = otdOs2.usWinAscent;
os2.usWinDescent = otdOs2.usWinDescent;
os2.xAvgCharWidth = otdOs2.xAvgCharWidth;
os2.yStrikeoutPosition = otdOs2.yStrikeoutPosition;
os2.yStrikeoutSize = otdOs2.yStrikeoutSize;
os2.ySubscriptXOffset = otdOs2.ySubscriptXOffset;
os2.ySubscriptXSize = otdOs2.ySubscriptXSize;
os2.ySubscriptYOffset = otdOs2.ySubscriptYOffset;
os2.ySubscriptYSize = otdOs2.ySubscriptYSize;
os2.ySuperscriptXOffset = otdOs2.ySuperscriptXOffset;
os2.ySuperscriptXSize = otdOs2.ySuperscriptXSize;
os2.ySuperscriptYOffset = otdOs2.ySuperscriptYOffset;
os2.ySuperscriptYSize = otdOs2.ySuperscriptYSize;
os2.ulCodePageRange1 = otdOs2.ulCodePageRange1;
os2.ulCodePageRange2 = otdOs2.ulCodePageRange2;
return os2;
}
function macStyleObjToEnum(o) {
return (
(o.bold ? Ot.Head.MacStyle.Bold : 0) |
(o.italic ? Ot.Head.MacStyle.Italic : 0) |
(o.condensed ? Ot.Head.MacStyle.Condensed : 0) |
(o.extended ? Ot.Head.MacStyle.Extended : 0)
);
}
function fsSelectionObjToEnum(o) {
return (
(o.oblique ? Ot.Os2.FsSelection.OBLIQUE : 0) |
(o.bold ? Ot.Os2.FsSelection.BOLD : 0) |
(o.italic ? Ot.Os2.FsSelection.ITALIC : 0) |
(o.regular ? Ot.Os2.FsSelection.REGULAR : 0) |
(o.useTypoMetrics ? Ot.Os2.FsSelection.USE_TYPO_METRICS : 0)
);
}