package ini.trakem2.display.paint;
import java.awt.PaintContext;
import java.awt.image.ColorModel;
import java.awt.image.ComponentColorModel;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
final class USHORTPaintContext implements PaintContext
{
private final ComponentColorModel ccm;
private WritableRaster raster;
private final short[] value;
USHORTPaintContext(final ComponentColorModel ccm, final short[] value) {
this.value = value;
this.ccm = ccm;
}
@Override
public final Raster getRaster(final int x, final int y, final int w, final int h) {
if (null == raster || raster.getWidth() != w || raster.getHeight() != h) {
raster = ccm.createCompatibleWritableRaster(w, h);
}
final int lenY = y+h;
final int lenX = x+w;
for (int j=y; j<lenY; ++j) {
for (int i=x; i<lenX; ++i) {
raster.setDataElements(i-x, j-y, value);
}
}
return raster;
}
@Override
public final ColorModel getColorModel() {
return ccm;
}
@Override
public final void dispose() {
raster = null;
}
}