JEP 258: HarfBuzz Font-Layout Engine
Движок компоновки шрифтов HarfBuzz
| Автор | Steven R. Loomis |
| Ответственный | Philip Race |
| Тип | Feature |
| Область | Implementation |
| Статус | Closed / Delivered |
| Выпуск | 9 |
| Компонент | client-libs / 2d |
| Обсуждение | harfbuzz dash dev at openjdk dot java dot net |
| Трудоёмкость | M |
| Длительность | M |
| Рецензенты | Kevin Rushforth, Philip Race |
| Одобрен | Kevin Rushforth |
| Создан | 2014/11/11 00:31 |
| Обновлён | 2025/10/18 20:44 |
| Задача | 8064530 |
Аннотация
Заменить существующий движок компоновки шрифтов OpenType из ICU на HarfBuzz.
Мотивация
Движок компоновки OpenType, например ICU или HarfBuzz, содержит код, учитывающий особенности письменностей и обрабатывающий определённые таблицы шрифтов. Эти таблицы нужны, чтобы правильно отрисовывать текст в таких письменностях, как арабская и индийские. Без этой поддержки текст в этих письменностях отображается не просто неправильно, а нечитаемо.
Движок компоновки OpenType из ICU больше активно не развивается, и IBM, владелец проекта, намерена заменить его на HarfBuzz в проекте ICU. JDK должен последовать этому примеру, иначе в нём останется неподдерживаемая и устаревшая библиотека.
Описание
Включить в JDK копию библиотеки HarfBuzz так же, как это сделано для ICU и других библиотек с открытым исходным кодом в JDK, например libpng. Интегрировать эту нативную библиотеку для поддержки Java API и реализации, необходимых для компоновки сложного текста, в качестве замены ICU.
Альтернативы
Жизнеспособных альтернатив HarfBuzz с открытым исходным кодом нет. Такие библиотеки, как Pango, сейчас реализуются заново в виде обёрток над HarfBuzz.
Риски и допущения
Между библиотеками возможны небольшие различия в отрисовке из-за разных реализаций и использования более актуальных спецификаций OpenType.