|
|
1.1 root 1: #include <stdio.h>
2:
3: #define CHARSIZE /*((7*972)/368)*/ 9
4:
5: #define OX 0
6: #define OY 0
7:
8: struct Rectangle {
9: short ox, oy;
10: short cx, cy;
11: } rect;
12:
13: char rasters[2][100] = { 0 };
14:
15: main()
16: {
17: register unsigned bit=0, byte, h, v;
18: int nrasters, rastwid, i, nw, k, j;
19: long t = time((long *)0);
20:
21: nrasters=getw(stdin);
22: rastwid =getw(stdin);
23:
24: if (rastwid & 0x8000) {
25: rastwid &= ~0x8000;
26: rect.cx = OX + rastwid;
27: rastwid = (rastwid + 15)/16;
28: } else
29: rect.cx = OX + rastwid*16;
30:
31: rect.ox = OX;
32: rect.oy = OY; rect.cy = OY + nrasters;
33: nw = (rect.cx-rect.ox+31)/32;
34: nw *= 4;
35:
36: printf("static Word bits%d[%d] = {\n", t, nrasters*nw/4);
37:
38: for(i=0, v=rect.oy; v<rect.cy; i=1-i, v++) {
39: readrast(i, rastwid, stdin);
40: k = (nw/2+3)/4*4;
41: for(j = 0; j < k; j++)
42: printf("%s%02x%s", (j%4==0)?"0x":"", rasters[i][j]&255,
43: (j%4==3)?", ":"");
44: printf("\n");
45: for(; j < nw; j++)
46: printf("%s%02x%s", (j%4==0)?"0x":"", rasters[i][j]&255,
47: (j%4==3)?", ":"");
48: printf("\n");
49: }
50: printf("};\n");
51: printf("Bitmap strike = {\n bits%d,\n", t);
52: printf(" %d,\n", nw/4);
53: printf(" %d, %d, %d, %d,\n", rect.ox, rect.oy, rect.cx, rect.cy);
54: printf(" 0,\n};\n");
55: exit(0);
56: }
57:
58: readrast(n,nw,in)
59: int n, nw; FILE *in;
60: {
61: int count, ctype;
62: int nb = nw*2;
63: char *p1 = rasters[n];
64:
65: while (nw>0) {
66: count=getc(in); count &= 255;
67: ctype=count&128; count &= 127;
68: nw -= count; count *= 2;
69:
70: if (ctype) {
71: fread(p1,2,1,in);
72: for (count-=2; count>0; count--) {
73: *(p1+2) = *p1;
74: p1 += 1;
75: }
76: p1 += 2;
77: } else {
78: fread(p1,count,1,in);
79: p1 += count;
80: }
81: }
82: while(nb--)
83: rasters[n][nb] ^= rasters[1-n][nb];
84: }
85:
86: getw(stream)
87: FILE *stream;
88: {
89: register l, h;
90: l=getc(stream); h=getc(stream); return (h&255)<<8 | (l&255);
91: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.