src/share/classes/sun/awt/image/BufImgSurfaceData.java

Print this page

        

*** 234,262 **** } } sData = createDataSC(bufImg, sType, icm); break; } ! sData = new BufImgSurfaceData(raster.getDataBuffer(), ! bufImg, SurfaceType.Custom); } break; } ((BufImgSurfaceData) sData).initSolidLoops(); return sData; } public static SurfaceData createData(Raster ras, ColorModel cm) { throw new InternalError("SurfaceData not implemented for Raster/CM"); } public static SurfaceData createDataIC(BufferedImage bImg, SurfaceType sType) { IntegerComponentRaster icRaster = (IntegerComponentRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = ! new BufImgSurfaceData(icRaster.getDataBuffer(), bImg, sType); bisd.initRaster(icRaster.getDataStorage(), icRaster.getDataOffset(0) * 4, 0, icRaster.getWidth(), icRaster.getHeight(), icRaster.getPixelStride() * 4, --- 234,269 ---- } } sData = createDataSC(bufImg, sType, icm); break; } ! sData = createData(raster.getDataBuffer(), bufImg, SurfaceType.Custom); } break; } ((BufImgSurfaceData) sData).initSolidLoops(); return sData; } + private static BufImgSurfaceData createData(DataBuffer db, BufferedImage bufImg, + SurfaceType sType) + { + if (bufImg instanceof OffScreenImage) { + return ((OffScreenImage)bufImg).new SurfaceData(db, sType); + } + return new BufImgSurfaceData(db, bufImg, sType); + } + public static SurfaceData createData(Raster ras, ColorModel cm) { throw new InternalError("SurfaceData not implemented for Raster/CM"); } public static SurfaceData createDataIC(BufferedImage bImg, SurfaceType sType) { IntegerComponentRaster icRaster = (IntegerComponentRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = createData(icRaster.getDataBuffer(), bImg, sType); bisd.initRaster(icRaster.getDataStorage(), icRaster.getDataOffset(0) * 4, 0, icRaster.getWidth(), icRaster.getHeight(), icRaster.getPixelStride() * 4,
*** 268,279 **** public static SurfaceData createDataSC(BufferedImage bImg, SurfaceType sType, IndexColorModel icm) { ShortComponentRaster scRaster = (ShortComponentRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = ! new BufImgSurfaceData(scRaster.getDataBuffer(), bImg, sType); bisd.initRaster(scRaster.getDataStorage(), scRaster.getDataOffset(0) * 2, 0, scRaster.getWidth(), scRaster.getHeight(), scRaster.getPixelStride() * 2, --- 275,285 ---- public static SurfaceData createDataSC(BufferedImage bImg, SurfaceType sType, IndexColorModel icm) { ShortComponentRaster scRaster = (ShortComponentRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = createData(scRaster.getDataBuffer(), bImg, sType); bisd.initRaster(scRaster.getDataStorage(), scRaster.getDataOffset(0) * 2, 0, scRaster.getWidth(), scRaster.getHeight(), scRaster.getPixelStride() * 2,
*** 285,296 **** public static SurfaceData createDataBC(BufferedImage bImg, SurfaceType sType, int primaryBank) { ByteComponentRaster bcRaster = (ByteComponentRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = ! new BufImgSurfaceData(bcRaster.getDataBuffer(), bImg, sType); ColorModel cm = bImg.getColorModel(); IndexColorModel icm = ((cm instanceof IndexColorModel) ? (IndexColorModel) cm : null); bisd.initRaster(bcRaster.getDataStorage(), --- 291,301 ---- public static SurfaceData createDataBC(BufferedImage bImg, SurfaceType sType, int primaryBank) { ByteComponentRaster bcRaster = (ByteComponentRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = createData(bcRaster.getDataBuffer(), bImg, sType); ColorModel cm = bImg.getColorModel(); IndexColorModel icm = ((cm instanceof IndexColorModel) ? (IndexColorModel) cm : null); bisd.initRaster(bcRaster.getDataStorage(),
*** 305,316 **** public static SurfaceData createDataBP(BufferedImage bImg, SurfaceType sType) { BytePackedRaster bpRaster = (BytePackedRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = ! new BufImgSurfaceData(bpRaster.getDataBuffer(), bImg, sType); ColorModel cm = bImg.getColorModel(); IndexColorModel icm = ((cm instanceof IndexColorModel) ? (IndexColorModel) cm : null); bisd.initRaster(bpRaster.getDataStorage(), --- 310,320 ---- public static SurfaceData createDataBP(BufferedImage bImg, SurfaceType sType) { BytePackedRaster bpRaster = (BytePackedRaster)bImg.getRaster(); ! BufImgSurfaceData bisd = createData(bpRaster.getDataBuffer(), bImg, sType); ColorModel cm = bImg.getColorModel(); IndexColorModel icm = ((cm instanceof IndexColorModel) ? (IndexColorModel) cm : null); bisd.initRaster(bpRaster.getDataStorage(),