[vtkusers] java's vtkPanel does too much
Steve M. Robbins
steven.robbins at videotron.ca
Tue Mar 1 23:42:05 EST 2005
Hi Jeff,
On Sat, Feb 26, 2005 at 07:12:34AM -0500, Jeff Lee wrote:
> >>In the long run, we should probably provide a base class with only
> >>native methods which can then be extended, without the above tinkering.
> >>Probably call it vtkNativeHook or something obvious, then vtkPanel is a
> >>subclass. This will require changes to the c++ code in vtkJavaAwt.h to
> >>change the mangled jni method signatures, but it is trivial.
> >>
> >>
> >
> >What I had in mind is for the base class to have the three native
> >methods, as well as Render() and paint(). Is that what you
> >had in mind, or is vtkNativeHook just the three native methods?
> >
> >
> Just the 3 native methods - I believe that people may have different
> needs from Render() and paint(). For example, if you are updating
> pipeline data from multiple threads, you need finer control over Render
> and paint to mutex access to the pipeline. For the simple cases where
> you set up a pipeline and Render, what is in vtkPanel now is fine. For
> those who want finer control, they either go through the gymnastics
> above, or we provide a base class. For example,
>
> * vtkNativePanel.java - base class with native methods
Does this derive from AWT Canvas? Arguably, it doesn't have to;
you could have vtkPanel derive from Canvas and have a vtkNativePanel
as an instance variable.
> * vtkPanel.java - sublcass of vtkNativePanel, adding paint and
> render capabilities, addNotify,removeNotify,Lock,UnLock - here is
> what you describe as a "bare-bones" base class
>
> * vtkCanvas.java - layers GenericInteractor
>
>
> I really think that we'll never be able to write a generic Render()
> method, because of the multithreading issue.
I don't understand what "multithreading issue" you're driving at.
The vtkPanel.Render() method surrounds the actual rendering (rw.Render())
inside Lock()/UnLock() calls. Isn't that enough to allow calling
vtkPanel.Render() from any thread?
> BTW, how you are breaking vtkCanvas?
I simply compiled and ran some of the example code from ij-plugins
(http://ij-plugins.sourceforge.net/vtk-examples). I was just
playing around and don't have detailed notes. I was using
VTK 4.2. I'll try again and see if I can reproduce the problem.
I was mainly wondering whether the interactor stuff was generally
known to be broken with java; if not, I assume I have a bad
set-up in some respect.
-Steve
More information about the vtkusers
mailing list