#include #include #include #include #include #define AWESOME 7 Display *dis; int screen; Window win; GC gc; int width=320; int height=240; int i=0; void init_x(); void close_x(); void redraw(); int main () { XEvent event; /* the XEvent declaration !!! */ KeySym key; /* a dealie-bob to handle KeyPress Events */ char text[255]; /* a char buffer for KeyPress Events */ XColor col; int initOffsetBMP; init_x(); printf("Patte de canard\n"); Colormap cmap = DefaultColormap(dis, DefaultScreen(dis)); printf("?\n"); FILE* home = NULL; char buffer[4]; home = fopen("home.bmp", "r"); if(home == NULL) return 0; fseek(home, 0x0A, SEEK_SET); buffer[0] = getc(home); buffer[1] = getc(home); buffer[2] = getc(home); buffer[3] = getc(home); printf("Pixel array offset %02x %02x %02x %02x\n", buffer[0], buffer[1], buffer[2], buffer[3]); initOffsetBMP = buffer[0] + (buffer[1] >> 8) + (buffer[2] >> 16) + (buffer[3] >> 24); fseek(home, 0x12, SEEK_SET); buffer[0] = getc(home); buffer[1] = getc(home); buffer[2] = getc(home); buffer[3] = getc(home); printf("Width %02x %02x %02x %02x\n", buffer[0], buffer[1], buffer[2], buffer[3]); //fseek(home, 0x12, SEEK_SET); buffer[0] = getc(home); buffer[1] = getc(home); buffer[2] = getc(home); buffer[3] = getc(home); printf("Height %02x %02x %02x %02x\n", buffer[0], buffer[1], buffer[2], buffer[3]); fseek(home, 0x1C, SEEK_SET); buffer[0] = getc(home); buffer[1] = getc(home); printf("Bits Per Pixel %02x %02x\n", buffer[0], buffer[1]); if(buffer[1] != 0 || buffer[0] != 0x18) { printf("Could not read BMP\n"); return 1; } fseek(home, initOffsetBMP, SEEK_SET); while(1) { XNextEvent(dis, &event); if (event.type==Expose && event.xexpose.count==0) redraw(); if (event.type==KeyPress&& XLookupString(&event.xkey,text,255,&key,0)==1) { if (text[0]=='q') close_x(); printf("You pressed the %c key!\n",text[0]); } if (event.type==ButtonPress) { //int x=event.xbutton.x, //y=event.xbutton.y; //strcpy(text,"X is FUN!"); //XSetForeground(dis,gc,rand()%event.xbutton.x%255); //XDrawString(dis,win,gc,x,y, text, strlen(text)); buffer[0] = getc(home); buffer[1] = getc(home); buffer[2] = getc(home); int j; for(j=0; j