< prev index next >

src/java.desktop/share/classes/sun/java2d/SunCompositeContext.java

Print this page

        

*** 86,123 **** * the first or second source. * @param src1 The first source tile for the compositing operation. * @param src2 The second source tile for the compositing operation. * @param dst The tile where the result of the operation is stored. */ ! public void compose(Raster srcArg, Raster dstIn, WritableRaster dstOut) { WritableRaster src; int w; int h; ! if (dstIn != dstOut) { ! dstOut.setDataElements(0, 0, dstIn); } // REMIND: We should be able to create a SurfaceData from just // a non-writable Raster and a ColorModel. Since we need to // create a SurfaceData from a BufferedImage then we need to // make a WritableRaster since it is needed to construct a // BufferedImage. ! if (srcArg instanceof WritableRaster) { ! src = (WritableRaster) srcArg; } else { ! src = srcArg.createCompatibleWritableRaster(); ! src.setDataElements(0, 0, srcArg); } ! w = Math.min(src.getWidth(), dstIn.getWidth()); ! h = Math.min(src.getHeight(), dstIn.getHeight()); BufferedImage srcImg = new BufferedImage(srcCM, src, srcCM.isAlphaPremultiplied(), null); ! BufferedImage dstImg = new BufferedImage(dstCM, dstOut, dstCM.isAlphaPremultiplied(), null); SurfaceData srcData = BufImgSurfaceData.createData(srcImg); SurfaceData dstData = BufImgSurfaceData.createData(dstImg); --- 86,123 ---- * the first or second source. * @param src1 The first source tile for the compositing operation. * @param src2 The second source tile for the compositing operation. * @param dst The tile where the result of the operation is stored. */ ! public void compose(Raster src1, Raster src2, WritableRaster dst) { WritableRaster src; int w; int h; ! if (src2 != dst) { ! dst.setDataElements(0, 0, src2); } // REMIND: We should be able to create a SurfaceData from just // a non-writable Raster and a ColorModel. Since we need to // create a SurfaceData from a BufferedImage then we need to // make a WritableRaster since it is needed to construct a // BufferedImage. ! if (src1 instanceof WritableRaster) { ! src = (WritableRaster) src1; } else { ! src = src1.createCompatibleWritableRaster(); ! src.setDataElements(0, 0, src1); } ! w = Math.min(src.getWidth(), src2.getWidth()); ! h = Math.min(src.getHeight(), src2.getHeight()); BufferedImage srcImg = new BufferedImage(srcCM, src, srcCM.isAlphaPremultiplied(), null); ! BufferedImage dstImg = new BufferedImage(dstCM, dst, dstCM.isAlphaPremultiplied(), null); SurfaceData srcData = BufImgSurfaceData.createData(srcImg); SurfaceData dstData = BufImgSurfaceData.createData(dstImg);
< prev index next >