MantisBT - VTK
View Issue Details
0007226VTK(No Category)public2008-06-22 04:132016-08-12 09:54
Peter Wainwright 
Kitware Robot 
normalminoralways
closedmoved 
 
 
0007226: vtkRenderWindowInteractor does not work with Mesa
I am trying to create and attach an interactor to a window using the VTK
TCL shell.

vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
iren Initialize

Specifically, I'm using the attached example from a tutorial

I am working on a VNC display, and I have therefore had to put Mesa GL
libraries in my LD_LIBRARY_PATH to emulate the GLX stuff.

Unfortunately the interactor does not work; setting MESA_DEBUG=1 shows
that there are errors in glXSwapBuffers:

    Mesa warning: glXSwapBuffers: invalid drawable 0x1600002

and the window does not redraw when the mouse is moved.

This occurs with version 5.0.3-1ubuntu1 and with the CVS head.
What seems to be happening is this: Each buffer in Mesa's software GL
is associated with a particular (display, drawable) pair. However,
vtkXRenderWindowTclInteractor::Initialize() modifies the Display
of the rendering window (so that it points to the first Display created
by the Tcl shell). But the Mesa buffers were created in association
with a different Display object. Although the 2 Display objects should
be equivalent (they point to the same actual display device), Mesa
does not like changing the Display here.
No tags attached.
? vtktut6.tcl (1,400) 2008-06-22 04:13
https://www.vtk.org/Bug/file/6550/vtktut6.tcl
Issue History
2008-06-22 04:13Peter WainwrightNew Issue
2008-06-22 04:13Peter WainwrightFile Added: vtktut6.tcl
2008-08-08 10:02Peter WainwrightNote Added: 0012971
2011-06-16 13:11Zack GalbreathCategory => (No Category)
2016-08-12 09:54Kitware RobotNote Added: 0036992
2016-08-12 09:54Kitware RobotStatusexpired => closed
2016-08-12 09:54Kitware RobotResolutionopen => moved
2016-08-12 09:54Kitware RobotAssigned To => Kitware Robot

Notes
(0012971)
Peter Wainwright   
2008-08-08 10:02   
I notice that the problem does not occur if I remove the "renWin Render" calls, so that the window is not realized before the call "iren Initialize". This avoids the ambiguity of creating 2 Display objects which refer to the same physical display.

The other way around it is to use a vtkTkRenderWidget instead. Again, there is only one Display object which is inherited from the initial toplevel Tk widget.
(0036992)
Kitware Robot   
2016-08-12 09:54   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current VTK Issues page linked in the banner at the top of this page.