On 12/31/18, 3:29 AM, Tredinnick, Jacob wrote:

> This is Windows ? What is your Windows desktop DPI setting ?
> If its greater than 100% (aka 96 dpi) you will see a difference in JDK 9+

This particular test was done on my laptop on Windows 7 with default scaling options and a 1920x1080 (maximum) screen resolution.


"default scaling options" can be > 100% so that is not answering the question.

I don't believe that it is due to HDPI scaling as the rectangle graphic would also have been affected?


Perhaps. It depends how you drew it.


> because of hidpi .. have you tried running on Oracle JDK 9 or JDK 10 ?
> If you see similar there then you can rule out t2k->freetype.
We haven't yet tried this test on OracleJDK 9 or 10 but we will look into this.

We will also check the behaviour with OpenJDK 8 vs OracleJDK 8 as I believe we will see the same problem there.

From our debugging it is fairly clear that change in rendering comes from the different font metrics coming from the removal of T2K.

We will work this week on some sample code demonstrating the problem...


Ok but different font metrics don't make the glyph images 30% bigger ..
which is how your image looks.
Maybe you are using that somehow to determine the font size to use in
a way that I can't divine.

-phil.

*From:*Philip Race [mailto:philip.r...@oracle.com]
*Sent:* 30 December 2018 22:41
*To:* Tredinnick, Jacob <jacob_tredinn...@mentor.com>
*Cc:* 2d-dev@openjdk.java.net
*Subject:* Re: [OpenJDK 2D-Dev] FontMetrics differ between OracleJDK 8 and OpenJDK 11

This is Windows ? What is your Windows desktop DPI setting ?
If its greater than 100% (aka 96 dpi) you will see a difference in JDK 9+
because of hidpi .. have you tried running on Oracle JDK 9 or JDK 10 ?
If you see similar there then you can rule out t2k->freetype.

-phil.

On 12/30/18, 4:43 AM, Tredinnick, Jacob wrote:

    Thank you Philip!

    (Someone else in our team had submitted the bug report before
    going on vacation & I didn't realize that we couldn't search based
    on the original ID).

    Looking at your comment on the bug, you are seeing differences of
    only a pixel, but in our application we are getting very large
    differences in the size of text.

    For example here is a "diff" that one of our tests generated for
    the Calibri "text object" in Java 8:

    The blue text is from a golden reference generated with Java 8 and
    the red text is from the test running in Java 11.

    The rectangle is just a rectangle graphic which remains unchanged
    between Java versions.

    (I hope that the image in this mail makes it through to the mail
    list...)

    I believe that the calculation of the bounding box for the text is
    based on the result of FontMetrics.getMaxAscent() and other
    FontMetrics methods, so the difference that we see is very
    significant indeed.

    Are you saying that we should not be relying on these font metrics
    for scaling of text in our applications?

    Unfortunately I cannot share our application code that results in
    these large differences, but we will work next week on making an
    example that we can share here...

    Thanks

    --

    Jake

    *From:*Philip Race [mailto:philip.r...@oracle.com]
    *Sent:* 29 December 2018 17:56
    *To:* Tredinnick, Jacob <jacob_tredinn...@mentor.com>
    <mailto:jacob_tredinn...@mentor.com>
    *Cc:* 2d-dev@openjdk.java.net <mailto:2d-dev@openjdk.java.net>
    *Subject:* Re: [OpenJDK 2D-Dev] FontMetrics differ between
    OracleJDK 8 and OpenJDK 11

    You can't find your report since it was mapped into this public
    report :
    https://bugs.openjdk.java.net/browse/JDK-8215290

    You should have received an email to that effect.

    -phil.

    On 12/29/18, 7:50 AM, Tredinnick, Jacob wrote:

        Hello,

        My team is currently working on migrating some of our (mostly
        Desktop & Swing-based) applications from OracleJDK 8 to
        OpenJDK 11 and we have discovered that some fonts in our
        application are getting drawn significantly differently e.g.
        significantly larger, differences with spaces between characters.

        When debugging, we found that the FontMetrics for the Font
        obtained as follows:

        FontMetrics metrics =
        Toolkit.getDefaultToolkit().getFontMetrics(font);

        Returns significantly different values:

        For example a plain, size 12 Calibri font:

        In OracleJDK 8 metrics.getMaxAscent() returns 11, while in
        OracleJDK 11 it returns 9.

        I understand that the proprietary "T2K" font engine was
        replaced by "FreeType" in OpenJDK but I'm surprised at the
        very noticeable differences that we now see in some of our
        text objects.

        Is it expected that FontMetrics would be so significantly
        different between OracleJDK 8 and OpenJDK 11?

        Note: I can share the code that generates the font metrics as
        well as a file describing all the diffs for fonts on my laptop
        if needed.

        Note also:

        We did attempt to submit a bug for this behaviour via
        https://bugreport.java.com/bugreport/

        But when we search for our bug ID 9058505 there are no
        results, presumably meaning that no-one has accepted this as a
        bug so far.

        I'm not sure if anyone here is able to find out what happened
        to our report?

        Thanks

        --

        Jake

Reply via email to