2015-04-04 2 views
4

FreeType поддерживает символ emoji с версии 2.5. Я хочу отобразить emoji через FreeType, а затем использовать его в OpenGL, поэтому здесь не будет использоваться API UIKit. Однако я не хочу, чтобы у меня не было лицензии, чтобы отправить «Apple Color Emoji.ttf» файл с моим приложением.Как использовать freetype для рендеринга emoji-символа на iOS?

Итак, вопрос: Есть ли способ загрузить файл шрифта emoji системы на устройстве iOS? Есть ли какой-либо API Objective-c или c/C++ для доступа к файлу шрифтов emoji?

ответ

4

Прежде всего, давайте проясним заблуждение. Вам не нужно использовать UIKit для рендеринга шрифтов с использованием системных библиотек в iOS. Вы можете использовать Core Text (который имеет обычный старый интерфейс C) для визуализации текста непосредственно в буфер вне экрана и использовать этот буфер в качестве текстуры с OpenGL. Это будет автоматически обрабатывать положительно огромного количества работы, которую вы бы в противном случае делать себе:

  • кодировки

  • Текст формирования

  • линии ломая

  • кернинга

  • Символ подстановки

  • Выбор шрифта (жирный, курсив и т.д.)

  • И так далее

Ядро Текст действительно является заменой FreeType + HarfBuzz + Панго + ОИТ. Я бы использовал только FreeType напрямую, если бы хотел сделать то, что Core Text не может сделать так же легко, как визуализировать глифы в листе спрайта и использовать это для рисования текста, или если я хотел бы разделить код между платформами.

Теперь, если вы уверены, что для этого потребуется дополнительные недели, вам придется проанализировать файл /System/Library/Fonts/CGFontCache.plist, чтобы найти местоположение нужного шрифта. См .: Location of the fonts on the iPhone?

+0

Отличный ответ! Действительно, я использую FreeType, потому что мне нужно расположить мои глифы в лист спрайта. Поэтому в заключение я должен попробовать Core Text для emoji, и я мог бы получить данные текстуры, которые будут использоваться в OpenGL позже. – jayatubi

Смежные вопросы