无法使用 FTGL 更改字体颜色

Posted

技术标签:

【中文标题】无法使用 FTGL 更改字体颜色【英文标题】:Cannot change font color with FTGL 【发布时间】:2013-11-27 05:13:47 【问题描述】:

如何更改 FTGL 中的字体颜色?

【问题讨论】:

需要更多信息... FTGL 可以渲染矢量字体、光栅字体(已弃用)或纹理字体。然而,一般的想法是字体是单色的(它可能有灰色阴影,但没有颜色),你可以通过将它乘以其他东西来改变颜色。 【参考方案1】:

在请求字体渲染之前,只需使用glColor 调用即可;根据您的情况,您可能需要禁用照明。以下是 C++ 的示例:

FTFont *myfont= new FTBufferFont("myfontfile.ttf");

glPushAttrib(GL_ALL_ATTRIB_BITS);
glDisable(GL_LIGHTING);
glDisable(GL_DEPTH_TEST);

glColor4d(1.0, 0.0, 0.0, 1.0);
myfont->Render("Hello world");

glPopAttrib();

【讨论】:

这不起作用。 'glColor4d' 未在此范围内声明。 @Achilles-96 glColor 是一个基本的 opengl 函数。您将需要包含 opengl 标头 - 我怀疑代码中的其他任何内容都可以在没有它的情况下工作。见opengl.org/sdk/docs/man2/xhtml/glColor.xml【参考方案2】:

这对我有用:

FTGLPixmapFont font("Myfont.ttf");

glPushAttrib(GL_ALL_ATTRIB_BITS);

glPixelTransferf(GL_RED_BIAS, red - 1);
glPixelTransferf(GL_GREEN_BIAS, green - 1);
glPixelTransferf(GL_BLUE_BIAS, blue - 1);

font.Render(str, -1, FTPoint(x, y));

glPopAttrib();

如果您希望文本透明,可以为 GL_ALPHA_BIAS 添加另一行。

【讨论】:

以上是关于无法使用 FTGL 更改字体颜色的主要内容,如果未能解决你的问题,请参考以下文章

无法更改 UINavigationBar 提示颜色和字体

C#DataGridView修改行头字体颜色与背景颜色

如何更改 Matplotlib 中颜色条刻度标签的字体大小?

更改 UIBarButtonItem 文本字体大小和颜色

手机字体颜色怎么更改?

微信字体变深且字体颜色紊乱