Board.KolibriOS.org

Official KolibriOS board
It is currently Sun Apr 21, 2019 3:32 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 99 posts ]  Go to page Previous 1 2 3 4 57 Next
Author Message
PostPosted: Sat Sep 19, 2009 12:02 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Если делать буферизацию, то надо предусмотреть некоторые моменты, а именно:
1) размер буфера будет разный, даже если символы моноширинные. Например вывести символ 60*90 пикселей, буфер можно задать такой-же, но если символ повернуть скажем на 30градусов, то такого буфера не хватит по ширине :( т.к. буква наклонена, а значит размер буфера всегда надо пересчитывать.
2) взаимодействие буфера и основного фонового изображения (прозрачности и т.д.)
<Lrz> wrote:
лучше разобраться с существующими форматами шрифтов (хотя бы одним)

Хотелось-бы но:
1) мало времени
2) документация на английском


Top
   
PostPosted: Sat Sep 19, 2009 7:45 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 979
Есть исходники по работе со шрифтами TrueType на языках Pascal и C++. Если кому-то надо, то могу поделиться.


Top
   
PostPosted: Sat Sep 19, 2009 8:00 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Asper
Если можно давай в ЛС.


Top
   
PostPosted: Tue Sep 22, 2009 8:41 am 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
Баг с таймером в новой версии не наблюдаю.
Самолёт стал рисоваться немного лучше, но всё равно создаётся впечатление, что он машет крыльями.))
Как запустить Font.kex, я не понял. Он не запускается.

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
PostPosted: Tue Sep 22, 2009 10:15 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Атауальпа wrote:
Как запустить Font.kex, я не понял. Он не запускается.

в папке где лежит font.kex должны лежать 2 файла fnt_1.vfo (файл шрифта) и vectors.obj (последняя версия от 19-го сентября).
При открытии (у меня) выводится окно, показанное на картинке. В Win перерисовка символов идет медленно (заметно мерцание), в самой Kolibri рисует быстро (мерцания почти не видно).
Много символов не рисуются, это потому что файл fnt_1.vfo нужно дополнять остальными символами (а времени на него нет, хотелось-бы в свободное время по возможности разобрать стандартные ttf).


Top
   
PostPosted: Tue Sep 22, 2009 1:47 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
Я скопировал оба файла по назначению, но всё равно не запускается... Может, что-то ещё надо сделать?
И ещё, хорошо бы исходники и бинарники разложить по разным папкам, а в корень архива положить ридми с описанием установки.

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
PostPosted: Tue Sep 22, 2009 2:35 pm 
Атауальпа
Только что запустил под эмулятором Diamond'а и Qemu, с запущеной Колибри, в обоих случаях работает.
Ты бы хоть написал следующие данные:
1) Где запускаешь.
2) Что пишет на доске отладки.

Возможно у тебя в /sys/lib/ лежит предыдущая версия библиотеки, а при использовании макроса sys_load_library (обязательно читаем руководство написанное <Lrz>):
Quote:
Разница между этими двумя макросами только в порядке проверки пути к библиотеке.
sys_load_library – в первую очередь проверяется значение указанное в system_path, т.е. на
этом месте где находится system_path должен быть помещен адрес записи.

ИМХО надо было использовать макрос load_library


Top
   
PostPosted: Mon Sep 28, 2009 3:51 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Доработал рисующие функции, если задать координаты меньше 0 то раньше глючило, сейчас работает.
Атауальпа wrote:
создаётся впечатление, что он машет крыльями.))

Сделал еще 1 пример с округляемыми координатами, в нем не машет, но кода больше.


Attachments:
vectors_090928.7z [17.9 KiB]
Downloaded 124 times
Top
   
PostPosted: Sat Oct 03, 2009 11:42 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
03.10.09 - ускорен вывод комбинированых полигонов, за счет оптимизации вызовов функций (оказалось, что некоторые функции вызывались несколько раз подряд, что тормозило прорисовку)
Mario wrote:
Еще идея вдогонку - сделать готовые шаблоны. Например, пример со стрелками уже подходит для чертежей навроде AutoCAD.

Добавлен 1 пример (bug.kex), из которого можно будет сделать шаблон, наподобие как в Ворде галерея клипов.


