Hello.
Could you review the fix ?
Issue:
Cannot use italic font style if the font has embeded bitmap.
Bug: https://bugs.openjdk.java.net/browse/JDK-8214002
Change: https://cr.openjdk.java.net/~itakiguchi/8214002/webrev.00/
It seems it's side-effect for:
8204929: Fonts with embedded bitmaps are not always rotated
Test instruction and screen shot are in JDK-8214002.
Thanks,
Ichiroh Takiguchi
IBM Japan, Ltd.
On 2018-07-27 20:22, Ichiroh Takiguchi wrote:
Hello.
According to my investigation, FT_Render_Glyph() was not called
even if FT_GlyphSlot_Oblique() was called.
=========
if (ftglyph->format == FT_GLYPH_FORMAT_OUTLINE) {
FT_Render_Glyph(ftglyph, FT_LOAD_TARGET_MODE(target)); <<===
}
=========
It seemed FT_Load_Glyph() and renderFlags affected this issue.
On my Windows,
For "MS Mincho" with italic, renderFlags was "FT_LOAD_TARGET_MONO |
FT_LOAD_NO_BITMAP | FT_LOAD_RENDER".
I also tested "Meiryo" font (it could handle italic style)
For "Meiryo" with italic, renderFlags was "FT_LOAD_TARGET_MONO |
FT_LOAD_RENDER".
I think, after FT_LOAD_NO_BITMAP is turned on, FT_LOAD_RENDER should
be turned off.
So how about following fix ?
=========
diff -r 1edcf36fe15f
src/java.desktop/share/native/libfontmanager/freetypeScaler.c
---
a/src/java.desktop/share/native/libfontmanager/freetypeScaler.c Wed
Jul 18 11:57:51 2018 -0400
+++
b/src/java.desktop/share/native/libfontmanager/freetypeScaler.c Fri
Jul 27 19:44:12 2018 +0900
@@ -700,6 +700,9 @@
if (!context->useSbits) {
renderFlags |= FT_LOAD_NO_BITMAP;
+ if (context->doBold || context->doItalize) {
+ renderFlags &= ~FT_LOAD_RENDER;
+ }
}
/* NB: in case of non identity transform
=========
On 2018-07-25 19:29, Ichiroh Takiguchi wrote:
Hello.
I'm using jdk-11+23 build on Japanese Windows 7.
I ran Font2DTest Demo, then select like:
Font: MS Mincho
Range: Basic Latin
Method: drawString
Size: 24
Style: Italic
But style was not changed to Italic.
Antialiasing and Fractional Metrics did not affect this issue.
I assume it's side-effect for:
8204929: Fonts with embedded bitmaps are not always rotated
Could you check it ?
Thanks,
Ichiroh Takiguchi
IBM Japan, Ltd.