openjdk.ruOpenJDK на русском

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.