【发布时间】:2017-04-07 08:09:08
【问题描述】:
我继承了一个代码,作者使用 FreeType 和 OpenGL 打印一些文本(不一定是等宽字体)。
我需要计算打印文本的宽度,以便正确对齐。
这是他写的代码:
freetype::font_data font;
font.init(fontPath.c_str(), fontSize);
freetype::print(font, x, y, "%s", str.c_str());
Here 是具有print 功能的FreeType 源。
我想不出通过修改print 函数来获得文本宽度的任何方法,我尝试编辑字体的init 函数(也在提到的文件中)以返回face->glyph->metrics.width 但有一个例外说@ 987654327@ 为空。但我认为我什至不应该尝试编辑库的来源。
由于我不知道如何获取文本宽度,我正在考虑以某种方式打印文本,获取打印内容的宽度并在其上打印一些内容。有什么想法吗?
【问题讨论】:
-
据我所知,您走在正确的轨道上。您必须打印文本,您可以为此使用屏幕外缓冲区。应该有一种方法可以获取以像素为单位的打印宽度。