generateicon.cpp
1 2 #include "compat.h" 3 #include "kplib.h" 4 5 struct icon { 6 int32_t width,height; 7 intptr_t *pixels; 8 unsigned char *mask; 9 }; 10 11 int writeicon(FILE *fp, struct icon *ico) 12 { 13 int i; 14 15 Bfprintf(fp, 16 "#include \"sdl_inc.h\"\n" 17 "#include \"sdlappicon.h\"\n" 18 "\n" 19 ); 20 Bfprintf(fp,"static Uint8 sdlappicon_pixels[] = {\n"); 21 for (i=0;i<ico->width*ico->height;i++) { 22 if ((i%6) == 0) Bfprintf(fp,"\t"); 23 else Bfprintf(fp," "); 24 Bfprintf(fp, "0x%08lx,", (long)B_LITTLE32(ico->pixels[i])); 25 if ((i%6) == 5) Bfprintf(fp,"\n"); 26 } 27 if ((i%16) > 0) Bfprintf(fp, "\n"); 28 Bfprintf(fp, "};\n\n"); 29 30 Bfprintf(fp, 31 "struct sdlappicon sdlappicon = {\n" 32 " %d,%d, // width,height\n" 33 " sdlappicon_pixels\n" 34 "};\n", 35 ico->width, ico->height 36 ); 37 38 return 0; 39 } 40 41 int main(int argc, char **argv) 42 { 43 struct icon icon; 44 45 if (argc<2) { 46 Bfprintf(stderr, "generateicon <picture file>\n"); 47 return 1; 48 } 49 50 memset(&icon, 0, sizeof(icon)); 51 52 engineCreateAllocator(); 53 kpzload(argv[1], (intptr_t*)&icon.pixels, &icon.width, &icon.height); 54 if (!icon.pixels) { 55 Bfprintf(stderr, "Failure loading %s\n", argv[1]); 56 return 1; 57 } 58 59 writeicon(stdout, &icon); 60 61 xfree(icon.pixels); 62 63 return 0; 64 }