Beispiel #1
0
 public void WriteVisibleCharacter(char c, int x, int y)
 {
     charactersBuffer[y, x] = new TerminalCharacter( )
     {
         character = c, foreground = foregroundColor
     };
 }
Beispiel #2
0
        // ----------------------------------------------------------------------------------------------------
        // -- 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( );
        }
Beispiel #3
0
 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
             }
         }
         ;
     }
 }
Beispiel #4
0
 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");
     }
 }
Beispiel #5
0
 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);
     }
 }
Beispiel #6
0
 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;
     }
 }
Beispiel #7
0
 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);
     }
 }
Beispiel #8
0
 private static string GetBackgroundColor(TerminalCharacter character) => Enum.GetName(typeof(ColorListEnum), character.BackgroundPaletteIndex);
Beispiel #9
0
 private static string GetColoredCharacter(TerminalCharacter character) => GetCharacter(character) + Enum.GetName(typeof(ColorListEnum), character.ForegroundPaletteIndex);
Beispiel #10
0
 private static char GetCharacter(TerminalCharacter character) => character.Character == 55328 ? ' ' : character.Character;