/* ************************************************************************** */ /* */ /* ML_bmp_xor.c */ /* | Project : libmonochrome */ /* */ /* By: Pierre "PierrotLL" Le Gall */ /* Last updated: 2011/11/22 */ /* */ /* ************************************************************************** */ #include void ML_bmp_xor(const unsigned char *bmp, int x, int y, int width, int height) { unsigned short line; char shift, *screen, *p=(char*)&line; int i, j, begin=0, end=height, real_width=(width-1>>3<<3)+8; if(!bmp || x<0 || x>128-width || y<1-height || y>63 || width<1 || height<1) return; if(y < 0) begin = -y; if(y+height > 64) end = 64-y; shift = 8-(x&7); screen = ML_vram_adress()+(y+begin<<4)+(x>>3); for(i=begin ; i>3 ; j++) { line = bmp[i*(real_width>>3)+j]<>3)+j] & -1<<(real_width-width))<