[vtkusers] Problem QVTKWidget using vtkCarbonRenderWindow instead of vtkCocoaRenderWindow

Mike Jackson mike.jackson at bluequartz.net
Tue Sep 23 10:56:19 EDT 2008


Elvis, you are _probably_ in brand new territory at this point. I 
certainly have not tried anything with Qt 4.5 (I don't have the time), 
let alone with VTk thrown into the mix.

Theoretically all you should have to do is Build Qt 4.5. Build VTK with 
Cocoa support instead of Carbon Support. The rest _should_ work. Let the 
list know what you find out.

Mike

Elvis Dowson wrote:
> Hi Mike,
>                    There is an alpha release of Qt-4.5 on the troll 
> tech website. Here is the link: 
> http://trolltech.com/company/newsroom/announcements/press.2008-06-09.7117549806/?searchterm=Qt%204.5 
>
>
> Could you guide me on what I should do to modify vtk to support Qt-4.5 
> using Cocoa? I'm basically trying to get the QVTK plugin to compile 
> correctly and use the Cocoa framework.
>
> Best regards,
>
> Elvis Dowson
>
>
> On Sep 23, 2008, at 5:36 PM, Mike Jackson wrote:
>
>> Qt 4.5 will be based on Cocoa (That is the current news from TT). Qt 
>> 4.4 is CARBON based so you will have to build VTK using Carbon=ON if 
>> you want to use Qt. As far as supporting Cocoa/Qt in the future I am 
>> not sure if anyone has really looked at it yet. _IF_ TrollTech does 
>> deliver Qt/Cocoa for Qt 4.5 then the test is pretty simple. If the Qt 
>> Version is less than 4.5 then use Carbon. If it is 4.5 or above use 
>> Cocoa. This can be detected in CMake and set accordingly.
>>
>> Q_WS_MAC is defined by Qt in its header files.
>>
>>
>> _________________________________________________
>> | Mike Jackson - Principal Software Engineer      |
>> | BlueQuartz Software                             |
>> | mike.jackson at bluequartz.net                     |
>> | www.bluequartz.net                              |
>> ---------------------------------------------------
>>
>> On Sep 23, 2008, at 9:27 AM, Elvis Dowson wrote:
>>
>>> Hi,
>>>        I just downloaded the latest vtk-5.x sources from cvs 
>>> (vtk-5.3) and tried to compile shared libraries, with
>>>
>>> Problem Outline
>>>
>>> VTK_USE_CARBON=OFF
>>> VTK_USE_COCOA=ON
>>> VTK_GUI_SUPPORT=ON
>>> VTK_USE_QVTK=ON
>>> DESIRED_QT_VERSION=4
>>>
>>> I am using qt-4.4.2 for mac os, which has support for Cocoa.
>>>
>>> Somehow, even through I have disabled support for Carbon, this error 
>>> comes up.
>>>
>>>  "vtkCarbonRenderWindow::UpdateGLRegion()", referenced from:
>>>      QVTKWidget::DirtyRegionProcessor(OpaqueEventHandlerCallRef*, 
>>> OpaqueEventRef*, void*)   in libQVTK.a(QVTKWidget.o)
>>>
>>> If I look at the file GUISupport/Qt/CMakeLists.cxx (what is this 
>>> file used for BTW?)
>>>
>>> I see the following implementation. Shouldn't it use 
>>> vtkCocoaRenderWindow instead?
>>>
>>> #if defined (Q_WS_MAC) && QT_VERSION >= 0x040000
>>> OSStatus QVTKWidget::DirtyRegionProcessor(EventHandlerCallRef, 
>>> EventRef event, void* wid)
>>> {
>>>  QVTKWidget* widget = reinterpret_cast<QVTKWidget*>(wid);
>>>  UInt32 event_kind = GetEventKind(event);
>>>  UInt32 event_class = GetEventClass(event);
>>>  if(event_class == 'cute' && event_kind == 20)
>>>    {
>>>    
>>> static_cast<vtkCarbonRenderWindow*>(widget->GetRenderWindow())->UpdateGLRegion(); 
>>>
>>>    }
>>>  return eventNotHandledErr;
>>> }
>>>
>>> #endif
>>>
>>>
>>> If I look at the file QVTKWidget.h
>>>
>>> there is no implementation for the case when qt version >= 4 and the 
>>> user selects the Cocoa libraries.
>>>
>>> #if defined(Q_WS_MAC) && QT_VERSION >= 0x040000
>>> #include <Carbon/Carbon.h>    // Event handling for dirty region
>>> #endif
>>>
>>> How can I go about trying to fix this?
>>>
>>> Where is Q_WS_MAC defined?
>>>
>>> General Question
>>>
>>> What should I do to make the modifications to support Cocoa for QVTK?
>>>
>>>
>>> Best regards,
>>>
>>> Elvis Dowson
>>> _______________________________________________
>>> 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