Closed RoelN closed 4 years ago
you mean like getSupportedAxes() and getAxis(name), or something else?
That'd get me the axes, but I mean named instances that point to predefined axes settings.
Like the dropdown here:
You have the instances in fvar, they point to name IDs which are in the name table.
On Tue, 26 Nov 2019 at 08:56, Roel Nieskens notifications@github.com wrote:
That'd get me the axes, but I mean named instances that point to predefined axes settings.
Like the dropdown here:
[image: image] https://user-images.githubusercontent.com/4570664/69609798-a91ad400-102a-11ea-91ed-f2a21db2f390.png
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Pomax/Font.js/issues/53?email_source=notifications&email_token=AAD6XRG5ORWF227VLQ4YINDQVTJEFA5CNFSM4JRG5MZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFFCK2Y#issuecomment-558507371, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD6XRGDOUTULCO6Q36ZLSDQVTJEFANCNFSM4JRG5MZA .
As Adam mentions, the axis record has an ID into the name table that should let you look it up pretty easily:
const tables = myFont.opentype.tables;
const axis = tables.fvar.getAxis(`wdth`);
const fullName = tables.name.get(axis.axisNameID)
If it would drastically simplify your work, I could add a function to fvar, or to variation axis records, that fetches that full name automatically, but I'm not sure it's complex enough to warrant a dedicated function (that said, this probably falls in the discussion around how much "convenience" to offer on top of the straight up parsed data)
But that gives me axis names, that's a problem indeed solved. I'm looking for named instances, the predefined styles that set axes to specific values. I'm not seeing that in the current fvar
object, or am I missing something obvious?
Pomax's "fvar" starts with "import lazy". Which, I take it, imports from his soul ;)
Fella only implemented half the table :D
On Tue, 26 Nov 2019 at 23:31, Roel Nieskens notifications@github.com wrote:
But that gives me axis names, that's a problem indeed solved. I'm looking for named instances, the predefined styles that set axes to specific values. I'm not seeing that in the current fvar object, or am I missing something obvious?
— You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/Pomax/Font.js/issues/53?email_source=notifications&email_token=AAD6XRGWHZS5WVWNZ2ZEPRTQVWPTFA5CNFSM4JRG5MZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFHU7SI#issuecomment-558845897, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD6XRHNZATSNXRCG35NKATQVWPTFANCNFSM4JRG5MZA .
haha, yeah I think I stopped when it turned into "check flags to figure out how to parse the rest" and moved on to more fun stuff. I've unchecked fvar in https://github.com/Pomax/Font.js/issues/45
alright, instance records added. No convenience functions, but then it doesn't really need it, just tap into myfont.opentype.tables.fvar.instances
, e.g. to get the names, map the subfamilyNameID into the name table:
const { fvar, name } = myFont.opentype.tables;
const instanceNames = fvar.instances.map(instance =>
name.get(instance.subfamilyNameID)
);
🙏 Supermegathanks!! 💖
Maybe Pomax defines "lazy" differently: I'll be adding code when people ask for it, but not before :) That's the good kind of lazy, I'd say ;)
it's the "doing the actual programming" version of lazy loading =D
But on a less joking note, that's kind of true: I started the rewrite for some folks who needed a simple opentype lib, and while adding tables has turned out to be easier than expected, stuff that people actually needed still got done first, with everything that has no one actually asking for it getting done "whenever I feel like it".
The rewrite's still young, so for now that's still "when I have some dead moments during the day" =)
A list with name ID and axes values would be useful!