incorrect clipping offsets for glyphs
Submitted by Jeremy Huddleston Sequoia
Assigned to Jeremy Huddleston Sequoia
Description
As discussed on xorg-devel in early January, this commit is causing some clipping problems in some applications using the XQuartz DDX.
http://cgit.freedesktop.org/xorg/xserver/commit/?id=a72c65e9176c51de95db2fdbf4c5d946a4911695
I'm not too familiar with this code, so I think I've reached the end of my limits in debugging this. I did notice an odd pattern in fbComposite. After the calls to image_from_pict in fbComposite, the offsets returned were sometimes uninitialized. Specifically the mask's offsets were not set:
Before 1 26521600 1 19396120 1 767442 After 0 0 1 19396120 0 0
this is from:
+fprintf(stderr, "Before %d %d %d %d %d %d\n", src_xoff, src_yoff, msk_xoff, msk_yoff, dst_xoff, dst_yoff);
src = image_from_pict (pSrc, FALSE, &src_xoff, &src_yoff);
mask = image_from_pict (pMask, FALSE, &msk_xoff, &msk_yoff);
dest = image_from_pict (pDst, TRUE, &dst_xoff, &dst_yoff);
+fprintf(stderr, "After %d %d %d %d %d %d\n", src_xoff, src_yoff, msk_xoff, msk_yoff, dst_xoff, dst_yoff);
Additionally, I'm a bit confused by the TRUE->FALSE changes for some of the has_clip values.
Also, create_bits_picture seems to not translate by pict->pDrawable->y before doing the pixman_image_set_clip_region like it did before the patch.