http://bugs.winehq.org/show_bug.cgi?id=20164
--- Comment #11 from max@veneto.com 2009-10-13 18:03:05 --- (In reply to comment #10)
Version 7 doesn't have the issue. If you can please analyze the code a bit and figure out where it goes wrong. In short all the function does is copying data from a source pixmap (which has an associated xrender picture) to a destination. Either something is wrong with masking or perhaps as you say with offsets.
Roderick
Just adding some fixme printouts, it repeats this pattern :
fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------- START ---------------------- trace:xrender:X11DRV_XRender_GetSrcAreaStretch src depth=24 widthSrc=176 heightSrc=15 xSrc=0 ySrc=0 trace:xrender:X11DRV_XRender_GetSrcAreaStretch dst depth=1 widthDst=176 heightDst=15 xDst=0 yDst=0 fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------Depth of no use
-------- SOME USELESS STUFFS -------
fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------- START ---------------------- trace:xrender:X11DRV_XRender_GetSrcAreaStretch src depth=1 widthSrc=16 heightSrc=15 xSrc=0 ySrc=0 trace:xrender:X11DRV_XRender_GetSrcAreaStretch dst depth=24 widthDst=16 heightDst=15 xDst=0 yDst=0 fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------Converting mono to color fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------END trace:xrender:get_xrender_format Returning wxr_format=0 fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------- START ---------------------- trace:xrender:X11DRV_XRender_GetSrcAreaStretch src depth=1 widthSrc=16 heightSrc=15 xSrc=16 ySrc=0 trace:xrender:X11DRV_XRender_GetSrcAreaStretch dst depth=24 widthDst=16 heightDst=15 xDst=16 yDst=0 fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------Converting mono to color fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------END trace:xrender:get_xrender_format Returning wxr_format=0 fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------- START ---------------------- trace:xrender:X11DRV_XRender_GetSrcAreaStretch src depth=1 widthSrc=16 heightSrc=15 xSrc=32 ySrc=0 trace:xrender:X11DRV_XRender_GetSrcAreaStretch dst depth=24 widthDst=16 heightDst=15 xDst=32 yDst=0 fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------Converting mono to color fixme:xrender:X11DRV_XRender_GetSrcAreaStretch ----------------END
and so on.... So, it seems it takes a very wide bitmap (presumably containing many icons in an horizontal strip, in 24 bit/color, convert to a 1bpp, and then uses the 1bpp to output the single icons. The 24 to 1 conversion is not handled by your code, the 1 to 24 are... maybe the problem lies there.
Ciao
Max