> return sample_bitmap_pixel(src_rect, bits, width, height, > - gdip_round(point->X), gdip_round(point->Y), attributes); > + point->X + pixel_offset, point->Y + pixel_offset, attributes); > + }
This is going to break tiling. By removing gdip_round you're implicitly truncating the number instead of flooring, which will give you the wrong result when X or Y is negative. I suggest explicitly adding a floorf.