Attachments:
vectors_091003.7z [20.17 KiB]
Downloaded 126 times
Top
   
PostPosted: Sun Oct 04, 2009 12:35 pm 
IgorA
Quote:
ускорен вывод комбинированых полигонов

Примера шрифтов это тоже коснулось? Просто на вскидку быстрее стало отрисовывать.
Quote:
Добавлен 1 пример (bug.kex), из которого можно будет сделать шаблон

Это конечно замечательно, но почему бы не сделать масштабирование в размеры окна или регулировку как в примере шрифтов. Если это векторные изображения, то первейшее их отличие от растровых - масштабирование без существенной потери качества. И еще с заливкой похоже совсем туго?


Top
   
PostPosted: Sun Oct 04, 2009 1:37 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Причина всех тормозов в способе рисования примитивов - это по точечное рисование напрямую на экране при помощи системной функции 1.
В идеале надо сделать универсальную функцию рисования точки. Которая могла бы рисовать как в буфере так и на экране(у меня в библиотеке так). Отвести для флага вывода рисования некоторую переменную. Если, например, она ноль, то рисуется в буфере, если 1 то на экране. Просто при реализации заливки областей(в особенности градиентной заливки) или сглаживании шрифтов, рисование напрямую на экране - это самоубийство. Векторные изображения могут содержать сотни объектов с различными видами заливок и прозрачностей, поэтому без буфера никак не обойтись.

_________________
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!


Top
   
PostPosted: Sun Oct 04, 2009 3:32 pm 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
Quote:
Отвести для флага вывода рисования некоторую переменную. Если, например, она ноль, то рисуется в буфере, если 1 то на экране.
зачем? проще если в переменной есть параметры буфера (адрес/ширина/высота/число бит на пиксель) то рисовать в буфер, если вместо этого там нулик - рисовать на экран. Впрочем, техническая реализация не важна)


Top
   
PostPosted: Sun Oct 04, 2009 4:29 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
Quote:
проще если в переменной есть параметры буфера (адрес/ширина/высота/число бит на пиксель) то рисовать в буфер, если вместо этого там нулик - рисовать на экран.


Это уже не переменная, а тип данных "структура" с минимальным размером(для этого случая) 4+2+2+1=9 байт. У меня все эти данные хранятся в структуре + переменная-флаг указывающая куда рисовать(на экран или в буфер).

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Top
   
PostPosted: Sun Oct 04, 2009 4:39 pm 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
ну я руководствовался определением переменной как именованной области памяти, в данном случае 9 байт, что-то типа
Code:
peremennaya rb 9

а в каком виде данные внутри нея представлены - другой вопрос
Впрочем, это уже оффтоп =)


Top
   
PostPosted: Sun Oct 04, 2009 6:28 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Mario wrote:
Примера шрифтов это тоже коснулось? Просто на вскидку быстрее стало отрисовывать.

Да, коснулось всех фигур где рисуются кривые Безье. Просто раньше был многократный вызов последних кривых. Например если было несколько контуров (Безье), то рисовалось так:
    1234
    234
    34
    4
Под цифрами имею ввиду любой набор точек для рисования кривой. Заметил это когда не совпадали цвета пересекающихся кривых и оно мигать начало. Тогда и понял что лишний раз в цикле вызов идет. Достаточно 1 раз вызвать и все:
    1234
Mario wrote:
но почему бы не сделать масштабирование в размеры окна или регулировку как в примере шрифтов. Если это векторные изображения, то первейшее их отличие от растровых - масштабирование без существенной потери качества

стрелки курсоров Вверх и Вниз меняют масштаб, хотя я не сделал поворот картинки стрелками Влево и Вправо и подписи на экране нет. Хотелось еще сделать саму картинку в отдельный файл, а в программе загрузку картинки, по указанному пути.
Mario wrote:
И еще с заливкой похоже совсем туго?

Пока да, нужно запрограммировать сам алгоритм заливки, и желательно делать ее в буфере, чтобы не тормозило на экране.
andrew_programmer wrote:
В идеале надо сделать универсальную функцию рисования точки. Которая могла бы рисовать как в буфере так и на экране(у меня в библиотеке так).

ты имееш ввиду libGUI ? В каком файле код ?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 99 posts ]  Go to page Previous 1 2 3 4 57 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited