Ejemplo n.º 1
0
        public BitmapFont(string name, int lineHeight, int spacingH, int spacingV)
        {
            LineHeight = lineHeight;
            SpacingH   = spacingH;
            SpacingV   = spacingV;

            var image = new Image($"{name}.png");

            Texture = new Texture(image);

            using (var reader = System.IO.File.OpenText($"{name}.csv"))
            {
                var header = reader.ReadLine();

                while (!reader.EndOfStream)
                {
                    var line   = reader.ReadLine();
                    var values = line.Split('\t');
                    Debug.Assert(values.Length == 4);

                    var c = (values[0] == "\\0" ? '\0' :  values[0][0]);

                    _charData[values[0][0]] = new BfChar(Int32.Parse(values[1]), Int32.Parse(values[2]), Int32.Parse(values[3]));
                }
            }

            Debug.WriteLine(_charData.Count);
        }
Ejemplo n.º 2
0
        private void PrintChar(VertexArray vertexArray, BfChar c, Vector2f posF, Color color)
        {
            var white    = new Color(255, 255, 255, 255);
            var texCoord = new Vector2f(c.Left, c.Top);
            var vX       = new Vector2f(c.Width, 0);
            var vY       = new Vector2f(0, LineHeight); // TODO: 12 is a magic number indicating font height.
            var vXY      = vX + vY;

            vertexArray.Append(new Vertex(posF, white, texCoord));
            vertexArray.Append(new Vertex(posF + vX, white, texCoord + vX));
            vertexArray.Append(new Vertex(posF + vXY, color, texCoord + vXY));
            vertexArray.Append(new Vertex(posF + vY, color, texCoord + vY));
        }