Re: [PATCH] uxtheme: Support images in GetThemeBackgroundRegion. (try 2)
Mark Harmstone <hellas(a)burntcomma.com> writes:
+ /* loop through the image looking for transparent pixels, + * grouping together horizontal runs into one rect */ + ptr = bits; + for (y = 0; y < r.bottom; y++) { + BOOL trans = FALSE; + int transstart; + + for (x = 0; x < r.right; x++) { + COLORREF colour = ptr[2] << 16 | ptr[1] << 8 | ptr[0]; + ptr += 4; + + if (colour == transcolour) { + if (!trans) { + transstart = x; + trans = TRUE; + } + } else if (trans) { + rgntemp = CreateRectRgn(transstart, y, x, y+1); + CombineRgn(hrgn, hrgn, rgntemp, RGN_DIFF); + DeleteObject(rgntemp); + trans = FALSE; + } + } + + if (trans) { + rgntemp = CreateRectRgn(transstart, y, r.right, y+1); + CombineRgn(hrgn, hrgn, rgntemp, RGN_DIFF); + DeleteObject(rgntemp); + } + }
That's going to be pretty slow. There's a better implementation in winex11.drv:update_surface_region(), you could just copy that. -- Alexandre Julliard julliard(a)winehq.org
participants (1)
-
Alexandre Julliard