Pregunta

¿Cómo desarrollo GUI en C # Cosmos?

cosmos OS

No hay solución correcta

Otros consejos

Aquí es cómo (con hito 5, pero su similar para otras versiones). Cosmos hace las cosas VGA para usted. También hace el ratón y el teclado. No he sido capaz de hacer un teclado todavía, pero tengo un ratón de trabajo (aunque no he podido encontrar la manera de ver si los botones están abajo). La enfermedad te mostrará las funciones VGA para empezar. En primer lugar, es necesario este espacio de nombres:

using Cosmos.Hardware;

A continuación, una variable para la pantalla de vivir en Añadir esta variable nivel de clase:.

 VGAScreen screen:

A continuación, inicializar, añadir este código a su método BeforeRun ():

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

Por último, se puede establecer el color de los píxeles con:

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

Se establece la x cualquier yy el color, c. Los colores son en formato de 256 colores. Las matemáticas son implicados para hacer formas.

Vas a tener que escribir el primer controlador VGA. Y el controlador del ratón. Y probablemente obtener el recolector de basura que va. Hay tanto que hacer.

SÍ! se puede, tengo un poco de lo que es una buena interfaz gráfica de usuario y un controlador de ratón de trabajo. así que sí, es posible, pero requiere tiempo y lo que necesita saber qué escribir y leer cuando estás haciendo el ratón-conductor, de lo contrario, es posible.

Soy un tipo grande COSMOS, y si alguien viene a través de esta tarde quiero dejar una manera de hacerlo a partir del 12/10/2015.

Antes de empezar I ALTAMENTE no recomiendan el uso del SDK de la userkit. Mientras que el SDK de está destinado a modificar Cosmos en sí, se puede mantener por completo lejos de eso y cerrar la ventana VS cuando termina la instalación. El SDK de cuenta todos las características del userkit tiene, pero el userkit sólo actualiza una vez al mes o así, tal vez más, y el SDK de se actualiza cada pocos días con las últimas correcciones de errores y características. Definitivamente, usted debe descargar el SDK de lugar, ya que tiene el mayor apoyo también.

Está bien así que para obtener VGA, abre una nueva ventana de Visual Studio. Crear un nuevo Class Library y el nombre de lo que sea diablos quieres.

Ir a las referencias y agregue una referencia a Cosmos.HAL, Cosmos.Common y Cosmos.System. Puede encontrarlos en% appdata% \ Roaming \ Cosmos Kit de usuarios

Entre en AssemblyInfo.cs y añadir using Cosmos.Common;, y en la parte inferior añadir la siguiente línea: [Assembly: Ring (Ring.System)]

Está bien grande, ahora lo que necesita para entrar y crear una nueva clase llamada sea.

En la parte superior, utilizando añadir un Cosmos.HAL y el uso del sistema.

Añadir dos líneas:

pantalla public static VGAScreen screen = new VGAScreen(); y public static Mouse mi = new Mouse(); Nombre y mi lo que quiera.

Crear un método Init y garrapatas llamado lo que sea.

Este es un ejemplo método 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);
}

Ahora en el método Tick, sólo tiene que añadir lo que sea. Cualquier cosa que usted quiere que suceda cada milisegundo o menos igual. Podría ser, como, dibujando el ratón o algo así. Puede encontrar que en otros lugares en el Internet, eso es un poco de una larga historia.

Hay que ir, ahora has VGA trabajo!

Puede establecer píxeles con screen.SetPixel320x200x8 (x, y, color);

Los colores aplicables van desde 0-3f. De ello se desprende los colores genéricos consola 0-F, pero sólo se suma una tonelada más opciones.

Ahora, sólo construir esta DLL y REF en su sistema operativo principal. Ahora agregue los métodos yourvgaclass.Init al método BeforeRun en el núcleo, y yourvgaclass.Tick con el método de ejecución en el kernel.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top