Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб дек 15, 2018 7:21 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 61 сообщение ]  На страницу Пред. 1 2 3 4 5 След.
Автор Сообщение
СообщениеДобавлено: Чт мар 29, 2012 1:17 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Ну вот, собссно, и сабж :D
Вложение:
fonts.png
fonts.png [ 13.08 КБ | 2782 просмотра ]


Сверху новый шрифт, снизу - два старых. Слева - время вывода строчки из 40 символов в тактах CPU (впрочем, зачем нужно комментировать - листинг же).

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

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


Последний раз редактировалось art_zh Чт мар 29, 2012 2:02 am, всего редактировалось 1 раз.

Вернуться к началу
СообщениеДобавлено: Чт мар 29, 2012 1:29 am 
А побольше? Еще больше! Еще больше!


Вернуться к началу
   
СообщениеДобавлено: Чт мар 29, 2012 1:38 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Пн окт 19, 2009 10:58 am
Сообщения: 372
Скорость, действительно, впечатляет; отличная работа!

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


Вернуться к началу
СообщениеДобавлено: Чт мар 29, 2012 2:09 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Mario
Да будут, будут больше, дай этот причесать!
Уж ты-то должен представлять, сколько времени надо было ухлопать хотя бы на вот этот файлик.

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

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


Вернуться к началу
СообщениеДобавлено: Чт мар 29, 2012 5:06 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 792
art_zh: ты его чем-то генеришь, или вручную правишь?


Вернуться к началу
СообщениеДобавлено: Чт мар 29, 2012 5:44 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Пока вручную,
но надо какой-то IDE придумать для редактирования, иначе свихнешься.


Вернуться к началу
СообщениеДобавлено: Чт мар 29, 2012 6:17 pm 
Только руками! Только хардкор!


Вернуться к началу
   
СообщениеДобавлено: Чт авг 23, 2012 1:49 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Забавный эффект при перересовке частично перекрытого окна:
Вложение:
FNT.png
FNT.png [ 6.99 КБ | 2748 просмотров ]

старые системные фонты тратят кучу времени, обнюхивая экранную карту для каждого пикселя.

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

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


Вернуться к началу
СообщениеДобавлено: Пн авг 27, 2012 5:16 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Больше - хуже или лучше?


Вернуться к началу
СообщениеДобавлено: Пн авг 27, 2012 8:29 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1247
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

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
СообщениеДобавлено: Пн авг 27, 2012 10:03 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
I'm OK with this - the new font is working 4 times faster because no need in drawing on the overlapped areas.


Вернуться к началу
СообщениеДобавлено: Пн авг 27, 2012 10:09 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1247
Ok, I can also live with it personally :)

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
СообщениеДобавлено: Вт авг 28, 2012 3:14 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
SoUrcerer писал(а):
Больше - хуже или лучше?

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)


Вернуться к началу
СообщениеДобавлено: Пт авг 31, 2012 1:31 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
с пропавшими при перекрытии символами получается ужасно.
Спойлер: Показать
Я придумал ещё более быстрый шрифт: он просто ничего не рисует. Как развитие идеи art_zh насчёт [отсутствия] обработки перекрытий. В самом деле, прочие шрифты тратят кучу времени на то, чтобы что-то отрисовывать...

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
СообщениеДобавлено: Пт авг 31, 2012 7:08 am 
Gluk
Никто ведь не заставляет использовать. Более того шрифт автор разрабатывал для себя и первоначально не планировал заливать в транк.


Вернуться к началу
   
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 61 сообщение ]  На страницу Пред. 1 2 3 4 5 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB