From 91e94ba1dd0bce056a8aeb7710283c579c015cd6 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Sat, 15 Feb 2025 13:40:48 +0000 Subject: [PATCH 1/3] 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 From 3b05b61de217a28dc3ee8cf2782d61cd5e207652 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Mon, 24 Feb 2025 21:16:27 +0000 Subject: [PATCH 2/3] Gui: Remove `QtOpenGL.h`. --- src/Gui/Document.cpp | 1 + src/Gui/GLPainter.cpp | 2 ++ src/Gui/GLPainter.h | 18 ++++++++---- src/Gui/MainWindow.cpp | 1 + src/Gui/ManualAlignment.cpp | 1 + src/Gui/MouseSelection.cpp | 1 + src/Gui/NaviCube.cpp | 4 ++- src/Gui/Quarter/QuarterWidget.cpp | 1 + src/Gui/Quarter/QuarterWidget.h | 4 ++- src/Gui/Quarter/QuarterWidgetP.cpp | 2 ++ src/Gui/Quarter/QuarterWidgetP.h | 2 +- src/Gui/Quarter/SoQTQuarterAdaptor.cpp | 11 +++++-- src/Gui/Quarter/SoQTQuarterAdaptor.h | 3 ++ src/Gui/Selection/SoFCUnifiedSelection.cpp | 2 ++ src/Gui/SoFCOffscreenRenderer.cpp | 2 ++ src/Gui/SoFCOffscreenRenderer.h | 11 ++++++- src/Gui/SoTextLabel.cpp | 2 -- src/Gui/SplitView3DInventor.cpp | 1 + src/Gui/View3DInventor.h | 2 +- src/Gui/View3DInventorViewer.cpp | 3 ++ src/Gui/View3DInventorViewer.h | 12 ++++++++ src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp | 3 +- src/Mod/Sandbox/Gui/Overlay.cpp | 4 +-- src/Mod/Sandbox/Gui/Overlay.h | 1 - src/Mod/Sandbox/Gui/Workbench.cpp | 2 -- src/Mod/TechDraw/Gui/QGVPage.cpp | 1 + src/QtOpenGL.h | 34 ---------------------- 27 files changed, 73 insertions(+), 58 deletions(-) delete mode 100644 src/QtOpenGL.h diff --git a/src/Gui/Document.cpp b/src/Gui/Document.cpp index 6c4ce52bec..18b71de9c9 100644 --- a/src/Gui/Document.cpp +++ b/src/Gui/Document.cpp @@ -36,6 +36,7 @@ # include # include # include +# include # include # include # include diff --git a/src/Gui/GLPainter.cpp b/src/Gui/GLPainter.cpp index a8b4ded3e3..600d2afb71 100644 --- a/src/Gui/GLPainter.cpp +++ b/src/Gui/GLPainter.cpp @@ -25,6 +25,8 @@ #ifndef _PreComp_ #endif +#include + #include "GLPainter.h" #include "View3DInventorViewer.h" diff --git a/src/Gui/GLPainter.h b/src/Gui/GLPainter.h index 228a4ae3cc..cae84007e0 100644 --- a/src/Gui/GLPainter.h +++ b/src/Gui/GLPainter.h @@ -24,6 +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 @@ -31,12 +43,6 @@ 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; class GuiExport GLPainter diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index c02f15cdf6..f9efd1ed51 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -40,6 +40,7 @@ # include # include # include +# include # include # include # include diff --git a/src/Gui/ManualAlignment.cpp b/src/Gui/ManualAlignment.cpp index 224436aa09..10d54bf429 100644 --- a/src/Gui/ManualAlignment.cpp +++ b/src/Gui/ManualAlignment.cpp @@ -30,6 +30,7 @@ # include # include # include +# include # include # include # include diff --git a/src/Gui/MouseSelection.cpp b/src/Gui/MouseSelection.cpp index db87e3cffa..bf90a4054a 100644 --- a/src/Gui/MouseSelection.cpp +++ b/src/Gui/MouseSelection.cpp @@ -23,6 +23,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +#include #include #include #include diff --git a/src/Gui/NaviCube.cpp b/src/Gui/NaviCube.cpp index 7dbf88abb4..75826d7ec4 100644 --- a/src/Gui/NaviCube.cpp +++ b/src/Gui/NaviCube.cpp @@ -41,7 +41,9 @@ # include # include # include +# include # include +# include # include #endif @@ -705,7 +707,7 @@ void NaviCubeImplementation::prepare() delete m_PickingFramebuffer; m_PickingFramebuffer = new QOpenGLFramebufferObject(2 * m_CubeWidgetSize, 2 * m_CubeWidgetSize, - QOpenGLFramebufferObject::CombinedDepthStencil); + QOpenGLFramebufferObject::CombinedDepthStencil); m_View3DInventorViewer->getSoRenderManager()->scheduleRedraw(); } diff --git a/src/Gui/Quarter/QuarterWidget.cpp b/src/Gui/Quarter/QuarterWidget.cpp index 91ab6e6436..bcc76dd297 100644 --- a/src/Gui/Quarter/QuarterWidget.cpp +++ b/src/Gui/Quarter/QuarterWidget.cpp @@ -70,6 +70,7 @@ #include #include #include +#include #include #include #include diff --git a/src/Gui/Quarter/QuarterWidget.h b/src/Gui/Quarter/QuarterWidget.h index c002cbd853..0e9b806745 100644 --- a/src/Gui/Quarter/QuarterWidget.h +++ b/src/Gui/Quarter/QuarterWidget.h @@ -39,10 +39,12 @@ #include #include #include -#include #include "Basic.h" +class QOpenGLContext; +class QOpenGLWidget; +class QSurfaceFormat; class QMenu; class SoNode; diff --git a/src/Gui/Quarter/QuarterWidgetP.cpp b/src/Gui/Quarter/QuarterWidgetP.cpp index fe83f6c061..bdfb46cdd5 100644 --- a/src/Gui/Quarter/QuarterWidgetP.cpp +++ b/src/Gui/Quarter/QuarterWidgetP.cpp @@ -42,6 +42,8 @@ #include #include #include +#include +#include #include #include diff --git a/src/Gui/Quarter/QuarterWidgetP.h b/src/Gui/Quarter/QuarterWidgetP.h index 6cdab776cb..80f16fd2a8 100644 --- a/src/Gui/Quarter/QuarterWidgetP.h +++ b/src/Gui/Quarter/QuarterWidgetP.h @@ -36,8 +36,8 @@ #include #include #include -#include +class QOpenGLWidget; class SoNode; class SoCamera; diff --git a/src/Gui/Quarter/SoQTQuarterAdaptor.cpp b/src/Gui/Quarter/SoQTQuarterAdaptor.cpp index d585842c18..08486cde5a 100644 --- a/src/Gui/Quarter/SoQTQuarterAdaptor.cpp +++ b/src/Gui/Quarter/SoQTQuarterAdaptor.cpp @@ -34,11 +34,16 @@ #include #include -#if !defined(FC_OS_MACOSX) +# ifdef FC_OS_WIN32 +# include +# endif +# ifdef FC_OS_MACOSX +# include +# else # include -# include # include -#endif +# include +# endif #include "SoQTQuarterAdaptor.h" diff --git a/src/Gui/Quarter/SoQTQuarterAdaptor.h b/src/Gui/Quarter/SoQTQuarterAdaptor.h index b9af2b3c32..27187c5c07 100644 --- a/src/Gui/Quarter/SoQTQuarterAdaptor.h +++ b/src/Gui/Quarter/SoQTQuarterAdaptor.h @@ -31,6 +31,9 @@ #include "QuarterWidget.h" +class QOpenGLContext; +class QOpenGLWidget; +class QSurfaceFormat; class SbViewportRegion; class SoCamera; diff --git a/src/Gui/Selection/SoFCUnifiedSelection.cpp b/src/Gui/Selection/SoFCUnifiedSelection.cpp index cfea8bc4e3..1bf440887a 100644 --- a/src/Gui/Selection/SoFCUnifiedSelection.cpp +++ b/src/Gui/Selection/SoFCUnifiedSelection.cpp @@ -70,6 +70,8 @@ # include #endif +#include + #include #include #include diff --git a/src/Gui/SoFCOffscreenRenderer.cpp b/src/Gui/SoFCOffscreenRenderer.cpp index 522b0986df..91164936d1 100644 --- a/src/Gui/SoFCOffscreenRenderer.cpp +++ b/src/Gui/SoFCOffscreenRenderer.cpp @@ -43,6 +43,8 @@ # include #endif +#include +#include #include #include diff --git a/src/Gui/SoFCOffscreenRenderer.h b/src/Gui/SoFCOffscreenRenderer.h index 0d8e73a77a..3134cb71ea 100644 --- a/src/Gui/SoFCOffscreenRenderer.h +++ b/src/Gui/SoFCOffscreenRenderer.h @@ -27,12 +27,21 @@ #include #include +#ifdef FC_OS_MACOSX +# include +#else +# ifdef FC_OS_WIN32 +# include +# endif // FC_OS_WIN32 +# include +#endif // FC_OS_MACOSX + #include #include -#include #include +class QOpenGLFramebufferObject; namespace Gui { diff --git a/src/Gui/SoTextLabel.cpp b/src/Gui/SoTextLabel.cpp index 16ceb94de0..6e533bea98 100644 --- a/src/Gui/SoTextLabel.cpp +++ b/src/Gui/SoTextLabel.cpp @@ -58,8 +58,6 @@ #include #endif -#include - #include "SoTextLabel.h" #include "SoFCInteractiveElement.h" #include "Tools.h" diff --git a/src/Gui/SplitView3DInventor.cpp b/src/Gui/SplitView3DInventor.cpp index acc2792155..027da10e26 100644 --- a/src/Gui/SplitView3DInventor.cpp +++ b/src/Gui/SplitView3DInventor.cpp @@ -24,6 +24,7 @@ #ifndef _PreComp_ # include +# include # include # include # include diff --git a/src/Gui/View3DInventor.h b/src/Gui/View3DInventor.h index 9aeff252fa..efa6416844 100644 --- a/src/Gui/View3DInventor.h +++ b/src/Gui/View3DInventor.h @@ -26,7 +26,6 @@ #include #include #include -#include #include @@ -35,6 +34,7 @@ #include "Base/Vector3D.h" class QPrinter; +class QOpenGLWidget; class QStackedWidget; namespace Gui { diff --git a/src/Gui/View3DInventorViewer.cpp b/src/Gui/View3DInventorViewer.cpp index f3d8a59c05..e62e39c8a0 100644 --- a/src/Gui/View3DInventorViewer.cpp +++ b/src/Gui/View3DInventorViewer.cpp @@ -81,6 +81,9 @@ # include # include # include +# include +# include +# include # include # include # include diff --git a/src/Gui/View3DInventorViewer.h b/src/Gui/View3DInventorViewer.h index f025be8a65..fff99a082b 100644 --- a/src/Gui/View3DInventorViewer.h +++ b/src/Gui/View3DInventorViewer.h @@ -37,6 +37,15 @@ #include #include +#ifdef FC_OS_MACOSX +# include +#else +# ifdef FC_OS_WIN32 +# include +# endif // FC_OS_WIN32 +# include +#endif // FC_OS_MACOSX + #include #include "Namespace.h" @@ -49,6 +58,9 @@ #include #include +class QOpenGLFramebufferObject; +class QOpenGLWidget; +class QSurfaceFormat; class SoTranslation; class SoTransform; diff --git a/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp b/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp index fc7d8296f8..080e0584b2 100644 --- a/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp +++ b/src/Mod/Mesh/Gui/SoFCIndexedFaceSet.cpp @@ -411,10 +411,9 @@ bool MeshRenderer::matchMaterial(SoState* state) const return p->pcolors == pcolors; } -bool MeshRenderer::shouldRenderDirectly(bool direct) +bool MeshRenderer::shouldRenderDirectly([[maybe_unused]] bool direct) { #ifdef RENDER_GL_VAO - (void)direct; return false; #else return direct; diff --git a/src/Mod/Sandbox/Gui/Overlay.cpp b/src/Mod/Sandbox/Gui/Overlay.cpp index 71ecc5678c..a41b128e61 100644 --- a/src/Mod/Sandbox/Gui/Overlay.cpp +++ b/src/Mod/Sandbox/Gui/Overlay.cpp @@ -30,8 +30,6 @@ # include #endif -#include - #include #include #include @@ -107,7 +105,7 @@ Teapots(Gui::View3DInventorViewer* v) :view(v) rubberBandIsShown = false; fbObject = new QOpenGLFramebufferObject(size[0],size[1], - QOpenGLFramebufferObject::Depth); + QOpenGLFramebufferObject::Depth); resizeGL(size[0],size[1]); rubberBandIsShown = true; diff --git a/src/Mod/Sandbox/Gui/Overlay.h b/src/Mod/Sandbox/Gui/Overlay.h index c91d650cf0..814f0f3269 100644 --- a/src/Mod/Sandbox/Gui/Overlay.h +++ b/src/Mod/Sandbox/Gui/Overlay.h @@ -24,7 +24,6 @@ #ifndef SANDBOXGUI_OVERLAY_H #define SANDBOXGUI_OVERLAY_H -#include #include #include #include diff --git a/src/Mod/Sandbox/Gui/Workbench.cpp b/src/Mod/Sandbox/Gui/Workbench.cpp index 2db48a096a..2041262465 100644 --- a/src/Mod/Sandbox/Gui/Workbench.cpp +++ b/src/Mod/Sandbox/Gui/Workbench.cpp @@ -34,8 +34,6 @@ # include #endif -#include - #include "Workbench.h" #include #include diff --git a/src/Mod/TechDraw/Gui/QGVPage.cpp b/src/Mod/TechDraw/Gui/QGVPage.cpp index 840deaa174..f6065b775e 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.cpp +++ b/src/Mod/TechDraw/Gui/QGVPage.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/src/QtOpenGL.h b/src/QtOpenGL.h deleted file mode 100644 index 24473f41cd..0000000000 --- a/src/QtOpenGL.h +++ /dev/null @@ -1,34 +0,0 @@ -/*************************************************************************** - * Copyright (c) 2017 Werner Mayer * - * * - * This file is part of the FreeCAD CAx development system. * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of the GNU Library General Public * - * License as published by the Free Software Foundation; either * - * version 2 of the License, or (at your option) any later version. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this library; see the file COPYING.LIB. If not, * - * write to the Free Software Foundation, Inc., 59 Temple Place, * - * Suite 330, Boston, MA 02111-1307, USA * - * * - ***************************************************************************/ - - -#ifndef QUARTER_QTOPENGL_H -#define QUARTER_QTOPENGL_H - -#include -#include -#include -#include -#include -#include - -#endif //QUARTER_QTOPENGL_H From 7d60b697ea82139c5a3526d79979a242f3a6c4c1 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Mon, 24 Feb 2025 21:17:13 +0000 Subject: [PATCH 3/3] Gui: Group Inventor headers in `View3DInventorViewer.h`. --- src/Gui/View3DInventorViewer.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Gui/View3DInventorViewer.h b/src/Gui/View3DInventorViewer.h index fff99a082b..577b02794d 100644 --- a/src/Gui/View3DInventorViewer.h +++ b/src/Gui/View3DInventorViewer.h @@ -34,7 +34,9 @@ #include #include +#include #include +#include #include #ifdef FC_OS_MACOSX @@ -55,9 +57,6 @@ #include "View3DInventorSelection.h" #include "Quarter/SoQTQuarterAdaptor.h" -#include -#include - class QOpenGLFramebufferObject; class QOpenGLWidget; class QSurfaceFormat;