Перейти к содержимому

RccHD

Пользователи
  • Публикации

    142
  • Зарегистрирован

  • Посещение

  • Победитель дней

    13

Все публикации пользователя RccHD

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