-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.4.1 next attempt #107
4.4.1 next attempt #107
Conversation
LaurenzV
commented
Jun 12, 2024
•
edited
Loading
edited
Status | Commit message | HB | |
---|---|---|---|
🟡 | [indic-like] Move allocation of syllable() buffer var to shapers that use it | Link | apart from the one change in hb-ot-layout, the rest isn't relevant for us right? |
🟡 | [layout-cache] Cache lookahead | Link | can ignore, right? |
🟡 | [layout] Rename apply_recurse_func to specialization of dispatch_recurse_func | Link | do we have that? |
🟡 | [indic-like] Remove category duplication | Link | Unfortunately, it's not really possible to deduplicate like they did, because of shortcomings of ragel rust... I added comments to hint to the lack of deduplication, I hope it won't cause problems in the future, but there isn't much else we can do I think... |
🟡 | [ucd] Update | Link | relevant? |
🟡 | [indic] Disable vowel-constraints under uniscribe-bug-compatible | Link | seems like we don't have this flag? |
🟡 | [indic] Clear syllables at the end of GSUB | Link | Seems like we don't have the clear_syllables_function... but it does seem relevant and it's also used in two other places, do you know what the rust equivalent would look like? I'm having a hard time understanding the C++ macro... |
🟡 | [indic] Remove remnants of Sinhala | Link | hb-ot-shaper contains a change in the end that is alsoa bout the "uniscribe compatibility bug" |
🟡 | [gdef] Minor harmless use of HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED | Link | how do I translate this? or is that a ttf-parser change? |
@RazrFalcon |
Yep. |
Alright, everything up to 4.4.1 is ported. So the only thing I need help with is with the orange points mentioned above. I tried adding a CI check with |
Yep.
It should be
Will take a look. |
Yes, we do not use
I think so. We do not cache those values to begin with.
Probably not. Hard to say.
A strange one, indeed. But I guess it doesn't affect us much.
We already have
Yep, out of scope.
Yes, we do not use
Yes, we do not care about
This is Also, that change in harfbuzz is no-op anyway, since Hopefully that's all. |
To clarify And if I remember correctly, as it was 4 years ago, I removed |
Okay, thanks! I will still try to look into the |
Thanks again! |
@behdad Could you maybe clarify what |
avar2 is a bit different: It's shipped by Apple, and is enabled by default in HB. So I prefer if you implement it. |
No it doesn't. The whole buffer variable allocation is just sanity checking to make sure the same buffer variable is not used for two different things at the same time. Some of the caching query whether a certain variable is free to use. But if you are not porting the layout caching things, you can ignore the buffer var allocations and just use them as long as they match the HB use patterns. |
Got it, thanks! |
Okay sorry, but I need to clarify again. Since we are not porting layout caching, should the following code snippet: static void
override_features_indic (hb_ot_shape_planner_t *plan)
{
plan->map.disable_feature (HB_TAG('l','i','g','a'));
plan->map.add_gsub_pause (hb_syllabic_clear_var); // Don't need syllables anymore, use stop to free buffer var
} be translated as (the way it currently is): fn override_features(planner: &mut hb_ot_shape_planner_t) {
planner
.ot_map
.disable_feature(hb_tag_t::from_bytes(b"liga"));
} or should we still add the gsub pause, so something like: fn override_features(planner: &mut hb_ot_shape_planner_t) {
planner
.ot_map
.disable_feature(hb_tag_t::from_bytes(b"liga"));
planner.ot_map.add_gsub_pause(None);
} |
Add a None pause so behavior remains exactly the same as HB. |