[vtkusers] AWT + SWT + Event Loops (was Re: VTK6 and Java Cone Example 5)

rkwright rkwright at geofx.com
Wed Aug 14 11:08:12 EDT 2013


Sebastien,

(BTW, thank you very much for your patience in answering my questions in
such timely fashion).

I didn't see the SWT option when I built VTK the first time.  However, I
took a break and quickly built an Eclipse plugin using the code in
wrapping/java/vtk/rendering.  I created a view based on the
swtConeRenderer.java code, substituting the parent SWT composite passed to
the ViewPart creation step, passing that composite to the constructor of
vtkSwtComponent.  It ALMOST works except that it creates a wholly new window
outside the actual Eclipse view.  And that view works, complete with
mouse-wheel scaling.  BUT, when I close that view Š  it crashes Eclipse,
exactly as it does in the other demo I put together using the SWT_AWT
bridge. Same message, same crash in Eclipse.  Clearly, something goes
horribly awry down in the bowels of the native code in SWT.

So I will continue to experiment with VTK but avoid anything to do with
interactors.  But I return to my earlier question: Am I likely to run into
similar problems or is it largely or wholly in the interactors that VTK
starts/handles its own event loops?  So far the only problems I have seen
are when interactors are involved (though my experience is rather limited,
of course).

Thanks
Ric


From:  "Sebastien Jourdain-2 [via VTK]"
<ml-node+s1045678n5722733h61 at n5.nabble.com>
Date:  Wednesday, August 14, 2013 9:53 AM
To:  Ric Wright <rkwright at geofx.com>
Subject:  Re: AWT + SWT + Event Loops (was Re: VTK6 and Java Cone Example 5)

You need to build VTK with the SWT component ON. Moreover,
vtkRenderWIndowInteractor does not spawn a new event loop as VTK is NOT
thread safe.


