private void draw(string text, Vector2 textureSize, Vector2 position, Vector4 color, float size, bool centeredX, bool centeredY)
{
if (string.IsNullOrEmpty(text)) return;
var centeredLoc = new Vector2();
if (centeredX || centeredY)
{
for (int i = 0; i != text.Length; ++i)
{
var c = FindCharacter(text[i]);
if (centeredX) centeredLoc.X += c.SizeRatio.X * size;
if (centeredY) centeredLoc.Y += c.SizeRatio.Y * size;
}
if (text.Length != 0)
{
centeredLoc.Y /= (float)text.Length;
centeredLoc *= .5f;
}
}
var offset = new Vector2();
for (int i = 0; i != text.Length; ++i)
{
var c = FindCharacter(text[i]);
var sizeScaled = c.SizeRatio * size;
drawCharacter(offset + position - centeredLoc, sizeScaled, c.Offset / textureSize, c.Size / textureSize, color);
offset.X += sizeScaled.X;
}
}