// draw bitmap - colored public static void DrawBitmap(Rectangle bounds, uint[] data, uint color, uint transCol, bool transparency) { for (int i = 0; i < bounds.width * bounds.height; i++) { int xx = bounds.x + (i % bounds.width); int yy = bounds.y + (i / bounds.width); if (transparency) { if (data[i] != transCol) { if (driverMode == 0) { SVGA.SetPixel(xx, yy, color); } else if (driverMode == 1) { VGA.SetPixel(xx, yy, Color.ToARGB(color)); } } } else { SVGA.SetPixel(xx, yy, color); } } }
public static void RunGraphical() { graphical = true; // init mouse MSPS2.Initialize(); ProcessManager.Initialize(); //shell = new Shell(); //ProcessManager.AddProcess(shell); logon = new Logon(); ProcessManager.AddProcess(logon); while (true) { // update clock Clock.Update(); // update system processes ProcessManager.UpdateWindows(); ProcessManager.UpdateSystemProcesses(); // debug text if (debugText) { shell.DrawDebug(); } // update mouse MSPS2.Update(); // update display SVGA.Update(); // get cpu usage cpuUsage = (float)((float)30 / (float)SVGA.fps) * (float)100; // manage keyboard KBPS2.Update(); // force text mode if (KBPS2.CONTROL_DOWN && KBPS2.ALT_DOWN && KBPS2.IsKeyDown(Sys.ConsoleKeyEx.End)) { RunTextMode(); } if (KBPS2.CONTROL_DOWN && KBPS2.IsKeyDown(Sys.ConsoleKeyEx.D)) { debugText = !debugText; } if (!graphical) { break; } } }
protected override void BeforeRun() { CLI.Initialize(); if (!SVGA.Initialize()) { CLI.WriteLine("[FATAL ERROR] could not initialize graphics mode!", ConsoleColor.Red); } if (!PMFAT.Initialize()) { Console.WriteLine("[FATAL ERROR] could not initialize fat driver!", ConsoleColor.Red); } }
public override void Execute(string[] args) { if (!SVGA.Initialize()) { Kernel.graphical = false; CLI.WriteLine("[FATAL ERROR] could not switch graphics mode!"); } else { Kernel.RunGraphical(); } // execute base base.Execute(args); }
// fill rectangle public static void FillRectangle(Rectangle bounds, uint c) { for (int i = 0; i < bounds.width * bounds.height; i++) { int xx = i % bounds.width; int yy = i / bounds.width; if (bounds.width > 0 && bounds.height > 0) { if (driverMode == 0) { SVGA.SetPixel(bounds.x + xx, bounds.y + yy, c); } else if (driverMode == 1) { VGA.SetPixel(bounds.x + xx, bounds.y + yy, Color.ToARGB(c)); } } } }
public static void Initialize() { SVGA.setres(800, 600); SVGA.clear(Colors.DesktopBlueBackground); SVGA.set(10, 10, 0xFF0000); SVGA.svga.SetPixel((ushort)15, (ushort)15, 0xFF0000); Cosmos.Hardware.Drivers.PCI.Video.VMWareSVGAII svga1 = new Cosmos.Hardware.Drivers.PCI.Video.VMWareSVGAII(); svga1.SetMode((ushort)640, (ushort)480); svga1.Clear(Colors.DesktopBlueBackground); svga1.SetPixel((ushort)15, (ushort)15, 0xFF0000); FlowDOS.Hardware.Mouse.Initialize(); xold = FlowDOS.Hardware.Mouse.X; yold = FlowDOS.Hardware.Mouse.Y; mainwh: xold = FlowDOS.Hardware.Mouse.X; yold = FlowDOS.Hardware.Mouse.Y; svga1.SetCursor(true, (uint)FlowDOS.Hardware.Mouse.X, (uint)FlowDOS.Hardware.Mouse.Y); while ((FlowDOS.Hardware.Mouse.X == xold) && (FlowDOS.Hardware.Mouse.Y == yold)) { } goto mainwh; }