Показывать неанглийский текст в живописном

Я пытался показать персидский текст text primitive в приложении Scenic, но Scenic показал несколько коробок с Xвнутри них! Я пробовал использовать шрифт, но безуспешно.

Это мой код:

g
|> text("متن نمونه", t: {0, 700}, fill: :white, font: @font_hash)

Должен ли я сделать проблему в их GitHub или есть решение?

Спасибо за вашу помощь.

Обновить:

Я выполнил инструкции для пользовательских шрифтов для кеширования метрик шрифтов (спасибо mudasobwa), тогда у меня возникла еще одна проблема, показанная на этом рисунке:

Неправильная персидская форма

Этот текст должен быть таким:

правильная персидская форма

В персидском языке некоторые буквы в слове могут соединяться с другими буквами. В этих случаях эти буквы отображаются другим символом. (Проблема здесь в том, что все буквы отображаются в отдельном формате. Кроме того, направление текста неправильное)

Например: правильное написание слова "Hello" - "سلام", но в тексте оно отображается как "م‌ا‌ل‌س". Это похоже на отображение "Hello World" как "dlroW olleH"

Возможно, проблема в кодировке, из-за которой я не смог найти способ попробовать UTF-8. Или это может быть направление текста...

1 ответ

Полностью понимаю суть вопроса. Проблема в том, что движок рендеринга шрифтов в настоящее время довольно упрощен и не поддерживает письма справа налево, вверх-вниз, кластеры символов, автоматические лигатуры и т. Д.

Упрощенный рендеринг шрифтов - одна из причин, по которой он < 1.0. Хотелось бы перейти от старой техники атласа персонажей, которую он сейчас использует, к чему-то, основанному на GPU (Slug). Это сделало бы эти проблемы намного проще, но не очень совместимо с проектом с открытым исходным кодом.

Если ваша потребность достаточно сильна, я могу добавить письмо справа налево, но это непросто.

Другие вопросы по тегам