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); }
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)); }