mirror of
https://github.com/openjdk/jdk.git
synced 2026-04-25 06:10:44 +00:00
8147542: ClassCastException when repainting after display resolution change
Reviewed-by: prr, flar
This commit is contained in:
parent
af0977717b
commit
164537ebd4
@ -127,7 +127,11 @@ public class XRPMBlitLoops {
|
||||
vImgSurfaceType = SurfaceType.IntArgbPre;
|
||||
}
|
||||
|
||||
if (vImg == null || vImg.getWidth() < w || vImg.getHeight() < h) {
|
||||
if (vImg == null || vImg.getWidth() < w || vImg.getHeight() < h ||
|
||||
// Sometimes we get volatile image of wrong dest surface type,
|
||||
// so recreating it
|
||||
!(vImg.getDestSurface() instanceof XRSurfaceData))
|
||||
{
|
||||
if (vImg != null) {
|
||||
vImg.flush();
|
||||
}
|
||||
@ -142,6 +146,11 @@ public class XRPMBlitLoops {
|
||||
}
|
||||
|
||||
Blit swToSurfaceBlit = Blit.getFromCache(src.getSurfaceType(), CompositeType.SrcNoEa, vImgSurfaceType);
|
||||
|
||||
if (!(vImg.getDestSurface() instanceof XRSurfaceData)) {
|
||||
throw new InvalidPipeException("wrong surface data type: " + vImg.getDestSurface());
|
||||
}
|
||||
|
||||
XRSurfaceData vImgSurface = (XRSurfaceData) vImg.getDestSurface();
|
||||
swToSurfaceBlit.Blit(src, vImgSurface, AlphaComposite.Src, null,
|
||||
sx, sy, 0, 0, w, h);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user