< prev index next >
src/java.desktop/windows/classes/sun/awt/windows/TranslucentWindowPainter.java
Print this page
*** 28,45 ****
--- 28,47 ----
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Window;
+ import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.awt.image.VolatileImage;
import java.security.AccessController;
import sun.awt.image.BufImgSurfaceData;
import sun.java2d.DestSurfaceProvider;
import sun.java2d.InvalidPipeException;
import sun.java2d.Surface;
+ import sun.java2d.pipe.Region;
import sun.java2d.pipe.RenderQueue;
import sun.java2d.pipe.BufferedContext;
import sun.java2d.pipe.hw.AccelGraphicsConfig;
import sun.java2d.pipe.hw.AccelSurface;
import sun.security.action.GetPropertyAction;
*** 176,193 ****
super(peer);
}
@Override
protected Image getBackBuffer(boolean clear) {
! int w = window.getWidth();
! int h = window.getHeight();
if (backBuffer == null ||
backBuffer.getWidth() != w ||
backBuffer.getHeight() != h)
{
flush();
! backBuffer = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB_PRE);
}
return clear ? (BufferedImage)clearImage(backBuffer) : backBuffer;
}
@Override
--- 178,200 ----
super(peer);
}
@Override
protected Image getBackBuffer(boolean clear) {
! GraphicsConfiguration gc = peer.getGraphicsConfiguration();
! AffineTransform transform = gc.getDefaultTransform();
! int w = Region.clipRound(
! window.getWidth() * transform.getScaleX());
! int h = Region.clipRound(
! window.getHeight() * transform.getScaleY());
if (backBuffer == null ||
backBuffer.getWidth() != w ||
backBuffer.getHeight() != h)
{
flush();
! backBuffer = new BufferedImage(gc, w, h, BufferedImage
! .TYPE_INT_ARGB_PRE);
}
return clear ? (BufferedImage)clearImage(backBuffer) : backBuffer;
}
@Override
< prev index next >