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