[vtkusers] Problem with vtkPanel

Jeff Lee jeff at cdnorthamerica.com
Thu Apr 28 08:13:30 EDT 2005



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