Freetype использует запасной вариант для отсутствующих глифов

Как я могу указать FreeType использовать резервный шрифт, когда строка содержит символ, которого нет в шрифте, который я использую по умолчанию?

Мне нужно правильно отображать нелатинские глифы в моем приложении.

Должен ли я сам управлять запасным вариантом?

Если да, то как определить, отсутствует ли глиф в данной строке?


person Rock    schedule 25.04.2013    source источник
comment
Шрифт Unicode Last Resort доступен для загрузки.   -  person Josh Sanford    schedule 23.08.2016
comment
GNU Unifont может служить хорошим резервным шрифтом, поскольку он содержит глиф для каждой кодовой точки в базовой многоязычной плоскости (BMP). В настоящий момент сервер отключен, но вы можете найти его содержимое в архиве на archive.org.   -  person Josh Sanford    schedule 23.08.2016
comment
Я чувствую, что ответы на этот вопрос пока довольно скудны. Резервные шрифты — это концепция, которая хорошо реализована в графических интерфейсах, и меня удивляет, что freetype ожидает, что вы переделаете их с нуля. Использование шрифта последней инстанции или пиксельного Unifont не решает проблему. Вы хотите показать хороший глиф, используя соответствующий установленный шрифт, а не просто любой глиф.   -  person rspeer    schedule 28.04.2017


Ответы (2)


Извините, я не знаю, нужно ли вам самостоятельно обрабатывать откат, но я предполагаю, что вам это нужно. Что касается того, как определить, отсутствует ли глиф, вы можете использовать этот метод: FT_Get_Char_index Если возвращает 0, значит символ не найден.

person SMGhost    schedule 28.09.2013

GNU Unifont может служить запасным шрифтом для каждой кодовой точки в базовой многоязычной плоскости (BMP), которой будет 0x0000-0xFFFF. Это должно охватывать подавляющее большинство того, с чем вы можете столкнуться. Доступно для загрузки здесь (архив).

Шрифт Unicode Last Resort может служить окончательным запасным вариантом для каждой кодовой точки во всех плоскостях. Эти глифы показывают только общие категории. Доступно для загрузки здесь.

Похоже, вам придется определять отсутствие глифа с помощью FT_Get_Char_Index(), как SMart объяснено, и в этих случаях обратитесь к Unifont или последнему Курортный шрифт.

person Josh Sanford    schedule 23.08.2016