fix #796
This commit is contained in:
parent
2e34d91869
commit
8cfb46caa7
|
@ -47,27 +47,42 @@ namespace BizHawk.Bizware.BizwareGL
|
||||||
|
|
||||||
public void RenderString(IGuiRenderer renderer, float x, float y, string str)
|
public void RenderString(IGuiRenderer renderer, float x, float y, string str)
|
||||||
{
|
{
|
||||||
|
float ox = x;
|
||||||
int len = str.Length;
|
int len = str.Length;
|
||||||
for (int i = 0; i < len; i++)
|
for (int i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
Cyotek.Drawing.BitmapFont.Character c;
|
int c = str[i];
|
||||||
if (!FontInfo.Characters.TryGetValue(str[i], out c))
|
if (c == '\r')
|
||||||
c = FontInfo.Characters[unchecked((char)-1)];
|
{
|
||||||
|
if (i != len - 1 && str[i + 1] == '\n')
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
if (c == '\r') c = '\n';
|
||||||
|
|
||||||
|
if(c == '\n') {
|
||||||
|
x = ox;
|
||||||
|
y += FontInfo.LineHeight;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Cyotek.Drawing.BitmapFont.Character bfc;
|
||||||
|
if (!FontInfo.Characters.TryGetValue((char)c, out bfc))
|
||||||
|
bfc = FontInfo.Characters[unchecked((char)-1)];
|
||||||
|
|
||||||
//calculate texcoords (we shouldve already had this cached, but im speedcoding now)
|
//calculate texcoords (we shouldve already had this cached, but im speedcoding now)
|
||||||
Texture2d tex = TexturePages[c.TexturePage];
|
Texture2d tex = TexturePages[bfc.TexturePage];
|
||||||
float w = tex.Width;
|
float w = tex.Width;
|
||||||
float h = tex.Height;
|
float h = tex.Height;
|
||||||
float u0 = c.Bounds.Left / w;
|
float u0 = bfc.Bounds.Left / w;
|
||||||
float v0 = c.Bounds.Top / h;
|
float v0 = bfc.Bounds.Top / h;
|
||||||
float u1 = c.Bounds.Right / w;
|
float u1 = bfc.Bounds.Right / w;
|
||||||
float v1 = c.Bounds.Bottom / h;
|
float v1 = bfc.Bounds.Bottom / h;
|
||||||
|
|
||||||
float gx = x + c.Offset.X;
|
float gx = x + bfc.Offset.X;
|
||||||
float gy = y + c.Offset.Y;
|
float gy = y + bfc.Offset.Y;
|
||||||
renderer.DrawSubrect(tex, gx, gy, c.Bounds.Width, c.Bounds.Height, u0, v0, u1, v1);
|
renderer.DrawSubrect(tex, gx, gy, bfc.Bounds.Width, bfc.Bounds.Height, u0, v0, u1, v1);
|
||||||
|
|
||||||
x += c.XAdvance;
|
x += bfc.XAdvance;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue