是否可以使用Ubuntu';我的OpenGL程序中的文本渲染引擎?

是否可以使用Ubuntu';我的OpenGL程序中的文本渲染引擎?,opengl,ubuntu,Opengl,Ubuntu,是否有一个单独的库或组件在Ubuntu中呈现文本?如何编写一个OpenGL程序来呈现与系统完全相同的文本 您可以查看一个使用GL的示例的COGL和CHARROT源代码。文本库是Pango,它建立在FreeType的基础上 如果你深入了解Linux上的任何现代字体渲染技术,你通常会发现FreeType。你可能还会听到“盘古”这个词出现。Ubuntu上的GTK使用Pango作为一个文本布局引擎,但据我所知,Pango只是一个多语言文本布局引擎,仍然使用FreeType进行光栅化,这可能就是您想要的。

是否有一个单独的库或组件在Ubuntu中呈现文本?如何编写一个OpenGL程序来呈现与系统完全相同的文本


您可以查看一个使用GL的示例的COGL和CHARROT源代码。文本库是Pango,它建立在FreeType的基础上

如果你深入了解Linux上的任何现代字体渲染技术,你通常会发现FreeType。你可能还会听到“盘古”这个词出现。Ubuntu上的GTK使用Pango作为一个文本布局引擎,但据我所知,Pango只是一个多语言文本布局引擎,仍然使用FreeType进行光栅化,这可能就是您想要的。FreeType将栅格化文本字符串,然后您可以将其作为纹理加载

查看FreeType的API文档:

以及教程页面:

不,我指的是渲染技术。例如,亚像素渲染。你可以看到,在Chromium这样的程序中,他们可以像Ubuntu中的菜单文本一样呈现文本。他们在用图书馆吗?我知道
freetype
可以用来呈现文本,但是使用
freetype
呈现的程序将不受系统设置的控制,例如
.fonts.conf
文件。好吧,像Chromium这样的所有程序都使用GTK库,它可能使用Pango进行文本呈现。您确实需要Pango来正确呈现Unicode文本的段落。单独使用FreeType而不使用Pango等效逻辑将为您提供一个“玩具”文本渲染器,本质上它只在拉丁语脚本中正确。有一些Pango替代品,例如Qt内置了一些东西。