OpenGL与对象一起绘制文本

时间:2013-04-22 21:09:04

标签: opengl text draw

我有这个正在运行的渲染功能:

    void RenderFunction(void)
{
    ++FrameCount;

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    drawGraph();
    drawAxis(); 

    glutSwapBuffers();
    glutPostRedisplay();
}

这使我成为一个点图。我希望能够显示一个小文本。我读了这个artice:http://www.codersource.net/MFC/OpenGL/DisplayingTextOpenGLTutorial5.aspx,唯一需要做的就是复制该函数并更新我的代码:

void RenderFunction(void)
{
    ++FrameCount;

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glLoadIdentity();
    drawBitmapText("Osama Hosam's OpenGL Tutorials",200,200,0);

    drawGraph();
    drawAxis(); 

    glutSwapBuffers();
    glutPostRedisplay();
}

glutDisplayFunc(RenderFunction);

内调用renderFunction

对此有任何想法。我想要任何建议,因为它没有显示任何内容。

更新:

void drawGraph(){
    glBindVertexArray(VaoId);
    glEnable(GL_LINE_SMOOTH);
    glLineWidth(0);
    glDrawElements(GL_LINES, 48, GL_UNSIGNED_BYTE, (GLvoid*)0);
    glPointSize(10);
    glDrawElements(GL_POINTS, 48, GL_UNSIGNED_BYTE, (GLvoid*)0);
}

void drawAxis(){
    glDisable(GL_LINE_SMOOTH);
    glBindVertexArray(VaoIdAxis);
    glDrawElements(GL_LINES, 4, GL_UNSIGNED_BYTE, (GLvoid*)0);
}

enter image description here

1 个答案:

答案 0 :(得分:0)

解决问题。出于某种原因,drawBitmapText()在某些OpenGL上下文中不受支持。最初我有:

glutInitContextVersion(3, 3);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);

阻止应用程序呈现文本。我只是评论说3行,一切都很顺利。