Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс дек 17, 2017 11:16 am

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




Начать новую тему  Ответить на тему  [ 13 сообщений ] 
Автор Сообщение
СообщениеДобавлено: Вс окт 08, 2017 11:55 am 
Не в сети
Designer
Аватара пользователя

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

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

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

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

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

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


Вернуться к началу
СообщениеДобавлено: Вс окт 08, 2017 9:25 pm 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
СообщениеДобавлено: Пн окт 09, 2017 5:43 am 
Не в сети

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

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

http://websvn.kolibrios.org/listing.php ... b87958bf22
Вложение:
1.PNG
1.PNG [ 24.13 КБ | 340 просмотров ]


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


Вернуться к началу
СообщениеДобавлено: Пн окт 09, 2017 11:31 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
GerdtR
Я пока лишь собираю информацию и разбираюсь в темах. Рано судить)
За линку на HSV спасибо)

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

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

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

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


Вернуться к началу
СообщениеДобавлено: Вт окт 10, 2017 11:38 am 
Не в сети

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

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

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


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 4:00 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

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


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 4:18 am 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 542
0CodErr писал(а):
От fasm, считаю, по возможности надо уходить, на нём кроме микроутилит что-то серьёзное писать проблематично, что и подтверждает этот проект: примитивные структуры данных, примитивные алгоритмы, потому что сложно.

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

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


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 4:32 am 
Не в сети

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


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 12:57 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
Плиз не холиварте. Тема о другом.

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


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 2:02 pm 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 542
Leency писал(а):
Плиз не холиварте. Тема о другом.

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

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


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 2:15 pm 
Не в сети

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


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 2:43 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1195
А что, fasm не поддерживает человеческие высокоуровневые конструкции? Под него такие скрипты можно написать, что он сишный код скомпилирует. Я как раз начинал с MASM, а потом дорос до fasm и понял, что он лучше во всех отношениях.


Вернуться к началу
СообщениеДобавлено: Ср окт 11, 2017 6:08 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
Ребят, я ж попросил.
Спойлер: Показать
Изображение


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

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


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 13 сообщений ] 

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


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

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


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

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