Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-3017

Support threaded GL rendering through high-level API in QGLWidget

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Out of scope
    • P2: Important
    • Some future release
    • None
    • GUI: OpenGL
    • None

    Description

      A property in QGLWidget that would make all calls to the paintGL, initializeGL etc functions be executed by an explicitly created render thread, ie

      QThread *thread = new QThread;
      MyGLWidget *widget = new MyGLWidget(thread);
      widget->setRenderThread(thread);
      widget->show();
      thread->start();

      In QGLWidget::setRenderThread:

      void QGLWidget::setRenderThread(QThread *thread)
      {
      d->thread = thread;
      d->renderHelper = new QGLRenderHelper(this);
      d->renderhelper->moveToThread(d->thread);
      }

      QGLRenderHelper then implements slots that are called by QGLWidget via QMetaObject::invokeMethod instead of QGLWidget::paintGL etc, and call the QGLWidget::paintGL etc functions.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            sletta Gunnar Sletta
            vhilshei Volker Hilsheimer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes