The fix looks fine, but I see the following issues with the test case:
- For a test case that claims to test copyArea(), it never calls that
method anywhere...?
- There is no need to display a frame on the screen and use Robot to
reproduce the problem, it can all be done by creating a VolatileImage
and doing the copyArea on that, and then reading back from the VI to see
if it happened correctly, can't it?
...jim
On 11/20/15 3:49 AM, 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
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).
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.
Thanks,
Alexandr.