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.
This commit is contained in:
Joao Matos
2025-02-15 13:40:48 +00:00
parent cf477695f9
commit 91e94ba1dd
31 changed files with 110 additions and 125 deletions

View File

@@ -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)

View File

@@ -1999,11 +1999,11 @@ MDIView *Document::createView(const Base::Type& typeId)
std::list<MDIView*> 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<View3DInventor*>(theViews.front());
shareWidget = qobject_cast<QtGLWidget*>(firstView->getViewer()->getGLWidget());
shareWidget = qobject_cast<QOpenGLWidget*>(firstView->getViewer()->getGLWidget());
const char *ppReturn = nullptr;
firstView->onMsg("GetCamera",&ppReturn);

View File

@@ -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)

View File

@@ -25,6 +25,7 @@
#define GUI_FLAG_H
#include <QLayout>
#include <QOpenGLWidget>
#include <QRect>
#include <QWidgetItem>
#include <Inventor/SbVec3f.h>
@@ -36,7 +37,7 @@ class View3DInventorViewer;
/**
* @author Werner Mayer
*/
class GuiExport Flag : public QtGLWidget
class GuiExport Flag : public QOpenGLWidget
{
Q_OBJECT

View File

@@ -51,7 +51,7 @@ bool GLPainter::begin(QPaintDevice * device)
if (viewer)
return false;
viewer = dynamic_cast<QtGLWidget*>(device);
viewer = dynamic_cast<QOpenGLWidget*>(device);
if (!viewer)
return false;

View File

@@ -24,24 +24,18 @@
#ifndef GUI_GLPAINTER_H
#define GUI_GLPAINTER_H
#ifdef FC_OS_WIN32
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <windows.h>
#endif
#ifdef FC_OS_MACOSX
#include <OpenGL/gl.h>
#else
#include <GL/gl.h>
#endif
#include <Base/BaseClass.h>
#include <FCGlobal.h>
#include <QtOpenGL.h>
#include <QPoint>
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};
};

View File

@@ -352,7 +352,7 @@ public:
bool smoothing = false;
bool glformat = false;
int samples = View3DInventorViewer::getNumSamples();
QtGLFormat f;
QSurfaceFormat f;
if (samples > 1) {
glformat = true;

View File

@@ -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();

View File

@@ -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<PickId, Face> 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<QtGLWidget*>(m_View3DInventorViewer->viewport())->makeCurrent();
static_cast<QOpenGLWidget*>(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<QtGLWidget*>(m_View3DInventorViewer->viewport())->doneCurrent();
static_cast<QOpenGLWidget*>(m_View3DInventorViewer->viewport())->doneCurrent();
}
return pixels[3] == 255 ? static_cast<PickId>(pixels[0]) : PickId::None;
}

View File

@@ -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<QtGLWidget*>(this->viewport());
QOpenGLWidget* w = static_cast<QOpenGLWidget*>(this->viewport());
if (!w->isValid()) {
qWarning() << "No valid GL context found!";
return;

View File

@@ -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;

View File

@@ -63,12 +63,12 @@ using namespace SIM::Coin3D::Quarter;
class QuarterWidgetP_cachecontext {
public:
uint32_t id;
SbList <const QtGLWidget *> widgetlist;
SbList <const QOpenGLWidget *> widgetlist;
};
static SbList <QuarterWidgetP_cachecontext *> * 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<QtGLWidget*>(this->master->viewport());
QOpenGLWidget* glMaster = static_cast<QOpenGLWidget*>(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<const QtGLWidget*>(widget->viewport()));
cachecontext->widgetlist.append(static_cast<const QOpenGLWidget*>(widget->viewport()));
return cachecontext;
}
}
}
QuarterWidgetP_cachecontext * cachecontext = new QuarterWidgetP_cachecontext;
cachecontext->id = SoGLCacheContextElement::getUniqueCacheContext();
cachecontext->widgetlist.append(static_cast<const QtGLWidget*>(widget->viewport()));
cachecontext->widgetlist.append(static_cast<const QOpenGLWidget*>(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<QtGLWidget*> (widget)->makeCurrent();
const_cast<QOpenGLWidget*> (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<QtGLWidget*> (widget)->doneCurrent();
const_cast<QOpenGLWidget*> (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<QtGLWidget*>(this->master->viewport());
QOpenGLWidget* oldviewport = static_cast<QOpenGLWidget*>(this->master->viewport());
cachecontext->widgetlist.removeItem(oldviewport);
cachecontext->widgetlist.append(newviewport);
}

View File

@@ -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

View File

@@ -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))

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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<SoGLWidgetElement *>
(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<const SoGLWidgetElement *>
(SoElement::getConstElement(state, classStackIndex));

View File

@@ -29,9 +29,9 @@
#include <Inventor/nodes/SoNode.h>
#include <Inventor/nodes/SoSubNode.h>
#include <QtOpenGL.h>
#include <FCGlobal.h>
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;

View File

@@ -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
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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<QtGLWidget*>(this->viewport())) {
if (auto gl = qobject_cast<QOpenGLWidget*>(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<QWidget*>(userdata);
SoGLWidgetElement::set(action->getState(), qobject_cast<QtGLWidget*>(gl));
SoGLWidgetElement::set(action->getState(), qobject_cast<QOpenGLWidget*>(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<QtGLWidget*>(that->getGLWidget()));
SoGLWidgetElement::set(action->getState(), qobject_cast<QOpenGLWidget*>(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<QtGLWidget*>(this->viewport()); // NOLINT
auto gl = static_cast<QOpenGLWidget*>(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<QtGLWidget*>(this->viewport()); // NOLINT
auto gl = static_cast<QOpenGLWidget*>(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<QtGLWidget*>(this->viewport()); // NOLINT
auto gl = static_cast<QOpenGLWidget*>(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<QtGLWidget*>(this->viewport())->makeCurrent(); // NOLINT
static_cast<QOpenGLWidget*>(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<QtGLWidget*>(this->getGLWidget()));
SoGLWidgetElement::set(state, qobject_cast<QOpenGLWidget*>(this->getGLWidget()));
SoGLRenderActionElement::set(state, glra);
SoGLVBOActivatedElement::set(state, this->vboEnabled);
drawSingleBackground(col);

View File

@@ -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;

View File

@@ -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<float> face_vertices;

View File

@@ -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<QtGLWidget*>(_pcView3D->getGLWidget())->makeCurrent();
static_cast<QOpenGLWidget*>(_pcView3D->getGLWidget())->makeCurrent();
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();

View File

@@ -55,7 +55,7 @@ private:
QPoint lastPoint;
QList<QPoint> selection;
QtGLFramebufferObject* fbo;
QOpenGLFramebufferObject* fbo;
};
} // SandboxGui

View File

@@ -24,8 +24,6 @@
#ifndef QUARTER_QTOPENGL_H
#define QUARTER_QTOPENGL_H
/* QtOpenGL.h. Generated from QtOpenGL.h.cmake by cmake. */
#include <QOpenGLContext>
#include <QSurfaceFormat>
#include <QOpenGLWidget>
@@ -33,10 +31,4 @@
#include <QOpenGLVersionProfile>
#include <QOpenGLFunctions>
using QtGLContext = QOpenGLContext;
using QtGLFormat = QSurfaceFormat;
using QtGLWidget = QOpenGLWidget;
using QtGLFramebufferObject = QOpenGLFramebufferObject;
using QtGLFramebufferObjectFormat = QOpenGLFramebufferObjectFormat;
#endif //QUARTER_QTOPENGL_H