On Wed, Nov 25, 2015 at 05:14:35PM +0100, Lukas Venhoda wrote: > The surface before conversion can be either LE or BE on a BE machine. > Check against both BE and LE color order on BE machine. > --- > Changes since v3: > - Removed alpha clearing > - The change actually broke alpha > - Added dual color order checking > - On BE machines it can be both ARGB and RGBA > > Changes since v2: > - Added macro for proper alpha clearing > - Improved commit msg > > Changes since v1: > - New commit > --- > common/canvas_base.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/common/canvas_base.c b/common/canvas_base.c > index cc87f55..937506c 100644 > --- a/common/canvas_base.c > +++ b/common/canvas_base.c > @@ -1271,6 +1271,9 @@ static pixman_image_t *canvas_get_image_internal(CanvasBase *canvas, SpiceImage > > /* On BE machines, we want to explicitly convert the surface all the time */ > wanted_format = canvas_get_target_format(canvas, > +#ifdef WORDS_BIGENDIAN > + surface_format == PIXMAN_b8g8r8a8 || > +#endif > surface_format == PIXMAN_a8r8g8b8); canvas_get_target_format() then has this code: if (source_has_alpha) { if (format == PIXMAN_x8r8g8b8) { format = PIXMAN_a8r8g8b8; } } spice_surface_format_to_pixman(canvas::format) is not going to return PIXMAN_b8g8r8x8 on big-endian, is the canvas in a8r8g8b8 format on BE too? If yes, then this patch should be correct, if not, more work will be needed I'm afraid.. Christophe
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel