使用 Opengl 在 MFC 应用程序中显示文本
Dispalying Text in MFC application using Opengl
我是 OpenGL 的新手,我正在尝试创建一个包含视口、3d 模型并显示一些文本的简单应用程序。我从未使用过 glut window 并且想使用 MFC window 来实现上述功能。视口和 3d 模型工作正常,但未显示给定的文本。我已经测试了文本显示工作的基于 glutWindow 的应用程序。因为我不想在我的应用程序中使用 glutwindow 我避免了以下几行
glutInit(&argc, argv);
glutInitWindowSize (window_width, window_height);
glutInitWindowPosition (window_X_position, window_Y_position);
glutInitDisplayMode (GLUT_RGB);
glutCreateWindow (window_title);
glutDisplayFunc (display);
仅使用 MFC 和 OpenGL 我必须显示文本。
方法一:
/* glPushMatrix();
glRotatef( -25.0f, 0.0f, 1.0f, 0.0f );
glTranslatef( -2.5f, -0.7f, 0.0f );
lListBase( m_TextID );
glCallLists( 20, GL_UNSIGNED_BYTE, (const GLvoid*)"welcome" );
glPopMatrix();*/
方法二:
void renderstring2d(char string[], float r, float g, float b, float x, float y)
{
glColor3f(r, g, b);
glRasterPos2f(x, y);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
方法三:
void renderstring3d(char string[], float r, float g, float b, float x, float y, float z)
{
glDisable(GL_LIGHTING);
glColor3f(r, g, b);
glRasterPos3f(x, y, z);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
以上方法我都试过了,都失败了。请帮我显示文字
MFC 应用程序中的 OpenGL。
您使用的是固定管道,所以您必须根据glutBitmapCharacter 使用的坐标系设置ModelView Matrix 和Projection Matrix。
看这个例子:
http://www.programming-techniques.com/2012/05/font-rendering-in-glut-using-bitmap.html
我是 OpenGL 的新手,我正在尝试创建一个包含视口、3d 模型并显示一些文本的简单应用程序。我从未使用过 glut window 并且想使用 MFC window 来实现上述功能。视口和 3d 模型工作正常,但未显示给定的文本。我已经测试了文本显示工作的基于 glutWindow 的应用程序。因为我不想在我的应用程序中使用 glutwindow 我避免了以下几行
glutInit(&argc, argv);
glutInitWindowSize (window_width, window_height);
glutInitWindowPosition (window_X_position, window_Y_position);
glutInitDisplayMode (GLUT_RGB);
glutCreateWindow (window_title);
glutDisplayFunc (display);
仅使用 MFC 和 OpenGL 我必须显示文本。
方法一:
/* glPushMatrix();
glRotatef( -25.0f, 0.0f, 1.0f, 0.0f );
glTranslatef( -2.5f, -0.7f, 0.0f );
lListBase( m_TextID );
glCallLists( 20, GL_UNSIGNED_BYTE, (const GLvoid*)"welcome" );
glPopMatrix();*/
方法二:
void renderstring2d(char string[], float r, float g, float b, float x, float y)
{
glColor3f(r, g, b);
glRasterPos2f(x, y);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
方法三:
void renderstring3d(char string[], float r, float g, float b, float x, float y, float z)
{
glDisable(GL_LIGHTING);
glColor3f(r, g, b);
glRasterPos3f(x, y, z);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
以上方法我都试过了,都失败了。请帮我显示文字 MFC 应用程序中的 OpenGL。
您使用的是固定管道,所以您必须根据glutBitmapCharacter 使用的坐标系设置ModelView Matrix 和Projection Matrix。
看这个例子: http://www.programming-techniques.com/2012/05/font-rendering-in-glut-using-bitmap.html