--- old/src/java.desktop/windows/classes/sun/java2d/d3d/D3DSurfaceData.java 2017-03-07 17:42:00.964398100 +0400 +++ new/src/java.desktop/windows/classes/sun/java2d/d3d/D3DSurfaceData.java 2017-03-07 17:42:00.184353500 +0400 @@ -779,16 +779,25 @@ rq.ensureCapacityAndAlignment(28, 4); buf.putInt(SWAP_BUFFERS); buf.putLong(pData); - buf.putInt(x1); - buf.putInt(y1); - buf.putInt(x2); - buf.putInt(y2); + + double scaleX = sd.getDefaultScaleX(); + double scaleY = sd.getDefaultScaleY(); + + int sx1 = (int) Math.floor(x1 * scaleX); + int sy1 = (int) Math.floor(y1 * scaleY); + int sx2 = (int) Math.ceil(x2 * scaleX); + int sy2 = (int) Math.ceil(y2 * scaleY); + + buf.putInt(sx1); + buf.putInt(sy1); + buf.putInt(sx2); + buf.putInt(sy2); rq.flushNow(); } finally { rq.unlock(); } } - + /** * Returns destination Image associated with this SurfaceData. */