On Sat, Nov 15, 2008 at 8:37 AM, Reece Dunn msclrhd@googlemail.com wrote:
2008/11/15 Dan Kegel dank@kegel.com:
On Sun, Nov 2, 2008 at 10:58 PM, Reece Dunn msclrhd@googlemail.com wrote:
.. the first step for Wine is making the uxtheme/msstyles support work well so that it can be used by distributions to theme Wine.
BTW, has anybody noticed a speed problem with our theme support?
Yes.
If you use some themes (e.g. the Zune theme from Microsoft) then the performance is ok. If you try other themes (e.g. the Gem theme from the StyleXP program) then it renders very slowly - the performance killer in the Gem theme is rendering the parent background for property sheets (e.g. winecfg). This can clearly be seen in winecfg when switching themes.
FWIW, http://www.ubuntuproductivity.com/journal/software/01/2009/theme-wine-integr... is a report of a happy user, so I guess the Human theme is ok. Maybe the Ubuntu package should come with that theme applied, or at least included and easy to turn on.
I believe there were discussions about this earlier that tracked it down to theme parts having alpha channels in their bitmaps.
It may also be that as several of the theming APIs are using double buffering. Vista has some APIs that help out with double buffered drawing (http://blogs.msdn.com/e7/ has a nice video (requires Silverlight) from the latest PDC - http://channel9.msdn.com/pdc2008/PC43/ - that covers them in some detail). These may help improve performance.
In addition, the DIB engine is likely to prove invaluable here, as there will be a lot of drawing and blitting, which will certainly be killing performance at the moment with the X server round trip.
Do you know if the DIB engine is advanced enough to test this? Theming would make an interesting test case.
Give it a try - somebody posted patches for his own mashup of the DIB engine recently... - Dan