public void WriteVisibleCharacter(char c, int x, int y) { charactersBuffer[y, x] = new TerminalCharacter( ) { character = c, foreground = foregroundColor }; }
// ---------------------------------------------------------------------------------------------------- // -- Construtors // ---------------------------------------------------------------------------------------------------- public TerminalRenderer(int charsX, int charsY) { sizeX = charsX; sizeY = charsY; charactersPositions = new Vector3[sizeY, sizeX]; charactersBuffer = new TerminalCharacter[sizeY, sizeX]; negativeCharactersIndices = new IntPosition[sizeY * sizeX]; // load resources theme = new TangoTheme( ); cursor = new TerminalCursor(this); defaultMaterial = ReadMaterial("VARP/DebugDraw/GLFontZOff"); defaultFont = ReadFont("VARP/DebugDraw/GLFont"); backgroundMaterial = ReadMaterial("VARP/DebugDraw/GLlineZOff"); // get font's information CharacterInfo space; defaultFont.GetCharacterInfo(' ', out space); lineHeight = defaultFont.lineHeight; charWidth = space.advance; textRectangle = new Rect(0, 0, charWidth * sizeX, lineHeight * sizeY); backgroundRectangle = new Rect(textRectangle.min - backgrounOffset, textRectangle.max + backgrounOffset); // fill buffer coordiates for (var y = 0; y < sizeY; y++) { for (var x = 0; x < sizeX; x++) { charactersPositions[y, x] = new Vector3((float)x * charWidth, (float)y * lineHeight, 0); } } // clear screen Clear( ); }
private void ClearRectangle(int x1, int y1, int x2, int y2) { for (var y = y1; y <= y2; y++) { for (var x = x1; x <= x2; x++) { charactersBuffer[y, x] = new TerminalCharacter( ) { character = ' ', foreground = foregroundColor } } ; } }
public override void DrawScreen() { ClearScreen(); MoveCursor(1, 1); for (int y = 0; y < term_h; y++) { for (int x = 0; x < term_w; x++) { TerminalCharacter c = screenBuffer[y][x]; BackgroundRGB(c.br, c.bg, c.bb); ForegroundRGB(c.r, c.g, c.b); Console.Write(c.glyph); } Console.Write("\n"); } }
public void InitializeBuffers() { for (int y = 0; y < term_h; y++) { List<TerminalCharacter> row = new List<TerminalCharacter>(); for (int x = 0; x < term_w; x++) { TerminalCharacter tc = new TerminalCharacter(); tc.glyph=" "; tc.r=255; tc.g=255; tc.b=255; tc.br=0; tc.bg=0; tc.bb=0; row.Add(tc); } screenBuffer.Add(row); } }
public override void DrawAt(int x, int y, string glyph, int r, int g, int b, int br, int bg, int bb) { foreach (char c in glyph.ToCharArray()) { if ((x >= term_w) || (y >= term_h)) { return; } TerminalCharacter buf = screenBuffer[y][x]; buf.glyph = c.ToString(); buf.r = r; buf.g = g; buf.b = b; buf.br = br; buf.bg = bg; buf.bb = bb; screenBuffer[y][x] = buf; x += 1; } }
public void InitializeBuffers() { for (int y = 0; y < term_h; y++) { List <TerminalCharacter> row = new List <TerminalCharacter>(); for (int x = 0; x < term_w; x++) { TerminalCharacter tc = new TerminalCharacter(); tc.glyph = " "; tc.r = 255; tc.g = 255; tc.b = 255; tc.br = 0; tc.bg = 0; tc.bb = 0; row.Add(tc); } screenBuffer.Add(row); } }
private static string GetBackgroundColor(TerminalCharacter character) => Enum.GetName(typeof(ColorListEnum), character.BackgroundPaletteIndex);
private static string GetColoredCharacter(TerminalCharacter character) => GetCharacter(character) + Enum.GetName(typeof(ColorListEnum), character.ForegroundPaletteIndex);
private static char GetCharacter(TerminalCharacter character) => character.Character == 55328 ? ' ' : character.Character;