我正在搞乱OpenGlut库中的glutBitmapString。现在我只想在屏幕上写一个字符串以确保它有效,但我无法让它出现:
const char* texto = "texto";
glRasterPos2i(100, 120);
glColor3f(0.0f, 0.0f, 1.0f);
glutBitmapString(GLUT_BITMAP_HELVETICA_10, (UCHAR*)texto);
我也尝试过for循环中的glutBitmapCharacter,但没有成功。有人能给我一个明确的例子或告诉我我做错了什么吗?
答案 0 :(得分:2)
glRasterPos()
位置由当前投影/模型视图矩阵转换。确保它们合理。
或使用glWindowPos2i()
绕过它们。
示例:
#include <GL/freeglut.h>
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
double w = glutGet( GLUT_WINDOW_WIDTH );
double h = glutGet( GLUT_WINDOW_HEIGHT );
glOrtho( 0, w, 0, h, -1, 1 );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
const char* texto = "texto";
glRasterPos2i( 100, 120 );
glColor3f( 0.0f, 0.0f, 1.0f );
glutBitmapString(GLUT_BITMAP_HELVETICA_10, (const unsigned char*)texto );
glutSwapBuffers();
}
int main( int argc, char **argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_RGBA | GLUT_DOUBLE );
glutInitWindowSize( 300, 300 );
glutCreateWindow( "GLUT" );
glutDisplayFunc( display );
glutMainLoop();
return 0;
}