From 91e94ba1dd0bce056a8aeb7710283c579c015cd6 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Sat, 15 Feb 2025 13:40:48 +0000 Subject: [PATCH] Gui: Cleanup Qt OpenGL usings in `QtOpenGL.h`. Previously the code defined compatiblity usings in `QtOpenGL.h` header, which I think was added for backwards compatiblity with previous Qt OpenGL widgets. As far as I can tell, this is not necessary anymore, and can be cleaned up. --- .../InitializeFreeCADBuildOptions.cmake | 2 -- src/Gui/Document.cpp | 4 +-- src/Gui/Flag.cpp | 4 +-- src/Gui/Flag.h | 3 +- src/Gui/GLPainter.cpp | 2 +- src/Gui/GLPainter.h | 22 +++++------- src/Gui/ManualAlignment.cpp | 2 +- src/Gui/MouseSelection.cpp | 4 +-- src/Gui/NaviCube.cpp | 10 +++--- src/Gui/Quarter/QuarterWidget.cpp | 12 +++---- src/Gui/Quarter/QuarterWidget.h | 8 ++--- src/Gui/Quarter/QuarterWidgetP.cpp | 26 +++++++------- src/Gui/Quarter/QuarterWidgetP.h | 8 ++--- src/Gui/Quarter/SoQTQuarterAdaptor.cpp | 10 +++--- src/Gui/Quarter/SoQTQuarterAdaptor.h | 10 +++--- src/Gui/Selection/SoFCSelection.cpp | 2 +- src/Gui/Selection/SoFCUnifiedSelection.cpp | 2 +- src/Gui/SoFCInteractiveElement.cpp | 4 +-- src/Gui/SoFCInteractiveElement.h | 10 +++--- src/Gui/SoFCOffscreenRenderer.cpp | 6 ++-- src/Gui/SoFCOffscreenRenderer.h | 2 +- src/Gui/SoTextLabel.cpp | 2 +- src/Gui/SplitView3DInventor.cpp | 2 +- src/Gui/View3DInventor.cpp | 4 +-- src/Gui/View3DInventor.h | 2 +- src/Gui/View3DInventorViewer.cpp | 36 +++++++++---------- src/Gui/View3DInventorViewer.h | 8 ++--- src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp | 4 +-- src/Mod/Sandbox/Gui/Overlay.cpp | 14 ++++---- src/Mod/Sandbox/Gui/Overlay.h | 2 +- src/{QtOpenGL.h.cmake => QtOpenGL.h} | 8 ----- 31 files changed, 110 insertions(+), 125 deletions(-) rename src/{QtOpenGL.h.cmake => QtOpenGL.h} (86%) diff --git a/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake b/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake index 995810d52b..6b19043f77 100644 --- a/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake +++ b/cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake @@ -77,8 +77,6 @@ macro(InitializeFreeCADBuildOptions) "Community Edition" ) - configure_file(${CMAKE_SOURCE_DIR}/src/QtOpenGL.h.cmake ${CMAKE_BINARY_DIR}/src/QtOpenGL.h) - option(BUILD_DESIGNER_PLUGIN "Build and install the designer plugin" OFF) if(APPLE) diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index 2edff11f6b..6c4ce52bec 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -1999,11 +1999,11 @@ MDIView *Document::createView(const Base::Type& typeId) std::list theViews = this->getMDIViewsOfType(typeId); if (typeId == View3DInventor::getClassTypeId()) { - QtGLWidget* shareWidget = nullptr; + QOpenGLWidget* shareWidget = nullptr; // VBO rendering doesn't work correctly when we don't share the OpenGL widgets if (!theViews.empty()) { auto firstView = static_cast(theViews.front()); - shareWidget = qobject_cast(firstView->getViewer()->getGLWidget()); + shareWidget = qobject_cast(firstView->getViewer()->getGLWidget()); const char *ppReturn = nullptr; firstView->onMsg("GetCamera",&ppReturn); diff --git a/src/Gui/Flag.cpp b/src/Gui/Flag.cpp index 5d1fcde8fe..3d975110de 100644 --- a/src/Gui/Flag.cpp +++ b/src/Gui/Flag.cpp @@ -43,7 +43,7 @@ using namespace Gui; // Embed complete widgets Flag::Flag(QWidget* parent) - : QtGLWidget(parent), coord(0.0f, 0.0f, 0.0f) + : QOpenGLWidget(parent), coord(0.0f, 0.0f, 0.0f) { this->setFixedHeight(20); setAutoFillBackground(true); @@ -124,7 +124,7 @@ void Flag::setText(const QString& t) void Flag::resizeEvent(QResizeEvent* e) { - QtGLWidget::resizeEvent(e); + QOpenGLWidget::resizeEvent(e); } void Flag::mouseMoveEvent(QMouseEvent *e) diff --git a/src/Gui/Flag.h b/src/Gui/Flag.h index 240eaf2409..6a1e92a331 100644 --- a/src/Gui/Flag.h +++ b/src/Gui/Flag.h @@ -25,6 +25,7 @@ #define GUI_FLAG_H #include +#include #include #include #include @@ -36,7 +37,7 @@ class View3DInventorViewer; /** * @author Werner Mayer */ -class GuiExport Flag : public QtGLWidget +class GuiExport Flag : public QOpenGLWidget { Q_OBJECT diff --git a/src/Gui/GLPainter.cpp b/src/Gui/GLPainter.cpp index 28838b7d23..a8b4ded3e3 100644 --- a/src/Gui/GLPainter.cpp +++ b/src/Gui/GLPainter.cpp @@ -51,7 +51,7 @@ bool GLPainter::begin(QPaintDevice * device) if (viewer) return false; - viewer = dynamic_cast(device); + viewer = dynamic_cast(device); if (!viewer) return false; diff --git a/src/Gui/GLPainter.h b/src/Gui/GLPainter.h index 19e6bac343..228a4ae3cc 100644 --- a/src/Gui/GLPainter.h +++ b/src/Gui/GLPainter.h @@ -24,24 +24,18 @@ #ifndef GUI_GLPAINTER_H #define GUI_GLPAINTER_H -#ifdef FC_OS_WIN32 -#ifndef NOMINMAX -#define NOMINMAX -#endif -#include -#endif -#ifdef FC_OS_MACOSX -#include -#else -#include -#endif - #include #include -#include #include class QPaintDevice; +class QOpenGLWidget; + +using GLenum = unsigned int; +using GLint = int; +using GLushort = unsigned short; +using GLfloat = float; +using GLdouble = double; namespace Gui { class View3DInventorViewer; @@ -75,10 +69,10 @@ public: //@} private: - QtGLWidget* viewer{nullptr}; GLfloat depthrange[2]; GLdouble projectionmatrix[16]; GLint width{0}, height{0}; + QOpenGLWidget* viewer{nullptr}; bool logicOp{false}; bool lineStipple{false}; }; diff --git a/src/Gui/ManualAlignment.cpp b/src/Gui/ManualAlignment.cpp index 419acfd717..224436aa09 100644 --- a/src/Gui/ManualAlignment.cpp +++ b/src/Gui/ManualAlignment.cpp @@ -352,7 +352,7 @@ public: bool smoothing = false; bool glformat = false; int samples = View3DInventorViewer::getNumSamples(); - QtGLFormat f; + QSurfaceFormat f; if (samples > 1) { glformat = true; diff --git a/src/Gui/MouseSelection.cpp b/src/Gui/MouseSelection.cpp index 7160f06bee..db87e3cffa 100644 --- a/src/Gui/MouseSelection.cpp +++ b/src/Gui/MouseSelection.cpp @@ -575,7 +575,7 @@ void RubberbandSelection::initialize() rubberband.setViewer(_pcView3D); rubberband.setWorking(false); _pcView3D->addGraphicsItem(&rubberband); - if (QtGLFramebufferObject::hasOpenGLFramebufferObjects()) { + if (QOpenGLFramebufferObject::hasOpenGLFramebufferObjects()) { _pcView3D->setRenderType(View3DInventorViewer::Image); } _pcView3D->redraw(); @@ -586,7 +586,7 @@ void RubberbandSelection::terminate(bool abort) Q_UNUSED(abort) _pcView3D->removeGraphicsItem(&rubberband); - if (QtGLFramebufferObject::hasOpenGLFramebufferObjects()) { + if (QOpenGLFramebufferObject::hasOpenGLFramebufferObjects()) { _pcView3D->setRenderType(View3DInventorViewer::Native); } _pcView3D->redraw(); diff --git a/src/Gui/NaviCube.cpp b/src/Gui/NaviCube.cpp index d84e9ad2c2..7dbf88abb4 100644 --- a/src/Gui/NaviCube.cpp +++ b/src/Gui/NaviCube.cpp @@ -196,7 +196,7 @@ private: SbVec2s m_PosAreaBase = SbVec2s(0,0); SbVec2s m_PosAreaSize = SbVec2s(0,0); - QtGLFramebufferObject* m_PickingFramebuffer; + QOpenGLFramebufferObject* m_PickingFramebuffer; Gui::View3DInventorViewer* m_View3DInventorViewer; map m_Faces; @@ -704,8 +704,8 @@ void NaviCubeImplementation::prepare() if (m_PickingFramebuffer) delete m_PickingFramebuffer; m_PickingFramebuffer = - new QtGLFramebufferObject(2 * m_CubeWidgetSize, 2 * m_CubeWidgetSize, - QtGLFramebufferObject::CombinedDepthStencil); + new QOpenGLFramebufferObject(2 * m_CubeWidgetSize, 2 * m_CubeWidgetSize, + QOpenGLFramebufferObject::CombinedDepthStencil); m_View3DInventorViewer->getSoRenderManager()->scheduleRedraw(); } @@ -935,7 +935,7 @@ NaviCubeImplementation::PickId NaviCubeImplementation::pickFace(short x, short y GLubyte pixels[4] = {0}; if (m_PickingFramebuffer && std::abs(x) <= m_CubeWidgetSize / 2 && std::abs(y) <= m_CubeWidgetSize / 2) { - static_cast(m_View3DInventorViewer->viewport())->makeCurrent(); + static_cast(m_View3DInventorViewer->viewport())->makeCurrent(); m_PickingFramebuffer->bind(); glViewport(0, 0, m_CubeWidgetSize * 2, m_CubeWidgetSize * 2); @@ -946,7 +946,7 @@ NaviCubeImplementation::PickId NaviCubeImplementation::pickFace(short x, short y glReadPixels(2 * x + m_CubeWidgetSize, 2 * y + m_CubeWidgetSize, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixels); m_PickingFramebuffer->release(); - static_cast(m_View3DInventorViewer->viewport())->doneCurrent(); + static_cast(m_View3DInventorViewer->viewport())->doneCurrent(); } return pixels[3] == 255 ? static_cast(pixels[0]) : PickId::None; } diff --git a/src/Gui/Quarter/QuarterWidget.cpp b/src/Gui/Quarter/QuarterWidget.cpp index 96a3bf66f1..91ab6e6436 100644 --- a/src/Gui/Quarter/QuarterWidget.cpp +++ b/src/Gui/Quarter/QuarterWidget.cpp @@ -230,7 +230,7 @@ public: }; /*! constructor */ -QuarterWidget::QuarterWidget(const QtGLFormat & format, QWidget * parent, const QtGLWidget * sharewidget, Qt::WindowFlags f) +QuarterWidget::QuarterWidget(const QSurfaceFormat & format, QWidget * parent, const QOpenGLWidget * sharewidget, Qt::WindowFlags f) : inherited(parent) { Q_UNUSED(f); @@ -238,15 +238,15 @@ QuarterWidget::QuarterWidget(const QtGLFormat & format, QWidget * parent, const } /*! constructor */ -QuarterWidget::QuarterWidget(QWidget * parent, const QtGLWidget * sharewidget, Qt::WindowFlags f) +QuarterWidget::QuarterWidget(QWidget * parent, const QOpenGLWidget * sharewidget, Qt::WindowFlags f) : inherited(parent) { Q_UNUSED(f); - this->constructor(QtGLFormat(), sharewidget); + this->constructor(QSurfaceFormat(), sharewidget); } /*! constructor */ -QuarterWidget::QuarterWidget(QtGLContext * context, QWidget * parent, const QtGLWidget * sharewidget, Qt::WindowFlags f) +QuarterWidget::QuarterWidget(QOpenGLContext * context, QWidget * parent, const QOpenGLWidget * sharewidget, Qt::WindowFlags f) : inherited(parent) { Q_UNUSED(f); @@ -254,7 +254,7 @@ QuarterWidget::QuarterWidget(QtGLContext * context, QWidget * parent, const QtGL } void -QuarterWidget::constructor(const QtGLFormat & format, const QtGLWidget * sharewidget) +QuarterWidget::constructor(const QSurfaceFormat & format, const QOpenGLWidget * sharewidget) { QGraphicsScene* scene = new QGraphicsScene(this); setScene(scene); @@ -856,7 +856,7 @@ void QuarterWidget::paintEvent(QPaintEvent* event) glMatrixMode(GL_PROJECTION); - QtGLWidget* w = static_cast(this->viewport()); + QOpenGLWidget* w = static_cast(this->viewport()); if (!w->isValid()) { qWarning() << "No valid GL context found!"; return; diff --git a/src/Gui/Quarter/QuarterWidget.h b/src/Gui/Quarter/QuarterWidget.h index 81ecfe9a04..c002cbd853 100644 --- a/src/Gui/Quarter/QuarterWidget.h +++ b/src/Gui/Quarter/QuarterWidget.h @@ -114,9 +114,9 @@ public: public: - explicit QuarterWidget(QWidget * parent = nullptr, const QtGLWidget * sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); - explicit QuarterWidget(QtGLContext * context, QWidget * parent = nullptr, const QtGLWidget * sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); - explicit QuarterWidget(const QtGLFormat & format, QWidget * parent = nullptr, const QtGLWidget * shareWidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + explicit QuarterWidget(QWidget * parent = nullptr, const QOpenGLWidget * sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + explicit QuarterWidget(QOpenGLContext * context, QWidget * parent = nullptr, const QOpenGLWidget * sharewidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + explicit QuarterWidget(const QSurfaceFormat & format, QWidget * parent = nullptr, const QOpenGLWidget * shareWidget = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); ~QuarterWidget() override; TransparencyType transparencyType() const; @@ -203,7 +203,7 @@ protected: virtual bool updateDevicePixelRatio(); private: - void constructor(const QtGLFormat& format, const QtGLWidget* sharewidget); + void constructor(const QSurfaceFormat& format, const QOpenGLWidget* sharewidget); friend class QuarterWidgetP; class QuarterWidgetP * pimpl; bool initialized; diff --git a/src/Gui/Quarter/QuarterWidgetP.cpp b/src/Gui/Quarter/QuarterWidgetP.cpp index a469517566..fe83f6c061 100644 --- a/src/Gui/Quarter/QuarterWidgetP.cpp +++ b/src/Gui/Quarter/QuarterWidgetP.cpp @@ -63,12 +63,12 @@ using namespace SIM::Coin3D::Quarter; class QuarterWidgetP_cachecontext { public: uint32_t id; - SbList widgetlist; + SbList widgetlist; }; static SbList * cachecontext_list = nullptr; -QuarterWidgetP::QuarterWidgetP(QuarterWidget * masterptr, const QtGLWidget * sharewidget) +QuarterWidgetP::QuarterWidgetP(QuarterWidget * masterptr, const QOpenGLWidget * sharewidget) : master(masterptr), scene(nullptr), eventfilter(nullptr), @@ -104,7 +104,7 @@ QuarterWidgetP::QuarterWidgetP(QuarterWidget * masterptr, const QtGLWidget * sha QuarterWidgetP::~QuarterWidgetP() { - QtGLWidget* glMaster = static_cast(this->master->viewport()); + QOpenGLWidget* glMaster = static_cast(this->master->viewport()); removeFromCacheContext(this->cachecontext, glMaster); delete this->contextmenu; } @@ -133,7 +133,7 @@ QuarterWidgetP::getCacheContextId() const } QuarterWidgetP_cachecontext * -QuarterWidgetP::findCacheContext(QuarterWidget * widget, const QtGLWidget * sharewidget) +QuarterWidgetP::findCacheContext(QuarterWidget * widget, const QOpenGLWidget * sharewidget) { if (!cachecontext_list) { // FIXME: static memory leak @@ -144,34 +144,34 @@ QuarterWidgetP::findCacheContext(QuarterWidget * widget, const QtGLWidget * shar for (int j = 0; j < cachecontext->widgetlist.getLength(); j++) { if (cachecontext->widgetlist[j] == sharewidget) { - cachecontext->widgetlist.append(static_cast(widget->viewport())); + cachecontext->widgetlist.append(static_cast(widget->viewport())); return cachecontext; } } } QuarterWidgetP_cachecontext * cachecontext = new QuarterWidgetP_cachecontext; cachecontext->id = SoGLCacheContextElement::getUniqueCacheContext(); - cachecontext->widgetlist.append(static_cast(widget->viewport())); + cachecontext->widgetlist.append(static_cast(widget->viewport())); cachecontext_list->append(cachecontext); return cachecontext; } void -QuarterWidgetP::removeFromCacheContext(QuarterWidgetP_cachecontext * context, const QtGLWidget * widget) +QuarterWidgetP::removeFromCacheContext(QuarterWidgetP_cachecontext * context, const QOpenGLWidget * widget) { - context->widgetlist.removeItem((const QtGLWidget*) widget); + context->widgetlist.removeItem((const QOpenGLWidget*) widget); if (context->widgetlist.getLength() == 0) { // last context in this share group? assert(cachecontext_list); for (int i = 0; i < cachecontext_list->getLength(); i++) { if ((*cachecontext_list)[i] == context) { - QtGLContext* glcontext = widget->context(); + QOpenGLContext* glcontext = widget->context(); if (glcontext) { // set the context while calling destructingContext() (might trigger OpenGL calls) if (glcontext->isValid()) { - const_cast (widget)->makeCurrent(); + const_cast (widget)->makeCurrent(); } // fetch the cc_glglue context instance as a workaround for a bug fixed in Coin r12818 (void) cc_glglue_instance(context->id); @@ -180,7 +180,7 @@ QuarterWidgetP::removeFromCacheContext(QuarterWidgetP_cachecontext * context, co SoContextHandler::destructingContext(context->id); if (glcontext) { if (glcontext->isValid()) { - const_cast (widget)->doneCurrent(); + const_cast (widget)->doneCurrent(); } } delete context; @@ -191,9 +191,9 @@ QuarterWidgetP::removeFromCacheContext(QuarterWidgetP_cachecontext * context, co } void -QuarterWidgetP::replaceGLWidget(const QtGLWidget * newviewport) +QuarterWidgetP::replaceGLWidget(const QOpenGLWidget * newviewport) { - QtGLWidget* oldviewport = static_cast(this->master->viewport()); + QOpenGLWidget* oldviewport = static_cast(this->master->viewport()); cachecontext->widgetlist.removeItem(oldviewport); cachecontext->widgetlist.append(newviewport); } diff --git a/src/Gui/Quarter/QuarterWidgetP.h b/src/Gui/Quarter/QuarterWidgetP.h index c0ed5e01ad..6cdab776cb 100644 --- a/src/Gui/Quarter/QuarterWidgetP.h +++ b/src/Gui/Quarter/QuarterWidgetP.h @@ -61,7 +61,7 @@ class ContextMenu; class QuarterWidgetP { public: - QuarterWidgetP(class QuarterWidget * master, const QtGLWidget * sharewidget); + QuarterWidgetP(class QuarterWidget * master, const QOpenGLWidget * sharewidget); ~QuarterWidgetP(); SoCamera * searchForCamera(SoNode * root); @@ -109,11 +109,11 @@ public: mutable ContextMenu * contextmenu; static bool nativeEventFilter(void * message, long * result); - void replaceGLWidget(const QtGLWidget * newviewport); + void replaceGLWidget(const QOpenGLWidget * newviewport); private: - QuarterWidgetP_cachecontext * findCacheContext(QuarterWidget * widget, const QtGLWidget * sharewidget); - static void removeFromCacheContext(QuarterWidgetP_cachecontext * context, const QtGLWidget * widget); + QuarterWidgetP_cachecontext * findCacheContext(QuarterWidget * widget, const QOpenGLWidget * sharewidget); + static void removeFromCacheContext(QuarterWidgetP_cachecontext * context, const QOpenGLWidget * widget); }; #endif // QUARTER_QUARTERWIDGETP_H diff --git a/src/Gui/Quarter/SoQTQuarterAdaptor.cpp b/src/Gui/Quarter/SoQTQuarterAdaptor.cpp index 72dddc75a3..d585842c18 100644 --- a/src/Gui/Quarter/SoQTQuarterAdaptor.cpp +++ b/src/Gui/Quarter/SoQTQuarterAdaptor.cpp @@ -148,7 +148,7 @@ constexpr const int defaultSize = 100; // NOLINTBEGIN(readability-implicit-bool-conversion) SIM::Coin3D::Quarter::SoQTQuarterAdaptor::SoQTQuarterAdaptor(QWidget* parent, - const QtGLWidget* sharewidget, + const QOpenGLWidget* sharewidget, Qt::WindowFlags flags) : QuarterWidget(parent, sharewidget, flags) , matrixaction(SbViewportRegion(defaultSize, defaultSize)) @@ -156,9 +156,9 @@ SIM::Coin3D::Quarter::SoQTQuarterAdaptor::SoQTQuarterAdaptor(QWidget* parent, init(); } -SIM::Coin3D::Quarter::SoQTQuarterAdaptor::SoQTQuarterAdaptor(const QtGLFormat& format, +SIM::Coin3D::Quarter::SoQTQuarterAdaptor::SoQTQuarterAdaptor(const QSurfaceFormat& format, QWidget* parent, - const QtGLWidget* shareWidget, + const QOpenGLWidget* shareWidget, Qt::WindowFlags flags) : QuarterWidget(format, parent, shareWidget, flags) , matrixaction(SbViewportRegion(defaultSize, defaultSize)) @@ -166,9 +166,9 @@ SIM::Coin3D::Quarter::SoQTQuarterAdaptor::SoQTQuarterAdaptor(const QtGLFormat& f init(); } -SIM::Coin3D::Quarter::SoQTQuarterAdaptor::SoQTQuarterAdaptor(QtGLContext* context, +SIM::Coin3D::Quarter::SoQTQuarterAdaptor::SoQTQuarterAdaptor(QOpenGLContext* context, QWidget* parent, - const QtGLWidget* sharewidget, + const QOpenGLWidget* sharewidget, Qt::WindowFlags flags) : QuarterWidget(context, parent, sharewidget, flags) , matrixaction(SbViewportRegion(defaultSize, defaultSize)) diff --git a/src/Gui/Quarter/SoQTQuarterAdaptor.h b/src/Gui/Quarter/SoQTQuarterAdaptor.h index 8cfe271cb9..b9af2b3c32 100644 --- a/src/Gui/Quarter/SoQTQuarterAdaptor.h +++ b/src/Gui/Quarter/SoQTQuarterAdaptor.h @@ -50,15 +50,15 @@ class QUARTER_DLL_API SoQTQuarterAdaptor : public QuarterWidget { public: explicit SoQTQuarterAdaptor(QWidget* parent = nullptr, - const QtGLWidget* sharewidget = nullptr, + const QOpenGLWidget* sharewidget = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); - explicit SoQTQuarterAdaptor(const QtGLFormat& format, + explicit SoQTQuarterAdaptor(const QSurfaceFormat& format, QWidget* parent = nullptr, - const QtGLWidget* shareWidget = nullptr, + const QOpenGLWidget* shareWidget = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); - explicit SoQTQuarterAdaptor(QtGLContext* context, + explicit SoQTQuarterAdaptor(QOpenGLContext* context, QWidget* parent = nullptr, - const QtGLWidget* sharewidget = nullptr, + const QOpenGLWidget* sharewidget = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()); ~SoQTQuarterAdaptor() override; diff --git a/src/Gui/Selection/SoFCSelection.cpp b/src/Gui/Selection/SoFCSelection.cpp index b5dc26de5e..c85781a87b 100644 --- a/src/Gui/Selection/SoFCSelection.cpp +++ b/src/Gui/Selection/SoFCSelection.cpp @@ -884,7 +884,7 @@ SoFCSelection::redrawHighlighted(SoAction * action , SbBool doHighlight ) SoState *state = action->getState(); - QtGLWidget* window; + QOpenGLWidget* window; SoGLRenderAction *glAction; SoGLWidgetElement::get(state, window); SoGLRenderActionElement::get(state, glAction); diff --git a/src/Gui/Selection/SoFCUnifiedSelection.cpp b/src/Gui/Selection/SoFCUnifiedSelection.cpp index 79460ba148..cfea8bc4e3 100644 --- a/src/Gui/Selection/SoFCUnifiedSelection.cpp +++ b/src/Gui/Selection/SoFCUnifiedSelection.cpp @@ -788,7 +788,7 @@ void SoFCUnifiedSelection::GLRenderBelowPath(SoGLRenderAction * action) // this is called when a selection gate forbade to select an object // and the user moved the mouse to an empty area this->preSelection = -1; - QtGLWidget* window; + QOpenGLWidget* window; SoState *state = action->getState(); SoGLWidgetElement::get(state, window); QWidget* parent = window ? window->parentWidget() : nullptr; diff --git a/src/Gui/SoFCInteractiveElement.cpp b/src/Gui/SoFCInteractiveElement.cpp index 497ddd62dc..1f347e6caa 100644 --- a/src/Gui/SoFCInteractiveElement.cpp +++ b/src/Gui/SoFCInteractiveElement.cpp @@ -86,14 +86,14 @@ void SoGLWidgetElement::init(SoState * state) SoGLWidgetElement::~SoGLWidgetElement() = default; -void SoGLWidgetElement::set(SoState * state, QtGLWidget * window) +void SoGLWidgetElement::set(SoState * state, QOpenGLWidget * window) { auto elem = static_cast (SoElement::getElement(state, classStackIndex)); elem->window = window; } -void SoGLWidgetElement::get(SoState * state, QtGLWidget *& window) +void SoGLWidgetElement::get(SoState * state, QOpenGLWidget *& window) { const auto that = static_cast (SoElement::getConstElement(state, classStackIndex)); diff --git a/src/Gui/SoFCInteractiveElement.h b/src/Gui/SoFCInteractiveElement.h index 41eb54ca37..4f540ee4c4 100644 --- a/src/Gui/SoFCInteractiveElement.h +++ b/src/Gui/SoFCInteractiveElement.h @@ -29,9 +29,9 @@ #include #include -#include #include +class QOpenGLWidget; namespace Gui { /** @@ -73,14 +73,14 @@ public: SbBool matches(const SoElement * element) const override; SoElement * copyMatchInfo() const override; - static void set(SoState * state, QtGLWidget * window); - static void get(SoState * state, QtGLWidget *& window); + static void set(SoState * state, QOpenGLWidget * window); + static void get(SoState * state, QOpenGLWidget *& window); protected: ~SoGLWidgetElement() override; protected: - QtGLWidget * window; + QOpenGLWidget * window; }; class GuiExport SoGLRenderActionElement : public SoElement { @@ -117,7 +117,7 @@ public: static void initClass(); SoGLWidgetNode(); - QtGLWidget * window{nullptr}; + QOpenGLWidget * window{nullptr}; void doAction(SoAction * action) override; void GLRender(SoGLRenderAction * action) override; diff --git a/src/Gui/SoFCOffscreenRenderer.cpp b/src/Gui/SoFCOffscreenRenderer.cpp index 46df0a5641..522b0986df 100644 --- a/src/Gui/SoFCOffscreenRenderer.cpp +++ b/src/Gui/SoFCOffscreenRenderer.cpp @@ -563,9 +563,9 @@ SoQtOffscreenRenderer::makeFrameBuffer(int width, int height, int samples) viewport.setWindowSize(width, height); - QtGLFramebufferObjectFormat fmt; + QOpenGLFramebufferObjectFormat fmt; fmt.setSamples(samples); - fmt.setAttachment(QtGLFramebufferObject::Depth); + fmt.setAttachment(QOpenGLFramebufferObject::Depth); // With enabled alpha a transparent background is supported but // at the same time breaks semi-transparent models. A workaround // is to use a certain background color using GL_RGB as texture @@ -573,7 +573,7 @@ SoQtOffscreenRenderer::makeFrameBuffer(int width, int height, int samples) // replaces it with the color requested by the user. fmt.setInternalTextureFormat(this->texFormat); - framebuffer = new QtGLFramebufferObject(width, height, fmt); + framebuffer = new QOpenGLFramebufferObject(width, height, fmt); cache_context = SoGLCacheContextElement::getUniqueCacheContext(); // unique per pixel buffer object, just to be sure } diff --git a/src/Gui/SoFCOffscreenRenderer.h b/src/Gui/SoFCOffscreenRenderer.h index 5354dc1137..0d8e73a77a 100644 --- a/src/Gui/SoFCOffscreenRenderer.h +++ b/src/Gui/SoFCOffscreenRenderer.h @@ -136,7 +136,7 @@ private: SbBool renderFromBase(SoBase * base); void makeFrameBuffer(int width, int height, int samples); - QtGLFramebufferObject* framebuffer; + QOpenGLFramebufferObject* framebuffer; uint32_t cache_context; // our unique context id SbViewportRegion viewport; diff --git a/src/Gui/SoTextLabel.cpp b/src/Gui/SoTextLabel.cpp index a08cc645d3..16ceb94de0 100644 --- a/src/Gui/SoTextLabel.cpp +++ b/src/Gui/SoTextLabel.cpp @@ -307,7 +307,7 @@ SoStringLabel::SoStringLabel() */ void SoStringLabel::GLRender(SoGLRenderAction *action) { - QtGLWidget* window; + QOpenGLWidget* window; SoState * state = action->getState(); state->push(); SoLazyElement::setLightModel(state, SoLazyElement::BASE_COLOR); diff --git a/src/Gui/SplitView3DInventor.cpp b/src/Gui/SplitView3DInventor.cpp index 94e7ec4a72..acc2792155 100644 --- a/src/Gui/SplitView3DInventor.cpp +++ b/src/Gui/SplitView3DInventor.cpp @@ -580,7 +580,7 @@ SplitView3DInventor::SplitView3DInventor(int views, Gui::Document* pcDocument, Q bool smoothing = false; bool glformat = false; int samples = View3DInventorViewer::getNumSamples(); - QtGLFormat f; + QSurfaceFormat f; if (samples > 1) { glformat = true; diff --git a/src/Gui/View3DInventor.cpp b/src/Gui/View3DInventor.cpp index 87e9615046..3238001f63 100644 --- a/src/Gui/View3DInventor.cpp +++ b/src/Gui/View3DInventor.cpp @@ -93,7 +93,7 @@ void GLOverlayWidget::paintEvent(QPaintEvent*) TYPESYSTEM_SOURCE_ABSTRACT(Gui::View3DInventor,Gui::MDIView) View3DInventor::View3DInventor(Gui::Document* pcDocument, QWidget* parent, - const QtGLWidget* sharewidget, Qt::WindowFlags wflags) + const QOpenGLWidget* sharewidget, Qt::WindowFlags wflags) : MDIView(pcDocument, parent, wflags), _viewerPy(nullptr) { stack = new QStackedWidget(this); @@ -106,7 +106,7 @@ View3DInventor::View3DInventor(Gui::Document* pcDocument, QWidget* parent, bool smoothing = false; bool glformat = false; int samples = View3DInventorViewer::getNumSamples(); - QtGLFormat f; + QSurfaceFormat f; if (samples > 1) { glformat = true; diff --git a/src/Gui/View3DInventor.h b/src/Gui/View3DInventor.h index e02d49a54b..9aeff252fa 100644 --- a/src/Gui/View3DInventor.h +++ b/src/Gui/View3DInventor.h @@ -82,7 +82,7 @@ class GuiExport View3DInventor : public MDIView TYPESYSTEM_HEADER_WITH_OVERRIDE(); public: - View3DInventor(Gui::Document* pcDocument, QWidget* parent, const QtGLWidget* sharewidget = nullptr, Qt::WindowFlags wflags=Qt::WindowFlags()); + View3DInventor(Gui::Document* pcDocument, QWidget* parent, const QOpenGLWidget* sharewidget = nullptr, Qt::WindowFlags wflags=Qt::WindowFlags()); ~View3DInventor() override; /// Message handler diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp index 2f6c0e60ae..f3d8a59c05 100644 --- a/src/Gui/View3DInventorViewer.cpp +++ b/src/Gui/View3DInventorViewer.cpp @@ -365,7 +365,7 @@ public: // ************************************************************************* -View3DInventorViewer::View3DInventorViewer(QWidget* parent, const QtGLWidget* sharewidget) +View3DInventorViewer::View3DInventorViewer(QWidget* parent, const QOpenGLWidget* sharewidget) : Quarter::SoQTQuarterAdaptor(parent, sharewidget) , SelectionObserver(false, ResolveMode::NoResolve) , editViewProvider(nullptr) @@ -385,7 +385,7 @@ View3DInventorViewer::View3DInventorViewer(QWidget* parent, const QtGLWidget* sh init(); } -View3DInventorViewer::View3DInventorViewer(const QtGLFormat& format, QWidget* parent, const QtGLWidget* sharewidget) +View3DInventorViewer::View3DInventorViewer(const QSurfaceFormat& format, QWidget* parent, const QOpenGLWidget* sharewidget) : Quarter::SoQTQuarterAdaptor(format, parent, sharewidget) , SelectionObserver(false, ResolveMode::NoResolve) , editViewProvider(nullptr) @@ -739,7 +739,7 @@ void View3DInventorViewer::createStandardCursors(double dpr) void View3DInventorViewer::aboutToDestroyGLContext() { if (naviCube) { - if (auto gl = qobject_cast(this->viewport())) { + if (auto gl = qobject_cast(this->viewport())) { gl->makeCurrent(); } delete naviCube; @@ -1257,7 +1257,7 @@ void View3DInventorViewer::setGLWidgetCB(void* userdata, SoAction* action) // Separator (set envvar COIN_GLERROR_DEBUGGING=1 and re-run to get more information) if (action->isOfType(SoGLRenderAction::getClassTypeId())) { auto gl = static_cast(userdata); - SoGLWidgetElement::set(action->getState(), qobject_cast(gl)); + SoGLWidgetElement::set(action->getState(), qobject_cast(gl)); } } @@ -1267,7 +1267,7 @@ void View3DInventorViewer::handleEventCB(void* userdata, SoEventCallback* n) SoGLRenderAction* glra = that->getSoRenderManager()->getGLRenderAction(); SoAction* action = n->getAction(); SoGLRenderActionElement::set(action->getState(), glra); - SoGLWidgetElement::set(action->getState(), qobject_cast(that->getGLWidget())); + SoGLWidgetElement::set(action->getState(), qobject_cast(that->getGLWidget())); } void View3DInventorViewer::setGradientBackground(View3DInventorViewer::Background grad) @@ -2124,15 +2124,15 @@ void View3DInventorViewer::setRenderType(RenderType type) int width = size[0]; int height = size[1]; - auto gl = static_cast(this->viewport()); // NOLINT + auto gl = static_cast(this->viewport()); // NOLINT gl->makeCurrent(); QOpenGLFramebufferObjectFormat fboFormat; fboFormat.setSamples(getNumSamples()); - fboFormat.setAttachment(QtGLFramebufferObject::Depth); - auto fbo = new QtGLFramebufferObject(width, height, fboFormat); + fboFormat.setAttachment(QOpenGLFramebufferObject::Depth); + auto fbo = new QOpenGLFramebufferObject(width, height, fboFormat); if (fbo->format().samples() > 0) { renderToFramebuffer(fbo); - framebuffer = new QtGLFramebufferObject(fbo->size()); + framebuffer = new QOpenGLFramebufferObject(fbo->size()); // this is needed to be able to render the texture later QOpenGLFramebufferObject::blitFramebuffer(framebuffer, fbo); delete fbo; @@ -2158,7 +2158,7 @@ View3DInventorViewer::RenderType View3DInventorViewer::getRenderType() const QImage View3DInventorViewer::grabFramebuffer() { - auto gl = static_cast(this->viewport()); // NOLINT + auto gl = static_cast(this->viewport()); // NOLINT gl->makeCurrent(); QImage res; @@ -2200,18 +2200,18 @@ QImage View3DInventorViewer::grabFramebuffer() void View3DInventorViewer::imageFromFramebuffer(int width, int height, int samples, const QColor& bgcolor, QImage& img) { - auto gl = static_cast(this->viewport()); // NOLINT + auto gl = static_cast(this->viewport()); // NOLINT gl->makeCurrent(); - const QtGLContext* context = QtGLContext::currentContext(); + const QOpenGLContext* context = QOpenGLContext::currentContext(); if (!context) { Base::Console().Warning("imageFromFramebuffer failed because no context is active\n"); return; } - QtGLFramebufferObjectFormat fboFormat; + QOpenGLFramebufferObjectFormat fboFormat; fboFormat.setSamples(samples); - fboFormat.setAttachment(QtGLFramebufferObject::Depth); + fboFormat.setAttachment(QOpenGLFramebufferObject::Depth); // With enabled alpha a transparent background is supported but // at the same time breaks semi-transparent models. A workaround // is to use a certain background color using GL_RGB as texture @@ -2219,7 +2219,7 @@ void View3DInventorViewer::imageFromFramebuffer(int width, int height, int sampl // replaces it with the color requested by the user. fboFormat.setInternalTextureFormat(getInternalTextureFormat()); - QtGLFramebufferObject fbo(width, height, fboFormat); + QOpenGLFramebufferObject fbo(width, height, fboFormat); const QColor col = backgroundColor(); auto grad = getGradientBackground(); @@ -2268,9 +2268,9 @@ void View3DInventorViewer::imageFromFramebuffer(int width, int height, int sampl } } -void View3DInventorViewer::renderToFramebuffer(QtGLFramebufferObject* fbo) +void View3DInventorViewer::renderToFramebuffer(QOpenGLFramebufferObject* fbo) { - static_cast(this->viewport())->makeCurrent(); // NOLINT + static_cast(this->viewport())->makeCurrent(); // NOLINT fbo->bind(); int width = fbo->size().width(); int height = fbo->size().height(); @@ -2435,7 +2435,7 @@ void View3DInventorViewer::renderScene() SoGLRenderAction* glra = this->getSoRenderManager()->getGLRenderAction(); SoState* state = glra->getState(); SoDevicePixelRatioElement::set(state, devicePixelRatio()); - SoGLWidgetElement::set(state, qobject_cast(this->getGLWidget())); + SoGLWidgetElement::set(state, qobject_cast(this->getGLWidget())); SoGLRenderActionElement::set(state, glra); SoGLVBOActivatedElement::set(state, this->vboEnabled); drawSingleBackground(col); diff --git a/src/Gui/View3DInventorViewer.h b/src/Gui/View3DInventorViewer.h index 0c53407303..f025be8a65 100644 --- a/src/Gui/View3DInventorViewer.h +++ b/src/Gui/View3DInventorViewer.h @@ -137,8 +137,8 @@ public: }; //@} - explicit View3DInventorViewer (QWidget *parent, const QtGLWidget* sharewidget = nullptr); - View3DInventorViewer (const QtGLFormat& format, QWidget *parent, const QtGLWidget* sharewidget = nullptr); + explicit View3DInventorViewer (QWidget *parent, const QOpenGLWidget* sharewidget = nullptr); + View3DInventorViewer (const QSurfaceFormat& format, QWidget *parent, const QOpenGLWidget* sharewidget = nullptr); ~View3DInventorViewer() override; void init(); @@ -183,7 +183,7 @@ public: static int getNumSamples(); void setRenderType(RenderType type); RenderType getRenderType() const; - void renderToFramebuffer(QtGLFramebufferObject*); + void renderToFramebuffer(QOpenGLFramebufferObject*); QImage grabFramebuffer(); void imageFromFramebuffer(int width, int height, int samples, const QColor& bgcolor, QImage& img); @@ -530,7 +530,7 @@ private: SoClipPlane *pcClipPlane; RenderType renderType; - QtGLFramebufferObject* framebuffer; + QOpenGLFramebufferObject* framebuffer; QImage glImage; bool shading; SoSwitch *dimensionRoot; diff --git a/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp b/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp index 82b3002259..fc7d8296f8 100644 --- a/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp +++ b/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp @@ -414,7 +414,7 @@ bool MeshRenderer::matchMaterial(SoState* state) const bool MeshRenderer::shouldRenderDirectly(bool direct) { #ifdef RENDER_GL_VAO - Q_UNUSED(direct); + (void)direct; return false; #else return direct; @@ -754,7 +754,7 @@ void SoFCIndexedFaceSet::generateGLArrays(SoGLRenderAction* action) numcolors = gl->getNumDiffuse(); transp = gl->getTransparencyPointer(); numtransp = gl->getNumTransparencies(); - Q_UNUSED(numtransp); + (void)numtransp; } std::vector face_vertices; diff --git a/src/Mod/Sandbox/Gui/Overlay.cpp b/src/Mod/Sandbox/Gui/Overlay.cpp index 2bf24b86b1..71ecc5678c 100644 --- a/src/Mod/Sandbox/Gui/Overlay.cpp +++ b/src/Mod/Sandbox/Gui/Overlay.cpp @@ -47,7 +47,7 @@ using namespace SandboxGui; class MyPaintable : public Gui::GLGraphicsItem { - QtGLFramebufferObject* fbo; + QOpenGLFramebufferObject* fbo; Gui::View3DInventorViewer* view; QImage img; public: @@ -63,7 +63,7 @@ public: p.drawText(200,200,QStringLiteral("Render to QImage")); } - fbo = new QtGLFramebufferObject(v->getGLWidget()->size()); + fbo = new QOpenGLFramebufferObject(v->getGLWidget()->size()); fbo->bind(); fbo->release(); @@ -92,7 +92,7 @@ public: class Teapots : public Gui::GLGraphicsItem { - QtGLFramebufferObject *fbObject; + QOpenGLFramebufferObject *fbObject; GLuint glTeapotObject; QPoint rubberBandCorner1; QPoint rubberBandCorner2; @@ -106,8 +106,8 @@ Teapots(Gui::View3DInventorViewer* v) :view(v) SbVec2s size = vp.getViewportSizePixels(); rubberBandIsShown = false; - fbObject = new QtGLFramebufferObject(size[0],size[1], - QtGLFramebufferObject::Depth); + fbObject = new QOpenGLFramebufferObject(size[0],size[1], + QOpenGLFramebufferObject::Depth); resizeGL(size[0],size[1]); rubberBandIsShown = true; @@ -332,7 +332,7 @@ DrawingPlane::~DrawingPlane() void DrawingPlane::initialize() { - fbo = new QtGLFramebufferObject(128, 128,QtGLFramebufferObject::Depth); + fbo = new QOpenGLFramebufferObject(128, 128,QOpenGLFramebufferObject::Depth); } void DrawingPlane::terminate() @@ -353,7 +353,7 @@ void DrawingPlane::draw () {return; if (1/*mustRedraw*/) { SbVec2s view = _pcView3D->getSoRenderManager()->getSize(); - static_cast(_pcView3D->getGLWidget())->makeCurrent(); + static_cast(_pcView3D->getGLWidget())->makeCurrent(); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); diff --git a/src/Mod/Sandbox/Gui/Overlay.h b/src/Mod/Sandbox/Gui/Overlay.h index b4342087df..c91d650cf0 100644 --- a/src/Mod/Sandbox/Gui/Overlay.h +++ b/src/Mod/Sandbox/Gui/Overlay.h @@ -55,7 +55,7 @@ private: QPoint lastPoint; QList selection; - QtGLFramebufferObject* fbo; + QOpenGLFramebufferObject* fbo; }; } // SandboxGui diff --git a/src/QtOpenGL.h.cmake b/src/QtOpenGL.h similarity index 86% rename from src/QtOpenGL.h.cmake rename to src/QtOpenGL.h index a871f0bb50..24473f41cd 100644 --- a/src/QtOpenGL.h.cmake +++ b/src/QtOpenGL.h @@ -24,8 +24,6 @@ #ifndef QUARTER_QTOPENGL_H #define QUARTER_QTOPENGL_H -/* QtOpenGL.h. Generated from QtOpenGL.h.cmake by cmake. */ - #include #include #include @@ -33,10 +31,4 @@ #include #include -using QtGLContext = QOpenGLContext; -using QtGLFormat = QSurfaceFormat; -using QtGLWidget = QOpenGLWidget; -using QtGLFramebufferObject = QOpenGLFramebufferObject; -using QtGLFramebufferObjectFormat = QOpenGLFramebufferObjectFormat; - #endif //QUARTER_QTOPENGL_H