On Wed, Aug 14, 2013 at 10:31 AM, rkwright <[hidden email]
</user/SendEmail.jtp?type=node&node=5722733&i=0> > wrote:
> I have been working through the samples in the jar. The only failure so far is
> the vtkRenderWindowInteractor.
> 
> I was not aware of a SWT component in VTK.  I see a Java file
> vtkSwtComponent.java but it isn't clear to me that it is going to solve my
> problems.   There are two issues I see:
> * vtkSwtComponent appears to use the SWT OpenGL canvas widget.  This is
> largely unsupported in SWT and was half-broken last time I looked at it.  I
> gave up on it long ago and turned to JOGL embedding in SWT via the bridge
> (which works for me at present)
> * It's not clear how this would solve the other issue where
> vtkRenderWIndowInteractor spawns its own event loop and that causes problems
> with SWT ­ or does vtkRenderWIndowInteractor not use any AWT utilities or
> methods?
> I'll experiment with the vtkSwtComponent (I see one simple example file,
> swtConeRendering.java) and see if that helps. Though there is no SWT support
> in vtk.jar so I'll guess I'll have to include the SWT files directly in my
> project.
> 
> Thanks for your advice.
> 
> Ric
> 
> BTW, I am running Apple's Java 1.6.0_51-b11-457-11M4509. 64 bit
> 
> From:  "Sebastien Jourdain-2 [via VTK]" <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5722724&i=0> >
> Date:  Wednesday, August 14, 2013 8:42 AM
> To:  Ric Wright <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5722724&i=1> >
> Subject:  Re: AWT + SWT + Event Loops (was Re: VTK6 and Java Cone Example 5)
> 
> Just read the sample codes that are provided in the vtk.jar or in the Source
> code under Wrapping/Java/vtk/sample, they should be pretty strait forward.
> Moreover, VTK do provide a SWT component for rendering if you build it, so you
> shouldn't have any event loop issue...
> 
> Seb
> 
> 
> On Wed, Aug 14, 2013 at 9:30 AM, Ric Wright <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5722710&i=0> > wrote:
>> So did some more spelunking and it looks like this is just a basic
>> incompatibility for SWT and AWT ­ in the specific case where AWT is trying to
>> start their own event loop once SWT has started.  Previously, in my other
>> work, I handled events on my own ­ I didn't ask or expect AWT to start or
>> manage it's own events. I used AWT basically to host the OpenGL canvas (based
>> on JOGL).  But when one invokes the vtkRenderWIndowInteractor an event loop
>> IS spawned and the causes various weird problems.
>> 
>> There is a fairly long summary of some of the issues here:
>> 
>> http://marc.info/?l=openjdk-awt-dev&m=135818602009136&w=2
>> 
>> So the question that comes to my mind is how dependent is the rest of VTK on
>> starting its own event loops?  I.e. Can I use the rest of VTK and its
>> pipeline to perform graphics, manage datasets, etc.  I am willing to give up
>> the Interactor and its mimicking of trackball if everything else is likely to
>> work.  But if spawning its own event loop(s) is intrinsic to how most of VTK
>> works then I'm probably dead in the water.
>> 
>> Thoughts or suggestions?
>> 
>> Thanks
>> Ric
>> 
>> 
>> From:  Ric Wright <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722710&i=1> >
>> 
>> Date:  Tuesday, August 13, 2013 12:59 PM
>> To:  Sebastien Jourdain <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722710&i=2> >
>> Cc:  Sean McBride <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722710&i=3> >, vtkusers <[hidden
>> email] <http://user/SendEmail.jtp?type=node&node=5722710&i=4> >
>> 
>> Subject:  Re: [vtkusers] VTK6 and Java Cone Example 5
>> 
>> An update on this.  I ported over some of my other Eclipse work and adapted
>> it to VTK.  It is pushed to my account on github and there is a writeup here:
>> http://rkwright.github.io/geofx-pages/vtkview.html.  There are 3 articles in
>> there.  The latest rev of the code is here:
>> https://github.com/rkwright/vtkscene in the develop branch.
>> 
>> Mostly, it works great.  However, when I tried the fifth cone example, which
>> has the problematic vtkRenderWindowInteractor, I ran into similar problems as
>> before.  I instantiated it with a valid vtkPanel.RenderWindow but it still
>> goes off into the ozone, sometimes crashing the native vtkOpenGL dylib.
>> 
>> I'm going to skip the interactor for now and move on to see if I run into
>> more problems. If not, I can probably live without that widget but the
>> problems there might be symptomatic of deeper problems on OSX 64 bit systems.
>> 
>> Any further suggestions would be welcome.
>> 
>> Thanks
>> Ric
>> 
>> 
>> From:  Sebastien Jourdain <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722710&i=5> >
>> 
>> Date:  Tuesday, August 6, 2013 8:56 AM
>> To:  Ric Wright <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722710&i=6> >
>> Cc:  Sean McBride <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722710&i=7> >, vtkusers <[hidden
>> email] <http://user/SendEmail.jtp?type=node&node=5722710&i=8> >
>> 
>> Subject:  Re: [vtkusers] VTK6 and Java Cone Example 5
>> 
>> In Java you should use the Java specific classes anyway like
>> vtkPanel/vtkCanvas or the new version of them used in the vtk.sample package
>> of the vtk.jar...
>> 
>> The purpose of those example was to show the possible match between the
>> different languages...
>> 
>> Nothing more I believe,
>> 
>> Seb
>> 
>> 
>> On Tue, Aug 6, 2013 at 8:52 AM, Ric Wright <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722710&i=9> > wrote:
>>> Ah, OK.  Well, I don't know what to do here.  Is this happening to others?
>>>  Should I file a bug?  Just try to work around it by not using
>>> RenderWindowInteractors (sounds kind of lame).  Or?
>>> 
>>> Suggestions?
>>> 
>>> Thanks
>>> Ric
>>> 
>>> 
>>> On 8/5/13 4:15 PM, "Sean McBride" <[hidden email]
>>> <http://user/SendEmail.jtp?type=node&node=5722710&i=10> > wrote:
>>> 
>>>> >On Mon, 5 Aug 2013 16:10:55 -0500, Ric Wright said:
>>>> >
>>>>> >>Well, a little playing around didn't seem to help, but I am frankly not
>>>>> >>an
>>>>> >>expert on threads.  However, it seems to me that the source of the
>>>>> >>problem
>>>>> >>is that the vtkRenderWindowInteractor gets initialized then the start()
>>>>> >>method creates an event loop that is monitored by the
>>>>> >>vtkRenderWindowInteractor.  I suspect that start() method spawns a new
>>>>> >>thread to listen to the events and it is the spawning of that thread
>>>>> that
>>>>> >>causes the exception.
>>>> >
>>>> >VTK's Cocoa classes never create any threads.
>>>> >
>>>> >Cheers,
>>>> >
>>>> >--
>>>> >____________________________________________________________
>>>> >Sean McBride, B. Eng                 [hidden email]
>>>> <http://user/SendEmail.jtp?type=node&node=5722710&i=11>
>>> 
>>>> >Rogue Research                        www.rogue-research.com
>>>> <http://www.rogue-research.com>
>>>> >Mac Software Developer              Montréal, Québec, Canada
>>>> >
>>>> >
>>> 
>>> 
>> 
> 
> 
> _______________________________________________
> Powered by www.kitware.com <http://www.kitware.com>
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
> 
> 
> 
> If you reply to this email, your message will be added to the discussion
> below:
> http://vtk.1045678.n5.nabble.com/VTK6-and-Java-Examples-tp5722474p5722710.html
> To unsubscribe from VTK6 and Java Examples, click here.
> NAML 
> <http://vtk.1045678.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&
> id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespa
> ce-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNames
> pace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nab
> ble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
> 
> 
> View this message in context: Re: AWT + SWT + Event Loops (was Re: VTK6 and
> Java Cone Example 5)
> <http://vtk.1045678.n5.nabble.com/VTK6-and-Java-Examples-tp5722474p5722724.htm
> l> 
> Sent from the VTK - Users mailing list archive
> <http://vtk.1045678.n5.nabble.com/VTK-Users-f1224199.html>  at Nabble.com.
> 
> _______________________________________________
> Powered by www.kitware.com <http://www.kitware.com>
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
> 


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the VTK FAQ at:
http://www.vtk.org/Wiki/VTK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers



If you reply to this email, your message will be added to the discussion
below:
http://vtk.1045678.n5.nabble.com/VTK6-and-Java-Examples-tp5722474p5722733.ht
ml 
To unsubscribe from VTK6 and Java Examples, click here
<http://vtk.1045678.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe
_by_code&node=5722474&code=cmt3cmlnaHRAZ2VvZnguY29tfDU3MjI0NzR8LTgxODEwNjM2M
A==> .
NAML 
<http://vtk.1045678.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewe
r&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNam
espace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.Nod
eNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emai
ls%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>






--
View this message in context: http://vtk.1045678.n5.nabble.com/VTK6-and-Java-Examples-tp5722474p5722738.html
Sent from the VTK - Users mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130814/239a13aa/attachment.htm>


More information about the vtkusers mailing list