RccHD
Пользователи-
Публикации
142 -
Зарегистрирован
-
Посещение
-
Победитель дней
13
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя RccHD
-
1) Сейчас рамка в 1 пиксель, ее можно будет убрать, наверное 2) Боюсь, может не хватить 2мб оперативки на все это, но я попробую 3) нет такой возможности 4) будет в стандартной реализации оконного менеджера ( настройка через конфиг ) 5) да, но на счет шапок не уверен... На маленьких экранах можно будет выключить шапку 6) будет в стандартной реализации оконного менеджера ( настройка через конфиг ) 7) не уверен 8) наверное 9) наверное 10) перетаскивание не буду делать, т.к. у нас маленькие экраны и МАЛО оперативки. Поддержки нескольких мониторов наверное не будет, т.к. для операций с gpu у меня используется двойная буфферизация и на несколько рабочих столов/экранов не хватит ОЗУ Изначально я хотел написать оконный менеджер и все. Но как только я начал, стало понятно, что нужно делать еще виртуальную среду для каждого окна, кастомные обработчики событий, подмена _ENV, подмена require и loadfile, подмена event, component, component.gpu и много еще всего То, что я делаю можно назвать "почти ОС" или "надстройка над OpenOS"
-
Наконец-то смог запустить TTY в виртуальном окружении! Теперь можно сделать полноценные терминалы ( скопировать исходники из OpenOS )
-
Не знаю, приду домой -- проверю. Вообще вроде бы все приложения уловят ивент(вспомни пример, когда я управлял сразу двумя змейками) Если это работает для key_down, то и для модема сработает, я думаю
-
Ну вроде должно работать правильно. Я пока не могу это с компа запустить и потестить
-
@@Zer0Galaxy Я заменяю component.proxy, component.invoke, component.setPrimary, component.getPrimary, component.list
-
Да, нужно разделять компоненты на 3 типа. 1) компонент, к которому нельзя получить прямой доступ ( только gpu ). Вместо gpu надо вернуть gpuProxy(уже реализован) 2) компонент, который можно поделить между несколькими приложениями 3) компонент, который не может быть использован сразу несколькими приложениями
-
Хороший вопрос Их будет вызывать специальный распределитель компонент, т.е. система
-
ААААААААААААААААААААААААААААААААААААААА!!!!!!!!!! Как же оказывается сложно писать свою ОС Очень много приходится проектировать. 80% времени проектирую, 20% времени пишу код
-
Не обязательно. Главное, чтобы была возможность разрешения коллизий и распределения компонент между окнами
-
Нужно написать функции 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
-
Material Design как раз используется в полимере
- 51 ответ
-
- hpm
- repository
- (и ещё 8 )
-
Это на Polymer сделано?
- 51 ответ
-
- hpm
- repository
- (и ещё 8 )
-
Если некоторые программы не будут перерисовываться, их можно будет вручную рестартнуть нажав Ctrl+R
-
Да, но такие программы должны слушать событие "screen_resized", чтобы сразу обновить свои переменные в соответствии с новым размером окна. Поэтому я добавлю возможность ручного перезапуска (ctrl + R) для таких программ, которые не адаптированы под изменяющийся размер окна.
-
Вот например интересно, давать ли возможность юзеру изменять размер окна? При каждом изменении окна придется перерисовывать графику приложения. А в некоторых случаях придется перезапускать приложение, которое запущено в этом окне. Вот например если есть такой код, то придется перезапустить приложение, чтобы переменные соответствовали размеру окна: local w, h = require("component").getPrimary("gpu").getResolution()
-
Пока что решил взять перерыв в кодинге. Пару дней не буду ничего программировать и т.д. Так что давайте пока обсудим идеи новых фич в эту ОС Пишите свои предложения
-
Я уже писал, что это проблематично...
-
Никакие файлы не были изменены. Мои версии некоторых системных компонент лежат в папке lib/proxy
-
Вот исходники. https://github.com/RccHD/WinOS/tree/master/WinOS/dd243563-b2e6-4ba8-8c28-28ca278f0402/home Скопировать в таком виде в папку /home. Реализовано примерно 50% необходимого функционала. Все оптимизировать буду после того, как будет готов хоть немного доработанный вариант. Рабочий скрипт: test1.lua(змейка, матрица и проч.) Нерабочий -- test.lua(использует term, tty) Чтобы закрыть программу нужно нажать backspace. Помогает не всегда
-
Не нужно ничего придумывать, т.к. автор мода все уже сделал для нас. Вне майна есть множество программ для обучения программированию по типу 'черепаха'(я сам с таких программ начинал изучать программирование). Во время обучения ученик должен отдавать черепахе команды 'вперед 200; влево 90; вперед 200' и черепаха будет двигаться! В моде opencomputers есть роботы, которые по своей сути, не сложнее 'черепахи'. Есть все те же команды 'вперед, влево, вправо и т.д.' Если хочется, чтобы игроки(новички) начали программировать, нужно научить их программировать роботов. Нужно больше топиков "как управлять роботами", "как заставить робота копать шахту" и т.д. Если игрок не умеет мыслить алгоритмами и у него не получается программировать робота, значит этот мод он вряд ли освоит
- 17 ответов
-
- 1
-
-
- программирование
- майнкрафт
- (и ещё 1 )
-
Вот же проблемка. Стандартный term и tty реализованы так, что никакими усилиями не получается встиснуть их в gpu эмулированную через буффер
-
Какие могут быть подводные камни?
-
Просто пока у меня есть этот энтузиазм я могу запилить что угодно хоть за пару дней. Постараюсь побыстрее закончить ОС пока не пропал настрой
-
Решил еще добавить возможность ставить приложения на паузу(coroutine позволяют и такое делать) Кроме того, что любую программу можно поставить на паузу, можно будет еще 'выключать графику' этой программы Пример использования: запустил 4 программы сразу и комп начал лагать. Взял и вырубил всем 4 программам графику, при этом все неграфические процессы продолжат работу. И все ок, комп перестанет лагать. Так как именно операции с графикой обычно тормозят систему
-
Да!!! Ты написал именно то, чем я сейчас занимаюсь. Будет офигенный кастомизируемый оконный менеджер. Можно будет свои сочетания клавиш регистрировать
