[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Integrated: 8290866: Apple Color Emoji turns gray after JavaFX version 18
From:       Phil Race <prr () openjdk ! org>
Date:       2023-02-24 22:48:19
Message-ID: FOy5amdnXfPdhf35Enmt151g8w680FdsLthUgxy6JSo=.2ce65f41-1cac-4b88-b68f-4ff82cce55d9 () github ! com
[Download RAW message or body]

On Thu, 23 Feb 2023 20:43:29 GMT, Phil Race <prr@openjdk.org> wrote:

> This fix properly supports colour rendering of Emoji on macOS
> 
> 
> On other platforms the Emoji will be rendered as ordinary greyscale glyphs - if there is font
> support for the requested code point.
> 
> A simple manual test is provided which uses a Text node, Label control
> and editable TextField control.
> 
> Some highlights of the code
> - To determine if it is a color emoji glyph probe the 'sbix' font table which is what is used by Apple
> - Text runs now break at an Emoji glyph
> - The Emoji is retrieved as an BGRA image - ie 4 channel including alpha
> - It was necessary to retrieve the Emoji glyph bounds via a different CoreText API since
>    the bounds that were being retrieved were wrong for the Emoji image - causing clipping
> - It was necessary to retrieve the Emoji code point advance via a CoreText API since
>    the HMTX metrics were very wrong - causing overlapping glyphs
> - drawString checks if it is an Emoji run and redirects to a new drawColorGlyph method
>    which draws the image as a texture
> - All 3 rendering pipelines have this support and have been verified on all 3 desktop platforms

This pull request has now been integrated.

Changeset: 0de08379
Author:    Phil Race <prr@openjdk.org>
URL:       https://git.openjdk.org/jfx/commit/0de083793407481a5c86923f9537482f850cdb65
Stats:     516 lines in 15 files changed: 491 ins; 11 del; 14 mod

8290866: Apple Color Emoji turns gray after JavaFX version 18

Reviewed-by: kcr, angorya

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

PR: https://git.openjdk.org/jfx/pull/1047
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic