< prev index next >

src/java.desktop/share/classes/java/awt/image/Raster.java

Print this page

        

*** 975,1008 **** int dataType = sm.getDataType(); if (sm instanceof PixelInterleavedSampleModel) { switch(dataType) { case DataBuffer.TYPE_BYTE: return new ByteInterleavedRaster(sm, db, location); case DataBuffer.TYPE_USHORT: return new ShortInterleavedRaster(sm, db, location); } } else if (sm instanceof SinglePixelPackedSampleModel) { switch(dataType) { case DataBuffer.TYPE_BYTE: return new ByteInterleavedRaster(sm, db, location); case DataBuffer.TYPE_USHORT: return new ShortInterleavedRaster(sm, db, location); case DataBuffer.TYPE_INT: return new IntegerInterleavedRaster(sm, db, location); } } else if (sm instanceof MultiPixelPackedSampleModel && dataType == DataBuffer.TYPE_BYTE && sm.getSampleSize(0) < 8) { return new BytePackedRaster(sm, db, location); } // we couldn't do anything special - do the generic thing - return new SunWritableRaster(sm,db,location); } /** * Constructs a Raster with the given SampleModel. The Raster's --- 975,1023 ---- int dataType = sm.getDataType(); if (sm instanceof PixelInterleavedSampleModel) { switch(dataType) { case DataBuffer.TYPE_BYTE: + if (db instanceof DataBufferByte) { return new ByteInterleavedRaster(sm, db, location); + } + break; case DataBuffer.TYPE_USHORT: + if (db instanceof DataBufferUShort) { return new ShortInterleavedRaster(sm, db, location); } + break; + } } else if (sm instanceof SinglePixelPackedSampleModel) { switch(dataType) { case DataBuffer.TYPE_BYTE: + if (db instanceof DataBufferByte) { return new ByteInterleavedRaster(sm, db, location); + } + break; case DataBuffer.TYPE_USHORT: + if (db instanceof DataBufferUShort) { return new ShortInterleavedRaster(sm, db, location); + } + break; case DataBuffer.TYPE_INT: + if (db instanceof DataBufferInt) { return new IntegerInterleavedRaster(sm, db, location); } + break; + } } else if (sm instanceof MultiPixelPackedSampleModel && dataType == DataBuffer.TYPE_BYTE && + db instanceof DataBufferByte && sm.getSampleSize(0) < 8) { return new BytePackedRaster(sm, db, location); } // we couldn't do anything special - do the generic thing return new SunWritableRaster(sm,db,location); } /** * Constructs a Raster with the given SampleModel. The Raster's
< prev index next >