Frage

Wie entwickle ich GUI in C # Cosmos?

Kosmos OS

Keine korrekte Lösung

Andere Tipps

Hier ist, wie (mit Meilenstein 5, aber die ähnlich für die anderen Versionen). Cosmos hat das VGA-Material für Sie. Es spielt auch die Maus und Tastatur. Ich habe nicht in der Lage gewesen, noch eine Tastatur zu machen, aber ich habe eine Arbeits Maus (obwohl ich in der Lage gewesen habe, um herauszufinden, wie zu sehen, ob Tasten sind unten). Ill zeigen Ihnen die VGA-Funktionen für den Einstieg. Zuerst müssen Sie diesen Namespace:

using Cosmos.Hardware;
.

Dann wird eine Variable für den Bildschirm zu leben in Fügen Sie diese Klassenstufe variabel:

 VGAScreen screen:

Dann ist es zu initialisieren, fügen Sie diesen Code in Ihre BeforeRun () Methode:

screen = new VGAScreen();
screen.SetMode320x200x8();
screen.Clear(0);

Schließlich können Sie die Farbe des Pixels festgelegt mit:

screen.SetPixel320x200x8(uint x, uint y, uint c);

Sie legen die x beliebige y und die Farbe, c. Die Farben sind in 256 Farbformat. Math beteiligt zu machen Formen.

Sie werden zuerst den VGA-Treiber zu schreiben. Und der Maustreiber. Und bekommt wahrscheinlich die Garbage Collector gehen. So viel zu tun.

YES! Sie können, ich habe ein etwas, was eine gute gui, und eine funktionierende Maus-Treiber. Also ja, es ist möglich, aber braucht Zeit, und Sie müssen wissen, was zu schreiben und zu lesen, wenn Sie die Maus-Treiber tun, sonst ist es möglich.

Ich bin ein großer COSMOS Kerl, und wenn jemand über das kommt später möchte ich einen Weg lassen, wie von 2015.10.12 zu tun.

Bevor wir ich anfangen LEICHT empfehlen die devkit nicht die userkit verwenden. Während die devkit zum Modifizieren Cosmos selbst bestimmt ist, können Sie ganz weg halten von dem und dem VS-Fenster schließen, wenn es die Installation abgeschlossen ist. Die devkit hat alle die Funktionen der userkit hat, aber die userkit aktualisiert nur einmal pro Monat oder so, vielleicht mehr, und die devkit wird alle paar Tage mit den neuesten Fehlerbehebungen und Funktionen aktualisiert. Sie sollten auf jeden Fall die devkit statt downloaden, weil es zu den meisten Unterstützung hat.

In Ordnung so zu VGA erhalten, öffnen Sie ein neues Visual Studio-Fenster. Erstellen Sie einen neuen Class Library und nennen Sie es, was zum Teufel Sie wollen.

Zum Referenzen und einen Verweis auf Cosmos.HAL, Cosmos.Common hinzufügen und Cosmos.System. Sie können sie bei% AppData% \ Roaming \ Cosmos User Kit finden

Gehen Sie in AssemblyInfo.cs und Add using Cosmos.Common;, und unten die folgende Zeile: [Assembly: Ring (Ring.System)]

In Ordnung groß, jetzt müssen Sie in zu gehen und eine neue Klasse erstellen namens was auch immer.

An der Spitze, fügen Sie ein mit Cosmos.HAL und mit System.

Fügen Sie zwei Zeilen:

public static VGAScreen screen = new VGAScreen(); und public static Mouse mi = new Mouse(); Name-Display und mi, was Sie wollen.

Eine Init und Tick Methode mit dem Namen auch immer.

Hier ist ein Beispiel Init-Methode:

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);
}

Jetzt in der Tick-Methode, fügen Sie einfach, was auch immer. Alles, was Sie alle wie milisecond oder so passieren. Es könnte sein, wie, Zeichnen mit der Maus oder etwas. Sie können die an anderer Stelle im Internet finden, die ein bisschen von einer langen Geschichte.

Dort gehen Sie, jetzt haben Sie arbeiten VGA!

Sie können Pixel eingestellt mit screen.SetPixel320x200x8 (x, y, Farbe);

Anwendbar Farben reichen von 0-3f. Es folgt die allgemeine Konsole Farben 0-f, sondern fügt nur eine Tonne mehr Optionen.

Nun baut gerade diese dll und ref es in Ihr Haupt-O. Fügen Sie nun die Methoden yourvgaclass.Init zum BeforeRun Verfahren im Kernel und yourvgaclass.Tick auf die Run-Methode in dem Kernel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top