When running gtk apps over remote X from a powerpc machine to a x86, some things get strange colors. From the looks of it, some things aren't byteswapped while they should. As one can see in http://people.spacelabs.nl/~sjoerd/colorselector.png, on the left there is a colorselector running on a remote ppc machine on the rigt a colorselector running locally. I tried the libpixman patch in https://bugs.freedesktop.org/show_bug.cgi?id=4260#c8, but that didn't help.. Library Versions: gtk 2.8.0 cairo 1.0.0
Have a test setup now to reproduce this; it's pretty straightforward problem of doing XPutImage()/XGetImage() without regard to the endianess of the destination display.
Created attachment 3140 [details] [review] Proposed patch This patch fixes the problem for me with gtk-demo and and makes 'make check' pass displaying remotely from a ppc64 system to x86. (the text tests are failing, which may be the same problem as bug 4274, but they fail uniformly for the xlib and image backends)
Created attachment 3141 [details] [review] Second attempt Here's a new version that uses existing endian-detection code and deals with bitmap swapping as well. (Issues pointed out by keithp)
This verison of the patch looks good to me; it still lacks "real" format conversion (from depth 16 to depth 15, for example), but at least when the server supports a pixman depth, things should work a lot better now.
2005-08-31 Owen Taylor <otaylor@redhat.com> * src/cairo-xlib-surface.c (_get_image_surface) (_draw_image_surface): Handle displays which don't match the local endianness by byteswapping on GetImage/PutImage. (#4321, reported by Sjoerd Simons)
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.