lo sviluppo di una GUI in C # su Cosmos OS [chiusa]
-
19-09-2019 - |
Domanda
Come faccio a sviluppare GUI in C # Cosmos?
Nessuna soluzione corretta
Altri suggerimenti
Ecco come (con tappa 5, ma il suo simile per le altre versioni). Cosmos fa la roba VGA per voi. Lo fa anche il mouse e la tastiera. Non sono stato in grado di fare una tastiera ancora, ma ho un topo di lavoro (anche se io havent stato in grado di trovare il modo di vedere se i pulsanti sono in calo). Ill vi mostrerà le funzioni VGA per iniziare. In primo luogo, avete bisogno di questo namespace:
using Cosmos.Hardware;
Poi, una variabile per lo schermo di vivere in Aggiungi questa variabile livello di classe:.
VGAScreen screen:
Poi, per inizializzare, aggiungere il codice al tuo metodo di BeforeRun ():
screen = new VGAScreen();
screen.SetMode320x200x8();
screen.Clear(0);
Infine, è possibile impostare il colore dei pixel con:
screen.SetPixel320x200x8(uint x, uint y, uint c);
È possibile impostare la x qualsiasi y e il colore, c. I colori sono nel formato di colore 256. La matematica è coinvolto per fare le forme.
Dovrete scrivere il driver VGA prima. E il driver del mouse. E probabilmente ottenere il garbage collector in corso. Così tanto da fare.
YES! è possibile, ho un po 'quello che una buona interfaccia grafica, e un driver di mouse di lavoro. Quindi sì, è possibile, ma richiede tempo e avete bisogno di sapere cosa scrivere e leggere quando si sta facendo il mouse-conducente, in caso contrario, è possibile.
Sono un grande COSMOS ragazzo, e se qualcuno si imbatte in questo più tardi voglio lasciare un modo per farlo a partire dal 2015/10/12.
Prima di iniziare I ALTAMENTE consiglia di utilizzare il non DevKit l'userkit. Mentre il DevKit è destinato a modificare Cosmo stesso, è possibile tenere tutto lontano da quella e chiudere la finestra VS quando finisce l'installazione. Il DevKit ha tutti le caratteristiche della userkit ha, ma l'userkit aggiorna solo una volta al mese o giù di lì, forse di più, e il DevKit viene aggiornata ogni pochi giorni con le ultime correzioni di bug e le caratteristiche. Si dovrebbe scaricare il DevKit invece, perché ha il più supporto troppo.
Va bene in modo da ottenere VGA, aprire una nuova finestra di Visual Studio. Creare un nuovo Class Library
e denominarlo qualunque sia il diavolo che si desidera.
Vai riferimenti e aggiungere un riferimento a Cosmos.HAL, Cosmos.Common e Cosmos.System. Potete trovarli in% appdata% \ Roaming \ Cosmo Kit User
Andate in AssemblyInfo.cs e aggiungere using Cosmos.Common;
, e in fondo aggiungere la seguente riga:
[Assembly: Ring (Ring.System)]
Bene grande, ora è necessario entrare e creare una nuova classe di nome qualunque.
Nella parte superiore, aggiungere un utilizzando Cosmos.HAL e l'utilizzo del sistema.
Aggiungi due righe:
schermo public static VGAScreen screen = new VGAScreen();
e public static Mouse mi = new Mouse();
Nome e mi quello che vuoi.
Crea un metodo Init e Tick nome qualunque.
Ecco un metodo Init esempio:
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);
}
Ora, nel metodo di Tick, basta aggiungere qualsiasi altra cosa. Tutto ciò che si vuole che accada ogni milisecond come o giù di lì. Si potrebbe, come, disegnando il mouse o qualcosa del genere. Si possono trovare che altrove su Internet, che è un po 'una lunga storia.
Ci si va, ora avete VGA a lavorare!
È possibile impostare pixel con screen.SetPixel320x200x8 (x, y, colore);
colori applicabili vanno da 0-3f. Ne consegue i colori della console generici 0-f, ma solo aggiunge una tonnellata più opzioni.
Ora, appena costruita dll e REF nella tua sistema operativo principale. A questo punto aggiungere i metodi yourvgaclass.Init al metodo BeforeRun nel kernel, e yourvgaclass.Tick al metodo Run nel kernel.