Unified · Split
| @@ -4,37 +4,37 @@ · 3 unmodified lines | |||
| 4 | void | 4 | void |
| 5 | main(int argc, char **argv) | 5 | main(int argc, char **argv) |
| 6 | { | 6 | { |
| 7 | u32int b[1084/4]; | 7 | u32int b[5*12/4+16*16]; |
| 8 | uchar clr[2*16], set[2*16]; | 8 | uchar clr[16*16/8], set[16*16/8]; |
| 9 | int i; | 9 | int i; |
| 10 | 10 | ||
| 11 | if (argc < 3) { | 11 | if(argc < 3){ |
| 12 | fprint(2, "usage: png -9t <cursor.png | %s OFFSETX OFFSETY >/dev/snarf\n", argv[0]); | 12 | fprint(2, "usage: png -9t <cursor.png | %s OFFSETX OFFSETY >/dev/snarf\n", argv[0]); |
| 13 | exits("usage"); | 13 | exits("usage"); |
| 14 | } | 14 | } |
| 15 | 15 | ||
| 16 | if (readn(0, b, sizeof(b)) != sizeof(b)) | 16 | if((i = readn(0, b, sizeof(b))) != sizeof(b)) |
| 17 | sysfatal("%r"); | 17 | sysfatal("short read: %d < %d (not r8g8b8a8?)", i, sizeof(b)); |
| 18 | 18 | ||
| 19 | memset(clr, 0, sizeof(clr)); | 19 | memset(clr, 0, sizeof(clr)); |
| 20 | memset(set, 0, sizeof(set)); | 20 | memset(set, 0, sizeof(set)); |
| 21 | print("Cursor lol = {\n"); | 21 | print("Cursor lol = {\n"); |
| 22 | print("\t{%s, %s},\n", argv[1], argv[2]); | 22 | print("\t{%s, %s},\n", argv[1], argv[2]); |
| 23 | for (i = 0; i < nelem(b); i++) { | 23 | for(i = 0; i < 16*16; i++){ |
| 24 | if (b[15+i] == 0x000000ff) | 24 | if(b[15+i] == 0x000000ff) |
| 25 | set[i/8] |= 1<<(7-i&7); | 25 | set[i/8] |= 1<<(7-i&7); |
| 26 | else if (b[15+i] == 0xffffffff) | 26 | else if(b[15+i] == 0xffffffff) |
| 27 | clr[i/8] |= 1<<(7-i&7); | 27 | clr[i/8] |= 1<<(7-i&7); |
| 28 | } | 28 | } |
| 29 | print("\t{"); | 29 | print("\t{"); |
| 30 | for (i = 0; i < sizeof(clr); i++) { | 30 | for(i = 0; i < sizeof(clr); i++){ |
| 31 | if (i > 0 && !(i % 8)) | 31 | if(i > 0 && !(i % 8)) |
| 32 | print("\n\t "); | 32 | print("\n\t "); |
| 33 | print(" 0x%02x,", clr[i]); | 33 | print(" 0x%02x,", clr[i]); |
| 34 | } | 34 | } |
| 35 | print("\n\t},\n\t{"); | 35 | print("\n\t},\n\t{"); |
| 36 | for (i = 0; i < sizeof(set); i++) { | 36 | for(i = 0; i < sizeof(set); i++){ |
| 37 | if (i > 0 && !(i % 8)) | 37 | if(i > 0 && !(i % 8)) |
| 38 | print("\n\t "); | 38 | print("\n\t "); |
| 39 | print(" 0x%02x,", set[i]); | 39 | print(" 0x%02x,", set[i]); |
| 40 | } | 40 | } |