pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Piotr Kołaczkowski <P.Kolaczkow...@elka.pw.edu.pl>
Subject Re: Double buffering of components
Date Mon, 23 Jan 2012 17:52:12 GMT
Thanks.
Unfortunately no time to check that now, but I get back to you as soon 
as I know if it helps or not.
According to my profiler, it should speed up some parts of our 
application by about 10x.

Regards,
Piotr

W dniu 23.01.2012 07:11, Noel Grandin pisze:
> Hi
>
> OK, good point, try this patch - moved the logic down into Container.
>
> -- Noel.
>
> On 2012-01-22 14:14, Piotr Kołaczkowski wrote:
>> Hi,
>>
>> Ok, I found what is wrong.
>> I thought that setting doubleBuffered on a Container is enough. But 
>> unfortunately the patch applies only to the Component.paint
>> and Container overrides it with a method explicitly calling paint on 
>> all the children, regardless it is doubleBuffered or not.
>> So the patch works currently only for child-level components.  But 
>> double buffering would be most useful on complex components 
>> containing lot of subcomponents, e.g. whole frames (we save not only 
>> on painting, but also on the whole painting logic like bounds 
>> calculation, etc.).
>>
>> Best regards,
>> Piotr
>>
>>
>>
>> W dniu 20.01.2012 15:35, Noel Grandin pisze:
>>> note that you have to enable double-buffering explicitly on a 
>>> per-component basis.
>>>
>>> On 2012-01-20 16:13, Piotr Kołaczkowski wrote:
>>>> Hmm,
>>>>
>>>> Can't see a difference. But I have to profile it to see what is 
>>>> causing the slowdown.
>>>> Thanks for the patch.
>>>>
>>>> -- Piotr
>>>>
>>>> W dniu 20.01.2012 13:53, Noel Grandin pisze:
>>>>>
>>>>> Hmm, interesting idea.
>>>>>
>>>>> This is a prototype patch. Try it out and let me know how it goes.
>>>>>
>>>>> -- Noel Grandin
>>>>>
>>>>> On 2012-01-20 11:09, Piotr Kołaczkowski wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Is there support for explicit double-buffering of components 
>>>>>> (especially windows) like it is in Swing?
>>>>>> Currently I faced another performance problem - imagine a top 
>>>>>> level Window with a one single Frame open in it.
>>>>>> The Window contains an animation, that needs to be repainted at 
>>>>>> >30 FPS. When I issue the repaint, not only the window gets 
>>>>>> repainted, but also the parts of the frame that happened to be 
>>>>>> inside the repaint region (if the user shadows a part of the 
>>>>>> animation with the frame, the frame gets the repaints).
>>>>>> For complex Frames with lots of components inside them, it may be

>>>>>> slow. And it is not needed, because I actually haven't changed 
>>>>>> anything inside the frame, so it is perfect case for double 
>>>>>> buffering and drawing the whole frame with a single drawImage 
>>>>>> statement.
>>>>>>
>>>>>> So, is there a workaround now for this? Is this planned?
>>>>>>
>>>>>> Regards,
>>>>>> Piotr
>>>>>>
>>>>
>>>>
>>>
>>
>>


-- 
Piotr Kołaczkowski
Instytut Informatyki, Politechnika Warszawska
Nowowiejska 15/19, 00-665 Warszawa
e-mail: pkolaczk@ii.pw.edu.pl
www: http://home.elka.pw.edu.pl/~pkolaczk/


Mime
View raw message