OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 14:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 114 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 12:28 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
лучше всё таки библиотеки рядом с exe-шником, а подсистемы в каталог /USE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 13:51 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Поставил, заработало сразу же.

Только вот линейки выглядят теперь так:


Вложения:
Cairo rulers.PNG
Cairo rulers.PNG [ 3.8 КБ | Просмотров: 9416 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 14:06 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
А как было? :) Страшилище небось?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 14:38 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Линейка обычно выглядит так:
Вложение:
non-Cairo rulers.PNG
non-Cairo rulers.PNG [ 3.49 КБ | Просмотров: 9409 ]


Тетрис выглядел так:
Вложение:
non-Cairo tetris.PNG
non-Cairo tetris.PNG [ 10.15 КБ | Просмотров: 9408 ]


А теперь выглядит так:
Вложение:
Cairo tetris.PNG
Cairo tetris.PNG [ 11.02 КБ | Просмотров: 9408 ]


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 15:09 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Да, можно заметить что линии толщиной меньше одного Ports.point отрисовываются толще чем положено и каким-то странным цветом.


Вложения:
Снимок2.PNG
Снимок2.PNG [ 11.49 КБ | Просмотров: 9406 ]
Снимок.PNG
Снимок.PNG [ 12.03 КБ | Просмотров: 9406 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 15:13 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Ага, сглаживание сработало. Можно попробовать изменить реализацию HostPorts, чтобы отрисовка была абрисом толщиной в "волос". Надо проверить возможно ли это.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 16:57 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Насколько я представляю, сглаживание для ровной линии вообще не должно включаться, ибо нет смысла.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 04 Сентябрь, 2012 21:49 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
точнее, для вертикальной и горизонтальной


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Среда, 05 Сентябрь, 2012 07:51 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Иван Кузьмицкий писал(а):
Насколько я представляю, сглаживание для ровной линии вообще не должно включаться, ибо нет смысла.

Смысл есть, так как скорее всего будет странно смотреться утолщение наклонных линий с тоненькими горизонтальными и вертикальными. Наверное в Cairo есть какие нибудь настройки... степени этой сглаженности.

Также ваши картинки совместил а то вторая отображается размытой, что еще ложно усугубляет впечатление :)


