Browse Source

BUG: Prevent VTK render call in ctkVTKRenderView::setupRendering

This commit fixes error reported below by moving the initialization
of the orientation widget after disabling the rendering and setting up
the RenderEvent observer. This will prevent vtkRenderWindow::Render()
calls from happening when the context is not ready. See [1]

This was needed because setting the interactivity of the widget is only
possible if it is enabled and if it is enabled, it ends up calling Render()
on the interactor.

[1] http://www.vtk.org/Wiki/VTK/OpenGL_Errors#Apple_Mac_OSX

//------
invalid drawable

ERROR: In /path/to/Rendering/OpenGL/vtkOpenGLRenderer.cxx, line 1202
vtkOpenGLRenderer (0x7ff6f45225e0): failed after Clear 1 OpenGL errors detected
  0 : (1286) Invalid framebuffer operation
//------

Co-authored-by: Julien Finet <julien.finet@kitware.com>
Jean-Christophe Fillion-Robin 11 years ago
parent
commit
f0a88aaa29
1 changed files with 6 additions and 5 deletions
  1. 6 5
      Libs/Visualization/VTK/Widgets/ctkVTKRenderView.cpp

+ 6 - 5
Libs/Visualization/VTK/Widgets/ctkVTKRenderView.cpp

@@ -76,11 +76,6 @@ void ctkVTKRenderViewPrivate::setupRendering()
   // Add renderer
   this->RenderWindow->AddRenderer(this->Renderer);
   this->ctkVTKAbstractViewPrivate::setupRendering();
-  // The interactor in RenderWindow exists after the renderwindow is set to
-  // the QVTKWidet
-  this->Orientation->SetInteractor(this->RenderWindow->GetInteractor());
-  this->Orientation->SetEnabled(1);
-  this->Orientation->InteractiveOff();
 }
 
 //----------------------------------------------------------------------------
@@ -205,6 +200,12 @@ ctkVTKRenderView::ctkVTKRenderView(QWidget* parentWidget)
 {
   Q_D(ctkVTKRenderView);
   d->init();
+
+  // The interactor in RenderWindow exists after the renderwindow is set to
+  // the QVTKWidet
+  d->Orientation->SetInteractor(d->RenderWindow->GetInteractor());
+  d->Orientation->SetEnabled(1);
+  d->Orientation->InteractiveOff();
 }
 
 //----------------------------------------------------------------------------