Summary: | xcb-demo/neko "mouse-shaped cursor" not rendered properly | ||
---|---|---|---|
Product: | XCB | Reporter: | Bart Massey <x> |
Component: | Demos | Assignee: | Jamey Sharp <jamey> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | See if this patch fixes the problem. |
Description
Bart Massey
2006-04-18 13:26:25 UTC
I think it's a bug in the XCBImage library's XY-pixmap handling too. But the cause sure isn't obvious to me. See also bug #5958, "XCBImage with XYPixmap format does not work" Is this on Intel Linux or Sparc Solaris? For this bug, the server's bitmap unit, bit order, and byte order
should be reported.
In my experience, the cursor (bitmap format 1Ll) works on PPC Mac servers (4Mm) and is corrupt on
Intel Linux servers (4Ll). Xlib's XPutImage has a 12x12 array of bitmap converters to handle all
permutations of client-side to server-side bitmap formats. I only implemented the one I could test (1Ll-
>4Mm). From inspection, it looked like the 1Ll->4Ll conversion was a no-op, but maybe I was wrong.
For reference, the xlib functions I refactored, merged, and inlined are XCreatePixmapFromBitmapData
(for the neko bitmaps) and XCreateBitmapFromData (for the cursor and mask).
Notably, the neko bitmaps themselves (which are also 1Ll bitmaps) seem to work fine!
(BTW, these and other deficiencies are noted in the xcbneko README file.)
Also, to be clear, xcbneko does not use the XCBImage convenience library, partly because of its
advertised lack of XYPixmap support.
Created attachment 5367 [details] [review] See if this patch fixes the problem. Indeed, I think my inspection was wrong; I need to adjust for scanline padding. This shows up for the cursor because, unlike the other bitmaps, it is only 17 pixels (3 bytes) wide. It works! Committed. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.