-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathmbf2c.c
61 lines (51 loc) · 1.38 KB
/
mbf2c.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdint.h>
#include <sys/stat.h>
#include "mbf.h"
#define MAX_NAME 0x10
#define FN "default_font"
int
main(int argc, char *argv[])
{
Font *font;
int i;
if (argc != 2) {
fprintf(stderr, "Usage: %s font.mbf\n", argv[0]);
return 1;
}
font = load_font(argv[1]);
if (font == NULL) {
fprintf(stderr, "Failed to load font '%s'.\n", argv[1]);
return 1;
}
printf("static Range "FN"_ranges[%d] = {\n", font->header.nr);
for(i=0; i<font->header.nr; i++) {
printf(" { %d, %d }%s\n",
(int) font->ranges[i].offset,
(int) font->ranges[i].length,
i+1 == font->header.nr?"":",");
}
printf("};\n\n");
printf("static uint8_t "FN"_data[] = {\n");
for (i = 0; i < font->header.ng * font->stride * font->header.h; i++) {
if (i%12 == 0) {
if (i) printf(",\n");
printf(" ");
} else
printf(", ");
printf("0x%02x", font->data[i]);
}
printf("\n};\n\n");
printf("Font "FN"[1] = {{ ");
printf("{ %d, %d, %d, %d }, ",
(int) font->header.ng,
(int) font->header.w,
(int) font->header.h,
(int) font->header.nr);
printf("%d, "FN"_ranges, "FN"_data }};\n",
(int) font->stride);
free(font);
return 0;
}