freetypeで正常にフォント表示されない問題
具体的にはONScripterでメニュー画面のフォント表示がおかしい(ちょうど参考URL1*1のような状態になる)。これはfreetypeがEmbedded Bitmapを含むフォントを扱う処理に問題があるためで、参考URL2*2のパッチをSDL_ttfに当てると直る。
さらに、MythTVでも同様の問題があったので、FT_Load_Glyph()を呼び出している部分を修正したら、こちらも問題が解消した。
以下CVS HEADに当てるパッチ。
--- mythtv/libs/libmythtv/ttfont.cpp.orig 2005-08-09 15:45:48.000000000 +0900 +++ mythtv/libs/libmythtv/ttfont.cpp 2005-09-23 00:27:16.000000000 +0900 @@ -173,7 +173,7 @@ continue; if (i == 0) { - FT_Load_Glyph(face, j, FT_LOAD_DEFAULT); + FT_Load_Glyph(face, j, FT_LOAD_DEFAULT|FT_LOAD_NO_BITMAP); pw += 2; //((face->glyph->metrics.horiBearingX) / 64); } @@ -211,7 +211,7 @@ Raster_Map *rtmp; j = text[0]; - FT_Load_Glyph(face, j, FT_LOAD_DEFAULT); + FT_Load_Glyph(face, j, FT_LOAD_DEFAULT|FT_LOAD_NO_BITMAP); x_offset = 2; //(face->glyph->metrics.horiBearingX) / 64; y_offset = -(max_descent / 64); @@ -577,7 +577,7 @@ code = FT_Get_Char_Index(face, c); - FT_Load_Glyph(face, code, FT_LOAD_DEFAULT); + FT_Load_Glyph(face, code, FT_LOAD_DEFAULT|FT_LOAD_NO_BITMAP); FT_Glyph& glyph = glyphs[c]; if (FT_Get_Glyph(face->glyph, &glyph)) {