当字符串确实包含我作为默认字体使用的字体中不存在的字符时,我如何告诉 freetype 使用后备字体?
我需要在我的应用程序中正确渲染非拉丁字形。
我必须自己管理回退吗?
如果是这样:如何检测给定字符串中是否缺少字形?
对不起,我不知道你是否需要自己处理后备,但我猜你会这样做。至于如何检测是否缺少字形,可以使用以下方法:FT_Get_Char_index如果返回0,则表示未找到符号。
GNU Unifont 可以作为基本多语言平面 (BMP) 中每个代码点的备用字体,即0x0000-0xFFFF
. 这应该涵盖您可能遇到的绝大多数情况。可在此处下载(存档)。
Unicode Last Resort 字体可以作为所有平面中每个代码点的最终后备。这些字形仅显示广泛的类别。可在此处下载。
正如SMart解释的那样,您似乎必须使用FT_Get_Char_Index()检测字形的缺失,在这些情况下,请使用 Unifont 或 Last Resort 字体。