eu_tomat 2 148 Опубликовано: 3 сентября, 2017 Решил еще добавить возможность ставить приложения на паузу(coroutine позволяют и такое делать) Кроме того, что любую программу можно поставить на паузу, можно будет еще 'выключать графику' этой программыКакие могут быть подводные камни? Если приостанавливать выполнение приложения, то подводные камни зависят от характера самого приложения. Может оказаться нежелательным в определенные интервалы времени прерывать управление технологическим процессом или обмен данными. Например, программа разогревает ядерный реактор, периодически проверяя его температуру и останавливая нагрев в нужный момент. Приостанов такой программы приведет к взрыву реактора. Если речь идет о приостановке экранного вывода, то при условии аккуратной реализации виртуального gpu не должно возникать каких-либо проблем. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 3 сентября, 2017 Вот это мне нравится. Человек задумал - человек запилил. =) А то наплодят 100500 тем, а толку - нуль. Ни одного завалящего скриншотика. Мне в этом плане Элит нравится))) Не флудит, не предупреждает всех об опасности, что он там что-то кодить собрался, никого морально не подготавливает к этому и в ЖЖ-шке не постит тонны флуда, что он там что-то кодит, не требует людей, которые бы отдались в анальное рабство для создания крупного проекта и прочее. А -бах, и выложил программулину или библу эпическую 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 3 сентября, 2017 .... Ну так, есть мыслители, философы(а что если), а есть те кто реально делает что - то. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 3 сентября, 2017 Ну так, есть мыслители, философы(а что если), а есть те кто реально делает что - то. ну это даа. Да и общение тоже нужно. Так интереснее что-то делать. Зачастую бывает пофлудить намного интереснее, чем какие-то буковки кодить в одиночестве. По большому счету - то все эти программки улетят в небытие с течением времени в нашей расширяющейся вселенной, да и они и не нужны никому по сути, особо, а вот обсудить что-то - это хлебом не корми 3 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 4 сентября, 2017 Вот же проблемка. Стандартный term и tty реализованы так, что никакими усилиями не получается встиснуть их в gpu эмулированную через буффер Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 4 сентября, 2017 (изменено) Вот исходники. https://github.com/RccHD/WinOS/tree/master/WinOS/dd243563-b2e6-4ba8-8c28-28ca278f0402/home Скопировать в таком виде в папку /home. Реализовано примерно 50% необходимого функционала. Все оптимизировать буду после того, как будет готов хоть немного доработанный вариант. Рабочий скрипт: test1.lua(змейка, матрица и проч.) Нерабочий -- test.lua(использует term, tty) Чтобы закрыть программу нужно нажать backspace. Помогает не всегда Изменено 4 сентября, 2017 пользователем RccHD 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
qwertyMAN 1 722 Опубликовано: 4 сентября, 2017 (изменено) Вот исходники. https://github.com/RccHD/WinOS/tree/master/WinOS/dd243563-b2e6-4ba8-8c28-28ca278f0402/home Скопировать в таком виде в папку /home. Реализовано примерно 50% необходимого функционала. Все оптимизировать буду после того, как будет готов хоть немного доработанный вариант. Рабочий скрипт: test1.lua(змейка, матрица и проч.) Нерабочий -- test.lua(использует term, tty) Чтобы закрыть программу нужно нажать Q. Помогает не всегда Лучше сразу оптимизировать, чем потом переписывать костыли. А вообще шикарная прога. Мне в этом плане Элит нравится))) Не флудит, не предупреждает всех об опасности, что он там что-то кодить собрался, никого морально не подготавливает к этому и в ЖЖ-шке не постит тонны флуда, что он там что-то кодит, не требует людей, которые бы отдались в анальное рабство для создания крупного проекта и прочее. А -бах, и выложил программулину или библу эпическую А как же его вк, где он пишет свои планы по написанию новых крутых прог? Эх, мне бы так. Не философствовать, а писать проги задуманные. Изменено 4 сентября, 2017 пользователем qwertyMAN Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 5 сентября, 2017 Вот исходники. https://github.com/RccHD/WinOS/tree/master/WinOS/dd243563-b2e6-4ba8-8c28-28ca278f0402/home Скопировать в таком виде в папку /home. Реализовано примерно 50% необходимого функционала. Все оптимизировать буду после того, как будет готов хоть немного доработанный вариант. Рабочий скрипт: test1.lua(змейка, матрица и проч.) Нерабочий -- test.lua(использует term, tty) Чтобы закрыть программу нужно нажать backspace. Помогает не всегда Какие файлы OpenOS были изменены? Я не понял, как извлечь эту информацию из репозитория, а просматривать все файлы в поисках изменений выше моих сил. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 5 сентября, 2017 Какие файлы OpenOS были изменены? Я не понял, как извлечь эту информацию из репозитория, а просматривать все файлы в поисках изменений выше моих сил. Никакие файлы не были изменены. Мои версии некоторых системных компонент лежат в папке lib/proxy Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 5 сентября, 2017 Запусти шелл в одном своих окон. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 5 сентября, 2017 Запусти шелл в одном своих окон. Я уже писал, что это проблематично... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 5 сентября, 2017 Пока что решил взять перерыв в кодинге. Пару дней не буду ничего программировать и т.д.Так что давайте пока обсудим идеи новых фич в эту ОСПишите свои предложения Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 5 сентября, 2017 (изменено) Вот например интересно, давать ли возможность юзеру изменять размер окна? При каждом изменении окна придется перерисовывать графику приложения. А в некоторых случаях придется перезапускать приложение, которое запущено в этом окне. Вот например если есть такой код, то придется перезапустить приложение, чтобы переменные соответствовали размеру окна: local w, h = require("component").getPrimary("gpu").getResolution() Изменено 6 сентября, 2017 пользователем RccHD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 5 сентября, 2017 Вот например интересно, давай ли возможность юзеру изменять размер окна? В классических тайловых менеджерах разрешают. Да и вообще, если какая-то программа закрывается - то остальные автоматом ресайзятся, чтобы занять экран полностью. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 5 сентября, 2017 В классических тайловых менеджерах разрешают. Да и вообще, если какая-то программа закрывается - то остальные автоматом ресайзятся, чтобы занять экран полностью. Да, но такие программы должны слушать событие "screen_resized", чтобы сразу обновить свои переменные в соответствии с новым размером окна. Поэтому я добавлю возможность ручного перезапуска (ctrl + R) для таких программ, которые не адаптированы под изменяющийся размер окна. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Seryoga 184 Опубликовано: 7 сентября, 2017 Да, но такие программы должны слушать событие "screen_resized", чтобы сразу обновить свои переменные в соответствии с новым размером окна. Нормальные программы не должны слушать этот эвент, а должны просто перерисовываться используя значения размера окна. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 7 сентября, 2017 Нормальные программы не должны слушать этот эвент, а должны просто перерисовываться используя значения размера окна. Ну, всё таки не все программы перерисовывают весь свой контент 20 раз в секунду. А значит надо как-то уловить момент, когда перерисовать экран таки стоит. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 7 сентября, 2017 Нормальные программы не должны слушать этот эвент, а должны просто перерисовываться используя значения размера окна. Если некоторые программы не будут перерисовываться, их можно будет вручную рестартнуть нажав Ctrl+R Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 901 Опубликовано: 7 сентября, 2017 (изменено) Да, но такие программы должны слушать событие "screen_resized", чтобы сразу обновить свои переменные в соответствии с новым размером окна. Ну, в современных фреймворках при изменении размера окна генерируется банальный ивент, и содержимое окна лишь "обрезается" в соответствии с его границами. А уж изменять геометрию содержимого или оставлять прежней - это задача программиста прикладного ПО, так что не вижу в прослушке событий ничего плохого. К примеру, в QT это реализовывается так: void MyMainWindow::resizeEvent(QResizeEvent* event) { QMainWindow::resizeEvent(event); // Do something } Изменено 7 сентября, 2017 пользователем ECS Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
RccHD Автор темы 136 Опубликовано: 7 сентября, 2017 (изменено) Нужно написать функции getComponent и freeComponent, которые будут разрешать коллизии компонент. ( когда два окна требуют одну и ту же компоненту )Функции должны распределять компоненты одинакового типа между окнами. Например если есть 2 редстоун-адаптера и 2 окна потребовали компонент "redstone", то каждое окно должно получить свой редстоун-адаптер local getComponent = function(window, componentType, componentAddress) --[[ window - это окно, которое потребовало компоненту componentType - тип компоненты ( игнорировать GPU ) componentAddress - адрес требуемой компоненты ]] return componentProxy end local freeComponent = function(componentAddress) -- пометить компонент <componentAddress> как незанятый return nil end Изменено 7 сентября, 2017 пользователем RccHD Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах