直到現在我使用了紋理(bitmapfont)進行字體渲染,但是我試圖讓freetype2工作。我所有的字符串都是SHIFT_JIS編碼,我唯一的問題是現在從freetype獲得正確的字形到合適的SHIFT_JIS位序列。但它似乎比我預期的更難。例如,「亜」具有charcode「0x889F」(字節1設置爲136,字節2爲159) - 這是根據SHIFT_JIS編碼。因此,我調用的函數:從freetype(SHIFT JIS編碼)檢索指定的字形?
FT_Select_Charmap(face, FT_ENCODING_SJIS);
,並嘗試再加載字形與則charCode:
FT_Load_Char(face, 0x889F, FT_LOAD_RENDER);
但我收到一些隨機的字形。它不能是一個字體特定的問題,因爲我嘗試了不同的字體,結果相同(是的,他們提供了一個shift-jis charmap)。例如,「0」(零)應該在位置0x0030 - 但它實際上在0x002D。不是所有的字符都有一個3的常量偏移量,否則就沒有問題了......我想我的「FT_Load_Char」調用,以錯誤的方式傳遞charcode參數 - 但不能猜測它是怎麼回事。已經嘗試過:
FT_Load_Char(face, FT_Get_Char_Index(face, 0x889F), FT_LOAD_RENDER);
但是然後我收到另一個隨機字形。 那麼,如果沒有選擇默認charmap,我怎樣才能將charcode傳遞給FT_Load_Char?
任何建議將是非常有益的。謝謝。