Open tiroj opened 3 years ago
Re. Bengali: among the numerous missing features is init, which has an exceptional use for beng and bng2 that is not dependent on ArabicShaping.txt, but rather on shaping engine identification of word-initial context.
Some of your processing phase assignments don’t make sense to me, especially the ‘Common’ phase features, which include both GPOS and GSUB features (and those GSUB features includes ccmp and locl, which should be in the pre-processing phase).
Yes, ccmp
and locl
should definitely be pre-processing.
I would expect to see all GSUB processed before any GPOS, and for that to be the case for all scripts.
All features in the GSUB table are processed in the order given, and then all features in the GPOS table are processed in the order given. What determines whether a lookup ends up in GSUB or GPOS is not the feature tag, but the lookup type. In that sense, there are no "GSUB features" and "GPOS features", only GSUB lookups and GPOS lookups. So you go through the whole flow chart twice.
If I select a script that is processed by USE, I am confused because your processing phases do not correspond to the USE processing phases.
Right. I'm not sure whether to change that or not. It's quite nice - as you've tried to do in Enabling Typography - to separate features into a general model of "phase" that works for all scripts and shapers; but I can see some merit in giving the USE scripts their own set of phases.
If I select dev2 script, nothing shows up in any of the processing phases except Orthographic.
That just sounds like a coding bug in my filtering thing. I will check it.
Bengali: among the numerous missing features is init, which has an exceptional use for beng and bng2 that is not dependent on ArabicShaping.txt, but rather on shaping engine identification of word-initial context.
This was a pure oversight; I didn't think to check in the Indic shaper for init
. However, now that I do, I'm confused; I see that Harfbuzz enables the init
feature for Indic, but I don't see anywhere in the code that it sets up the topographic masks - it just applies it per-syllable. Maybe that's enough, or maybe there's a bug there?
I see that Harfbuzz enables the init feature for Indic, but I don't see anywhere in the code that it sets up the topographic masks - it just applies it per-syllable. Maybe that's enough, or maybe there's a bug there?
It shouldn’t be applied per (syllable) cluster unless also checking whether a cluster is the first in a word. It seems to work okay so far as I can tell from quick text entry tests in Chrome browser.
Some of your processing phase assignments don’t make sense to me, especially the ‘Common’ phase features, which include both GPOS and GSUB features (and those GSUB features includes ccmp and locl, which should be in the pre-processing phase).
I would expect to see all GSUB processed before any GPOS, and for that to be the case for all scripts.
If I select a script that is processed by USE, I am confused because your processing phases do not correspond to the USE processing phases.
If I select dev2 script, nothing shows up in any of the processing phases except Orthographic. Spot checked bng2 and found the same issue, so suspect this might be a problem for all the Indic shaping engine scripts?