jdk/src/java.desktop/share/classes/sun/java2d/opengl/OGLBlitLoops.java
changeset 27283 99c4cb470573
parent 27264 aa300ebffd04
child 31155 272c0790761f
equal deleted inserted replaced
27282:61ec4e8769b6 27283:99c4cb470573
   867             srcTmp = new WeakReference<>(src);
   867             srcTmp = new WeakReference<>(src);
   868         }
   868         }
   869     }
   869     }
   870 }
   870 }
   871 
   871 
   872 class OGLAnyCompositeBlit extends Blit {
   872 final class OGLAnyCompositeBlit extends Blit {
   873     private WeakReference<SurfaceData> dstTmp;
   873     private WeakReference<SurfaceData> dstTmp;
   874 
   874 
   875     OGLAnyCompositeBlit() {
   875     OGLAnyCompositeBlit() {
   876         super(SurfaceType.Any, CompositeType.Any, OGLSurfaceData.OpenGLSurface);
   876         super(SurfaceType.Any, CompositeType.Any, OGLSurfaceData.OpenGLSurface);
   877     }
   877     }
   893         }
   893         }
   894 
   894 
   895         // convert destination to IntArgbPre
   895         // convert destination to IntArgbPre
   896         SurfaceData dstBuffer = convertFrom(convertdst, dst, dx, dy, w, h,
   896         SurfaceData dstBuffer = convertFrom(convertdst, dst, dx, dy, w, h,
   897                           cachedDst, BufferedImage.TYPE_INT_ARGB_PRE);
   897                           cachedDst, BufferedImage.TYPE_INT_ARGB_PRE);
       
   898         Region bufferClip =
       
   899                 clip == null ? null : clip.getTranslatedRegion(-dx, -dy);
   898 
   900 
   899         Blit performop = Blit.getFromCache(src.getSurfaceType(),
   901         Blit performop = Blit.getFromCache(src.getSurfaceType(),
   900                 CompositeType.Any, dstBuffer.getSurfaceType());
   902                 CompositeType.Any, dstBuffer.getSurfaceType());
   901 
   903         performop.Blit(src, dstBuffer, comp, bufferClip, sx, sy, 0, 0, w, h);
   902         performop.Blit(src, dstBuffer, comp, clip, sx, sy, 0, 0, w, h);
       
   903 
   904 
   904         if (dstBuffer != cachedDst) {
   905         if (dstBuffer != cachedDst) {
   905             // cache the intermediate surface
   906             // cache the intermediate surface
   906             dstTmp = new WeakReference<>(dstBuffer);
   907             dstTmp = new WeakReference<>(dstBuffer);
   907         }
   908         }