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