хорошая статья, повеселила вольная интерпретация некоторых кодов)
вторая часть также увлекательна, но при прочтении не покидала мысль, что Вы на каждом этапе переизобретаете колесо, ведь все эти проблемы типовые и для их решения всё уже давно написано... навскидку, не зная конкретных потребностей (ненужное можно пропустить): pango - для анализа и сегментирования текста, fribidi - для корректной поддержки написания справа-налево, freetype - для работы с внутрянкой шрифтов, harfbuzz - для "шейпинга" текста (поддержки различных систем написания, языковых особенностей, цветных шрифтов и прочих опций и метрик из шрифтов, с некоторых пор поддерживаются даже "родные" шрифты Apple). Все эти библиотеки не используют графический контекст и очень легко интегрируются в любую систему рендеринга (harfbuzz-cairo в качестве примера). Касательно пререндеринга символов, этому решению также "сто лет в обед" ;) И там уйма не очевидных проблем, с которыми ещё, возможно, предстоит столкнуться. Одна из реализаций — https://doc.qt.io/qt-6/qtdistancefieldgenerator-index.html (больше интересного в исходниках).
хорошая статья, повеселила вольная интерпретация некоторых кодов)
вторая часть также увлекательна, но при прочтении не покидала мысль, что Вы на каждом этапе переизобретаете колесо, ведь все эти проблемы типовые и для их решения всё уже давно написано... навскидку, не зная конкретных потребностей (ненужное можно пропустить): pango - для анализа и сегментирования текста, fribidi - для корректной поддержки написания справа-налево, freetype - для работы с внутрянкой шрифтов, harfbuzz - для "шейпинга" текста (поддержки различных систем написания, языковых особенностей, цветных шрифтов и прочих опций и метрик из шрифтов, с некоторых пор поддерживаются даже "родные" шрифты Apple). Все эти библиотеки не используют графический контекст и очень легко интегрируются в любую систему рендеринга (harfbuzz-cairo в качестве примера).
Касательно пререндеринга символов, этому решению также "сто лет в обед" ;) И там уйма не очевидных проблем, с которыми ещё, возможно, предстоит столкнуться. Одна из реализаций — https://doc.qt.io/qt-6/qtdistancefieldgenerator-index.html (больше интересного в исходниках).
Если есть вопросы, постараюсь помочь.
Спасибо за отклик и рекомендации. С переизобретением колеса не спорю, а на библиотеки чуть позже гляну. Спасибо за список и интерес. =)