Board.KolibriOS.org
https://board.kolibrios.org/

Новые демки
https://board.kolibrios.org/viewtopic.php?f=41&t=1301
Page 1 of 3

Author:  Self-Perfection [ Sat Jul 18, 2009 12:25 am ]
Post subject:  Новые демки

Здравствуйте. Наткнулся на KolibriOS, и она меня настолько восхитила, что я решил поизучать немного ассемблер и что-нибудь под KoOS написать. Получилась простая демка, генерирующая движущиеся изображения вроде
Image     Image
Как это примерно выглядит в движении можно посмотреть тут (полукилобайтный флэш ролик с аналогичной анимацией). Исходник + бинарник прилагаю (лицензия - BSD). Вообще скорее всего ещё доработаю, а то мерцает, может ещё что-нибудь поинтереснее с фигурами Лиссажу сделаю.

Вообще демка задумывалась как скринсейвер, но, похоже, нет простого способа использовать в качестве скринсейвера что-то отличное от того, что умеет показывать @ss. Предлагаю: допилить @ss так, чтобы он воспринимал параметры командной строки:
  • Будучи запущен без параметров сразу же показывает скринсейвер "color lines" и самоубивается от активности мыши/клавы
  • Получив один параметр ожидает, что это будет число и использует его как timeout до запуска заставки "color lines", при активности пользователя заставку прячет, но продолжает висеть в памяти
  • Если же получает два параметра по истчению количества минут, указанного первым параметром, запускает приложение, указанное вторым параметром, обнаружив активность пользователя, запущенное приложение прибивает, а сам остаётся висеть в памяти и следить за активностью пользователя
До кучи можно прикрутить к @ss умение отдавать по IPC количество секунд, прошедшее с момента последнего действия пользователя, но полезность этого сомнительна.

Идея в том, чтобы переложив минимальное количество бревён © получить возможность изменять скринсейвер и сохранять эту настройку простым редактированием autorun.dat.

Собираюсь в ближайшем будущем попробовать написать патч для @ss, реализущий вышеописанные изменения. Вопрос поднял заранее потому что хочу посоветоваться, нет ли более правильного/удобного способа реализовать возможность сохранения настроек скринсэйвера для последующих загрузок ОС.

Attachments:
File comment: "Паутинка" v0.1
web.zip [3.01 KiB]
Downloaded 227 times

Author:  Gluk [ Sat Jul 18, 2009 3:09 am ]
Post subject:  Re: Новая демка

по-моему лучше пусть запускает программу, указанную в ini-файле.. и еще пусть перед прибиванием ее предупредит на всякий случай, эдак за пол-секунды.. заодно не будет отрубаться из-за микроколебаний мыши на плохих поверхностях типа ворса или плюша...

Author:  Self-Perfection [ Sat Jul 18, 2009 10:06 am ]
Post subject:  Re: Новая демка

Можно и из ini брать настройки. При этом всё-таки из autorun.dat нужно запускать с параметром вроде "/daemonize", а при запуске без параметров показывать заставку сразу же, чтобы у пользователя была возможность простыми действиями посмотреть, что же показывает @ss. Доступ к предпросмотру через клик одновременно правой и левой кнопками мыши в правом верхнем углу - нетривиальное действие, вроде бы вообще нигде не документированное, я сам о нём узнал изучая исходники @ss. И мне не очевидно, какой скринсейвер должен запускаться при запуске @ss без параметров, если настройки берутся из ini: встроенный, или указанный в ini файле?

Gluk wrote:
и еще пусть перед прибиванием ее предупредит на всякий случай, эдак за пол-секунды.. заодно не будет отрубаться из-за микроколебаний мыши на плохих поверхностях типа ворса или плюша...

Не согласен, тогда нужна будет делать поддержку этого предупреждения во всех приложениях, которые пользователю может прийти в голову поставить заставкой. Лучше в самом @ss сделать mouse threshold: если за секунду мышь сдвинулась меньше чем на 3px, то это не считается. Учту.

Исчезаю на 5 дней, но не насовсем.

Author:  Gluk [ Sat Jul 18, 2009 3:49 pm ]
Post subject:  Re: Новая демка

не обязательно. просто отправить приложению предупреждение, мол, щас отрублю. А через время отрубить. Если приложению нет до этого дела - пущай не обрабатывает запрос.

Author:  staper [ Sun Aug 02, 2009 4:13 pm ]
Post subject:  Re: Новая демка

Какой-то старый демо-пример

Attachments:
File comment: второй пример
2DROTATION.7z [1.81 KiB]
Downloaded 189 times
rotate.7z [4.16 KiB]
Downloaded 165 times

Author:  DmitrySokolowsky [ Sun Aug 02, 2009 7:55 pm ]
Post subject:  Re: Новая демка

Сабж сильно мигает при перерисовке

Author:  Self-Perfection [ Mon Aug 03, 2009 12:26 am ]
Post subject:  Re: Новая демка

staper wrote:
Какой-то старый демо-пример

Посмотрю.

Атауальпа wrote:
Сабж сильно мигает при перерисовке

