> **Problem**
> 
> Glyphs aren't stretched by applying an affine transform `scale(2, 1)` to a 
> font. Instead, the space between glyphs increases.
> 
> **Root Cause**
> 
> Bitmaps embedded in the font are used to render the glyphs; the bitmaps 
> aren't transformed, so white-space is seen which fills the requested 
> horizontal size.
> 
> **Fix**
> 
> Disable using embedded bitmaps if horizontal transform is different from the 
> vertical one.
> 
> It's similar to [JDK-8204929](https://bugs.openjdk.org/browse/JDK-8204929) 
> and [JDK-8255387](https://bugs.openjdk.org/browse/JDK-8255387).
> 
> **Test**
> 
> When embedded bitmaps are used, the right half of the image remains filled 
> with the background colour. The test looks for non-white pixels in the right 
> half of the image. If there are only white pixels in the right half of the 
> image, the test fails; if there are other colours, the test passes.
> 
> I can reproduce the problem on Windows only. Without the fix, the test 
> reports 6 failures for "MS Gothic", "MS PGothic" and "MS UI Gothic" fonts 
> when text antialiasing is off and when LCD antialiasing is enabled. If 
> greyscale antialiasing is enabled, the glyphs are stretched as expected, this 
> case was handled in JDK-8204929; it can be used as a workaround.
> 
> All client tests pass.
> 
> The test could be *headless*, but headless systems, especially with Linux, 
> don't have fonts installed. Without fonts, the test is useless, therefore I 
> made it *headful*.

Alexey Ivanov has updated the pull request incrementally with one additional 
commit since the last revision:

  Make the test headless, use Locale.ENGLISH instead of US

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/15335/files
  - new: https://git.openjdk.org/jdk/pull/15335/files/e0dc3307..980fdcd0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=15335&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=15335&range=00-01

  Stats: 3 lines in 1 file changed: 0 ins; 1 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/15335.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15335/head:pull/15335

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

Reply via email to