Вложения:
Снимок.PNG
Снимок.PNG [ 7.42 КБ | Просмотров: 9374 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Среда, 05 Сентябрь, 2012 08:12 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Пишут, что надо конечную точку задавать "посередине" пиксела:

Цитата:
The trick is to position in the middle of the pixel where you want the line to be drawn, and thus guaranteeing you get the desired results. See Cairo FAQ.
http://developer.gnome.org/gtkmm-tutorial/3.4/sec-cairo-drawing-lines.html.en#sec-cairo-thin-lines

Цитата:
Otherwise, if you really want to light up a single row of pixels at full intensity, you can do that by adjusting the endpoints by 0.5 in the appropriate direction. For example, by changing the above code to:
cairo_move_to (cr, 10, 10.5);
cairo_line_to (cr, 20, 10.5);
cairo_set_line_width (cr, 1);
cairo_stroke (cr);
http://cairographics.org/FAQ/#sharp_lines


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Среда, 05 Сентябрь, 2012 22:25 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Откуда взять этот CpcFigures?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Четверг, 06 Сентябрь, 2012 06:58 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Да, эти пол пикселя работают, Линейка приобрела свой исконный вид (правда у меня почему-то посинела...).
Код:
CairoApi.cairo_move_to(ctx, x0 + 0.5, y0 + 0.5);
          CairoApi.cairo_line_to(ctx, x1 + 0.5, y1 + 0.5);

Но вот то, что имел в виду. Эти тонкие линии смотрятся среди наклонных как белые вороны.
Вложение:
test.png
test.png [ 36.64 КБ | Просмотров: 9342 ]

А вот в кубе вполне хорошо смотрится такое сочетание.
Вложение:
cube.png
cube.png [ 2.72 КБ | Просмотров: 9340 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Четверг, 13 Сентябрь, 2012 09:26 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Откуда можно забирать обновления? Я тут разную графику хочу попробовать порисовать, заодно бы и потестил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Четверг, 13 Сентябрь, 2012 11:11 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
Иван Кузьмицкий писал(а):
Откуда можно забирать обновления? Я тут разную графику хочу попробовать порисовать, заодно бы и потестил.
Хоть у романа есть репозиторий, решил продублировать, к тому-же у нас небольшие разногласия как называть модули привязок. Мне как-то приятнее их видеть в папке Cairo, а не Libs.

Скачать последнюю версию из этого репозитория в виде архива
https://gitorious.org/bb16/cairo/archive-tarball/master
Скачать весь репозиторий git себе
Код:
git clone git://gitorious.org/bb16/cairo.git cairo

Скачать только последнюю версию с помощью git
Код:
git clone --depth 1 git://gitorious.org/bb16/cairo.git cairo

разные примеры игра ObxBlackBox и ObxLines вошли в Красноярскую сборку в исправленном виде для сочетания с Cairo Ports.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Суббота, 15 Сентябрь, 2012 11:32 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Наверное, я буду не вовремя, уже многое сделано.

Но тем не менее.
У меня есть почти законченная реализация AGG для XDS-2.
Нативная реализация, без необходимости тянуть библиотеку Cairo.

Что касается смещения на 0.5 - это не единственный способ решения проблемы муара вокруг линий.
В некоторых случаях изменяют сам механизм отрисовки, чтобы решить эту проблему. Но вообще да, этот способ - самый простой.

Изменение цвета сглаженных участков может быть ошибкой алгоритма сглаживания, а может быть оптическим обманом. Надо смотреть с помощью лупы при 4-8 кратном увеличении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Суббота, 15 Сентябрь, 2012 18:38 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Димыч писал(а):
У меня есть почти законченная реализация
Так это ж её ещё на КП портировать надо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Суббота, 15 Сентябрь, 2012 20:06 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Всё равно полезно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Вторник, 18 Сентябрь, 2012 06:50 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Подробное объяснение про "0.5" и другие способы решения проблем выравнивания.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Суббота, 14 Декабрь, 2013 12:08 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
После более чем годового перерыва возвращаюсь к разработке на ББ.

https://github.com/dmitrys99/BBAGG

В этом репозитории залит порт (хотя это скорее alpha-версия порта) AGG на ББ.
Это еще ОЧЕНЬ сырой код, который требует доработки (переведено где-то процентов 40 исходной библиотеки) и очень просит ревью. И да, пока нет ни примеров, ни документации.

Но самое главное, он заработал!

В ближайшее время работы будут проводится по следующему плану:

0) Доведение библиотеки до возможности замены модулей Ports/HostPorts по аналогии с модулем Cairo Ивана Денисова.
Срок - середина января 2014.

1) Расширение состава порта до потребностей моих проектов. Скорее всего, это будет изменение интерфейса модуля Ports, а может как-то по-другому. Состав изменений будет определен дополнительно, точно можно сказать, что будет возможность создания линий разного способа штриховки и, возможно, с разными шаблонами.
Срок - март 2014.

2) Доведение состава порта до 100% по отношению к оригинальной библиотеке.
Срок - август-сентябрь 2014.

Сроки определены из расчета работы в одно лицо :)

Модераторы, у меня доступ к вики остался?
Завел бы страницу проекта, потому как на пальцах объяснять строение «библиотеки для построения графических библиотек» (с) непросто.
Если можно, конечно :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Anti-Grain для Ports
СообщениеДобавлено: Суббота, 14 Декабрь, 2013 12:31 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Димыч писал(а):
После более чем годового перерыва возвращаюсь к разработке на ББ.

Отличные новости :)
В AGG eсть что-нибудь про красивые шрифты?


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

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB