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:
int
rather than one long
at a time since we deal with 32-bit pixels
But doesn't seem to work...
try to convert to RGB without PIL
Done:
long
s, 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