- int r = cx*cx + cy*cy;
- if (r <= r2) {
- buf[i + cx + cy*st->width] =
- (short)(dheight * sinc(st, sqrt(r)/radius));
- }
+ int xx = x+cx;
+ int yy = y+cy;
+ if (xx < 0 || yy < 0 || xx >= st->width || yy >= st->height) {break;}
+ r = cx*cx + cy*cy;
+ if (r > r2) break;
+ buf[xx + yy*st->width] =
+ (short)(dheight * sinc(st, (radius > 0) ? sqrt(r)/radius : 0));