разработка графического интерфейса на C # для Cosmos OS [закрыто]
-
19-09-2019 - |
Вопрос
Как мне разработать графический интерфейс в C # Cosmos?
Нет правильного решения
Другие советы
Вот как (с milestone 5, но аналогично для других версий).Cosmos делает все для VGA за вас.Это также касается мыши и клавиатуры.Я еще не смог создать клавиатуру, но у меня есть работающая мышь (хотя я не смог выяснить, как увидеть, нажаты ли кнопки).Я покажу вам функции VGA, чтобы вы могли начать.Во-первых, вам нужно это пространство имен:
using Cosmos.Hardware;
Затем - переменная, в которой будет жить экран.Добавьте эту переменную уровня класса:
VGAScreen screen:
Затем, чтобы инициализировать его, добавьте этот код в ваш метод BeforeRun():
screen = new VGAScreen();
screen.SetMode320x200x8();
screen.Clear(0);
Наконец, вы можете установить цвет пикселей с помощью:
screen.SetPixel320x200x8(uint x, uint y, uint c);
Вы устанавливаете x на любой y и цвет, c.Цвета представлены в формате 256 цветов.Математика используется для создания фигур.
Сначала вам нужно будет написать драйвер VGA.И драйвер мыши.И, вероятно, запустить сборщик мусора.Так много нужно сделать.
ДА!вы можете, у меня есть кое-какой хороший графический интерфейс и работающий драйвер мыши.так что да, это возможно, но требует времени, и вам нужно знать, что писать и читать, когда вы используете драйвер мыши, в противном случае это возможно.
Я большой любитель космоса, и если кто-нибудь столкнется с этим позже, я хочу оставить способ сделать это по состоянию на 12.10.2015.
Прежде чем мы начнем, я ВЫСОКО рекомендую использовать devkit, а не userkit.Хотя devkit предназначен для модификации самого Cosmos, вы можете полностью отказаться от этого и закрыть окно VS, когда оно завершит установку.У devkit есть ВСЕ функции, которые есть у userkit, но userkit обновляется только раз в месяц или около того, может быть, чаще, а devkit обновляется каждые несколько дней с последними исправлениями ошибок и функциями.Вам определенно следует вместо этого загрузить devkit, потому что он также обладает наибольшей поддержкой.
Итак, чтобы получить VGA, откройте новое окно Visual Studio.Создайте новый Class Library
и называй это как хочешь, черт возьми.
Перейдите к ссылкам и добавьте ссылку на Cosmos.HAL, Cosmos.Общие и Cosmos.Система.Вы можете найти их в %appdata% oaming\Cosmos User Kit
Зайдите в AssemblyInfo.cs и добавьте using Cosmos.Common;
, а внизу добавьте следующую строку:[сборка:Кольцо (Ring.Система)]
Хорошо, отлично, теперь вам нужно зайти и создать новый класс с именем whatever .
Вверху добавьте using Cosmos.HAL и using System.
Добавьте две строки:
public static VGAScreen screen = new VGAScreen();
и public static Mouse mi = new Mouse();
Назовите screen и mi все, что вы хотите.
Создайте метод инициализации и отметьте галочкой с любым именем.
Вот пример метода инициализации:
public static void InitVGA() {
//Make SURE you have this exact line or else it won't work! Any size other than 320x200 is broken, and 8-bit is the highest VGA compatible color depth.
screen.SetGraphicsMode(VGAScreen.ScreenSize.Size320x200, VGAScreen.ColorDepth.BitDepth8);
//There's a bug currently where only 6-bit color is supported with 8-bit. 0x3f is pure white.
screen.Clear(0x3f);
//mi.Initialize(320, 200);
}
Теперь в методе Tick просто добавьте все, что угодно.Все, что ты захочешь, должно происходить примерно каждые миллисекунды.Это может быть, например, рисование мыши или что-то в этом роде.Вы можете найти это в другом месте в Интернете, но это немного долгая история.
Вот так, теперь у вас есть работающий VGA!
Вы можете установить пиксели с помощью экрана.Установите пиксель320x200x8 (x, y, цветной);
Применимые цвета варьируются от 0 до 3f.Он соответствует общим цветам консоли 0-f, но просто добавляет тонну дополнительных опций.
Теперь просто соберите эту dll-библиотеку и установите ее в свою основную операционную систему.Теперь добавьте методы yourvgaclass.Инициализируйте метод BeforeRun в ядре и yourvgaclass.Отметьте галочкой метод Run в ядре.