Add basic support for font variations and features#601
Open
mcendu wants to merge 3 commits intolibsdl-org:mainfrom
Open
Add basic support for font variations and features#601mcendu wants to merge 3 commits intolibsdl-org:mainfrom
mcendu wants to merge 3 commits intolibsdl-org:mainfrom
Conversation
This commit adds the functionality to directly set font variation settings. The work directly builds upon a prior attempt from libsdl-org#506. Instead of parsing a single string, the API is changed to expect an array of variation settings, in the same format expected by the HarfBuzz function hb_font_set_variations(). This allows the font variation to be set even when HarfBuzz is not used. Link: libsdl-org#503 Link: libsdl-org#506 Co-authored-by: Martin Eriksson <woodauncher+git@gmail.com> Co-authored-by: Robert Sundling <11357412+RobertSundling@users.noreply.github.com> Signed-off-by: Du Yijie <nathandu@outlook.com>
This commit adds the functionality to directly set font features. The work directly builds upon a prior attempt from libsdl-org#506. Instead of parsing a single string, the API is changed to expect an array of features to apply globally, similar to the font variation support implementation. The option to apply a feature to a specific part of every text using the font is no longer present. OpenType features can be applied not only to everything using the font, but also to only a part of some text. This commit does not address this. Link: libsdl-org#503 Link: libsdl-org#506 Co-authored-by: Martin Eriksson <woodauncher+git@gmail.com> Co-authored-by: Robert Sundling <11357412+RobertSundling@users.noreply.github.com> Signed-off-by: Du Yijie <nathandu@outlook.com>
This commit adds a helper macro for constructing tags that can be used with TTF_SetFontScript(), for use cases where calling TTF_StringToTag() is undesired or impossible. The macro is identical in use to FT_MAKE_TAG in FreeType and HB_TAG in HarfBuzz. Signed-off-by: Du Yijie <nathandu@outlook.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request adds basic support for directly manipulating font variations and OpenType features.
This is a continuation of #506. While the previous attempt presented an API that consumes strings, the API in this PR instead consumes arrays of tag-value pairs, to make the implementation less complicated. The font variation can now be set even when SDL_ttf is not built with HarfBuzz support.
The previous attempt has limited support for applying OpenType features to only specific parts of text, which is no longer present in this PR.
Fixes: #503
Closes: #506