QGLFramebufferObject在屏幕上呈现而不是在屏幕外呈现

时间:2015-04-09 11:39:45

标签: c++ qt opengl fbo

我尝试使用QGLFramebufferObject渲染屏幕,但不是直接在我的场景上渲染。

这是我对FBO方法的渲染

void GLWidget::paintToFBO()
{
    makeCurrent();
    saveGLState();

    glViewport(0, 0, figureFBO->size().width(), figureFBO->size().height());
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-1, 1, -1, 1, -1,1);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

    figureFBO->bind();
    {
        glDisable(GL_TEXTURE_2D);
        qglClearColor(Qt::yellow);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        qglColor(Qt::blue);
        glVertexPointer(2, GL_FLOAT, 0, vertices.constData()); 
        //Draw 4 vertices
        glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
    }
    figureFBO->release();
    restoreGLState();
}

错误在哪里?

0 个答案:

没有答案