Как создать графический интерфейс в C# Cosmos?Разработка графического интерфейса в C# на Cosmos OS
ответ
Вы должны написать драйвер VGA первым. И драйвер мыши. И, вероятно, поймать сборщика мусора. Так много сделать.
эй сэр, COSMOS - хороший инструмент для разработки операционной системы. –
ДА! вы можете, у меня есть какой-то хороший gui и рабочий драйвер мыши. , так что да, это возможно, но требуется время, и вам нужно знать, что писать и читать, когда вы делаете мышь-драйвер, иначе это возможно.
Вот как (с вехой 5, но аналогичной для других версий). Космос делает для вас материал VGA. Он также делает мышь и клавиатуру. Я еще не смог сделать клавиатуру, но у меня есть рабочая мышь (хотя я не мог узнать, как увидеть, если кнопки опущены). Ill покажу вам функции 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 цветовых форматах. Математика участвует в создании фигур.
Я большой парень COSMOS, и если кто-нибудь встретит это позже, я хочу оставить способ сделать это по состоянию на 10/12/2015.
Перед тем, как мы начнем 1 ВЫСОКО рекомендуем использовать devkit не userkit. Хотя devkit предназначен для модификации самого Cosmos, вы можете полностью от него отказаться и закрыть окно VS после завершения установки. У devkit есть все функции userkit, но userkit обновляется только раз в месяц или около того, может быть, больше, а devkit обновляется каждые несколько дней с последними исправлениями и функциями. Вы обязательно должны скачать devkit вместо этого, потому что он также имеет большую поддержку.
Хорошо, чтобы получить VGA, откройте новое окно Visual Studio. Создайте новый Class Library
и назовите его как хотите.
Перейдите к ссылкам и добавьте ссылку на Cosmos.HAL, Cosmos.Common и Cosmos.System. Вы можете найти их в% AppData% \ Roaming \ Cosmos Kit Пользователь
Перейти в AssemblyInfo.cs и добавить using Cosmos.Common;
, а в нижней части добавьте следующую строку: [сборка: Кольцо (Ring.System)]
Хорошо, теперь вам нужно зайти и создать новый класс под названием any.
Наверху добавьте использование Cosmos.HAL и используйте System.
Добавьте две строки:
public static VGAScreen screen = new VGAScreen();
и public static Mouse mi = new Mouse();
экрана Имя и ми все, что вы хотите.
Создать метод Init и Tick, названный любым.
Вот пример Init метод:
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!
Вы можете установить пиксели с помощью screen.SetPixel320x200x8 (x, y, color);
Применимые цвета варьируются от 0 до 3f. Он следует за стандартными цветами консоли 0-f, но просто добавляет тонну дополнительных опций.
Теперь просто создайте эту dll и верните ее в свою основную ОС. Теперь добавьте методы yourvgaclass.Init к методу BeforeRun в ядре и yourvgaclass.Tick к методу Run в ядре.
Где находится 'AssemblyInfo.cs'? – flash76
Что привело вас к мысли, что это возможно? Вы где-то читали, что .NET поддерживается на Cosmos? –