确定在OpenGL中渲染的位图字体的“像素”长度的“正确”方法是什么?我正在使用2D ortho和wglUseFontBitmaps()函数在Windows中构建字体字符列表。如果我想测量结果文本的大小(对于居中,格式化等),这样做的正确方法是什么?
我应该使用Win32 GDI GetTextExtent()API函数,还是有办法确定OpenGL中当前的“光标”位置? glRasterPos函数设置输出位置,并且在渲染每个字符时,输出位置自动前进..那么是否可以使用glGetRasterPos?
答案 0 :(得分:2)
OpenGL不拥有这些字体; Windows GDI必须提供信息。我展示了如何正确in my answer to this question。每个字符的宽度需要GetCharABCWidths()
,高度需要GetTextMetrics()
。查看我的for
循环formatString.GetLength(),它以像素为单位计算字符串宽度。然后,您可以使用glRasterPos2d()
将文本放在正确的位置。