Files
milsko/tools/font.c
NishiOwO e2cfadea90 faster compile-time for gdi backend
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@104 b9cfdab3-6d41-4d17-bbe4-086880011989
2025-10-01 11:16:38 +00:00

73 lines
1.6 KiB
C

/* $Id$ */
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_BITMAP_H
#include FT_BDF_H
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
FT_Library lib;
FT_Face face;
int i;
int ay = 0;
int ax = 0;
int sy = 0;
int sx = 0;
BDF_PropertyRec rec;
FT_Init_FreeType(&lib);
if(FT_New_Face(lib, argv[1], 0, &face)) {
fprintf(stderr, "bad 1\n");
return 1;
}
if(FT_Set_Pixel_Sizes(face, 0, atoi(argv[2]))) {
fprintf(stderr, "bad 2\n");
return 1;
}
FT_Get_BDF_Property(face, "COPYRIGHT", &rec);
printf("/* $Id$ */\n");
printf("#include <Mw/Milsko.h>\n");
printf("\n");
printf("/**\n");
printf(" * Copyright notice:\n");
printf(" * \"%s\"\n", rec.u.atom);
printf(" */\n");
printf("MwFont MwFontData[] = {\n");
for(i = 0; i < 0x80; i++) {
int y, x;
FT_Bitmap bitmap;
unsigned char n;
if(FT_Load_Char(face, i, FT_LOAD_RENDER | FT_LOAD_COLOR)) {
continue;
}
FT_Bitmap_Init(&bitmap);
FT_Bitmap_Convert(lib, &face->glyph->bitmap, &bitmap, 1);
printf("\t{%d, %d, {", face->glyph->bitmap_left, face->glyph->bitmap_top);
for(y = 0; y < atoi(argv[2]) - bitmap.rows; y++) {
printf("0%s", y == atoi(argv[2]) - 1 ? "" : ", ");
}
for(y = 0; y < bitmap.rows; y++) {
n = 0;
for(x = 0; x < bitmap.width; x++) {
unsigned char b = bitmap.buffer[bitmap.width * y + x] ? 1 : 0;
n = n << 1;
n = n | b;
}
printf("%d%s", n, y == (bitmap.rows - 1) ? "" : ", ");
}
printf("}}%s /* %d */\n", i == (0x80 - 1) ? "" : ", ", i);
FT_Bitmap_Done(lib, &bitmap);
sx += face->glyph->advance.x >> 6;
}
printf("};\n");
}