OOF: Finite Element Analysis of Microstructures

X11/VTK/GTK/MacOSX bug

X11/VTK/GTK/MacOSX bug

After the latest Mac update, we noticed a bug with rendering vtk data embedded in gtk windows. If we try to render a vtkVolume and a vtkActor, the vtkVolume is not displayed. This does not happen if the vtk window is not embedded in a gtk window. It also doesn't happen when using the same versions of vtk and gtk under Linux with a Linux display. It does happen if we ssh to a Linux box and display on the Mac. (We were unable to check whether the bug appeared when running on a Mac but displaying in Linux as this resulted in a bus error.)

Here are the details of the latest Mac updates:
2009-06-09 13:14:35 -0400: Installed "Digital Camera Raw Compatibility Update" (2.6)
2009-06-09 13:14:50 -0400: Installed "AirPort Utility Software Update 2009-002" (5.4.2)
2009-06-09 13:15:07 -0400: Installed "iWork '09 Update 2" (9.0.2)
2009-06-09 13:15:49 -0400: Installed "iTunes" (8.2.0)
2009-06-09 13:15:53 -0400: Installed "iLife Support" (9.0.3)
2009-06-09 13:16:07 -0400: Installed "iDVD Update" (7.0.4)
2009-06-09 13:18:54 -0400: Installed "Mac OS X Update" (10.5.7)
2009-06-09 13:19:26 -0400: Installed "QuickTime" (7.6.2)

The relevant version info is:
VTK (fink package vtk-py25)
GTK 2.16.2-2 (also installed with fink)
pygtk 2.12.1-5
Python 2.5 (fink package number 1:2.5.4-1)

A tarball containing Python debugging scripts and test data can be downloaded here. The script named "imagepluspoly.py" uses vtk to display image data and a cone. The script named "gtkvtkdebug.py" is similar but embeds the vtk window in gtk and reconnects the appropriate signals. The script "gtkvtkdebug2.py" is a pared down version of "gtkvtkdebug.py" with fewer signals connected so that tumbling with a mouse, etc, does not work. The latter two scripts produce the bug.

This is what is shown when displayed on a Linux box, by either script, or on a Mac by the script that does not use gtk, "imagepluspoly.py".

This is what is shown when displayed on a Mac by the script using gtk, "gtkvtkdebug.py". The volume data is not shown, and the cone is missing its bottom.