Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Aug 21, 2019 12:37 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 28 posts ]  Go to page 1 2 Next
Author Message
PostPosted: Sun Oct 08, 2017 11:55 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Я уже давно очень хочу две вещи (на самом деле пять). Те, которые я теоретически смогу реализовать это текстовый редактор и редактор иконок (а которые не смогу это unarchiver, wifi и С-- в Колибри).

Эта тема посвящена теории разработки графического редактора, для начала иконок.
Дабы не велосипедить, я вначале хочу обсудить как правильно его реализовать.

Интересует ваше мнение или линка по каждому пункту.

Пока что единственный вопрос.

1. Как програмно вывести палитру
Как тут http://prntscr.com/gup4ne

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


Top
   
PostPosted: Sun Oct 08, 2017 9:25 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 455
Блин, похвален твой запал в разработке)
1. Вообще я бы выделил буфер в памяти под картинку, прогнал бы по массиву с формулой, вычисляющей цвет точки. Если в стиле того, как у тебя на картинке, то смотри https://ru.wikipedia.org/wiki/HSV_(цветовая_модель)
Особенно преобразование из HSV в RGB. Может и готовые есть алгоритмы. Аргументами будут X,Y в матрице и значение бегунка на цветастой ленте.
Ну потом, при клике по матрице просто координату клика и значение бегунка через формулу - и цвет rgb готов.
Хм... я оставлял заглушку в icon, на случай добавления возможности выбора сторонней иконки, не из стандартного набора. Там в ini просто путь до иконки писать. Только поддержка ico надо тогда... или в принципе png уже есть, просто доработать немного... Короче повозиться надо будет.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
PostPosted: Mon Oct 09, 2017 5:43 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
А может лучше допилить существующую программу? Ведь никто кроме тебя не будет поддерживать исходники на C--. :mrgreen:

А что, собственно, мешает посмотреть в исходники того же ColorDialog?
Ну или IconEdit?

http://websvn.kolibrios.org/listing.php ... b87958bf22
Attachment:
1.PNG
1.PNG [ 24.13 KiB | Viewed 1757 times ]


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


Top
   
PostPosted: Mon Oct 09, 2017 11:31 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
GerdtR
Я пока лишь собираю информацию и разбираюсь в темах. Рано судить)
За линку на HSV спасибо)

0CodErr
> А может лучше допилить существующую программу? Ведь никто кроме тебя не будет поддерживать исходники на C--. :mrgreen:
На ассемблере тоже никто поддерживать не будет, так что это не аргумент. :D

Вообще это полная ерунда. В С-- можно писать как на ассемблере, так и на Си. Компилировать программу также просто как программу на Ассемблере - запустил батник и бинарник готов, не нужно разбираться с зависимостями, линковкой и прочей важной ерундой, как в других Си. Количество оберток, упрощающих написание программ - немерено. Начиная от коллекций кончая элементом "список". Писать на нем сможет любой, было бы желание.

> В крайнем случае берёшь просто готовую картинку и выводишь.
Я тоже так и подумал.

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


Top
   
PostPosted: Tue Oct 10, 2017 11:38 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Leency wrote:
На ассемблере тоже никто поддерживать не будет, так что это не аргумент. :D
А это и не был аргумент. Это скорее ответ на твой ответ, почему я переписал RUN с fasm на MASM-совместимый ассемблер с человеческими высокоуровневыми конструкциями, которые точно так же можно использовать, а можно и не использовать. Если смотрел исходник, то это очень упрощает понимание кода.
Leency wrote:
Вообще это полная ерунда. В С-- можно писать как на ассемблере, так и на Си. Компилировать программу также просто как программу на Ассемблере - запустил батник и бинарник готов, не нужно разбираться с зависимостями, линковкой и прочей важной ерундой, как в других Си. Количество оберток, упрощающих написание программ - немерено. Начиная от коллекций кончая элементом "список". Писать на нем сможет любой, было бы желание.
Согласен, и это касается не только С--. От fasm, считаю, по возможности надо уходить, на нём кроме микроутилит что-то серьёзное писать проблематично, что и подтверждает этот проект: примитивные структуры данных, примитивные алгоритмы, потому что сложно.

Могу только посоветовать использовать что-то проверенное, например, libc вместо самописных велосипедов. И программа надёжнее будет, и другим можно будет легче роазобраться в таком коде.

