--- old/src/java.desktop/share/classes/sun/java2d/opengl/OGLSurfaceData.java 2015-11-26 18:53:35.000000000 +0400 +++ new/src/java.desktop/share/classes/sun/java2d/opengl/OGLSurfaceData.java 2015-11-26 18:53:35.000000000 +0400 @@ -542,20 +542,16 @@ return super.getMaskFill(sg2d); } - public boolean copyArea(SunGraphics2D sg2d, - int x, int y, int w, int h, int dx, int dy) - { - if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE && - sg2d.compositeState < SunGraphics2D.COMP_XOR) - { - x += sg2d.transX; - y += sg2d.transY; - - oglRenderPipe.copyArea(sg2d, x, y, w, h, dx, dy); - - return true; + @Override + public boolean copyArea(SunGraphics2D sg2d, int x, int y, int w, int h, + int dx, int dy) { + final int state = sg2d.transformState; + if (state > SunGraphics2D.TRANSFORM_TRANSLATESCALE + || sg2d.compositeState >= SunGraphics2D.COMP_XOR) { + return false; } - return false; + oglRenderPipe.copyArea(sg2d, x, y, w, h, dx, dy); + return true; } public void flush() {