[OpenJDK 2D-Dev] RFR: 8242004: TextLayout throws Exception with a non-invertible transform

Philip Race philip.race at oracle.com
Fri Apr 10 14:15:55 UTC 2020


Oh and if you do draw it, it still goes through the GV path so nothing 
should draw there.

This is what I meant by :
 > Subsequent rendering of the TextLayoutwill be handled by the other 
checks being added.

The shape returned might be not be null but I don't think you'll get 
more than a line ..

-phil.

On 4/10/20, 12:57 AM, Philip Race wrote:
>
>
> On 4/9/20, 10:26 PM, Jayathirth D v wrote:
>> Hi Phil,
>>
>> I went through all use cases captured in test case (TextLayout, 
>> drawXXXX).
>>
>> With updated change there is difference in behaviour between how we 
>> interpret non-invertible transform between TextLayout.draw() and 
>> drawXXXX() API’s.
>> In case of TextLayout.draw() we are overriding non-invertible 
>> transform and allowing text rendering to happen, but in case of 
>> drawXXXX() we just return and doesn’t allow text rendering to 
>> continue. Is it okay to have this difference in behaviour?
>
> It becomes tricky.
> Do you have a suggestion ?
> Remember that the TextLayout is returned and does not have to be 
> drawn, but could be
> by both drawing it directly or asking for the outline shape and 
> rendering that.
> It can also be queried for the layout etc. There needs to be something 
> returned that
> does not cause other problems. And patently there can't be apps that 
> would care because
> today they can't get that far.
> And there's no defined behaviour in this case.
>
> So if you have specific code suggestions ..
>>
>> Also in test case its better if we continue to test all use cases and 
>> then fail instead of failing at first instance and added test case 
>> needs change in Copyright year from 2015 to 2020.
>
> oops.
>
> -phil.
>
>>
>> Thanks,
>> Jay
>>
>>> On 10-Apr-2020, at 7:53 AM, Philip Race <philip.race at oracle.com 
>>> <mailto:philip.race at oracle.com>> wrote:
>>>
>>> D**n copy/paste, yes you correctly inferred the webrev is at
>>> <cr-url>/<my openjdk id>/<bugid> ie : 
>>> http://cr.openjdk.java.net/~prr/8242004/ 
>>> <http://cr.openjdk.java.net/%7Eprr/8242004/>
>>>
>>> -phil.
>>>
>>>
>>> On 4/9/20, 7:00 PM, Jayathirth D v wrote:
>>>> Hi Phil,
>>>>
>>>> Please share webrev link, you have added JBS link for webrev.
>>>> I went to path where you usually share webrev's and found 
>>>> http://cr.openjdk.java.net/~prr/8242004/ 
>>>> <http://cr.openjdk.java.net/%7Eprr/8242004/>
>>>>
>>>> Thanks,
>>>> Jay
>>>>
>>>>
>>>>> On 10-Apr-2020, at 12:49 AM, Philip Race <philip.race at oracle.com 
>>>>> <mailto:philip.race at oracle.com>> wrote:
>>>>>
>>>>> Any takers ?
>>>>>
>>>>> -phil
>>>>>
>>>>> On 4/3/20, 1:29 PM, Philip Race wrote:
>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8242004
>>>>>> webrev: https://bugs.openjdk.java.net/browse/JDK-8242004
>>>>>>
>>>>>> Several code paths can end up in the method shown in the bug report
>>>>>> with a non-invertible transform.
>>>>>>
>>>>>> As much as possible, we can prevent them reaching here by 
>>>>>> checking in the rendering code.
>>>>>>
>>>>>> If we do get here, which should now be possible only when 
>>>>>> directly creating
>>>>>> a TextLayout, we can use a default TX. Subsequent rendering of 
>>>>>> the TextLayout
>>>>>> will be handled by the other checks being added.
>>>>>>
>>>>>> A regression test is provided which checks various APIs to make 
>>>>>> sure no
>>>>>> exception is thrown.
>>>>>>
>>>>>> -phil.
>>>>>>
>>>>>>
>>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/2d-dev/attachments/20200410/0d472b9a/attachment.htm>


More information about the 2d-dev mailing list