{
int x, y;
uint16_t *px, transp;
- uint32_t bits, bit, *p;
+ uint32_t bits = 0, bit, *p;
if(img->format->BytesPerPixel != 2) {
fprintf(stderr, "get_shape(): not a 16-bit image!\n");
if(xov == 0 || yov == 0) return 0; // bboxes hit?
else return mask_collide(xov, yov, r, s);
}
+
+int
+pixel_collide(unsigned int xoff, unsigned int yoff, struct shape *r)
+{
+ uint32_t pmask;
+
+ if(xoff >= r->w || yoff >= r->h) return 0;
+
+ pmask = 0x80000000 >> (xoff&0x1f);
+ return r->mask[(yoff*r->mw) + (xoff>>5)] & pmask;
+}