[vtkusers] Mac OS X x86_64 with Qt-4.5.x,vtk-5.3.x

Clinton Stimpson clinton at elemtech.com
Tue Nov 18 15:01:57 EST 2008


You could try implementing vtkCocoaRenderWindow::SetWindowInfo to 
something like this:

  int tmp;
  sscanf(info "%i", &tmp);
    NSMutableDictionary* manager =
      reinterpret_cast<NSMutableDictionary *>(this->GetCocoaManager());
    [manager setObject:reinterpret_cast<id>(tmp)
                forKey:@"DisplayId"];

I don't know if that sscanf thing is the right syntax for Obj-C.

Clint

Chris Kees wrote:
> Clint,
>
> Thanks, I do get that warning. I put in a print statement and it looks like
> the info variable has an int:
>
> 4781804720
> Warning: In VTK/Rendering/vtkCocoaRenderWindow.h, line 132
> vtkCocoaRenderWindow (0x11d0490c0): Method not implemented.
>
>
>
> On 11/18/08 1:14 PM, "Clinton Stimpson" <clinton at elemtech.com> wrote:
>
>   
>> I wonder if implementing vtkCocoaRenderWindow::SetWindowInfo() would fix
>> your problem.  Did you get a warning about it not being implemented in
>> your console?
>>
>> Clint
>>
>> Chris Kees wrote:
>>     
>>> Hi,
>>>
>>> Yesterday I compiled the cvs head of vtk with the development snapshot
>>> of Qt-4.5 following some of the recent posts on running in 64-bit with
>>> Cocoa.  If I set useMainWindow=False then the code below runs fine,
>>> otherwise I get an EXC_BAD_ACCESS signal when I call mainWindow.show()
>>> (output from gdb is below). Has anybody been able to add the vtk
>>> widget to a QFrame yet? I'm new to GUI programming, and I'm not sure I
>>> follow everything covered in the previous posts.  There is a comment
>>> in the QVTKRenderWindow documentation about need to call
>>> SetDisplayId() and SetWindowId() in certain situations, but I don't
>>> know how to call those. Thanks for any suggestions.
>>>
>>> Chris
>>>
>>>         if useMainWindow:
>>>             #Qt widgets
>>>             self.frameWidget = QtGui.QFrame(g.mainWindow)
>>>             self.hbox = QtGui.QHBoxLayout()
>>>             self.iren = QVTKRenderWindowInteractor(self.frameWidget)
>>>             
>>> self.iren.SetInteractorStyle(vtkInteractorStyleTrackballCamera())
>>>             self.iren.Initialize()
>>>             self.renWin = self.iren.GetRenderWindow()
>>>             self.renWin.SetWindowName(name)
>>>             self.hbox.addWidget(self.iren)
>>>             self.frameWidget.setLayout(self.hbox)
>>>             g.tabWidget.addTab(self.frameWidget,title)
>>>             screen = QtGui.QDesktopWidget().screenGeometry()
>>>             size = g.mainWindow.geometry()
>>>             (x,y) = (screen.width()-comm.size()*size.width())/2,
>>> (screen.height()-size.height())/2
>>>             g.mainWindow.move(x+comm.rank()*size.width(),y)
>>>             g.mainWindow.show()
>>>         else:
>>>             self.iren = QVTKRenderWindowInteractor()
>>>             
>>> self.iren.SetInteractorStyle(vtkInteractorStyleTrackballCamera())
>>>             self.iren.Initialize()
>>>             self.renWin = self.iren.GetRenderWindow()
>>>             self.renWin.SetWindowName(name)
>>>
>>>
>>> Program received signal EXC_BAD_ACCESS, Could not access memory.
>>> Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000018
>>> 0x0000000109de35c8 in QPaintEngine::setSystemClip ()
>>> (gdb) back
>>> #0  0x0000000109de35c8 in QPaintEngine::setSystemClip ()
>>> #1  0x0000000109ccb60d in -[QCocoaView drawRect:] ()
>>> #2  0x00007fff83e1c7ab in -[NSView _drawRect:clip:] ()
>>> #3  0x00007fff83e1b291 in -[NSView
>>> _recursiveDisplayAllDirtyWithLockFocus:visRec
>>> t:] ()
>>> #4  0x00007fff83e1b65e in -[NSView
>>> _recursiveDisplayAllDirtyWithLockFocus:visRec
>>> t:] ()
>>> #5  0x00007fff83e1b65e in -[NSView
>>> _recursiveDisplayAllDirtyWithLockFocus:visRec
>>> t:] ()
>>> #6  0x00007fff83e1b65e in -[NSView
>>> _recursiveDisplayAllDirtyWithLockFocus:visRec
>>> t:] ()
>>> #7  0x00007fff83e1b65e in -[NSView
>>> _recursiveDisplayAllDirtyWithLockFocus:visRec
>>> t:] ()
>>> #8  0x00007fff83e1b65e in -[NSView
>>> _recursiveDisplayAllDirtyWithLockFocus:visRec
>>> t:] ()
>>> #9  0x00007fff83e1b65e in -[NSView
>>> _recursiveDisplayAllDirtyWithLockFocus:visRec
>>> t:] ()
>>> #10 0x00007fff83e199be in -[NSView
>>> _recursiveDisplayRectIfNeededIgnoringOpacity:
>>> isVisibleRect:rectIsVisibleRectForView:topView:] ()
>>> #11 0x00007fff83e19220 in -[NSThemeFrame
>>> _recursiveDisplayRectIfNeededIgnoringOp
>>> acity:isVisibleRect:rectIsVisibleRectForView:topView:] ()
>>> #12 0x00007fff83e15a86 in -[NSView
>>> _displayRectIgnoringOpacity:isVisibleRect:rec
>>> tIsVisibleRectForView:] ()
>>> #13 0x00007fff83d533cb in -[NSView displayIfNeeded] ()
>>> #14 0x00007fff83d52ec0 in -[NSWindow displayIfNeeded] ()
>>> #15 0x00007fff83e11be8 in -[NSWindow
>>> _reallyDoOrderWindow:relativeTo:findKey:for
>>> Counter:force:isModal:] ()
>>> #16 0x00007fff83e115e8 in -[NSWindow orderWindow:relativeTo:] ()
>>> #17 0x00007fff83dd8e94 in -[NSWindow makeKeyAndOrderFront:] ()
>>> #18 0x0000000109cc2b3b in QWidgetPrivate::show_sys ()
>>> #19 0x0000000109d5bbee in QWidgetPrivate::show_helper ()
>>> #20 0x0000000109d5c24c in QWidget::setVisible ()
>>> #21 0x0000000109594e0e in sipQMainWindow::setVisible ()
>>> #22 0x0000000109746409 in meth_QWidget_show ()
>>>
>>> _______________________________________________
>>> This is the private VTK discussion list.
>>> Please keep messages on-topic. Check the FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>       
>> _______________________________________________
>> This is the private VTK discussion list.
>> Please keep messages on-topic. Check the FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>     
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>   




More information about the vtkusers mailing list