Знаю, в топик-старте я об этом написал, а так же написал, что собираюсь доработать. Собственно я в процессе дорабатывания, добавил ожидание развёртки (функцию 18.14) в цикле, стало лучше. Надеюсь, если сделаю вычисление координат концов отрезков до вывода очередного кадра, а не внутри, то мерцание пропадёт. Ну а если не пропадёт - будем думать.

Последнюю неделю времени не было, но сейчас вроде посвободнее, на днях надеюсь выложить обновлённую демку и допиленный начерно @ss.

Author:  Self-Perfection [ Sat Aug 22, 2009 7:58 pm ]
Post subject:  Re: Новая демка

Наконец сделал немерцающую версию. Вынесение вычисления координат отрезков вне отрисовки не помогло, пробовал сделать с pixlib но только от подключения pixlib.inc сжатый бинарник вырос до 540 байт, более чем вдвое, а мне очень хотелось уложиться в один сектор. В итоге пришлось учиться самому рисовать линии на внеэкранном битмапе и долго ловить баги, потому что это вообще моя первая программа на ассемблере, а он хитрый и непривычный. Зато больше не мерцает :twisted: Если кто попробует на реальном старом железе - отпишите, пожалуйста, CPU, загрузку CPU и разрешение экрана при тесте, а то ничего слабее Athlon 5200+ под рукой нет.

Теперь, как обещал, поковыряю @ss.

Attachments:
File comment: "Паутинка" v0.3
web-v3.7z [3.6 KiB]
Downloaded 195 times

Author:  Mario [ Sun Aug 23, 2009 10:20 am ]
Post subject:  Re: Новая демка

Quote:
сжатый бинарник вырос до 540 байт, более чем вдвое, а мне очень хотелось уложиться в один сектор

kpack?
Quote:
а то ничего слабее Athlon 5200+ под рукой нет

Qemu, Boch...

Author:  Self-Perfection [ Sun Aug 23, 2009 12:07 pm ]
Post subject:  Re: Новая демка

Mario wrote:
Quote:
сжатый бинарник вырос до 540 байт, более чем вдвое, а мне очень хотелось уложиться в один сектор
kpack?
Да. Нескормленная kpack'у версия выросла с 316 до 738 байт, 738 байт при сжатии kpack'ом уменьшались до 540.

Mario wrote:
Quote:
а то ничего слабее Athlon 5200+ под рукой нет
Qemu, Boch...
Qemu знаю, очень удобно в нём тестировать каждый билд под linux: скриптом бинарник заливается в образ дискеты колибри, прописывается в автозагрузку и запускается qemu с загрузкой с этого образа. Без kqemu можно даже получить примерное представление о том, как это будет работать на медленном железе, но насколько медленном? Могу я, получив удовлетворительную производительность в qemu, считать, что на PIII производительность тоже будет удовлетворительная?

Author:  Serge [ Sun Aug 23, 2009 12:32 pm ]
Post subject:  Re: Новая демка

Self-Perfection

А можешь выложить свой скрипт для Линукс ?

Author:  Self-Perfection [ Sun Aug 23, 2009 5:35 pm ]
Post subject:  Re: Новая демка

Красным то, что нужно изменить под себя. Для монтирования образа нужно добавить в /etc/fstab строку
/boot/kolibri-testing.img /home/user/kolibri-testing vfat noauto,loop,users,uid=1000

Сам скрипт:
#!/bin/sh

image=/boot/kolibri-testing.img
mountpoint=/home/user/kolibri-testing

mount $image
mkdir -p $mountpoint/develop/test
cp "$1" $mountpoint/develop/test

#Autostart
awk '$0!~/develop\/test/{print}' $mountpoint/Autorun.dat > $mountpoint/Autorun.dat-
echo "/RD/1/develop/test/$1 <NO> 1" >>$mountpoint/Autorun.dat-
mv $mountpoint/Autorun.dat- $mountpoint/Autorun.dat
sync

umount $image
qemu -boot a -fda $image -localtime -m 32 -kernel-kqemu


В деле:
Code:
$ fasm web.asm && KolibriOStest.sh web.bin

Author:  Rock_maniak_forever [ Wed Aug 26, 2009 3:04 am ]
Post subject:  Re: Новая демка

Self-Perfection wrote:
Если кто попробует на реальном старом железе - отпишите, пожалуйста, CPU, загрузку CPU и разрешение экрана при тесте, а то ничего слабее Athlon 5200+ под рукой нет.


Пробовал на PentiumMMX 333Mhz с разрешением 800x600 и на Celeron 1700Mhz с темже разрешением, загрузка обычная на обоих CPU. Что касается мерцания, то на Celeron почти незаметно, а на PentiumMMX мерцает чуточку сильнее.

Author:  Asper [ Fri Aug 28, 2009 8:26 am ]
Post subject:  Re: Новая демка

Позаимствовал демку FireWork у соседей: http://dex.7.forumer.com/viewtopic.php?t=439&highlight=firework
Правда чего-то не очень похоже получилось. Поэксперементировал с ней немного получил ещё 11 демок. Все в архиве.

Attachments:
Demo12.7z [10.77 KiB]
Downloaded 201 times

Author:  Asper [ Fri Aug 28, 2009 9:01 am ]
Post subject:  Re: Новая демка

Скриншот

Image

Page 1 of 3 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/