Переделали генерилку эмбедных фонтов на FreeType

github.com/littlevgl/lv_font_conv

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

Поэтому пошли другим путем, скомпилировали FreeType в WebAssembly. Стало хорошо.

  • Все билды завернули в докер, усилий по установке - ноль.
  • Для монохромных шрифтов заюзали специальный монохромный хинтер. Получилось подозрительно хорошо, даже не ожидал.
  • Для “стандартных” шрифтов по умолчанию включили “легкий” хинтер. Он улучшает только горизонтальные линии, но при этом не ломает кернинг.
  • Это все по-прежнему умеет работать в браузере (лично мне не надо, но разработчики LVGL просили).

Сейчас готовится новый релиз (6.1) lvgl, где наконец-то добавят поддержку моей компрессионной магии. К сожалению, у авторов не было времени нормально оптимизировать декомпрессор, поэтому скорость рендеринга просела в два раза. Так что если вы специалист по битам - есть шанс улучшить и прославиться. RLE-подобные декомпрессоры заметных просадок давать не должны. Это я как бывалый оптимизатор говорю.

  • 475