Object data = null;
int rowx = x;
int rowy = y;
int rowxerr = xerr;
int rowyerr = yerr;
WritableRaster srcRas = this.srcRas;
WritableRaster outRas = this.outRas;
int rgbs[] = filter ? new int[4] : null;
for (int j = 0; j < h; j++) {
x = rowx;
y = rowy;
xerr = rowxerr;
yerr = rowyerr;
for (int i = 0; i < w; i++) {
data = srcRas.getDataElements(x, y, data);
if (filter) {
int nextx, nexty;
if ((nextx = x + 1) >= bWidth) {
nextx = 0;
}
if ((nexty = y + 1) >= bHeight) {
nexty = 0;
}
rgbs[0] = colorModel.getRGB(data);
data = srcRas.getDataElements(nextx, y, data);
rgbs[1] = colorModel.getRGB(data);
data = srcRas.getDataElements(x, nexty, data);
rgbs[2] = colorModel.getRGB(data);
data = srcRas.getDataElements(nextx, nexty, data);
rgbs[3] = colorModel.getRGB(data);
int rgb =
TexturePaintContext.blend(rgbs, xerr, yerr);
data = colorModel.getDataElements(rgb, data);
}
outRas.setDataElements(i, j, data);
if ((xerr += colincxerr) < 0) {
xerr &= Integer.MAX_VALUE;
x++;
}
if ((x += colincx) >= bWidth) {