diff --git a/source/Cosmos.System2/Graphics/VGACanvas.cs b/source/Cosmos.System2/Graphics/VGACanvas.cs index aac7203fd..8608bc38b 100644 --- a/source/Cosmos.System2/Graphics/VGACanvas.cs +++ b/source/Cosmos.System2/Graphics/VGACanvas.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using Cosmos.HAL; @@ -16,6 +16,7 @@ namespace Cosmos.System.Graphics /// Private boolean whether VGA graphics mode is enabled or not /// bool _Enabled; + private Mode _Mode; /// /// The HAL VGA driver @@ -50,7 +51,14 @@ namespace Cosmos.System.Graphics /// /// Gets or sets the VGA graphics mode /// - public override Mode Mode { get; set; } + public override Mode Mode + { + get => _Mode; set + { + _VGADriver.SetGraphicsMode(ModeToScreenSize(_Mode), (VGADriver.ColorDepth)(int)_Mode.ColorDepth); + _Mode = value; + } + } /// /// Clears the screen of all pixels @@ -59,7 +67,7 @@ namespace Cosmos.System.Graphics public override void Clear(Color aColor) { var paletteIndex = _VGADriver.GetClosestColorInPalette(aColor); - _VGADriver.DrawFilledRectangle(0,0, _VGADriver.PixelWidth, _VGADriver.PixelHeight, paletteIndex); + _VGADriver.DrawFilledRectangle(0, 0, _VGADriver.PixelWidth, _VGADriver.PixelHeight, paletteIndex); } /// @@ -69,6 +77,7 @@ namespace Cosmos.System.Graphics { if (Enabled) { + VGAScreen.SetTextMode(TextSize.Size80x25); Enabled = false; } } @@ -411,7 +420,7 @@ namespace Cosmos.System.Graphics public override void Display() { - + } } }