Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Jun 03, 2020 1:37 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 39 posts ]  Go to page 1 2 3 Next
Author Message
 Post subject: Новые демки
PostPosted: Sat Jul 18, 2009 12:25 am 
Offline
User avatar

Joined: Wed Feb 04, 2009 12:19 am
Posts: 12
Здравствуйте. Наткнулся на 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 222 times

_________________
Image


Last edited by Self-Perfection on Sun Jan 29, 2012 11:06 am, edited 3 times in total.
Top
   
PostPosted: Sat Jul 18, 2009 3:09 am 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
по-моему лучше пусть запускает программу, указанную в ini-файле.. и еще пусть перед прибиванием ее предупредит на всякий случай, эдак за пол-секунды.. заодно не будет отрубаться из-за микроколебаний мыши на плохих поверхностях типа ворса или плюша...

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Top
   
PostPosted: Sat Jul 18, 2009 10:06 am 
Offline
User avatar

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

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

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

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

_________________
Image


Top
   
PostPosted: Sat Jul 18, 2009 3:49 pm 
Offline
User avatar

Joined: Mon Apr 16, 2007 6:38 pm
Posts: 1222
не обязательно. просто отправить приложению предупреждение, мол, щас отрублю. А через время отрубить. Если приложению нет до этого дела - пущай не обрабатывает запрос.

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Top
   
PostPosted: Sun Aug 02, 2009 4:13 pm 
Offline

Joined: Fri May 22, 2009 5:21 pm
Posts: 56
Какой-то старый демо-пример


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


Last edited by staper on Mon Aug 03, 2009 11:35 am, edited 1 time in total.
Top
   
PostPosted: Sun Aug 02, 2009 7:55 pm 
Offline
User avatar

Joined: Thu Mar 01, 2007 7:57 pm
Posts: 835
Сабж сильно мигает при перерисовке

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Top
   
PostPosted: Mon Aug 03, 2009 12:26 am 
Offline
User avatar

Joined: Wed Feb 04, 2009 12:19 am
Posts: 12
staper wrote:
Какой-то старый демо-пример

Посмотрю.

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

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

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

_________________
Image


Top
   
PostPosted: Sat Aug 22, 2009 7:58 pm 
Offline
User avatar

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

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


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

_________________
Image
Top
   
PostPosted: Sun Aug 23, 2009 10:20 am 
Quote:
сжатый бинарник вырос до 540 байт, более чем вдвое, а мне очень хотелось уложиться в один сектор

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

Qemu, Boch...


Top
   
PostPosted: Sun Aug 23, 2009 12:07 pm 
Offline
User avatar

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

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

_________________
Image


Top
   
PostPosted: Sun Aug 23, 2009 12:32 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Self-Perfection

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


Top
   
PostPosted: Sun Aug 23, 2009 5:35 pm 
Offline
User avatar

Joined: Wed Feb 04, 2009 12:19 am
Posts: 12
Красным то, что нужно изменить под себя. Для монтирования образа нужно добавить в /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

_________________
Image


Top
   
PostPosted: Wed Aug 26, 2009 3:04 am 
Offline
User avatar

Joined: Mon Feb 09, 2009 4:13 am
Posts: 445
Self-Perfection wrote:
Если кто попробует на реальном старом железе - отпишите, пожалуйста, CPU, загрузку CPU и разрешение экрана при тесте, а то ничего слабее Athlon 5200+ под рукой нет.


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

_________________
\ Маузер в руке, Путин – на крюке! \ Путину – клизму! Смерть капитализму! \ Путин – параша, победа будет наша!\
\ Застрели буржуя в спину! Он не лучше чем скотина! \
Image


Top
   
PostPosted: Fri Aug 28, 2009 8:26 am 
Offline
User avatar

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


Attachments:
Demo12.7z [10.77 KiB]
Downloaded 198 times
Top
   
PostPosted: Fri Aug 28, 2009 9:01 am 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Скриншот

Image


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

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


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