[vtkusers] Mac OS X x86_64 with Qt-4.5.x,vtk-5.3.x
Clinton Stimpson
clinton at elemtech.com
Tue Nov 18 18:15:15 EST 2008
We still need that code in vtkCocaoRenderWindow anyways.
I suggest running it in a debugger and check what its doing in Qt's
QCocoaView::drawRect.
Its starting to look like a bug in their development snapshot. If so,
you can contact Trolltech and make sure it gets fixed before the release.
Clint
Chris Kees wrote:
> The compiler seemed happy with the syntax, but I still get a segmentation
> fault. I tried a couple of random permutations of the code below.
>
>
> void vtkCocoaRenderWindow::SetWindowInfo(char* info)
> {
> //long tmp;
>
> //sscanf(info,"%ld",&tmp);
> int tmp;
> sscanf(info, "%i", &tmp);
> NSMutableDictionary * manager =
> reinterpret_cast<NSMutableDictionary *>(this->GetCocoaManager());
> [manager setObject:reinterpret_cast<id>(tmp)
> forKey:@"DisplayId"];
> //[manager setObject:reinterpret_cast<id>(tmp)
> // forKey:@"WindowId"];
> //[manager setObject:reinterpret_cast<id>(info)
> // forKey:@"DisplayId"];
> //[manager setObject:reinterpret_cast<id>(info)
> // forKey:@"WindowId"];
> vtkWarningMacro("Method not implemented.");
> }
>
>
> On 11/18/08 2:01 PM, "Clinton Stimpson" <clinton at elemtech.com> wrote:
>
>
>> 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
>>>
>>>
>> _______________________________________________
>> 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