我正试图在2d中使用GLUT在屏幕上绘制文字。
我想使用glutBitmapString(),有人可以向我展示一个简单的例子,说明在C ++中设置和正确使用这个方法你需要做什么,这样我就可以在(X,Y)位置绘制一个任意字符串吗? / p>
glutBitmapString(void *font, const unsigned char *string);
我正在使用linux,我知道我需要创建一个Font对象,虽然我不确定如何,我可以提供它作为第二个争论的字符串。但是,我如何指定x / y位置?
这方面的一个简单例子对我有很大帮助。如果你能告诉我创建字体,那就调用最好的方法。
答案 0 :(得分:11)
在调用glutBitmapString()
之前,您必须使用glRasterPos
设置栅格位置。请注意,每次调用glutBitmapString()
都会提升光栅位置,因此几个连续的调用将一个接一个地打印出字符串。您还可以使用glColor()
设置文本颜色。列出了可用字体集here。
// Draw blue text at screen coordinates (100, 120), where (0, 0) is the top-left of the
// screen in an 18-point Helvetica font
glRasterPos2i(100, 120);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
glutBitmapString(GLUT_BITMAP_HELVETICA_18, "text to render");
答案 1 :(得分:0)
添加到Adam的答案,
glColor4f(0.0f, 0.0f, 1.0f, 1.0f); //RGBA values of text color
glRasterPos2i(100, 120); //Top left corner of text
const unsigned char* t = reinterpret_cast<const unsigned char *>("text to render");
// Since 2nd argument of glutBitmapString must be const unsigned char*
glutBitmapString(GLUT_BITMAP_HELVETICA_18,t);
查看https://www.opengl.org/resources/libraries/glut/spec3/node76.html了解更多字体选项