Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Sep 16, 2019 6:22 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 101 posts ]  Go to page Previous 13 4 5 6 7 Next
Author Message
 Post subject:
PostPosted: Fri Aug 24, 2007 6:54 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
>.Когда-то давно, когда я только учился програмировать, я писал на C++ под Винду, так вот в одной умной книжке я прочитал такую интересную вещь, что необязательно для отмены последних действий хранить всю картинку, альтернативный вариант - запоминать действия пользователя. В текстовом виде. Или в виде подобия опкодов. Когда буфер действий заполняется (а при таком виде заполнится он не скоро), то самое далёкое действие по дате выполняется над изображением, а остальные в буфере смещаются вниз. Действия, например, такие: MoveTo(x,y),LineTo(x,y),FloodFill(x,y)...

Я про это знаю. Просто из временных соображений реализован пока такой вариант.

>2.Я недавно на диске с учебниками математики обнаружил кучу литературы по обработке изображений(с примерами), с радостью, если есть время.

Замечательно. Через год воспользуюсь предложенными описаниями :)


Top
   
PostPosted: Sat Mar 01, 2008 6:20 pm 
Offline

Joined: Mon Jan 07, 2008 11:39 am
Posts: 22
Найден баг. При сворачивании анимэджа курсор начинает двигаться рывками.


Top
   
PostPosted: Sun Jul 04, 2010 10:45 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Хочу добавить в библиотеку buf2d функции рисования окружности и заливки цветом. Подумал что можно взять их из animage, но не пойму входные параметры:
Code:
;procedure <<<<<<calculate_circle>>>>>>
; IN
;eax - pointer to screen
;ebx - output array
;ecx - (screen size x)*bytes per pixel
;edx - x_c*65536+y_c
;esi   r
; OUT
;eax - number of pixels
calculate_circle:

а именно назначение pointer to screen и output array, то же самое и в заливке:
Code:
;procedure <<<<<<flood fill>>>>>
;IN
;eax - pointer to screen
;ebx - pointer to output array
..........
flood_fill:



Также в файле string.inc нашел возможность упростить код, вместо:
Code:
find_symvol:
   ;eax=string
   ;ebx=symvol
   mov esi,eax
   next_symvol:
   xor ecx,ecx
   mov cl,[eax]
   cmp cl,bl
   je symvol_fined
   inc eax
   jmp next_symvol

   symvol_fined:
   sub eax,esi

   ret

сделать так:
Code:
find_symvol:
   ;eax=string
   ;ebx=symvol
   mov esi,eax
   next_symvol:
   cmp byte[eax],bl
   je symvol_fined
   inc eax
   jmp next_symvol

   symvol_fined:
   sub eax,esi

   ret


Top
   
PostPosted: Tue Jul 06, 2010 11:15 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
IgorA wrote:
Также в файле string.inc нашел возможность упростить код

Мой вариант:
Code:
find_symbol:
   ;edi = string
   ;ecx = length of string
   ;al = symbol
   push  ecx
   repne scasb
   pop    eax
   sub    eax, ecx
   ret


Код не смотрел, но рискну предположить, что pointer to screen - это указатель на буфер где рисуется графический примитив.


Top
   
PostPosted: Wed Jul 07, 2010 8:03 am 
Animage (как и KFM) нуждается в переписывании с 64 функциии на 68. Без этого в нем нельзя использовать "расшаренную" память и следовательно не прикрутить OpenDialog. Я смотрел код, но без знания что и где переписывать я его не могу - слишком много времени уйдет.


Top
   
PostPosted: Tue Sep 28, 2010 11:53 pm 
У меня хорошая новость - двух-дневным (вернее двух-вечерним) мозговым штурмом Animage переписан с 64 функции на 68, остается прикрутить OpenDialog. Возможно поправлю пару багов за одно.

Ну, и судя по коду - возможна довольно значительна оптимизация - например процедура установки указателей с 100% идентичным кодом была продублирована то ли 3, то ли 4 раза - уже сделал в этом случае оптимизацию кода.


Top
   
PostPosted: Thu Sep 30, 2010 4:24 pm 
SVN r. 1632
1) Приложение использует функцию 68 вместо 64, для управления памятью приложения.
2) Использование OpenDialog (через библиотеку proc_lib.obj), для указания пути к открываемому и сохраняемому файлу.


Top
   
PostPosted: Thu Sep 30, 2010 6:22 pm 
Offline

Joined: Sun Nov 04, 2007 2:46 am
Posts: 390
Надеюсь, оно больше не будет так перерисовываться по-дурацки.


Top
   
PostPosted: Fri Oct 01, 2010 10:54 am 
maximYCH wrote:
Надеюсь, оно больше не будет так перерисовываться по-дурацки.

Использование 68 функции никаких изменения в скорость работы и улучшение отрисовки не вносит. Оно просто позволяет теперь подключать библиотеки. Для изменения отрисовки требуется переделать вывод окна - не отрисовывать фон окна ядром, но при этом требуется самому заполнять все пустые места. Если будет время займусь, но пока не до этого.


Top
   
PostPosted: Mon Oct 04, 2010 11:52 pm 
SVN r. 1643 - Animage версии 1.3
1) Устранено мерцание при перерисовке окна.
2) Устранена утечка памяти для стека (вызывать процедуры через call, а затем выходить из них через jmp still - очень плохая идея).

Программа все еще содержит не менее двух багов:
1) Если переместить окно с открытым меню - будет дискотека с цветомузыкой.
2) Если при создании новой картинки, чуть-чуть ошибиться, то лучше сразу закрыть приложение.
Они не столь заметны, но естественно нуждаются в исправлении.

И еще пожалуй нуждается в переписывании на тип окна с заданием сетки координат от базы, учитывающей параметры скина, но эта довольно большой объем работ.


Top
   
PostPosted: Sat Oct 09, 2010 6:01 pm 
Offline
User avatar

Joined: Sun May 10, 2009 7:56 pm
Posts: 98
А также при активации инструментов выделения и иногда рисвования прямоугольника Animage вылетает.


Top
   
PostPosted: Tue Aug 02, 2011 2:17 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5061
Улучшения во внешнем виде:
- избавился от капса
- надписи в подменю теперь посередине
- help вылазил за границы выделения, исправлено
- немного улучшил внешний вид кнопочек
- теперь лучше видно как нажимается кнопочка (левый верхний бок какбэ вдавливается)
- правильно отрисовывается выбранный цвет

А неплохо бы ещё и программную часть обновить - скроллы, например.

_________________
Через тернии к звездам


Top
   
PostPosted: Tue Aug 09, 2011 1:30 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5061
Хотелось бы немного простых, но крайне важных изменений, чтобы программой можно было пользоваться:
- Ctrl+Z отмена (в идеали и другие хоткеи)
- изменение размера области не приводит к изменению курсора и инструмента редактирования
- по-умолчанию выбран инструмент карантдаш.

P.S. Копирование и вставка поломаны?

_________________
Через тернии к звездам


Top
   
PostPosted: Tue Aug 09, 2011 7:22 am 
Leency wrote:
P.S. Копирование и вставка поломаны?

А они разве работали?


Top
   
PostPosted: Thu Aug 11, 2011 8:34 am 
Offline

Joined: Sun Nov 04, 2007 2:46 am
Posts: 390
День багрепертов Максимыча продолжается ;)
Впрочем этот баг относится не только к Animage, такое наблюдается везде.


Attachments:
animage.png
animage.png [ 60.07 KiB | Viewed 3845 times ]
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 101 posts ]  Go to page Previous 13 4 5 6 7 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 guests


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