Перейти к публикации
Форум - ComputerCraft
  • записи
    2
  • комментариев
    14
  • просмотров
    7 469

[PafOS] Привет, графон :3

Pofigist

1 673 просмотра

Не думайте, что я буквально за день написал три библиотеки и вполне рабочий проводник. Это не так. Создание PafOS началось еще недели две-три назад, но учитывая мою лень, реально, на создание того, что я сейчас имею было потрачено от силы 4 часа.
Итак:
На данный момент моя супер-пупер никому не нужная графическая оболочка называется test.lua и запускается из консоли, как и все программы. Запуск через init? До всего этого мне еще далеко, как и до превращения граф оболочки в полноценную ОС. Да и плохо я понимаю, что из себя она представляет. Операционная Система эта та для которой все базовые библиотеки написаны отдельно? Или та, которая запускается через BIOS? Лично для меня этот вопрос остается загадкой. Но может кто-то может дать ответ, к которому я в будущем буду стремиться.

 

Что же я успел сделать за эти недели?
Была слизана создана графическая библиотека. Она основана на двойной буферизации и пока что умеет лишь отображать прямоугольники, картинки и текст, но мне хватает. Быстродействием моя либа похвастать тоже не может, она не анализирует стоящие в ряд одинаковые пиксели и не отображает их разом, но во всяком случае она и не меняет цвет при отображении нового пикселя даже если в системе уже установлен этот цвет. Но я все равно оценю мою либу на суровую двоечку из пяти баллов.

 

OonRTSM.png

 

На скрине вы можете увидеть итог моей текущей работы - создание полноценного проводника. Безусловно я не прописывал через gpu.set каждый пиксель моего изображения: для картинок была создана отдельная библиотека. Соответственно есть и отдельный формат изображения - PIF(Pofigist Image Format). Особенность или нет - судить вам, но на один пиксель в моем формате уходит всего 2 байта, а на полупиксель - 1 байт, соответственно. На данный момент я не вижу смысла в использовании символов в формате картинок, но если он и будет реализован - это будет новый формат.
PIF спокойно поддерживает картинку 160x50, чего достаточно для обычных программ. PIF поддерживает прозрачность, но на это уходит какой либо цвет. Если все 256 цветов используются в изображении то будут определенные проблемы, но на данный момент я доволен форматом.

 

Как можно заметить названия файлов пока что не умещаются и потому написаны далеко не полностью. На данный момент я пока что, скорее всего, просто буду обрезать разрешение, чтобы освободить 4 места для символов.

 

Вы удивитесь, но кроме того как посмотреть на содержимое текущей папки программа так же позволяет перейти в другую папку или вернуться на шаг назад!!1
bMVFqmx.png

 

Ву-упс, кажется что-то пошло не так... Если файлов в папке слишком много некоторые из них могут не отображаться. Ну как некоторые... большинство. Причем все контролируется волей рандома и открыв и закрыв папку пару раз можно убедиться, что неотображаемые файлы меняются... Я долго думал над тем, почему так происходит. На ум пришла идея с проблемой функции Draw, которая вырисовывает изображение, но это мысль была ошибочной. Мною был найден небольшой баг... если не закрывать чтение какого-либо файла и потом вновь его открывать для нового чтения файловая система может разозлиться и послать тебя в Эндер мир. На данный же момент проблема уже решена. file:close() победил баг и все отображается так как надо.
RJAQgi7.png

 

Что же мы в итоге имеем?
Убогие иконки с разрешением 10x10, кривое отображение имен файлов. Невозможность сделать ничего, кроме как открыть папку или уйти на шаг назад; отсутствие объекта той или иной иконки(системно лишь визуально отображается иконка и создается кликабельная область в ее границах(И я считаю это преимуществом)). И... пафосное название недо-операционки PafOS, которая изначально должна была называться PofOS от моего ника, но пафос все же круче :D

 

Теперь пара вопросов от нубика:
Какая библиотека java(а лучше С#/C++) позволит мне открыть изображение, прочитать изображение по байтам? И есть ли документация по структуре PNG файла?

 

P.S. На вопросы можно не отвечать, а просто оставить мнение о моей разработке :D Прямых рук Вам, Господа.



10 комментариев


Рекомендованные комментарии

Здорово! Иконки неплохие.

Оболочку писать это весело. Особенно если замутишь мощную модульность.

 

Кстати, забаненный тут @ECS тоже пишет оболочку уже пол года.

 

OfBs3mNm.png

 

t6Hfi9cm.png

Поделиться комментарием


Ссылка на комментарий

Здорово! Иконки неплохие.

Оболочку писать это весело. Особенно если замутишь мощную модульность.

 

Кстати, забаненный тут @ECS тоже пишет оболочку уже пол года.

 

OfBs3mNm.png

 

t6Hfi9cm.png

Да, я знаю. Тем более что именно от него я идейно вдохновился :D Хоть до него мне еще и оочень далеко, но я буду стараться.

Поделиться комментарием


Ссылка на комментарий

Здорово! Иконки неплохие.

Оболочку писать это весело. Особенно если замутишь мощную модульность.

 

Кстати, забаненный тут @ECS тоже пишет оболочку уже пол года.

 

OfBs3mNm.png

 

t6Hfi9cm.png

а за что его забанили? Нецензурщина?

  • Like 1

Поделиться комментарием


Ссылка на комментарий

а за что его забанили? Нецензурщина?

Кинул ссылку в чат на своё видео о ВК-клиенте.

В конце которого, как и в других его видео реклама своего проекта...

И именно за эту оплошность небольшую человека, сделавшего такое, забанили... перманентно...

Поделиться комментарием


Ссылка на комментарий

Примерно за пол-часа сообразил файловый навигатор:

u9nlp0H.png

 

Пока можно только ходить по папкам и открывать/запускать файлы.

Что-то мне это понравилось, думаю сделать полноценный файловый менеджер.

  • Like 4

Поделиться комментарием


Ссылка на комментарий

Примерно за пол-часа сообразил файловый навигатор:

u9nlp0H.png

 

Пока можно только ходить по папкам и открывать/запускать файлы.

Что-то мне это понравилось, думаю сделать полноценный файловый менеджер.

а не плохо вышло) только фон другой делай. и будет очень даже хорошо!

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×