Skip to content

Commit c263786

Browse files
themightyoarfishmvieth
authored andcommitted
Fix macos opengl-related crashes by setting QSurfaceFormat
1 parent 1d8fd52 commit c263786

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

doc/tutorials/content/sources/qt_visualizer/pclviewer.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "pclviewer.h"
22
#include "ui_pclviewer.h"
3+
#include <QSurfaceFormat>
34

45
#if VTK_MAJOR_VERSION > 8
56
#include <vtkGenericOpenGLRenderWindow.h>
@@ -9,6 +10,9 @@ PCLViewer::PCLViewer (QWidget *parent) :
910
QMainWindow (parent),
1011
ui (new Ui::PCLViewer)
1112
{
13+
// needed to ensure appropriate OpenGL context is created for VTK rendering.
14+
QSurfaceFormat::setDefaultFormat(PCLQVTKWidget::defaultFormat());
15+
1216
ui->setupUi (this);
1317
this->setWindowTitle ("PCL viewer");
1418

@@ -34,13 +38,13 @@ PCLViewer::PCLViewer (QWidget *parent) :
3438
point.b = blue;
3539
}
3640

37-
// Set up the QVTK window
41+
// Set up the QVTK window
3842
#if VTK_MAJOR_VERSION > 8
3943
auto renderer = vtkSmartPointer<vtkRenderer>::New();
4044
auto renderWindow = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
4145
renderWindow->AddRenderer(renderer);
4246
viewer.reset(new pcl::visualization::PCLVisualizer(renderer, renderWindow, "viewer", false));
43-
ui->qvtkWidget->setRenderWindow(viewer->getRenderWindow());
47+
ui->qvtkWidget->setRenderWindow(viewer->getRenderWindow().Get());
4448
viewer->setupInteractor(ui->qvtkWidget->interactor(), ui->qvtkWidget->renderWindow());
4549
#else
4650
viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));

0 commit comments

Comments
 (0)