Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб ноя 18, 2017 6:47 pm

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




Начать новую тему  Ответить на тему  [ 46 сообщений ]  На страницу 1 2 3 4 След.
Автор Сообщение
СообщениеДобавлено: Сб май 14, 2011 9:25 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
В другой теме я уже писал о своей программе-растеризаторе шрифтов. Пришло время отдать растеризатор на тестирование.
Сейчас программа написана на Си. Я хочу убедиться, что выбранные алгоритмы работают с приемлемой скоростью на всех машинах, и если это не так, буду думать об оптимизации отдельных блоков. После этого, по всей видимости, можно будет переносить растеризатор на ассемблер.

Причесывание и вылизывание Си-шного кода продолжается, в программе с недавнего времени не используется FPU (используются только целочисленные вычисления).

Вложение:
scalefont.zip [2.64 КБ]
416 скачиваний


Что делает программа fonter? Она выводит на экран глиф S из шрифта Droid Sans (пока что сделал версию без сглаживания), размер этого глифа можно менять (13,14,16,17,20,22,26,32,40,53,80 или 160 пикселов в высоту).

Что нужно протестировать? Работает ли программа, заметна ли отрисовка символа на экране.



Замечу, что если отрисовка символа незаметна без сглаживания, то и со сглаживанием она заметна скорее всего не будет - зато качество символа будет гораздо выше. Программа использует menuetlibc, поэтому CPU показывает, что она кушает много памяти. В реальности программа потребляет чуть больше 270 килобайт ОЗУ - из них большая часть идет на хранение изображения символа в памяти (300*300*3 байта). Потребление можно снизить, заменив 7ю функцию на 65ю.

1) Что делать с прозрачностью? Все еще нужно извращаться с чтением фона в буфер?
2) Предлагаю начать обсуждение API библиотеки шрифтов и всего сопутствующего.


Вернуться к началу
СообщениеДобавлено: Сб май 14, 2011 1:19 pm 
Не в сети

Зарегистрирован: Вт июн 24, 2008 11:12 pm
Сообщения: 31
Всё работает, всё отрисовывается. Хорошая работа проделана!

_________________
Делай как знаешь...


Вернуться к началу
СообщениеДобавлено: Сб май 14, 2011 4:48 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Спасибо за тестирование!
Особенно мне интересны результаты для eBox и других слабых машинок. С нетерпением жду отзывов.
Проверил в qemu и virtualbox. Загрузка процессора (2.4ГГц) не более 3% даже на больших разрешениях, мерцания нет. При запуске параллельно процесса-пожирателя ресурсов (который нагружает процессор на 99%) видно мерцание при перерисовке - но не только в демо-программе, а вообще везде.


Вернуться к началу
СообщениеДобавлено: Вс май 15, 2011 8:28 am 
А не проще ориентироваться на Qemu? Он как раз достаточно слабую машину эмулирует.


Вернуться к началу
   
СообщениеДобавлено: Вс май 15, 2011 8:36 am 
Не в сети
Moderator

Зарегистрирован: Чт апр 08, 2010 8:11 pm
Сообщения: 265
На моём компьютере отрисовки вообще не видно, появляются моментально. Только хвостики гораздо тоньше чем середина, на мелком шрифте...на самом крупном всё нормально.


Вернуться к началу
СообщениеДобавлено: Вс май 15, 2011 9:00 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Mario писал(а):
А не проще ориентироваться на Qemu? Он как раз достаточно слабую машину эмулирует.

У меня qemu определяет процессор как 200МГц, а затем очень странно себя ведет - то быстрее эмулирует, то медленнее, и вдобавок загрузка процессора отображается неправильно. Процесс-пожиратель ресурсов отъедает 700-800% процессорного времени :mrgreen: А перерисовки без серьезной нагрузки в qemu тоже не видно.

popovpa писал(а):
На моём компьютере отрисовки вообще не видно, появляются моментально. Только хвостики гораздо тоньше чем середина, на мелком шрифте...на самом крупном всё нормально.

Спасибо за тест! В этом шрифте хвостики и так тоньше, чем середина. Если бы был алгоритм хинтинга, то что-то возможно поменялось бы. Сглаживание увеличит качество изображения.


Вернуться к началу
СообщениеДобавлено: Чт май 19, 2011 6:08 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Статья о моем растеризаторе на Хабре(для тех, кому интересно, как именно работает мой алгоритм).


Вернуться к началу
СообщениеДобавлено: Пт май 20, 2011 8:09 am 
Толковая статья. Глядишь кто-то с такими же фанатичными устремлениями применит опыт в другом месте.
Особенно повеселил коммент про "теплый жидкий стул ламповый мак".


Вернуться к началу
   
СообщениеДобавлено: Пт май 20, 2011 8:31 am 
Не в сети

Зарегистрирован: Вт май 11, 2010 8:14 am
Сообщения: 112
Сегодня протестирую на Pentium 2.

Статья понравилась, хотя признаться честно прочитал наискосок, смотря только на основу, не пытаясь серьезно вникнуть в формулы.


Вернуться к началу
СообщениеДобавлено: Пт май 20, 2011 9:21 pm 
Не в сети

Зарегистрирован: Вт май 11, 2010 8:14 am
Сообщения: 112
Окно появляется практически мгновенно, надпись не мерцает. Но думаю она отрисовывается только при запуске, так что это не показательно. При быстром запуске нескольких приложений подряд задержка тоже не заметна.


Вернуться к началу
СообщениеДобавлено: Сб май 21, 2011 5:01 pm 
Наконец-то доступ к сети появился у меня дома и когда выдался первый свободный выходной - я протестировал.
Тестировал на Roverbook U800, процессор AMD Geode LX - 500 MHz (15 x 33) - CPUID определил его как AMD K6-2+ 498 MHz (4.5 x 110). Видео встроенное в центральный процессор - никакого графического ускорителя - полный VESA. :-)

Смотрел с максимальным глифом - скорость отрисовки хорошая. Для полноценного теста нужно отрисовывать кусок текста, тогда будет видна действительно реальная скорость какой она будет в приложении.

Ну и для полноты ощущений - программа жрет 400000h, что является 4 Мб в обычном представлении. Вероятно при компиляции бинарника что-то прошло неправильно.


Вернуться к началу
   
СообщениеДобавлено: Сб май 21, 2011 6:40 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Про память я писал-это фича menuetlibc.


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 9:19 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Предлагаю начать обсуждение API библиотеки. Сейчас самое время для этого. Высказывайте свободно свои мысли и свои желания, по возможности они будут учтены. Это официальное приглашение к обсуждению, если не высказать своё мнение по вопросам библиотеки сейчас - потом может быть уже поздно.


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 9:22 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Взять подмножество функций из http://freetype.sourceforge.net/freetyp ... 2-toc.html ?


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 9:22 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
Sorcerer, "если не высказать своё мнение по вопросам библиотеки сейчас - потом может быть уже поздно." - т.е. библиотека будет closed-source?

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


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

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


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

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


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

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