< 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 >