On Tue, 19 Sep 2023 13:41:27 GMT, Alexey Ivanov <[email protected]> wrote:

> **Root cause**
> 
> The _Baekmuk Headline_ font maps `\u6f22` (漢) to glyph id 16950 which has 
> zero length.
> 
> The test fails if the right half of the image with the rendered glyph 
> contains only pixels of background colour. In this case, the left half of the 
> image is also blank. It's somewhat false positive because of the broken font.
> 
> **Fix**
> 
> Ignore fonts which don't render the glyph correctly. If the left half of the 
> image contains pixels of the background colour only, it is expected that the 
> right half also contains background-coloured pixels only.
> 
> The updated test does not fail with the _Baekmuk Headline_ font. It still 
> detects the original problem and fails on builds without the fix for 
> [JDK-8312555](https://bugs.openjdk.org/browse/JDK-8312555).

I was thinking of a more direct font-oriented verification like this
import java.awt.*;
import java.awt.font.*;

public class GO {
  public static void main(String args[]) {
    Font font = new Font(Font.SANS_SERIF, Font.PLAIN, 20);
    FontRenderContext frc = new FontRenderContext(null, false, false);
    GlyphVector gv = font.createGlyphVector(frc, "o");
    boolean empty = gv.getVisualBounds().isEmpty();
    System.out.println("empty="+empty);
  }
}

% java GO      
empty=true

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

PR Comment: https://git.openjdk.org/jdk/pull/15818#issuecomment-1726453146

Reply via email to