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

rkwright rkwright at geofx.com
Wed Aug 14 13:00:08 EDT 2013


Seb,

Right.  The crashes are only when SWT is involved. I'll keep poking but like
I say, I don't want to learn/build new tooling (if I can help it).  But I
find VTK kind of enigmatic in many respects.  For example, I thought I would
try the Cocoa version, just for fun.  So I created a new VTK source and
build folders, selected Xcode then ran configure, then generate.  It said
"Configure done",  "Generate done".  Then what?  There's no makefile I can
see to run the actual build.  Is there another cmake step?  I don't recall
there being one when I generated the Java wrappers.  I just ran make in the
config then generate and there was a makefile.  But this time no makefile.
What am I missing?

Anyway, back to my real job.  I'll take another look later. Again, thanks
for  your help.

Ric


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

Hi Ric,

I work mostly in C++ with ParaView, but I've used VTK in the past with Java
and multi-threading without much trouble. But once again, I'm not talking
about SWT, just pure Swing/AWT.
My question related to the crash was on the AWT/Swing example not SWT.

Seb


On Wed, Aug 14, 2013 at 11:53 AM, rkwright <[hidden email]
</user/SendEmail.jtp?type=node&node=5722742&i=0> > wrote:
> Seb,
> 
> Yes, the crash is the same. Sometimes it isn't even at close time - the app
> will hang then crash.  When I have been able to pause inside and look or get a
> look at the stack it is buried way down in SWT or some inner message loop in
> VTK.  I strongly suspect that it is some threading issue between VTK and SWT.
> You mentioned that VTK is not thread­safe while Eclipse and SWT use LOTS of
> threads.  Like you say, if you stick with VTK alone (in ObjectiveC and/or C++)
> it is fine.
> 
> So if I want to write in Java and use Eclipse I a few choices:
> * Give up on using Java and Eclipse, just use Xcode and Objective C/C++
> * Carefully use VTK, avoiding any danger spots (e.g. Interactors) but I won't
> know what to avoid until I get there
> * Abandon trying to use VTK and go back to my VTK equivalent which is far more
> primitive.
> My problem is that I don't want to fight the tools.  I don¹t WANT to write
> rendering systems, etc.  Been there, done that (I've written parts 2
> PostScript interpreters, was part of the SVG Viewer team at Adobe,
> Illustrator, etc.).  I'm looking for a system I can just use and not have to
> fix or work around.  It may be that the message is stop fighting and accept
> using Xcode.  Is that what you work in?  Xcode and Objective C/C++?
> 
> Thanks
> Ric
> 
> 
> From:  "Sebastien Jourdain-2 [via VTK]" <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5722740&i=0> >
> Date:  Wednesday, August 14, 2013 10:41 AM
> 
> To:  Ric Wright <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5722740&i=1> >
> Subject:  Re: AWT + SWT + Event Loops (was Re: VTK6 and Java Cone Example 5)
> 
> Hi Ric,
> 
> I have no experience with SWT, so I can't really help you here, but I can
> ensure you that VTK works just fine on Mac OS X with Java 6 and interaction.
> In fact, I never had any crash at close time.
> 
> Does the sample code from the vtk.jar crash in the same manner at close time ?
> 
> Seb
> 
> 
> On Wed, Aug 14, 2013 at 11:08 AM, rkwright <[hidden email]
> <http://user/SendEmail.jtp?type=node&node=5722739&i=0> > wrote:
>> 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]" <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722738&i=0> >
>> Date:  Wednesday, August 14, 2013 9:53 AM
>> 
>> To:  Ric Wright <[hidden email]
>> <http://user/SendEmail.jtp?type=node&node=5722738&i=1> >
>> 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]
>> <http://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.ht
>>> ml 
>>> To unsubscribe from VTK6 and Java Examples, click here.
>>> 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: Re: AWT + SWT + Event Loops (was Re: VTK6 and
>>> Java Cone Example 5)
>>> <http://vtk.1045678.n5.nabble.com/VTK6-and-Java-Examples-tp5722474p5722724.h
>>> tml> 
>>> 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 <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-tp5722474p5722733.htm
>> l 
>> 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.BasicNames
>> pace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNa
>> mespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%2
>> 1nabble%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-tp5722474p5722738.ht
>> ml> 
>> 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 <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-tp5722474p5722739.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-tp5722474p5722740.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-tp5722474p5722742.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-tp5722474p5722745.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/8f354d38/attachment.htm>


More information about the vtkusers mailing list