[OpenJDK 2D-Dev] [9] Review Request: 8167310 The graphics clip is incorrectly rounded for some fractional scales
Jim Graham
james.graham at oracle.com
Mon Oct 10 20:42:46 UTC 2016
Can we also not use MAX_INT for the drawImage test case? Either have the drawImage follow the clip around or choose an
appropriate non-limit size to cover the worst case scale with some margin for error...
...jim
On 10/10/16 12:45 PM, Sergey Bylokhov wrote:
> An updated version:
> http://cr.openjdk.java.net/~serb/8167310/webrev.03
> - STROKE_PURE is used in the test, the line width is set to 2.01. This also fixed the difference between clips(Shape vs
> Rectangle).
> - The if statement is changed as suggested.
>
> The additional questions:
> - In the current fix we change behavior of the clip. Before the fix if we set the clip to the nearest areas they can
> overlaps in the destination. Should we change the drawImage as well? Currently if I draw image to the nearest areas in
> the user space, the images can overlap in the destination(so the actual result in destination depends on what image was
> painted first).
> - Should the clip be affected by the stroke(if it was set by the shape)? Right now if the clip was set by the shape it
> will produce different result than if it was set via rectangle.
>
> On 10.10.16 22:29, Jim Graham wrote:
>> That does sound like a problem. Does it do the same thing with new
>> Path2D(Rectangle)? The Area class does some processing on the path and
>> it would be nice to eliminate that as a potential source of this
>> problem. I don't have a buildable JDK9 repo right now that I can fire
>> off some quick tests on so I'll have to look at this later...
>>
>> ...jim
>>
>> On 10/10/16 12:04 PM, Sergey Bylokhov wrote:
>>> On 10.10.16 21:55, Sergey Bylokhov wrote:
>>>>> Will give us a pass on the test as long as we made the same mistake for
>>>>> both the rect clip and the shape clip. I think you want "(rgb !=
>>>>> goldRGB) || (rgb != GREEN && rgb != RED)"...?
>>>>
>>>> Correct, I will update the test.
>>>
>>> surprisingly but it is produce the different results.... And I think
>>> that the clip which is set via Shape is shifted,
>>> because the first and last fillRects cover only the half of expected
>>> area. But in case of clip=rectangle all fillRects
>>> produce the same areas.
>>>
>>>
>
>
More information about the 2d-dev
mailing list