Я пытаюсь использовать ICU для компоновки сложных скриптов. У него есть пример в руководстве пользователя механизма компоновки (http://userguide.icu -project.org / layoutengine). Кажется, что это довольно просто, но когда я начал тестировать его в примере кода, я застрял при создании LEFontInstance
.
В нем нет ничего для обслуживания определенных типов шрифтов (ttf / otf и т. Д.). Они привели пример определения и использования шрифта ttf в PortableFontInstance
в letest.cpp
файле. Из всей этой информации я понял, что, если мы хотим выбрать конкретный шрифт, например, по имени, мы должны написать новый класс, унаследованный от LEFontInstance
, и самостоятельно реализовать выбор шрифта.
Это меня очень расстраивает, так как я думаю, что в такую библиотеку должны быть включены хорошо известные форматы шрифтов и использование таблиц системных шрифтов, иначе я, как пользователь, должен реализовать все функции чтения и выбора шрифтов. После этого механизм компоновки может обрабатывать глифы.
Стоит ли использовать ICU для компоновки сложных сценариев (поскольку окна SDK и apple обеспечивают достаточную поддержку шрифтов в таблице системных шрифтов)?
Какие усилия потребуются, если я использую механизм компоновки ICU? (Я вижу, что мне придется самостоятельно обрабатывать все форматы шрифтов.)
Есть что-нибудь еще, что я здесь скучаю?