使用OpenGL测量位图字体(Windows)

时间:2011-01-16 18:21:54

标签: opengl fonts bitmap

确定在OpenGL中渲染的位图字体的“像素”长度的“正确”方法是什么?我正在使用2D ortho和wglUseFontBitmaps()函数在Windows中构建字体字符列表。如果我想测量结果文本的大小(对于居中,格式化等),这样做的正确方法是什么?

我应该使用Win32 GDI GetTextExtent()API函数,还是有办法确定OpenGL中当前的“光标”位置? glRasterPos函数设置输出位置,并且在渲染每个字符时,输出位置自动前进..那么是否可以使用glGetRasterPos?

1 个答案:

答案 0 :(得分:2)

OpenGL不拥有这些字体; Windows GDI必须提供信息。我展示了如何正确in my answer to this question。每个字符的宽度需要GetCharABCWidths(),高度需要GetTextMetrics()。查看我的for循环formatString.GetLength(),它以像素为单位计算字符串宽度。然后,您可以使用glRasterPos2d()将文本放在正确的位置。