I think this fix is fine. In the other rasteriser cases we use
(T2K, freetype) we also  flip the sign of the y advance as it is stored
as the image y advance. It looks like this was just missing here.
This change should then only affect the final glyph rendering.

-phil.

On 5/21/2013 12:40 PM, Sergey Bylokhov wrote:
Hello,
Please review the fix for jdk 8.
On OSX advanceY in the glyphInfo is inverted.
It is used to increment position when the glyph is drawn as part of a string of text:
@see DrawGlyphList.c.setupBlitVector():
    ....
    for (g=0; g<len; g++) {
        ginfo = (GlyphInfo*)imagePtrs[g];
        .....
        FLOOR_ASSIGN(gbv->glyphs[g].y, y + ginfo->topLeftY);
        .....
        y += ginfo->advanceY;
    }

advances are initialized in the CGGlyphImages.m via JRSFontGetAdvancesForGlyphsAndStyle(). Note that JRSFontGetAdvancesForGlyphsAndStyle use "strike->fTx" and the origin of this transform is relative to the bottom-left corner baseline. So we should pass "strike->fAltTx" to the JRSFontGetAdvancesForGlyphsAndStyle(Not sure is it ok or not) OR to invert the received advance.height.

Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7190349
Webrev can be found at: http://cr.openjdk.java.net/~serb/7190349/webrev.00

--
Best regards, Sergey.


Reply via email to