Page 2 of 4

Re: Вопросы по разработке

Posted: Fri Aug 19, 2011 11:05 am
by XVilka
Gluk: +1 к номерам иконок вместо имен файлов, хотя именованные все-так лучше.
например:
file-manager_kfar.png ; text-editor_tinypad.png l code-lang_tinypy.png

И прочее в том же духе.

Re: Вопросы по разработке

Posted: Mon Aug 22, 2011 1:54 pm
by maximYCH
Может ли мне кто-нибудь рассказать, как правильно пользоваться libimg?
Делаю следующее:

Code: Select all

...
draw_window:
...
	invoke	img.decode, image_data, image_data.sizeof
	mov	[image_data], eax
	invoke	img.to_rgb, eax
	mov	[rgb_img], eax
	invoke img.draw, [rgb_img], 1, 1, 24, 24, 25, 25
	ret

...

@IMPORT:
library \
	libio,'libio.obj',\
	libgfx,'libgfx.obj',\
	libimg , 'libimg.obj',\
	fontslib,'fonts_lib.obj'
...

import	libimg			   , \
	libimg.init , 'lib_init'   , \
	img.is_img  , 'img_is_img' , \
	img.to_rgb  , 'img_to_rgb' , \
	img.decode  , 'img_decode' , \
	img.flip    , 'img_flip'   , \
	img.rotate  , 'img_rotate' , \
	img.draw 	, 'img_draw'

...

; <--- DATA --->
image_data:
file 'file_new.png'
.sizeof = $ - image_data
Сабж успешно компилируется, запускается, рисуется окно, но видимо сразу, как только доходит до какого-то из этих блоков кода - вылетает

Re: Вопросы по разработке

Posted: Mon Aug 22, 2011 3:22 pm
by CleverMouse
Ну зачем img.to_rgb? Тебя не устраивает внутреннее представление libimg, подстраиваемое под конкретный файл? А libimg не устраивает подсунутый ей вместо изображения массив rgb.

Re: Вопросы по разработке

Posted: Mon Aug 22, 2011 3:28 pm
by dunkaist
Прикрепил пример, выводящий часть файла iconstrp.gif. Там немного кода, сравни со своим.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 7:54 am
by maximYCH
dunkaist, я поразбирался и таки вывел изображение. За код спасибо.
Единственное, как я понял, прозрачные png не поддерживаются. Ладно, фиг с ним.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 11:06 am
by maximYCH
У меня есть подозрение, что одно из утверждений истинно:
1) Графические файлы, вышедшие из пасти Фотошопа каким-то магическим образом коверкают исполняемый файл.
ИЛИ
2) Большие графические файлы каким-то магическим образом коверкают исполняемый файл.

Утверждения основаны на попытке вывести файл, приложенный к сообщению с помощью libimg, файл подключается как внутренний через выше обозначенный

Code: Select all

image_data:
file 'logo.png'
.sizeof = $ - image_data
Смысл в том, что update.png, приложенный к этому сообщению и скачанный с Интернета выводится вполне успешно (единственное - черный фон с шумами вместо прозрачного, что досадно). А вот logo.png (ровно, как и logo.jpg), созданный за пару минут в Фотошопе делают программу не исполняемой (@notify выводит, что файл не является исполняемым).

Может быть у кого-нибудь имеются соображений, почему такое может происходить?

P.S. Не бейте меня, пожалуйста, если ответ лежит на поверхности :P

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 1:42 pm
by Mario
Судя по тому что KIV и zSea (который не пользуется libimg, а использует собственные плагины) отображают нормально, то тебе разбирайся в твоем хитром коде.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 2:11 pm
by dunkaist
maximYCH wrote:Единственное, как я понял, прозрачные png не поддерживаются.
Это как сказать. Декодирование и работа с ними (повороты, отражения) поддерживаются на равне с непрозрачными. Но для вывода с альфа каналом нужно прочитать картинку из области окна, куда ты собираешься вывести изображдение, наложить одно на другое и только потом рисовать в окне. Libimg этого не делает.

