Теперь осталось неправильные закорючки поправить где надо.
... и приниматься за новые шрифты, побольше, побольше!
NSVF.png (9.94 KiB)
Viewed 13734 times
А размером - поменьше, поменьше.
Парсер занимает меньше 600 байт, еще около 200 в таблицах закорючек (они общие для всех шрифтов).
У каждого шрифта своя таблица адресов (512 байт) и карусель закорючек - всего 688 байт для вот этого "шрифта".
Last edited by art_zh on Fri Mar 16, 2012 2:38 am, edited 1 time in total.
Сверху новый шрифт, снизу - два старых. Слева - время вывода строчки из 40 символов в тактах CPU (впрочем, зачем нужно комментировать - листинг же).
Новый шрифт очень похож на системный номер 0. Изобретать велосипед пришлось по двум причинам:
1) я хочу выкинуть растровые фонты из ядра, и заменить их векторными. Нужна совместимость.
2) нужно было напрямую сравнить размер и скорость отрисовки у двух "почти одинаковых" шрифтов.
Результат мне нравится: даже самый маленький растровый шрифт почти вдвое больше векторного, и на 25-40% медленнее.
На более крупных шрифтах разница будет заметнее - в разы.
Last edited by art_zh on Thu Mar 29, 2012 2:02 am, edited 1 time in total.
Но некоторые глифы выглядят довольно странно (та же 'a'). Я правильно понимаю, что шрифт, аналогичный по начертанию текущему системному, потребовал бы слишком много уникальных "закорючек", и размер кода/шрифта вырос бы, а скорость отрисовки упала? Или смену шрифта принимать скорее как feature и лишний повод для 'сделай сам'?
Mario
Да будут, будут больше, дай этот причесать!
Уж ты-то должен представлять, сколько времени надо было ухлопать хотя бы на вот этот файлик.
dunkaist
да, кое-где еще заусенцы торчат, надо вылизивать. И еще штук 50 символов недорисованы.
дело не в скорости отрисовки - в трудоемкости кодирования. Ну и с парсером заморочек был вагон.
SoUrcerer
#2522: можно тестировать.
Просто замени файл gui/font.inc и скопируй папку /fonts из А-версии в свое ядро