From ee2dbcada81f5220a05414d7bf9d5eeebdda8972 Mon Sep 17 00:00:00 2001 From: Kristoffer Skau Date: Thu, 27 Oct 2022 15:38:53 +0200 Subject: Add support for stereoscopic content in QOpenGLWidget Need to add the plumbing necessary to support two textures in QOpenGLWidget and use these in the backing store. The changes required on the RHI level is already done in an earlier patch. Then paintGL() needs to be called twice, once for each buffer. Also add overloads for the other functions of QOopenGLWidget where it makes sense to query for left or right buffer. Then finally create an example. [ChangeLog][Widgets][QOpenGLWidget] Added support for stereoscopic rendering. Fixes: QTBUG-64587 Change-Id: I5a5c53506dcf8a56442097290dceb7eb730d50ce Reviewed-by: Laszlo Agocs --- src/openglwidgets/qopenglwidget.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/openglwidgets/qopenglwidget.h') diff --git a/src/openglwidgets/qopenglwidget.h b/src/openglwidgets/qopenglwidget.h index edd731ae8ec..84097854e59 100644 --- a/src/openglwidgets/qopenglwidget.h +++ b/src/openglwidgets/qopenglwidget.h @@ -25,6 +25,11 @@ public: PartialUpdate }; + enum TargetBuffer { + LeftBuffer = 0, // Default + RightBuffer // Only used when QSurfaceFormat::StereoBuffers is enabled + }; + explicit QOpenGLWidget(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); ~QOpenGLWidget(); @@ -44,8 +49,12 @@ public: QOpenGLContext *context() const; GLuint defaultFramebufferObject() const; + GLuint defaultFramebufferObject(TargetBuffer targetBuffer) const; QImage grabFramebuffer(); + QImage grabFramebuffer(TargetBuffer targetBuffer); + + TargetBuffer currentTargetBuffer() const; Q_SIGNALS: void aboutToCompose(); -- cgit v1.2.3