From 4ec55c36751931e262662d5b418b7d5bc9fe21a8 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 30 May 2006 20:41:25 +0000 Subject: libmatchbox: Add missing patch --- packages/libmatchbox/files/16bppfixes.patch | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 packages/libmatchbox/files/16bppfixes.patch (limited to 'packages/libmatchbox') diff --git a/packages/libmatchbox/files/16bppfixes.patch b/packages/libmatchbox/files/16bppfixes.patch new file mode 100644 index 0000000000..09a0347809 --- /dev/null +++ b/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