Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб окт 21, 2017 2:59 pm

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




Начать новую тему  Ответить на тему  [ 93 сообщения ]  На страницу Пред. 1 2 3 4 57 След.
Автор Сообщение
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Сб сен 19, 2009 12:02 pm 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Сб сен 19, 2009 7:45 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Есть исходники по работе со шрифтами TrueType на языках Pascal и C++. Если кому-то надо, то могу поделиться.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Сб сен 19, 2009 8:00 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Asper
Если можно давай в ЛС.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вт сен 22, 2009 8:41 am 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вт сен 22, 2009 10:15 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Атауальпа писал(а):
Как запустить Font.kex, я не понял. Он не запускается.

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


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вт сен 22, 2009 1:47 pm 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вт сен 22, 2009 2:35 pm 
Атауальпа
Только что запустил под эмулятором Diamond'а и Qemu, с запущеной Колибри, в обоих случаях работает.
Ты бы хоть написал следующие данные:
1) Где запускаешь.
2) Что пишет на доске отладки.

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

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


Вернуться к началу
   
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Пн сен 28, 2009 3:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Доработал рисующие функции, если задать координаты меньше 0 то раньше глючило, сейчас работает.
Атауальпа писал(а):
создаётся впечатление, что он машет крыльями.))

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


Вложения:
vectors_090928.7z [17.9 КБ]
85 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Сб окт 03, 2009 11:42 pm 
Не в сети
Аватара пользователя

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

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


Вложения:
vectors_091003.7z [20.17 КБ]
88 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс окт 04, 2009 12:35 pm 
IgorA
Цитата:
ускорен вывод комбинированых полигонов

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

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


Вернуться к началу
   
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс окт 04, 2009 1:37 pm 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс окт 04, 2009 3:32 pm 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс окт 04, 2009 4:29 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Цитата:
проще если в переменной есть параметры буфера (адрес/ширина/высота/число бит на пиксель) то рисовать в буфер, если вместо этого там нулик - рисовать на экран.


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

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

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс окт 04, 2009 4:39 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
ну я руководствовался определением переменной как именованной области памяти, в данном случае 9 байт, что-то типа
Код:
peremennaya rb 9

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


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вс окт 04, 2009 6:28 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Mario писал(а):
Примера шрифтов это тоже коснулось? Просто на вскидку быстрее стало отрисовывать.

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

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

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

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


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

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


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

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


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

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