[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: [OpenJDK 2D-Dev] RFR: 8214002 Cannot use italic font style if the font has embeded bitmap
From:       Philip Race <philip.race () oracle ! com>
Date:       2018-11-28 1:13:03
Message-ID: 5BFDEB9F.4050901 () oracle ! com
[Download RAW message or body]

Oh .. there's no regression test. If you can't find one then I think you
can write one relatively easily by selecting the known font - MS Mincho,
making sure we are on Windows (don't try it on Mac even if the font
exists), draw the text to a BufferedImage in plain / regular style.
Repeat to a different BufferedImage in italic
Compare the images, and pass only if they differ.

-phil.

On 11/27/18, 5:08 PM, Ichiroh Takiguchi wrote:
> Hello Phil.
>> Do you need me to push this ?
> Yes, if possible.
> Currently, no sponsor is assigned for this issue.
>
> Ichiroh Takiguchi
>
> On 2018-11-28 05:43, Phil Race wrote:
>> On 11/27/18 9:36 AM, Ichiroh Takiguchi wrote:
>>> Hello Phil.
>>>
>>> I don't have any concern about this fix.
>>> I'm thinking why initial programmer used FT_LOAD_RENDER instead of 
>>> FT_LOAD_DEFAULT.
>> Probably that this was what we wanted to do in almost all cases and 
>> it has
>> now turned out to be untrue ..
>>
>>> On my testing, this fix was fine for me.
>>
>> Do you need me to push this ?
>>
>> -phil.
>>
>>>
>>> Ichiroh Takiguchi
>>>
>>> On 2018-11-27 03:59, Philip Race wrote:
>>>> It seems fine to me. What is your concern when you say :
>>>>> But it may change font rendering behavior...
>>>>
>>>> -phil
>>>>
>>>> On 11/18/18, 9:35 PM, Ichiroh Takiguchi wrote:
>>>>> Hello Phill.
>>>>>
>>>>> I tested and checked your suggested code. [1]
>>>>> It worked fine.
>>>>> But it may change font rendering behavior...
>>>>> Please review the fix ?
>>>>>
>>>>> Bug:    https://bugs.openjdk.java.net/browse/JDK-8214002
>>>>> Change: https://cr.openjdk.java.net/~itakiguchi/8214002/webrev.01/
>>>>>
>>>>> Thanks,
>>>>> Ichiroh Takiguchi
>>>>> IBM Japan, Ltd.
>>>>>
>>>>> [1] 
>>>>> https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_LOAD_DEFAULT
>>>>>
>>>>> On 2018-11-17 06:04, Phil Race wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Thanks for spotting this. But I'm not sure the conditions are right.
>>>>>> Don't we need to unconditionally remove FT_LOAD_RENDER if 
>>>>>> synthetic styles
>>>>>> are requested, regardless of the value of that flag ?
>>>>>>
>>>>>> Perhaps we should not set FT_LOAD_RENDER upfront in which case we'll
>>>>>> just call it once
>>>>>> we are done, making the logic simpler and avoid all of the error 
>>>>>> prone "in this
>>>>>> case we disable it again" logic.
>>>>>>
>>>>>> So instead of your fix just change the initialisation to :
>>>>>>
>>>>>> int renderFlags = FT_LOAD_DEFAULT;
>>>>>>
>>>>>> -phil.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 11/16/18 9:37 AM, Ichiroh Takiguchi wrote:
>>>>>>> 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.
>>>>>>>
>>>>>
>>>
>
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic