ui: use QOpenGLWindow instead of QOpenGLWidget for all panels

This commit is contained in:
itsmattkc
2022-06-12 10:28:15 -07:00
parent b9119e21f4
commit 5ef56c8047
9 changed files with 66 additions and 32 deletions
+21 -2
View File
@@ -61,11 +61,14 @@ ManagedDisplayWidget::ManagedDisplayWidget(QWidget *parent) :
// Create OpenGL renderer
attached_renderer_ = new OpenGLRenderer(this);
// Create widget wrapper for OpenGL window
wrapper_ = QWidget::createWindowContainer(static_cast<ManagedDisplayWidgetOpenGL*>(inner_widget_));
layout->addWidget(wrapper_);
} else {
inner_widget_ = nullptr;
wrapper_ = nullptr;
}
layout->addWidget(inner_widget_);
}
ManagedDisplayWidget::~ManagedDisplayWidget()
@@ -253,6 +256,22 @@ void ManagedDisplayWidget::doneCurrent()
}
}
QPaintDevice *ManagedDisplayWidget::paint_device() const
{
if (RenderManager::instance()->backend() == RenderManager::kOpenGL) {
return static_cast<ManagedDisplayWidgetOpenGL*>(inner_widget_);
} else {
return nullptr;
}
}
void ManagedDisplayWidget::SetInnerMouseTracking(bool e)
{
if (wrapper_) {
wrapper_->setMouseTracking(e);
}
}
void ManagedDisplayWidget::update()
{
if (RenderManager::instance()->backend() == RenderManager::kOpenGL) {