Соответственно нужен менеджер шрифтов - я считаю он должен быть реализован на уровне приложения. В нем же должен быть весь код подготавливающий RAW область конкретного запрошенного шрифта. Не важно какой это шрифт в конечном счете все будет в виде картинки с альфа-каналом и служебной областью указателей на конкретный символ и его размеры. Приложению все будет отдаваться через расшаренную память. Также менеджер шрифтов должен отслеживать какой шрифт уже не используется никаким приложением и освобождать память. В общем полный пансион!
Поскольку вывод на экран через библиотеку сопряжен с накладными расходами - нужно передавать указатель на библиотеку вывода в библотеку использующую отрисовку шрифта, и нужен дополнительный код, который формирует нужные структуры - все это в результате раздувает код и усложняет его понимание. С другой стороны у нас есть ядро с ф.4, так почему бы не ввести еще одну функцию, которая устанавливает третий используемый шрифт для текущего приложения. В ядре будет таблица с указателями на примонтированные расшаренные области с данными шрифтов (примонтированные к текущему приложению естественно, а не к ядру) и установив указатель на выбранный шрифт, мы просто используем его со всем функционалом ф.4. Для ворчунов - синтаксис ф.4 совсем не поменяется, если не считать добавление обработки случая использования шрифта N3. Для совсем уже ворчунов можно запилить новую системную функцию для вывода, но мне кажется это излишне.
Итого имеем реализацию поделенную на два уровня:
1) Ядро с кодом отрисовки указанных символов при помощи картинки, указатель на которую предварительно передан.
2) Менеджер шрифтов, у которого текущее приложение будет запрашивать указатель на готовую область с картинками (глифами).
Для того чтобы упростить все процедуры я могу написать код взаимодействия с именованными областями шрифтов в библиотеку proc_lib. Подобно ному как я это сделал для OpenDialog и ColorDialog.
Впрочем, я готов вообще все реализовать, кроме растрирования векторных шрифтов. Тут уж вам придется мне помочь. Мой код изначально будет оперировать с растровыми шрифтами подготовленными вручную.
Предлагаю высказывать свои сомнения, возражения или даже опровержения. Пока это на уровне обсуждения и многое можно переиграть.
В любом случае: