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:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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};
|
||||
};
|
||||
|
||||
@@ -352,7 +352,7 @@ public:
|
||||
bool smoothing = false;
|
||||
bool glformat = false;
|
||||
int samples = View3DInventorViewer::getNumSamples();
|
||||
QtGLFormat f;
|
||||
QSurfaceFormat f;
|
||||
|
||||
if (samples > 1) {
|
||||
glformat = true;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -55,7 +55,7 @@ private:
|
||||
QPoint lastPoint;
|
||||
QList<QPoint> selection;
|
||||
|
||||
QtGLFramebufferObject* fbo;
|
||||
QOpenGLFramebufferObject* fbo;
|
||||
};
|
||||
|
||||
} // SandboxGui
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user