Creates the rendered image in a new thread.
if (rbl == null) {
return;
}
RenderedImage rd;
if (rc != null) {
rd = rbl.createRendering(rc);
} else {
rd = rbl.createDefaultRendering();
}
ColorModel cm = rd.getColorModel();
if (cm == null) {
cm = ColorModel.getRGBdefault();
}
Raster r = rd.getData();
int w = r.getWidth();
int h = r.getHeight();
for (ImageConsumer c : consumers) {
c.setDimensions(w, h);
c.setHints(ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES
| ImageConsumer.SINGLEFRAME | ImageConsumer.SINGLEPASS);
}
int scanLine[] = new int[w];
int pixel[] = null;
for (int y = 0; y < h; y++) {
for (int x = 0; x < w; x++) {
pixel = r.getPixel(x, y, pixel);
scanLine[x] = cm.getDataElement(pixel, 0);
}
for (ImageConsumer c : consumers) {
c.setPixels(0, y, w, 1, cm, scanLine, 0, w);
}
}
for (ImageConsumer c : consumers) {
c.imageComplete(ImageConsumer.STATICIMAGEDONE);
}