From f72d3a88ef9f90c337222c22138d4af268ad4680 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 22 Mar 2006 15:12:34 +0000 Subject: Add 16bpp fix for libmatchbox for qemu git-svn-id: https://svn.o-hand.com/repos/poky/trunk@325 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../packages/libmatchbox/files/16bppfixes.patch | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 openembedded/packages/libmatchbox/files/16bppfixes.patch (limited to 'openembedded/packages/libmatchbox/files') diff --git a/openembedded/packages/libmatchbox/files/16bppfixes.patch b/openembedded/packages/libmatchbox/files/16bppfixes.patch new file mode 100644 index 000000000..09a034780 --- /dev/null +++ b/openembedded/packages/libmatchbox/files/16bppfixes.patch @@ -0,0 +1,36 @@ +Index: libmb/mbpixbuf.c +=================================================================== +--- libmatchbox/libmb.orig/mbpixbuf.c 2006-02-01 12:45:55.000000000 +0000 ++++ libmatchbox/libmb/mbpixbuf.c 2006-03-11 15:20:47.000000000 +0000 +@@ -716,7 +716,13 @@ + case 15: + return ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3); + case 16: +- return ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3); ++ switch (pb->byte_order) ++ { ++ case BYTE_ORD_24_RGB: ++ return ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3); ++ case BYTE_ORD_24_BGR: ++ return ((b & 0xf8) << 8) | ((g & 0xfc) << 3) | ((r & 0xf8) >> 3); ++ } + case 24: + case 32: + switch (pb->byte_order) +@@ -1880,12 +1886,11 @@ + for(y=0; yheight; y++) + for(x=0; xwidth; x++) + { +- /* Below is potentially dangerous. +- */ +- pixel = ( *p | (*(p+1) << 8)); ++ internal_16bpp_pixel_to_rgb(p, r, g, b); ++ internal_16bpp_pixel_next(p); ++ a = ((img->has_alpha) ? *p++ : 0xff); + +- p += ((img->has_alpha) ? 3 : 2); +- ++ pixel = mb_pixbuf_get_pixel(pb, r, g, b, a); + XPutPixel(img->ximg, x, y, pixel); + } + } -- cgit v1.2.3