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.