原文出處:http://blog.csdn.net/happen23/article/details/4642517
PS:下文內容對原文內容做了適當的修改和擴充。
OpenGL本身不支持字符顯示,然後覺得對於簡單的一些應用,使用GLUT的庫就夠了。比如這裏我們想要實現的文本繪製:
示例代碼:
//要顯示的字符
char *str = "current fps = ";
int n = strlen(str);
//設置要在屏幕上顯示字符的起始位置
glRasterPos2i(0,0);
//逐個顯示字符串中的每個字符
for (int i = 0; i < n; i++)
glutBitmapCharacter(GLUT_BITMAP_8_BY_13, *(str+i));
將以上代碼插入OpenGL的顯示回調函數函數中即可。
效果圖:
這裏也可以用string存儲輸入的文本:
std::string text = "<span style="font-family: 'microsoft yahei'; font-size: 15.555556297302246px;">current fps = </span>";
glRasterPos2f( -0.5f, -0.5f );
glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
glutBitmapString( GLUT_BITMAP_TIMES_ROMAN_24, (const unsigned char*)text.c_str() );
glutBitmapString函數是包含在freeglut頭文件中的。
但是,接下來我希望能控制輸出的文本字體大小,該怎麼做呢?