Что касается поддерживания исходников, в автосборке куча программ(в основном демо) на fasm, исходники которых давно уже никто не поддерживает и вряд ли кто-то будет поддерживать. Так что, я с тобой согласен, использовать лучше тот инструмент, который удобнее(ведь под каждую задачу свой инструмент). Прикладные программы хотя бы средней сложности нет смысла писать полностью на ассемблере.


Top
   
PostPosted: Wed Oct 11, 2017 4:00 am 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
Примитивные алгоритмы? А какое это имеет отношение к языку? Как раз fasm - самый мощный из ассемблеров.


Top
   
PostPosted: Wed Oct 11, 2017 4:18 am 
Offline

Joined: Mon Mar 27, 2006 6:33 am
Posts: 664
0CodErr wrote:
От fasm, считаю, по возможности надо уходить, на нём кроме микроутилит что-то серьёзное писать проблематично, что и подтверждает этот проект: примитивные структуры данных, примитивные алгоритмы, потому что сложно.

Если уровня примитивных структур хватает, то зачем делать сложнее?
И да, как умение владения Fasm соотносится со сложностью алгоритмов (вспоминая о таком эпическом пакете на Fasm, как реализация рантайм поддержки Hiasm) :)
Вот какого то уровня мета-информации, ихмо, и инструментария работы с ней может и не достаточно в проекте?

P.S. В одном прошлом личном моменте мне попался исходник хитрого саморазвёртывающегося макроса на Masm, но даже не используя Masm (немного подумав)
получилось изобразить максимально близкое решение к идеям данного макроса, но уже в рамках Форт языка. :)


Top
   
PostPosted: Wed Oct 11, 2017 4:32 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Я пожалуй возьму пример с товарища Siemargl и посоветую напрячься и подумать :mrgreen:
А то, что вы микроскопом гвозди забиваете, так это ваша проблема.
Уметь так — не плохо, а плохо — делать это.


Top
   
PostPosted: Wed Oct 11, 2017 12:57 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Плиз не холиварте. Тема о другом.

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


Top
   
PostPosted: Wed Oct 11, 2017 2:02 pm 
Offline

Joined: Mon Mar 27, 2006 6:33 am
Posts: 664
Leency wrote:
Плиз не холиварте. Тема о другом.

Хорошо, но слово теория упомянутое в названии топикик предполагает достаточно широкое своё толкование. :)

P.S. 0CodErr небольшое уточнение по вопросу одного из свойств ассемблера - высокоуровневости озвучивал примерно 14лет назад в такой форме - пункт 6.


Top
   
PostPosted: Wed Oct 11, 2017 2:15 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Kopa wrote:
P.S. 0CodErr небольшое уточнение по вопросу одного из свойств ассемблера - высокоуровневости озвучивал примерно 14лет назад в такой форме - пункт 6.
Ну всё правильно
Использование ассемблера данной СР позволяет добиться высокой читаемости и
модифицируемости ассемблерного кода программы.
Это достигается, в частности, возможностью ассемблера использовать такие
структурные операторы как IF, ELSE, THEN, BEGIN, WHILE, UNTIL, REPEAT, CASE,
и мн.др. (т.е. программа структурируется и может не иметь явных меток )
о том и речь была
0CodErr wrote:
Это скорее ответ на твой ответ, почему я переписал RUN с fasm на MASM-совместимый ассемблер с человеческими высокоуровневыми конструкциями, которые точно так же можно использовать, а можно и не использовать. Если смотрел исходник, то это очень упрощает понимание кода.


Top
   
PostPosted: Wed Oct 11, 2017 2:43 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1264
А что, fasm не поддерживает человеческие высокоуровневые конструкции? Под него такие скрипты можно написать, что он сишный код скомпилирует. Я как раз начинал с MASM, а потом дорос до fasm и понял, что он лучше во всех отношениях.


Top
   
PostPosted: Wed Oct 11, 2017 6:08 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Ребят, я ж попросил.
Spoiler: Show
Image


Админы перенесите плиз часть темы в оффтопик.

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


Top
   
PostPosted: Wed Feb 07, 2018 6:55 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5054
Я долго и адово тупил ходя вокруг да около, прокрастинируя как только мог.
Но таки переборол себя и теперь приветствуйте: IconEditor для Колибри, который я мечтал написать сколько знаком с системой.


Attachments:
Screenshot_1.png
Screenshot_1.png [ 35.6 KiB | Viewed 1344 times ]

_________________
Через тернии к звездам
Top
   
PostPosted: Wed Feb 07, 2018 7:41 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
Хорошо. Надо еще придумать что нибудь с хранением ресурсов для приложений.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 28 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 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