[vtkusers] Problem with vtkPanel

Antoine Boivin a.boivin at m2m-ndt.com
Thu Apr 28 08:50:58 EDT 2005


----- Original Message ----- 
From: "Jeff Lee" <jeff at cdnorthamerica.com>
To: "Antoine Boivin" <a.boivin at m2m-ndt.com>
Cc: "VTK-User" <vtkusers at vtk.org>
Sent: Thursday, April 28, 2005 2:13 PM
Subject: Re: [vtkusers] Problem with vtkPanel


I work with Windows XP.

>
>
> Antoine Boivin wrote:
>
>> Thanks for your help Jeff, Your solution are more secure but the problem
>> is not here. The use memory continue to increase during running of 
>> program.
>> I have make many test and I thinks that is the "Lock()" function of 
>> vtkPanel
>> which use memory and make the program instable.
>> I have modified vtkPanel.java for not use this function but I don't 
>> understand
>> the goal of this function.
>> My program run correctly, it's the main thing.
>
> On which os are you noticing the memory leak?
> -J
>
>>
>> ----- Original Message ----- From: "Jeff Lee" <jeff at cdnorthamerica.com>
>> To: "VTK-User" <vtkusers at vtk.org>
>> Sent: Wednesday, April 27, 2005 5:37 PM
>> Subject: Re: [vtkusers] Problem with vtkPanel
>>
>>
>>> Hi Antoine,
>>> When you change the texture on one thread and render on the event
>>> thread, you have the potential for a render to occur while you are
>>> changing the texture.  For example, say you start your UpdateImage
>>> thread, and it runs and schedules the Render on the event thread.  The
>>> render hasn't yet occured, and then you start the UpdateImage thread
>>> again.  Now you have the potential for a render to occur while you are
>>> changing the pipeline on another thread - bad things can happen.  I
>>> would guess that if you did something like
>>>
>>> SwingUtilities.invokeLater(new Runnable() {
>>>    public void run() {
>>>          for (int isurf = 0; isurf<vue.getSurfaces().size(); isurf++)
>>>          {
>>>            ((Surface)view.getSurfaces().get(isurf)).updateTabImage();
>>>          }
>>>          view.Render();
>>>        }
>>>      });
>>> then things would behave better, but your performance might degrade.  A
>>> more advanced solution would be to mutex the Render method with the
>>> method which updates the textures.  i.e. you cannot render while the
>>> textures are being updated.  You only have to mutex the part of
>>> updateTabImages which touch the vtk pipeline.  HTH,
>>> -Jeff
>>>
>>> Antoine Boivin wrote:
>>>
>>>> Hi vtk users!
>>>>  I use vtk with Java and I use a vtkPanel.
>>>> In the renderer of this vtkPanel I insert a surface with a texture.
>>>> In an other thread, I update this texture every time.
>>>> This program run correctly with a good frame rate
>>>> but some minutes ago, the surface disappear of the view.
>>>> I notice an increase of the memory use by the program
>>>> when the function "Render" of the vtkPanel are call.
>>>> That is the problem?
>>>>  I don't understand what occurs and why the texture disappear?
>>>>  This is the source of my Thread :
>>>>  public class UpdateImage extends Thread
>>>> {
>>>>  private view3D view; //view3D extends vtkPanel
>>>>   public boolean running=true;
>>>>   public boolean visu=true;
>>>>  public UpdateImage(View3D _view)
>>>>   {
>>>>     view = _view;
>>>>   }
>>>>  public void run()
>>>>   {     try
>>>>     {
>>>>       while(running)
>>>>       {
>>>>           for (int isurf = 0; isurf<vue.getSurfaces().size(); isurf++)
>>>>           {
>>>>             ((Surface)view.getSurfaces().get(isurf)).updateTabImage();
>>>>           }
>>>>           SwingUtilities.invokeAndWait(new Runnable()
>>>>           {
>>>>             public void run()
>>>>             {
>>>>               view.Render();
>>>>             }
>>>>           });
>>>>       }
>>>>     }
>>>>     catch (Exception e){
>>>>       System.out.println("Exception="+e);
>>>>     }
>>>>   }
>>>> }
>>>>  Thanks for your help!
>>>>  Antoine
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>>
>>>> _______________________________________________
>>>> 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