И я не понял, зачем ты пихаешь изображения в исполняемый файл.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 2:17 pm
by maximYCH
Да, я разобрался ещё до этого, убрал кое-что лишнее.

Изображения я упаковываю в kex исключительно потому, что мне так нравится (привык я, что ресурсы программы внутри нее). Если имеются какие-либо причины так делать я готов их выслушать.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 5:23 pm
by s1n
Банальный пример это легкая возможность модифицировать внений вид программы(перерисовать иконки например). Программисту это сделать легко можно, а вот например дизайнеру разбираться с сборкой из исходников, ради того чтобы изменить иконку - както тяжело. Имхо.
И да. На случай использования этого ресурса в других программах в итоге уменьшит общий размер программы(куча программ с вшитыми ресурсами больше места занимают программ без ресурсов, но использующие один и тот же ресурс с носителя)

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 5:53 pm
by maximYCH
Но ведь может быть и другой случай, когда автор против изменения иконок, когда он хочет, что бы внешний вид программы был именно таким, каким его создал автор.
Что же до общих ресурсов, то тут я могу представить использование иконок для расширений файлов, но что ещё, кроме них? По поводу общих иконок расширений файлов ничего против не имею и даже всеми руками за, в этом смысле я за стандартизацию.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 6:26 pm
by Freeman
maximYCH wrote:Но ведь может быть и другой случай, когда автор против изменения иконок, когда он хочет, что бы внешний вид программы был именно таким, каким его создал автор.
Такому автору можно посоветовать не выёживаться искать самовыражение в другом месте, ибо не пользователь для программ, а программы для пользователя.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 6:46 pm
by Mario
Freeman
Не совсем верно - автор герой, царь и творец. Его мнение первично. Использовать или нет пользователю это не проблема автора. Естественно в плане объективности он может прислушаться к отдельным советам, а может и не прислушиваться.

При всем выше мной сказанном, тенденция Максима запихивать в бинарники картинки меня критически не устраивает. Более того судя по реакции форумчан не устраивает эта идея не только меня. Максим как и большинство своих идей запостил в куче мест. Как уже прошедший такой этап человек смею уверить - это не работает. У людей критическое отторжение к тому что им настойчиво навязывают.

Однако если человек хочет - он вправе в своей собственной программе использовать такой подход, а вот навязывать всем не вправе. Тем более что никаких логических доводов кроме "мне так нравится" не приведено, в то время как против уже привели доводы несколько раз.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 7:16 pm
by maximYCH
Хорошо, я не буду запихивать их в бинарники.
Впрочем один довод в пользу того метода могу показать: если файл с изображениями кнопок панели инструментов, к примеру, будет удален, то программа становится неработоспособной.

Марат, я не за идею "Автор творит для себя", ибо я считаю, что нужна разумная интеграция и координация действий. Я за то, что бы вместе идти к результату и против идеи полной анархии в проекте. Именно благодаря этим установкам я осознал вчерашние ошибки, поэтому извинился и именно потому, что мне указывают, что подход с запихиванием изображений не является кошерным я уступаю место своих интересов интересам сообщества. Надеюсь, что когда-нибудь так будет повсеместно :)

P.S. Но вот разделение по папкам я сделаю однозначно, если, конечно, не будет объективных возражений. Я про идею каждой программе (кроме некоторых системных, которые я собираюсь закинуть в /rd/1/system/) по папке. Иначе получится совсем бедлам. И да - речь идет не о транке, можно считать, что речь идет о своей сборке, которую по состоянию готовности я выложу на обсуждение.

Re: Вопросы по разработке

Posted: Tue Aug 23, 2011 7:53 pm
by Mario
Если дистрибутив не ограничен рамками как на RD, то ничто не мешает сделать для каждой программы свою директорию.
В случае RD это бесполезная растрата дискового пространства. Каждая директория занимает минимум 512 байт (это если FAT12 и кластер в 1 сектор). В результате потери пространства в образе получаются страшные. Может ты и не знал про это - читай доки по тому же FAT прежде чем предлагать объективно невыгодные вещи. Вообще тебе еще как говаривал Владимир Ильич "Учиться, учиться, учиться..."