dw = (int)(coords[2] + 0.5);
dh = (int)(coords[3] + 0.5);
dw -= dx;
dh -= dy;
}
ScaledBlit blit = ScaledBlit.getFromCache(srcType, comp, dstType);
if (blit != null) {
Region clipRegion = sg.getCompClip();
if (sg.clipState == sg.CLIP_SHAPE) {
int box[] = {dx, dy, dx+dw, dy+dh};
SpanIterator si = clipRegion.getSpanIterator(box);
while (si.nextSpan(box)) {
blit.Scale(srcData, dstData, sg.composite,
sx, sy, dx, dy, sw, sh, dw, dh,
box[0], box[1], box[2], box[3]);
}
} else {
blit.Scale(srcData, dstData, sg.composite,
sx, sy, dx, dy, sw, sh, dw, dh,
clipRegion.getLoX(), clipRegion.getLoY(),
clipRegion.getHiX(), clipRegion.getHiY());
}
return true;