[OpenJDK 2D-Dev] Review request for 8069348 SunGraphics2D.copyArea() does not properly work for scaled graphics in D3D
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Tue Nov 24 14:50:27 UTC 2015
Looks fine to me.
On 24.11.15 16:07, Alexander Scherbatiy wrote:
>
> Hello,
>
> Could you review the updated fix:
> http://cr.openjdk.java.net/~alexsch/8069348/webrev.01/
>
> - The given image sizes are transformed in the SG2D.doCopyArea method.
> The copyArea() methods are updated accordingly.
> - OGLSurfaceData.copyArea() method is updated to process scaled
> transforms.
> - The test which uses copyArea() method for VolatileImage is added. I
> left the test which moves internal frames for the Swing testing purposes.
>
> Thanks,
> Alexandr.
>
>
> On 11/20/2015 6:59 PM, Jim Graham wrote:
>> In terms of consolidating the code...
>>
>> Since SD.copyArea is an internal API, we could simply specify that it
>> takes pixel coordinates and assumes COPY semantics so it is up to SG2D
>> to verify the transform and compState and perform appropriate
>> coordinate transformations before asking the SD to do the dirty work.
>> I'm not sure why we left so much veto power up to the SD class there...
>>
>> ...jim
>>
>> On 11/20/15 7:38 AM, Sergey Bylokhov wrote:
>>> On 20.11.15 14:49, Alexander Scherbatiy wrote:
>>>>
>>>> Hello,
>>>>
>>>> Could you review the fix:
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8069348
>>>> webrev: http://cr.openjdk.java.net/~alexsch/8069348/webrev.00
>>>>
>>>> For some reasons Blit operation does not properly work in the
>>>> SunGraphics2D.copyArea() method
>>>> with scaled transform neither on Windows nor on Mac OS X.
>>>> I have filled an issue on it: JDK-8143392 SunGraphics2D.copyArea()
>>>> does not properly handle Blit operation
>>>
>>> Interesting.
>>>
>>>>
>>>> The current solution updates D3DSurfaceData.copyArea() to handle
>>>> scaled graphics in the same way
>>>> as it has been already done for the CGLSurfaceData (see JDK-8000629
>>>> [macosx] Blurry rendering with Java 7 on Retina display).
>>>
>>> Note that this fix does not help ogl on windows right? because on
>>> windows the usual ogl blit should be used since the fix for retina was
>>> osx specific. Or it works properly?
>>>
>>>>
>>>> May be there is a way to avoid the code duplication: put it to some
>>>> SurfaceDataUtils class (it also
>>>> requires adding parent copyArea() method to BufferedRenderPipe) or
>>>> something else. I am not sure about the best option.
>>>
>>> This is up to the 2d team, but I think yes, it will be better to move it
>>> somewhere because after the current fix the different pipelines will
>>> behave differently on different platforms for a different
>>> transformations =(
>>>
>>>>
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>
>>>
>>>
>
--
Best regards, Sergey.
More information about the 2d-dev
mailing list