2011-09-15 46 views
2

所有内容都在标题中。我尝试创建我自己的OpenGL字体系统,并且我需要获取每个我想包含在Sprite纹理中的字符的大小。 除了字符“&”(ascii 38)以外,所有功能都很好且准确。即使我改变字体,这个字符总是为宽度返回零。身高很好。TextRenderer.MeasureText对于字符“&”返回宽度= 0

最奇怪的是,如果我试图衡量 “& &” 串联(CHR(38)& CHR(38)),其结果似乎不错! 我没有检查是否在相同的字体产品的另一个范围相同的代码点相同的错误,所以我不知道是否解决方法“如果字符是”38“测试大小上”38 + 38“永远是可行的

编辑:。 对不起,我太愚蠢我完全忘记说了,我VB.Net下(但可以理解C#),我使用OpenGL与OpenTK的结合 TextRenderer是一类GDI +的,我用它来创建我的字体纹理,这实在不是一个OpenGL问题。

+1

什么是'TextRenderer'? OpenGL没有任何这样的功能。 –

+0

@Nicol Bolas:TextRenderer是.NET的一部分; lmgtfy –

回答

5

的&在控制中使用的申报下一个字符是快捷键。例如,具有与控制文字“E & xit”显示“退出”w ith“下划线”并在用户按下Alt + X时激活。

要包含&符号在您的测量,使用方法:

TextRenderer.MeasureText(text, font, Size.Empty, TextFormatFlags.NoPrefix)