История изменений
Исправление
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 — тут, например.