Important: Please read the Qt Code of Conduct -

QOpenGLWidget stereo rendering using glDrawBuffer

  • Hello,

    i'm trying to draw in the GL_BACK_LEFT and GL_BACK_RIGHT but i get a GL_INVALID_OPERATION just after calling glDrawBuffer.
    It seems that the framebuffer does not support GL_BACK_LEFT and GL_BACK_RIGHT buffers.
    I've set up the QSurfaceFormat like this:

    QSurfaceFormat format = QSurfaceFormat::defaultFormat();

    so that all my QOpenGLWidgets have the same pixel format.
    The stereo is correctly activated because Areo is disabled at launch

    for the rendering (in the painGL method), i simply do a texture draw using the fixed pipeline:

    void draw(int w, int h, float u, float v, int textureId, int buffer)
      glViewport(0, 0, w, h);
      glDrawBuffer(buffer); // Generate the GL_INVALID_OPERATION
      GLenum error = glGetError();
      if (error != GL_NO_ERROR)
        std::cout << "GL ERROR: " << error << std::endl;
      glBindTexture(GL_TEXTURE_2D, textureId);
      glTexCoord2f(0, 0);
      glVertex2f(-1, -1);
      glTexCoord2f(u, 0);
      glVertex2f(1, -1);
      glTexCoord2f(u, v);
      glVertex2f(1, 1);
      glTexCoord2f(0, v);
      glVertex2f(-1, 1);
      glBindTexture(GL_TEXTURE_2D, 0);

    Pretty simple.... Is there a known issue with the defaultFramebufferObject when stereo is enabled?


    PS: i use Qt 5.4.1 under Windows 8.1

  • Up

    No one?

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Sorry I can't help you on that matter, however you can also try the #qt irc channel on freenode

  • This issue is getting some love in the form of a bug report:

Log in to reply