public void RenderText(string text, float x, float y, float scale, vec3 color) { TextRender.BeginBatch(); float c_Char = x; foreach (char c in text) { if (!Characters.ContainsKey(c)) { continue; } Character ch = Characters[c]; float xpos = c_Char + ch.bearing.x * scale; float ypos = y - (ch.size.y - ch.bearing.y) * scale; float w = ch.size.x * scale; float h = ch.size.y * scale; TextRender.DrawText(new vec2(xpos, ypos + h), new vec2(w, -h), ch.textureID, color); // TODO: Do a decent bit shift and remove this Gap multiplication c_Char += ((ch.Advance * Gap) >> 6) * scale; } TextRender.EndBatch(); TextRender.Flush(); }