LINUX.ORG.RU

История изменений

Исправление Legioner, (текущая версия) :

Так, теперь с самого начала. Я прошу fontconfig загрузить шрифт, потом посимвольно рисую запрашиваемые глифы. fontconfig выдает черно-белую маску символа, которую я использую для попиксельной отрисовки. Если установленный цвет не черный мне еще нужно будет сделать что-то вроде 0xFF0000 -> 0xFF / 256.0 * fonconfig_mask[x, y].

А теперь вопрос - какого хрена я должен встраивать в весь этот процесс вставку if symbol_code in [... ...], and next_symbol is princess, f*ck the render and draw image?

Вообще это проблема твоей библиотеки для рисования глифов. Ты должен просто передавать библиотеке строку (не обычную, а с атрибутами: цветом, размером и тд) и память, куда рисовать результат. А она уже рисует.

В твоём варианте, напрмер, как лигатуры рисуются? fi — тут, например.

Я вот открываю рандомное приложение (TextEdit), ввожу туда текст с этими смайлами и всё отрисовывается нормально. Даже в Terminal в vim всё отрисовывается нормально. Вот жаба не переварила, квадратики показала, потому что рисует сама и плохо.

Исходная версия Legioner, :

Так, теперь с самого начала. Я прошу fontconfig загрузить шрифт, потом посимвольно рисую запрашиваемые глифы. fontconfig выдает черно-белую маску символа, которую я использую для попиксельной отрисовки. Если установленный цвет не черный мне еще нужно будет сделать что-то вроде 0xFF0000 -> 0xFF / 256.0 * fonconfig_mask[x, y].

А теперь вопрос - какого хрена я должен встраивать в весь этот процесс вставку if symbol_code in [... ...], and next_symbol is princess, f*ck the render and draw image?

Вообще это проблема твоей библиотеки для рисования глифов. Ты должен просто передавать библиотеке строку (не обычную, а с атрибутами: цветом, размером и тд) и память, куда рисовать результат. А она уже рисует.

В твоём варианте, напрмер, как лигатуры рисуются? fi — тут, например.