21 static void xform_cell(
unsigned short*,
unsigned short*,
int,
int,
int,
int);
32 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
33 0x0,0x0,0x18,0x3c,0x3c,0x3c,0x18,0x18,0x18,0x0,0x18,0x18,0x0,0x0,0x0,0x0,
34 0x0,0x66,0x66,0x66,0x24,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
35 0x0,0x0,0x0,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0x0,0x0,0x0,0x0,
36 0x18,0x18,0x7c,0xc6,0xc2,0xc0,0x7c,0x6,0x6,0x86,0xc6,0x7c,0x18,0x18,0x0,0x0,
37 0x0,0x0,0x0,0x0,0xc2,0xc6,0xc,0x18,0x30,0x60,0xc6,0x86,0x0,0x0,0x0,0x0,
38 0x0,0x0,0x38,0x6c,0x6c,0x38,0x76,0xdc,0xcc,0xcc,0xcc,0x76,0x0,0x0,0x0,0x0,
39 0x0,0x30,0x30,0x30,0x60,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
40 0x0,0x0,0xc,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0xc,0x0,0x0,0x0,0x0,
41 0x0,0x0,0x30,0x18,0xc,0xc,0xc,0xc,0xc,0xc,0x18,0x30,0x0,0x0,0x0,0x0,
42 0x0,0x0,0x0,0x0,0x0,0x66,0x3c,0xff,0x3c,0x66,0x0,0x0,0x0,0x0,0x0,0x0,
43 0x0,0x0,0x0,0x0,0x0,0x18,0x18,0x7e,0x18,0x18,0x0,0x0,0x0,0x0,0x0,0x0,
44 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18,0x18,0x30,0x0,0x0,0x0,
45 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
46 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18,0x0,0x0,0x0,0x0,
47 0x0,0x0,0x0,0x0,0x2,0x6,0xc,0x18,0x30,0x60,0xc0,0x80,0x0,0x0,0x0,0x0,
48 0x0,0x0,0x7c,0xc6,0xc6,0xce,0xde,0xf6,0xe6,0xc6,0xc6,0x7c,0x0,0x0,0x0,0x0,
49 0x0,0x0,0x18,0x38,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x0,0x0,0x0,0x0,
50 0x0,0x0,0x7c,0xc6,0x6,0xc,0x18,0x30,0x60,0xc0,0xc6,0xfe,0x0,0x0,0x0,0x0,
51 0x0,0x0,0x7c,0xc6,0x6,0x6,0x3c,0x6,0x6,0x6,0xc6,0x7c,0x0,0x0,0x0,0x0,
52 0x0,0x0,0xc,0x1c,0x3c,0x6c,0xcc,0xfe,0xc,0xc,0xc,0x1e,0x0,0x0,0x0,0x0,
53 0x0,0x0,0xfe,0xc0,0xc0,0xc0,0xfc,0x6,0x6,0x6,0xc6,0x7c,0x0,0x0,0x0,0x0,
54 0x0,0x0,0x38,0x60,0xc0,0xc0,0xfc,0xc6,0xc6,0xc6,0xc6,0x7c,0x0,0x0,0x0,0x0,
55 0x0,0x0,0xfe,0xc6,0x6,0x6,0xc,0x18,0x30,0x30,0x30,0x30,0x0,0x0,0x0,0x0,
56 0x0,0x0,0x7c,0xc6,0xc6,0xc6,0x7c,0xc6,0xc6,0xc6,0xc6,0x7c,0x0,0x0,0x0,0x0,
57 0x0,0x0,0x7c,0xc6,0xc6,0xc6,0x7e,0x6,0x6,0x6,0xc,0x78,0x0,0x0,0x0,0x0,
58 0x0,0x0,0x0,0x0,0x18,0x18,0x0,0x0,0x0,0x18,0x18,0x0,0x0,0x0,0x0,0x0,
59 0x0,0x0,0x0,0x0,0x18,0x18,0x0,0x0,0x0,0x18,0x18,0x30,0x0,0x0,0x0,0x0,
60 0x0,0x0,0x0,0x6,0xc,0x18,0x30,0x60,0x30,0x18,0xc,0x6,0x0,0x0,0x0,0x0,
61 0x0,0x0,0x0,0x0,0x0,0x7e,0x0,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
62 0x0,0x0,0x0,0x60,0x30,0x18,0xc,0x6,0xc,0x18,0x30,0x60,0x0,0x0,0x0,0x0,
63 0x0,0x0,0x7c,0xc6,0xc6,0xc,0x18,0x18,0x18,0x0,0x18,0x18,0x0,0x0,0x0,0x0,
64 0x0,0x0,0x7c,0xc6,0xc6,0xc6,0xde,0xde,0xde,0xdc,0xc0,0x7c,0x0,0x0,0x0,0x0,
65 0x0,0x0,0x10,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0xc6,0x0,0x0,0x0,0x0,
66 0x0,0x0,0xfc,0x66,0x66,0x66,0x7c,0x66,0x66,0x66,0x66,0xfc,0x0,0x0,0x0,0x0,
67 0x0,0x0,0x3c,0x66,0xc2,0xc0,0xc0,0xc0,0xc0,0xc2,0x66,0x3c,0x0,0x0,0x0,0x0,
68 0x0,0x0,0xf8,0x6c,0x66,0x66,0x66,0x66,0x66,0x66,0x6c,0xf8,0x0,0x0,0x0,0x0,
69 0x0,0x0,0xfe,0x66,0x62,0x68,0x78,0x68,0x60,0x62,0x66,0xfe,0x0,0x0,0x0,0x0,
70 0x0,0x0,0xfe,0x66,0x62,0x68,0x78,0x68,0x60,0x60,0x60,0xf0,0x0,0x0,0x0,0x0,
71 0x0,0x0,0x3c,0x66,0xc2,0xc0,0xc0,0xde,0xc6,0xc6,0x66,0x3a,0x0,0x0,0x0,0x0,
72 0x0,0x0,0xc6,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0xc6,0xc6,0x0,0x0,0x0,0x0,
73 0x0,0x0,0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x0,0x0,0x0,0x0,
74 0x0,0x0,0x1e,0xc,0xc,0xc,0xc,0xc,0xcc,0xcc,0xcc,0x78,0x0,0x0,0x0,0x0,
75 0x0,0x0,0xe6,0x66,0x66,0x6c,0x78,0x78,0x6c,0x66,0x66,0xe6,0x0,0x0,0x0,0x0,
76 0x0,0x0,0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66,0xfe,0x0,0x0,0x0,0x0,
77 0x0,0x0,0xc6,0xee,0xfe,0xfe,0xd6,0xc6,0xc6,0xc6,0xc6,0xc6,0x0,0x0,0x0,0x0,
78 0x0,0x0,0xc6,0xe6,0xf6,0xfe,0xde,0xce,0xc6,0xc6,0xc6,0xc6,0x0,0x0,0x0,0x0,
79 0x0,0x0,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x0,0x0,0x0,0x0,
80 0x0,0x0,0xfc,0x66,0x66,0x66,0x7c,0x60,0x60,0x60,0x60,0xf0,0x0,0x0,0x0,0x0,
81 0x0,0x0,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xd6,0xde,0x7c,0xc,0xe,0x0,0x0,
82 0x0,0x0,0xfc,0x66,0x66,0x66,0x7c,0x6c,0x66,0x66,0x66,0xe6,0x0,0x0,0x0,0x0,
83 0x0,0x0,0x7c,0xc6,0xc6,0x60,0x38,0xc,0x6,0xc6,0xc6,0x7c,0x0,0x0,0x0,0x0,
84 0x0,0x0,0x7e,0x7e,0x5a,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x0,0x0,0x0,0x0,
85 0x0,0x0,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x0,0x0,0x0,0x0,
86 0x0,0x0,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x10,0x0,0x0,0x0,0x0,
87 0x0,0x0,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6,0xd6,0xfe,0xee,0x6c,0x0,0x0,0x0,0x0,
88 0x0,0x0,0xc6,0xc6,0x6c,0x7c,0x38,0x38,0x7c,0x6c,0xc6,0xc6,0x0,0x0,0x0,0x0,
89 0x0,0x0,0x66,0x66,0x66,0x66,0x3c,0x18,0x18,0x18,0x18,0x3c,0x0,0x0,0x0,0x0,
90 0x0,0x0,0xfe,0xc6,0x86,0xc,0x18,0x30,0x60,0xc2,0xc6,0xfe,0x0,0x0,0x0,0x0,
91 0x0,0x0,0x3c,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3c,0x0,0x0,0x0,0x0,
92 0x0,0x0,0x0,0x80,0xc0,0xe0,0x70,0x38,0x1c,0xe,0x6,0x2,0x0,0x0,0x0,0x0,
93 0x0,0x0,0x3c,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x3c,0x0,0x0,0x0,0x0,
94 0x10,0x38,0x6c,0xc6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
95 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,
96 0x30,0x30,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
97 0x0,0x0,0x0,0x0,0x0,0x78,0xc,0x7c,0xcc,0xcc,0xcc,0x76,0x0,0x0,0x0,0x0,
98 0x0,0x0,0xe0,0x60,0x60,0x78,0x6c,0x66,0x66,0x66,0x66,0x7c,0x0,0x0,0x0,0x0,
99 0x0,0x0,0x0,0x0,0x0,0x7c,0xc6,0xc0,0xc0,0xc0,0xc6,0x7c,0x0,0x0,0x0,0x0,
100 0x0,0x0,0x1c,0xc,0xc,0x3c,0x6c,0xcc,0xcc,0xcc,0xcc,0x76,0x0,0x0,0x0,0x0,
101 0x0,0x0,0x0,0x0,0x0,0x7c,0xc6,0xfe,0xc0,0xc0,0xc6,0x7c,0x0,0x0,0x0,0x0,
102 0x0,0x0,0x38,0x6c,0x64,0x60,0xf0,0x60,0x60,0x60,0x60,0xf0,0x0,0x0,0x0,0x0,
103 0x0,0x0,0x0,0x0,0x0,0x76,0xcc,0xcc,0xcc,0xcc,0xcc,0x7c,0xc,0xcc,0x78,0x0,
104 0x0,0x0,0xe0,0x60,0x60,0x6c,0x76,0x66,0x66,0x66,0x66,0xe6,0x0,0x0,0x0,0x0,
105 0x0,0x0,0x18,0x18,0x0,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x0,0x0,0x0,0x0,
106 0x0,0x0,0x6,0x6,0x0,0xe,0x6,0x6,0x6,0x6,0x6,0x6,0x66,0x66,0x3c,0x0,
107 0x0,0x0,0xe0,0x60,0x60,0x66,0x6c,0x78,0x78,0x6c,0x66,0xe6,0x0,0x0,0x0,0x0,
108 0x0,0x0,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x0,0x0,0x0,0x0,
109 0x0,0x0,0x0,0x0,0x0,0xec,0xfe,0xd6,0xd6,0xd6,0xd6,0xc6,0x0,0x0,0x0,0x0,
110 0x0,0x0,0x0,0x0,0x0,0xdc,0x66,0x66,0x66,0x66,0x66,0x66,0x0,0x0,0x0,0x0,
111 0x0,0x0,0x0,0x0,0x0,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x0,0x0,0x0,0x0,
112 0x0,0x0,0x0,0x0,0x0,0xdc,0x66,0x66,0x66,0x66,0x66,0x7c,0x60,0x60,0xf0,0x0,
113 0x0,0x0,0x0,0x0,0x0,0x76,0xcc,0xcc,0xcc,0xcc,0xcc,0x7c,0xc,0xc,0x1e,0x0,
114 0x0,0x0,0x0,0x0,0x0,0xdc,0x76,0x66,0x60,0x60,0x60,0xf0,0x0,0x0,0x0,0x0,
115 0x0,0x0,0x0,0x0,0x0,0x7c,0xc6,0x60,0x38,0xc,0xc6,0x7c,0x0,0x0,0x0,0x0,
116 0x0,0x0,0x10,0x30,0x30,0xfc,0x30,0x30,0x30,0x30,0x36,0x1c,0x0,0x0,0x0,0x0,
117 0x0,0x0,0x0,0x0,0x0,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x0,0x0,0x0,0x0,
118 0x0,0x0,0x0,0x0,0x0,0x66,0x66,0x66,0x66,0x66,0x3c,0x18,0x0,0x0,0x0,0x0,
119 0x0,0x0,0x0,0x0,0x0,0xc6,0xc6,0xd6,0xd6,0xd6,0xfe,0x6c,0x0,0x0,0x0,0x0,
120 0x0,0x0,0x0,0x0,0x0,0xc6,0x6c,0x38,0x38,0x38,0x6c,0xc6,0x0,0x0,0x0,0x0,
121 0x0,0x0,0x0,0x0,0x0,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7e,0x6,0xc,0xf8,0x0,
122 0x0,0x0,0x0,0x0,0x0,0xfe,0xcc,0x18,0x30,0x60,0xc6,0xfe,0x0,0x0,0x0,0x0,
123 0x0,0x0,0xe,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0xe,0x0,0x0,0x0,0x0,
124 0x0,0x0,0x18,0x18,0x18,0x18,0x0,0x18,0x18,0x18,0x18,0x18,0x0,0x0,0x0,0x0,
125 0x0,0x0,0x70,0x18,0x18,0x18,0xe,0x18,0x18,0x18,0x18,0x70,0x0,0x0,0x0,0x0,
126 0x0,0x0,0x76,0xdc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
151 if (
string ==
NULL)
return;
152 *wid = strlen(
string) *
FontW;
157 #define CharTab label_font 163 int x, y, degrees, scale;
168 unsigned short rotbuf[16], *ctab, mask;
172 if (scale < 1 || scale > 10)
return (0);
173 if (text ==
NULL)
return (0);
184 if (degrees >= 90) degrees /= 90;
196 y -= strlen(text)*fheight*scale;
204 y -= strlen(text)*fheight*scale;
212 x -= strlen(text)*fwidth*scale;
218 x -= strlen(text)*fwidth*scale;
226 str1 = text + strlen(text);
227 while (str0 != str1) {
230 if ((tx = (*--str1 & 0x7f) -
' ') < 0) tx = 0;
233 if ((tx = (*str0++ & 0x7f) -
' ') < 0) tx = 0;
236 xform_cell(rotbuf,ctab,fwidth,fheight,degrees,fwidth);
237 ctab = rotbuf + fheight - 1;
240 for (i = fheight; i; i--, ctab--) {
241 for (j = scale; j; j--) {
242 if (ynow >=
Yl && ynow <=
Yu) {
244 for (mask = 0x8000,ii = fwidth;
ii; mask >>= 1,ii--) {
245 for (k = scale; k; k--) {
246 if (xnow >=
Xl && xnow <=
Xu) {
295 if ((mx && rotn == 0) || (!mx && rotn == 2) ||
296 (my && rotn == 1) || (!my && rotn == 3))
300 if ((my && (rotn == 0 || rotn == 1)) ||
301 (!my && (rotn == 2 || rotn == 3)))
303 if ((mx && (rotn == 0 || rotn == 3)) ||
304 (!mx && (rotn == 1 || rotn == 2)))
313 unsigned
short *out,*in;
318 for (i = 0; i < h; i++) {
319 k = ((code & 2) ? h-i-1 : i);
321 for (j = 0,out[i] = 0; j < w; j++) {
322 l = ((code & 1) ? (w-j-1) : j);
323 out[i] |= ((in[j] >> k) & 1) << l;
328 for (j = 0,out[i] = 0; j < w; j++)
329 out[i] |= ((in[k] >> j) & 1) << (w-j-1);
335 for (i = 0,j = 16-shift; i < h; i++)
int ScaledText(char *text, int x, int y, int degrees, int scale)
void SetScaledTextClip(int xl, int yl, int xu, int yu)
static unsigned short label_font[]
void ScaledTextBB(char *string, int *wid, int *hei)