Page 3 of 3

Re: Kofee - Flash player

Posted: Mon Nov 01, 2010 11:27 pm
by IgorA
Nable
Спасибо за ссылки. Я думал что при сглажевании нужно расчитывать интенсивность цвета для заливки используя дробные числа, оказывается что можно выкрутится и через целые.
Asper
Алгоритм заливки выглядит очень простым, потому когда будет время то сперва добавлю в библиотеку функцию для заливки.

Re: Kofee - Flash player

Posted: Tue Nov 02, 2010 2:19 am
by Nable
to Asper
Ты не прав, говоря что этот алгоритм не хранит координаты всех заливаемых точек. Ведь чем больше точек, тем больше глубина вложенности... Уже догадался что меняешь шило на мыло? Раньше было в массиве, теперь в стеке. Некоторая экономия есть, ибо хранится часть точек, а не все, а так же, с другой стороны, рекурсивный алгоритм, быть может, можно легко распаралеллить, но будь аккуратен, переполнение стека - опасная ошибка.

to IgorA
Числа на самом деле в итоге дробные, просто с фиксированной точкой, а не плавающей. Не знаю как сейчас, но раньше в ядре в коде сглаженного рисования фона использовалась fixed-point math 32.32

Re: Kofee - Flash player

Posted: Tue Nov 02, 2010 3:53 am
by Asper
Nable
Именно в стеке и не нужно думать сколько памяти выделить под массив, как определить множество заливаемых точек и т.д. Про рекурсию и переполнение стека я конечно же знаю, и уж позабочусь о надлежащем размере стека, важнее то, что сама библиотека будет проще и быстрее заливать требуемую область.
Например вот здесь описываются несколько алгоритмов заливки. Приведенный мной алгоритм там обозначен как "Простой алгоритм заливки".

Re: Kofee - Flash player

Posted: Tue Nov 02, 2010 10:54 pm
by IgorA
В ревизии 1684 добавил функцию buf2d_flood_fill, заливает области. Но смущает то, что чем больше заливаемая область тем больше должна быть область стека. Причем область нужная для стека растет намного быстрее чем я думал. При увеличении радиуса заливаемой области на 1 пиксель стек по идее должен увеличиваться на 4 байта (одна рекурсивная команда call = 4 байта). Так я думал, но на практике получаются большие цифры ... :?
Например круг радиусом 25 я могу залить со стеком 4096, а круг радиусом 50 пикселей я не могу залить со стеком 8192 зависимость не линейная :?:

Re: Kofee - Flash player

Posted: Tue Nov 02, 2010 11:08 pm
by Gluk
ну уж окружности то можно рисовать сразу линиями, а не точками, вот и заливка.. а для фигур произвольной формы то да, придется идти на определенные жертвы..

Re: Kofee - Flash player

Posted: Wed Nov 03, 2010 6:15 pm
by Asper
IgorA
S=2*pi*R*R
Для R=25, S=3297
Для R=50, S=15140

Re: Kofee - Flash player

Posted: Mon Dec 20, 2010 12:56 am
by DmitrySokolowsky
Наконец-то попробовал!
к сожалению, вынужден подтвердить. что демки рисуются криво, при этом демка ADOBE.SWf у меня вылетает с такой ошибкой:

Code: Select all

K : destroy app object
K : destroy app object
K : Process - forced terminate PID: 0000003D
K : Page fault
K : EAX : 00000000 EBX : 00000000 ECX : 044DE0AB
K : EDX : 1004FB20 ESI : 00000015 EDI : 02D46FFF
K : EBP : 0000243F EIP : 1004F114 ESP : 0000241F
K : Flags : 00001206 CS : 0000001B (application)
Однако начинание хорошее и нужное, удачи!

Re: Kofee - Flash player

Posted: Mon Dec 20, 2010 1:20 am
by IgorA
Атауальпа wrote:при этом демка ADOBE.SWf у меня вылетает с такой ошибкой
Хочется узнать библиотека buf2d, которая была использована в тесте была до или после 1717 ревизии? Скорее всего ошибка не в этом, но вдруг... Алгоритм рисования закрашенного прямоугольника при задании отрицательных размеров мог или подвесить программу (ширина меньше 0) или привести к сбою программы (высота меньше 0), что было в 1717 устранено (хотя очень серйозных тестов по этому поводу я не проводил).

Re: Kofee - Flash player

Posted: Tue Dec 21, 2010 4:00 pm
by DmitrySokolowsky
Да, библиотека оказалась действительно старая. А где новая, на svn я не нашёл.

Re: Kofee - Flash player

Posted: Tue Dec 21, 2010 10:47 pm
by IgorA
Атауальпа wrote:А где новая, на svn я не нашёл
рядом с другими библиотеками в папке
programs/develop/libraries/buf2d
просмотреть в браузере можно по ссылке
http://redmine.kolibrios.org/projects/k ... /buf2d.asm

Re: Kofee - Flash player

Posted: Wed Dec 22, 2010 5:08 am
by lev
: А нельзя ли в buf2d поправить cruve на curve? А для совместимости с программами использующими кривое написание воткнуть
buf_cruve_bezier fix buf_curve_bezier
obj станет потолще, но меня (а может кого-нибудь ещё) перестанет передёргивать :)
(лучше, конечно и в прогах поправить и совсем от "cruve" избавиться)

Re: Kofee - Flash player

Posted: Wed Dec 22, 2010 5:37 pm
by IgorA
На сколько я знаю пока только одна программа использует эту функцию, потому заменить название не проблематично.
В английском я не силен :(
Со следующей ревизией поменяю.

Re: Kofee - Flash player

Posted: Wed Dec 22, 2010 7:32 pm
by lev
Я примерно в пяти файлах по svn насчитал, один из которых html :)

Re: Kofee - Flash player

Posted: Wed Dec 22, 2010 8:27 pm
by Mario
Проще поиском по содержимому, в файловых менеджерах поискать. Например Krusader (для Linux) или Unreal Commander (соответственно для Windows).