On Wed, 1 Feb 2023 16:10:51 GMT, Nikita Gubarkov <[email protected]> wrote:

>> It was implemented in JetBrains Runtime a year ago and was ported & 
>> refactored for this PR
>> It includes:
>> - Bitmap glyph loading via Freetype
>> - Manual scaling & transformation of bitmap glyphs with nearest-neighbor or 
>> bilinear-mipmap style algorithms depending on the text antialiasing hint
>> - Storing BGRA glyphs in glyph cache & rendering them as plain images, as 
>> currently used XRender text drawing functions doesn't support colored glyphs
>> - Small fixes in related code like null-checks which could cause NPE & 
>> comment typos
>
> Nikita Gubarkov has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains 26 commits:
> 
>  - Dynamic loading of ftcolor.h symbols on Linux.
>  - Replace unicodeToUnits with Character.toChars in CCharToGlyphMapper
>  - Add braces to ifs.
>  - Make tests headful.
>  - Merge branch 'master' into JDK-8269806
>  - Remove ftcolor.c
>  - Skip tests if required font is absent
>  - Fix pointer to jlong conversion on x86
>  - Merge branch 'master' into JDK-8269806
>  - Merge branch 'master' into JDK-8269806
>  - ... and 16 more: https://git.openjdk.org/jdk/compare/60c535de...57c0b57d

New update:
- Composite fonts can now be nested, holding list of Font2Ds instead of 
PhysicalFonts. This gives more flexibility for implementing complex font 
fallback approaches and is necessary to implement proper emoji+VS fallback on 
Windows. Glyph code encoding was changed to support this, previously glyph code 
occupied 24 low bits and slot was encoded in 8 high bits, now slot is encoded 
in low bits instead (number of bits is dynamic) and glyph code is shifted, 
which allows stacking of glyph codes for nested composite mappers.
- Removed Windows fontconfig hacks in favor of the new EmojiFont.
- Refactored charsToGlyphs & charsToGlyphsNS copy-paste in mapper classes.
- Moved emoji tests to separate directory.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/4798#issuecomment-1497556549

Reply via email to