With older versions, we were grabbing the pixels using gdk pixbuf and it was doing the conversion to RGB(A) for us.
Now that we have
XShm, we get pixel data in
BGRA format (on small endian systems) and we therefore need to do the byteswapping ourselves (as clients expect RGB 24-bit or RGBA 32-bit). The code works fine using PIL, but since we don't require PIL as a hard dependency, the server should still work when it is missing.
The patch attached tries to do that:
intrather than one
longat a time since we deal with 32-bit pixels
But doesn't seem to work...
try to convert to RGB without PIL
longs, which may read past the end of the buffer! (should be backported)
Partial backport to v0.10.x in r4823
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/463