RFR: 8269806: Emoji rendering on Linux [v16]

Phil Race prr at openjdk.org
Fri Dec 2 19:30:09 UTC 2022


On Thu, 1 Dec 2022 19:38:44 GMT, Nikita Gubarkov <duke at openjdk.org> 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 incrementally with one additional commit since the last revision:
> 
>   Fix pointer to jlong conversion on x86

I imported the changes and submitted to our CI test system. There seem to be a number of failures of the provided tests.
java/awt/font/MacEmoji.java : fails on x64 and aarch64 with Error: can't find Emoji in test directory or libraries

java/awt/font/EmojiVariation.java :
failed on linux-aarch64 with Exception: java.lang.Error: Required font not found: Noto Color Emoji

I don't think a test should fail just because there are no Emoji fonts installed.
Lots of system configs will run into this relatively bleeding edge reqt.

and windows-64 fails this test with a REALLY long message repeating lots of times a message like
0023-COLOR: Expected color but rendered mono

java/awt/font/ComplexEmoji.java failed on linux-aarch64 with Exception: java.lang.Error: Required font not found: Noto Color Emoji

and failed on windows-x64 with Exception: 3: Empty image

java/awt/font/OutlineTextRendererEmoji.java: failed on aarch64 with Exception: java.lang.Error: Required font not found: Noto Color Emoji 

I haven't yet looked at how this behaves when manually testing on current platforms. These are just automated tests.

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

PR: https://git.openjdk.org/jdk/pull/4798



More information about the client-libs-dev mailing list