Mercurial > octave
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); } }