RFR: 8269806: Emoji rendering on Linux [v19]

Nikita Gubarkov duke at openjdk.org
Wed Apr 5 14:15:57 UTC 2023


> 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 31 commits:

 - Moved tests to separate directory.
 - Get rid of charsToGlyphs[NS] boilerplate.
 - Removed getGlyphVectorOutline - it's unused and broken
 - 🥸
   
   - Removed font fallback hacks.
   - Changed composite font glyph code encoding scheme, refactored to use Font2D instead of PhysicalFont.
   - New Emoji logical font type with 2 underlying physical fonts.
 - Merge branch 'master' into JDK-8269806
 - 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
 - ... and 21 more: https://git.openjdk.org/jdk/compare/2e59d21e...c1b8f9b2

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

Changes: https://git.openjdk.org/jdk/pull/4798/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=4798&range=18
  Stats: 3786 lines in 74 files changed: 2553 ins; 785 del; 448 mod
  Patch: https://git.openjdk.org/jdk/pull/4798.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/4798/head:pull/4798

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



More information about the client-libs-dev mailing list