short charcode;
FT_Check(FT_Init_FreeType(&library));
- emu_pause();
+ FT_Check(FT_New_Memory_Face(library, _user_info[0], (int)_user_info[1], 0, &face));
for(;;) {
- FT_Check(FT_New_Memory_Face(library, _user_info[0], (int)_user_info[1], 0, &face));
- FT_Check(FT_Set_Char_Size(face, 0, ((int)_user_info[4]) * 64, 72, 72));
-
+
+ emu_pause();
+ FT_Check(FT_Set_Char_Size(face, 0, ((int)_user_info[4]) * 64, 72, 72));
for(charcode = (int)_user_info[2]; charcode <= (int)_user_info[3]; charcode++) {
glyph_index = FT_Get_Char_Index(face, charcode);
_user_info[6] = (char*)face->glyph->bitmap.width;
_user_info[7] = (char*)face->glyph->bitmap.rows;
_user_info[8] = (char*)(face->size->metrics.ascender >> 6);
- _user_info[9] = (char*)(face->size->metrics.descender >> 6);
+ _user_info[9] = (char*)((-1 * face->size->metrics.descender) >> 6);
_user_info[10] = (char*)(face->glyph->metrics.horiBearingY >> 6);
_user_info[11] = (char*)(face->glyph->advance.x >> 6);
- emu_pause();
}
}
}