diff libgui/graphics/GLCanvas.cc @ 24142:59cdf06c940e

use QOpenGLWidget if it is available * acinclude.m4 (OCTAVE_CHECK_QT_OPENGL_OK): Check for QOpenGlWidget. * GLCanvas.h, GLCanvas.cc (GLCanvas): Use QOpenGLWidget if it is available. Error both QOpenGLWidget and QGLWidget are missing.
author John W. Eaton <jwe@octave.org>
date Fri, 13 Oct 2017 13:22:09 -0400
parents 2aab625b502c
children 194eb4bd202b
line wrap: on
line diff
--- a/libgui/graphics/GLCanvas.cc	Fri Oct 13 15:57:42 2017 +0200
+++ b/libgui/graphics/GLCanvas.cc	Fri Oct 13 13:22:09 2017 -0400
@@ -32,18 +32,22 @@
 
 namespace QtHandles
 {
+#if defined (HAVE_QOPENGLWIDGET)
+#  define OCTAVE_QT_OPENGL_WIDGET_FORMAT_ARGS
+#else
+#  if defined (Q_OS_WIN32)
+#    define OCTAVE_QT_OPENGL_WIDGET_FORMAT_ARGS         \
+  QGLFormat (QGL::SampleBuffers | QGL::AlphaChannel     \
+             | QGL::IndirectRendering),
+#  else
+#    define OCTAVE_QT_OPENGL_WIDGET_FORMAT_ARGS \
+  QGLFormat (QGL::SampleBuffers | QGL::AlphaChannel),
+#  endif
+#endif
 
   GLCanvas::GLCanvas (QWidget *xparent, const graphics_handle& gh)
-#if defined (Q_OS_WIN32)
-    : QGLWidget (QGLFormat (QGL::SampleBuffers | QGL::AlphaChannel |
-                            QGL::IndirectRendering),
-                 xparent),
+    : OCTAVE_QT_OPENGL_WIDGET (OCTAVE_QT_OPENGL_WIDGET_FORMAT_ARGS xparent),
       Canvas (gh)
-#else
-    : QGLWidget (QGLFormat (QGL::SampleBuffers | QGL::AlphaChannel),
-                 xparent),
-      Canvas (gh)
-#endif
   {
     setFocusPolicy (Qt::ClickFocus);
     setFocus ();
@@ -204,14 +208,14 @@
   GLCanvas::keyPressEvent (QKeyEvent *xevent)
   {
     if (! canvasKeyPressEvent (xevent))
-      QGLWidget::keyPressEvent (xevent);
+      OCTAVE_QT_OPENGL_WIDGET::keyPressEvent (xevent);
   }
 
   void
   GLCanvas::keyReleaseEvent (QKeyEvent *xevent)
   {
     if (! canvasKeyReleaseEvent (xevent))
-      QGLWidget::keyReleaseEvent (xevent);
+      OCTAVE_QT_OPENGL_WIDGET::keyReleaseEvent (xevent);
   }
 
 }