Page 2 of 5

Re: Немасштабируемые векторные шрифты

Posted: Thu Mar 29, 2012 1:17 am
by art_zh
Ну вот, собссно, и сабж :D
fonts.png
fonts.png (13.08 KiB)
Viewed 10271 times
Сверху новый шрифт, снизу - два старых. Слева - время вывода строчки из 40 символов в тактах CPU (впрочем, зачем нужно комментировать - листинг же).

Новый шрифт очень похож на системный номер 0. Изобретать велосипед пришлось по двум причинам:
1) я хочу выкинуть растровые фонты из ядра, и заменить их векторными. Нужна совместимость.
2) нужно было напрямую сравнить размер и скорость отрисовки у двух "почти одинаковых" шрифтов.

Результат мне нравится: даже самый маленький растровый шрифт почти вдвое больше векторного, и на 25-40% медленнее.
На более крупных шрифтах разница будет заметнее - в разы.

Re: Немасштабируемые векторные шрифты

Posted: Thu Mar 29, 2012 1:29 am
by Mario
А побольше? Еще больше! Еще больше!

Re: Немасштабируемые векторные шрифты

Posted: Thu Mar 29, 2012 1:38 am
by dunkaist
Скорость, действительно, впечатляет; отличная работа!

Но некоторые глифы выглядят довольно странно (та же 'a'). Я правильно понимаю, что шрифт, аналогичный по начертанию текущему системному, потребовал бы слишком много уникальных "закорючек", и размер кода/шрифта вырос бы, а скорость отрисовки упала? Или смену шрифта принимать скорее как feature и лишний повод для 'сделай сам'?

Re: Немасштабируемые векторные шрифты

Posted: Thu Mar 29, 2012 2:09 am
by art_zh
Mario
Да будут, будут больше, дай этот причесать!
Уж ты-то должен представлять, сколько времени надо было ухлопать хотя бы на вот этот файлик.

dunkaist
да, кое-где еще заусенцы торчат, надо вылизивать. И еще штук 50 символов недорисованы.
дело не в скорости отрисовки - в трудоемкости кодирования. Ну и с парсером заморочек был вагон.

SoUrcerer
#2522: можно тестировать.
Просто замени файл gui/font.inc и скопируй папку /fonts из А-версии в свое ядро

Re: Немасштабируемые векторные шрифты

Posted: Thu Mar 29, 2012 5:06 pm
by XVilka
art_zh: ты его чем-то генеришь, или вручную правишь?

Re: Немасштабируемые векторные шрифты

Posted: Thu Mar 29, 2012 5:44 pm
by art_zh
Пока вручную,
но надо какой-то IDE придумать для редактирования, иначе свихнешься.

Re: Немасштабируемые векторные шрифты

Posted: Thu Mar 29, 2012 6:17 pm
by Mario
Только руками! Только хардкор!

Re: Немасштабируемые векторные шрифты

Posted: Thu Aug 23, 2012 1:49 am
by art_zh
Забавный эффект при перересовке частично перекрытого окна:
FNT.png
FNT.png (6.99 KiB)
Viewed 9767 times
старые системные фонты тратят кучу времени, обнюхивая экранную карту для каждого пикселя.

новый шрифт "шарит по углам", и если хотя бы один угол перекрыт - просто ничего не рисует. Такой вот мини-клиппинг.

Профит (в тактах процессора) - в левом столбце.

Re: Немасштабируемые векторные шрифты

Posted: Mon Aug 27, 2012 5:16 pm
by SoUrcerer
Больше - хуже или лучше?

Re: Немасштабируемые векторные шрифты

Posted: Mon Aug 27, 2012 8:29 pm
by hidnplayr
to eliminate the 'funny effect' you could use following logic:
- if all corners overlapped, dont draw
- no corners overlapped, draw
- some corners overlapped, use the old method: check all pixels

Re: Немасштабируемые векторные шрифты

Posted: Mon Aug 27, 2012 10:03 pm
by art_zh
I'm OK with this - the new font is working 4 times faster because no need in drawing on the overlapped areas.

Re: Немасштабируемые векторные шрифты

Posted: Mon Aug 27, 2012 10:09 pm
by hidnplayr
Ok, I can also live with it personally :)

Re: Немасштабируемые векторные шрифты

Posted: Tue Aug 28, 2012 3:14 am
by art_zh
SoUrcerer wrote:Больше - хуже или лучше?
the code is the same as before, but the test string is a bit longer (90 characters), and the window is partially overlapped

left column = number of CPU clocks needed to write it (see the code there)

Re: Немасштабируемые векторные шрифты

Posted: Fri Aug 31, 2012 1:31 am
by Gluk
с пропавшими при перекрытии символами получается ужасно.
Spoiler:Я придумал ещё более быстрый шрифт: он просто ничего не рисует. Как развитие идеи art_zh насчёт [отсутствия] обработки перекрытий. В самом деле, прочие шрифты тратят кучу времени на то, чтобы что-то отрисовывать...

Re: Немасштабируемые векторные шрифты

Posted: Fri Aug 31, 2012 7:08 am
by Mario
Gluk
Никто ведь не заставляет использовать. Более того шрифт автор разрабатывал для себя и первоначально не планировал заливать в транк.