public Chixel(Chixel other) { this.Glyph = other.Glyph; this.ForegroundColor = other.ForegroundColor; this.BackgroundColor = other.BackgroundColor; this.Dirty = true; }
public int DrawFrame() { bool forceDirty = false; int amount = 0; if (lastWindowWidth != Console.WindowWidth || lastWindowHeight != Console.WindowHeight) { if (_instance == this) { Console.Clear(); } forceDirty = true; reset++; lastWindowWidth = Console.WindowWidth; lastWindowHeight = Console.WindowHeight; } for (int y = 0; y < Height; y++) { if (true /*y < Console.WindowHeight*/) { for (int x = 0; x < Width; x++) { if (true /*x < Console.WindowWidth*/) { Chixel ch = this.chixels[x, y]; if (ch != null && (ch.Dirty == true || forceDirty)) { try{ Console.SetCursorPosition(x + Left, y + Top); }catch {} Console.ForegroundColor = ch.ForegroundColor; Console.BackgroundColor = ch.BackgroundColor; Console.Write(ch.Glyph); ch.Dirty = false; amount++; } } } } } return(amount); }
public void SetChixel(int x, int y, Char c, ConsoleColor fg_color = ConsoleColor.White, ConsoleColor bg_color = ConsoleColor.Black) { x -= Left; y -= Top; // check that the chixel is actually changed // if so, update values and set dirty if (x < 0 || x >= Width || y < 0 || y >= Height) { //throw new Exception(); return; } Chixel ch = this.chixels[x, y]; if (ch != null && ch.Glyph == c && ch.ForegroundColor == fg_color && ch.BackgroundColor == bg_color) { // No change. return; } this.chixels[x, y] = new Chixel(c, fg_color, bg_color); }
public void SetChixel(int x, int y, Chixel chixel) { SetChixel(x, y, chixel.Glyph, chixel.ForegroundColor, chixel.BackgroundColor); }
public void Clear() { Console.Clear(); chixels = new Chixel[this.Width, this.Height]; }