Philipp Lohmann a écrit :
Hi,

Hi Philipp,


On the Mac you see this not because all drawing is double buffered; you do the "flickering" stuff in the back buffer which then gets copied in a single step when the mac comes around to update the actual window.

If you wanted to emulate this behavior on all platforms you could have your own control that does this using a VitualDevice to prepare its text and then only copy that to the window when the ::Paint method gets called. But that is probably a bit overblown.


After lot of tries, and some algo improvments, I fear this will be the only relible solution : flickering is always present on both Windows and Linux.

Could you please give me some tracks, or point me existing example in the code, to implement this VirtualDevice ? (of course the code will be reversed if you consider it interesting for OpenOffice.org)


You could also simplify things by not having different FixedTexts but using only one, calling SetText on that one FixedText when you need to change the text. This will also flicker at least a little since here also the window needs to get erased and then the new text drawn. But it will save a lot of clip region operations (removing the FixedText from the parents clip region and inserting the other one) which will gain some performance.

If you have flickering already, do not use SetPaintTransparent and set a normal background (like solid white for instance). Transparent painting always causes the all parents up to the first opaque (not transparent) parent to restore the view, so a lot more painting gets done until finally the text can be drawn; transparent windows will cause more flicker, not less.

Indeed: applying your suggestion, helped, but flickering is still present :/


Kind regards,
Eric
--
Education Project:
http://wiki.services.openoffice.org/wiki/Education_Project
Projet OOo4Kids : http://wiki.ooo4kids.org/index.php/Main_Page
L'association EducOOo : http://www.educoo.org
Blog : http://eric.bachard.org/news

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@gsl.openoffice.org
For additional commands, e-mail: dev-h...@gsl.openoffice.org

Reply via email to