pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Noel Grandin <noelgran...@gmail.com>
Subject Re: Double buffering of components
Date Mon, 23 Jan 2012 06:11:57 GMT
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
>>>>>
>>>
>>>
>>
>
>

Mime
View raw message