uxtheme: speed up UXTHEME_SizedBlt(ST_TILE)

Alex Villací­s Lasso a_villacis at palosanto.com
Mon Apr 21 09:55:12 CDT 2008

I was very annoyed with the slowness of the theme engine in the listbox 
case (as used by builtin regedit). I tracked down the source of the 
slowdown to a iteration in UXTHEME_SizedBlt() that repeatedly calls 
UXTHEME_Blt() in order to cover the required area. The attached patch 
replaces this with an iteration over a memory bitmap that is then used 
by UXTHEME_Blt() in a single call. All tests still pass. Results in 
noticeable speedup in the painting of the listview header in regedit and 
the two uses in winecfg.

* Speed up UXTHEME_SizedBlt in the ST_TILE by building an 
appropriately-sized memory bitmap out of the tile instead of iterating 
with UXTHEME_Blt() directly.

perl -e '$x=2.4;print sprintf("%.0f + %.0f = %.0f\n",$x,$x,$x+$x);'

-------------- next part --------------
A non-text attachment was scrubbed...
Name: wine-uxtheme-SizedBlt-speedup.patch
Type: text/x-patch
Size: 3589 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080421/001f72dd/attachment.bin 

More information about the wine-patches mailing list