public Kernel32ConsoleWindow(int width, int height, string title, ushort colors = Kernel32Console.DefaultColors.Background.BLACK | Kernel32Console.DefaultColors.Foreground.WHITE) { Width = width; Height = height; Title = title; stdOutputHandle = Kernel32Console.GetStdHandle(Kernel32Console.Constants.STD_OUTPUT_HANDLE); consoleScreenBufferSizeCoords = new Kernel32Console.COORD(Width, Height); consoleScreenBufferStartCoords = new Kernel32Console.COORD(0, 0); consoleScreenSizeRect = new Kernel32Console.SMALL_RECT(0, 0, Width, Height); consoleScreenBufferInfoEx = Kernel32Console.CONSOLE_SCREEN_BUFFER_INFO_EX.Create(); Kernel32Console.GetConsoleScreenBufferInfoEx(stdOutputHandle, ref consoleScreenBufferInfoEx); consoleScreenBufferInfoEx.dwSize = consoleScreenBufferSizeCoords; consoleScreenBufferInfoEx.dwCursorPosition = new Kernel32Console.COORD(0, 0); consoleScreenBufferInfoEx.srWindow = consoleScreenSizeRect; consoleScreenBufferInfoEx.bFullscreenSupported = false; Kernel32Console.SetConsoleScreenBufferInfoEx(stdOutputHandle, ref consoleScreenBufferInfoEx); consoleScreenBuffer = new Kernel32Console.CHAR_INFO[Width * Height]; var emptyChar = new Kernel32Console.CHAR_INFO(new Kernel32Console.CHAR_UNION(' '), colors); for (var i = 0; i < width * height; i++) { consoleScreenBuffer[i] = emptyChar; } Update(); }
public void SetCursor(int x, int y) { Kernel32Console.SetConsoleCursorPosition(stdOutputHandle, new Kernel32Console.COORD(x, y)); }
public void ShowCursor(bool showCursor) { Kernel32Console.ShowCursor(showCursor); }
public void Update() { Kernel32Console.WriteConsoleOutput(stdOutputHandle, consoleScreenBuffer, consoleScreenBufferSizeCoords, consoleScreenBufferStartCoords, ref consoleScreenSizeRect); }