Setting font features and font variations. (#503) #506
+355
−6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #503.
I've got some comments in there with questions about how to do certain things.
I had thought I could use
hb_font_set_variations
and it would be super easy,barely an inconvenience, to support setting variations but it does nothing at all.
Instead I had to use FreeType directly, which took me a while to figure out how
to do. Do you think
hb_font_set_variations
is supposed to work? Or is it correctthat it does nothing when using FreeType, perhaps?
font->enable_kerning
is not used at all anymore,TTF_SetFontFeatures
andTTF_SetFontKerning
are completely independent. It ignores the
font->enable_kerning
valueif
TTF_SetFontFeatures
has been called with a non-null string. IfTTF_SetFontFeatures
is called later with a null string, it starts using the
font->enable_kerning
value again.Combining them is a bit complicated if we want to avoid doing more work in
CollectGlyphsFromFont()
.I've tried to run address sanitizer on the code but I haven't got it working yet.
It reports nothing even though I've commented out calls to free.
Until I've figured out how to get ASan working, and if
hb_font_set_variations
is supposed to work, I'm keeping this asa draft PR