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 ------------- Commit messages: - 8290866 - 8290866 Changes: https://git.openjdk.org/jfx/pull/1047/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1047&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8290866 Stats: 511 lines in 15 files changed: 488 ins; 9 del; 14 mod Patch: https://git.openjdk.org/jfx/pull/1047.diff Fetch: git fetch https://git.openjdk.org/jfx pull/1047/head:pull/1047 PR: https://git.openjdk.org/jfx/pull/1047