summaryrefslogtreecommitdiff
path: root/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch')
-rw-r--r--meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch260
1 files changed, 0 insertions, 260 deletions
diff --git a/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch b/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch
deleted file mode 100644
index 9bcd582e27..0000000000
--- a/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch
+++ /dev/null
@@ -1,260 +0,0 @@
-Upstream-Status: Pending
-
---- libmatchbox/libmb/mbpixbuf.c.orig 2007-05-04 14:41:55.000000000 +0100
-+++ libmatchbox/libmb/mbpixbuf.c 2007-05-04 14:41:55.000000000 +0100
-@@ -710,46 +710,19 @@
- return colnum;
- }
-
--
--static unsigned long
--mb_pixbuf_get_pixel(MBPixbuf *pb, int r, int g, int b, int a)
-+/*
-+ * Split the mb_pixbuf_get_pixel() function into several specialized
-+ * functions which we will inline; this allows us to optimize
-+ * mb_pixbuf_img_render_to_drawable_with_gc () by taking some of the
-+ * decision taking outside of the double loop
-+ */
-+
-+/*
-+ * Get pixel value for rgb values and pixel depth <= 8
-+ */
-+static inline unsigned long
-+mb_pixbuf_get_pixel_le8_rgb (MBPixbuf *pb, int r, int g, int b)
- {
-- if (pb->depth > 8)
-- {
-- switch (pb->depth)
-- {
-- case 15:
-- return ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3);
-- case 16:
-- return ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3);
-- case 24:
-- case 32:
-- switch (pb->byte_order)
-- {
-- case BYTE_ORD_24_RGB:
-- return ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
-- case BYTE_ORD_24_RBG:
-- return ((r & 0xff) << 16) | ((b & 0xff) << 8) | (g & 0xff);
-- case BYTE_ORD_24_BRG:
-- return ((b & 0xff) << 16) | ((r & 0xff) << 8) | (g & 0xff);
-- case BYTE_ORD_24_BGR:
-- return ((b & 0xff) << 16) | ((g & 0xff) << 8) | (r & 0xff);
-- case BYTE_ORD_24_GRB:
-- return ((g & 0xff) << 16) | ((r & 0xff) << 8) | (b & 0xff);
-- case BYTE_ORD_24_GBR:
-- return ((g & 0xff) << 16) | ((b & 0xff) << 8) | (r & 0xff);
-- case BYTE_ORD_32_ARGB:
-- return (a << 24) | (r << 16) | (g << 8) | b;
-- default:
-- return 0;
-- }
-- default:
-- return 0;
-- }
-- return 0;
-- }
--
-- /* pb->depth <= 8 */
- switch(pb->vis->class)
- {
- case PseudoColor:
-@@ -794,6 +767,111 @@
- return 0;
- }
-
-+/*
-+ * Get pixel value from a pointer to 16bbp value for pixel depth <= 8
-+ * and advance the pointer
-+ */
-+static inline unsigned long
-+mb_pixbuf_get_pixel_le8_16bpp_advance (MBPixbuf *pb, unsigned char ** p)
-+{
-+ unsigned short s = SHORT_FROM_2BYTES(*p);
-+ int r, b, g;
-+
-+ r = (s & 0xf800) >> 8;
-+ g = (s & 0x07e0) >> 3;
-+ b = (s & 0x001f) << 3;
-+
-+ *p += 2;
-+
-+ return mb_pixbuf_get_pixel_le8_rgb (pb, r, g, b);
-+}
-+
-+/*
-+ * Get pixel value for rgba values and pixel depth > 8
-+ *
-+ */
-+static inline unsigned long
-+mb_pixbuf_get_pixel_gt8_rgba (MBPixbuf *pb, int r, int g, int b, int a)
-+{
-+ switch (pb->depth)
-+ {
-+ case 15:
-+ switch (pb->byte_order)
-+ {
-+ case BYTE_ORD_24_RGB:
-+ return ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3);
-+ case BYTE_ORD_24_BGR:
-+ return ((b & 0xf8) << 7) | ((g & 0xf8) << 2) | ((r & 0xf8) >> 3);
-+ }
-+ case 16:
-+ 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)
-+ {
-+ case BYTE_ORD_24_RGB:
-+ return ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
-+ case BYTE_ORD_24_RBG:
-+ return ((r & 0xff) << 16) | ((b & 0xff) << 8) | (g & 0xff);
-+ case BYTE_ORD_24_BRG:
-+ return ((b & 0xff) << 16) | ((r & 0xff) << 8) | (g & 0xff);
-+ case BYTE_ORD_24_BGR:
-+ return ((b & 0xff) << 16) | ((g & 0xff) << 8) | (r & 0xff);
-+ case BYTE_ORD_24_GRB:
-+ return ((g & 0xff) << 16) | ((r & 0xff) << 8) | (b & 0xff);
-+ case BYTE_ORD_24_GBR:
-+ return ((g & 0xff) << 16) | ((b & 0xff) << 8) | (r & 0xff);
-+ case BYTE_ORD_32_ARGB:
-+ return (a << 24) | (r << 16) | (g << 8) | b;
-+ default:
-+ return 0;
-+ }
-+ default:
-+ return 0;
-+ }
-+}
-+
-+/*
-+ * Get pixel value from pointer to 16bpp data for pixel depth > 8
-+ * and advance the pointer
-+ *
-+ * TODO ? We could take the 32bit case out of here, which would allow
-+ * to ignore the alpha value for <15, 24>, but we might not gain that
-+ * much by this on arm due to the conditional execution.
-+ */
-+static inline unsigned long
-+mb_pixbuf_get_pixel_gt8_16bpp_advance (MBPixbuf *pb, unsigned char ** p,
-+ int has_alpha)
-+{
-+ unsigned short s = SHORT_FROM_2BYTES(*p);
-+ int r, b, g, a;
-+
-+ r = (s & 0xf800) >> 8;
-+ g = (s & 0x07e0) >> 3;
-+ b = (s & 0x001f) << 3;
-+
-+ *p += 2;
-+
-+ a = has_alpha ? *(*p)++ : 0xff;
-+
-+ return mb_pixbuf_get_pixel_gt8_rgba (pb, r, g, b, a);
-+}
-+
-+static inline unsigned long
-+mb_pixbuf_get_pixel(MBPixbuf *pb, int r, int g, int b, int a)
-+{
-+ if (pb->depth > 8)
-+ return mb_pixbuf_get_pixel_gt8_rgba (pb, r, g, b, a);
-+
-+ return mb_pixbuf_get_pixel_le8_rgb (pb, r, g, b);
-+}
-+
- unsigned long
- mb_pixbuf_lookup_x_pixel(MBPixbuf *pb, int r, int g, int b, int a)
- {
-@@ -1825,7 +1903,6 @@
- mb_pixbuf_img_render_to_drawable_with_gc(pb, img, drw, drw_x, drw_y, pb->gc);
- }
-
--
- void
- mb_pixbuf_img_render_to_drawable_with_gc(MBPixbuf *pb,
- MBPixbufImage *img,
-@@ -1883,31 +1960,57 @@
-
- if (pb->internal_bytespp == 2)
- {
-- for(y=0; y<img->height; y++)
-- for(x=0; x<img->width; x++)
-- {
-- /* Below is potentially dangerous.
-- */
-- pixel = ( *p | (*(p+1) << 8));
--
-- p += ((img->has_alpha) ? 3 : 2);
--
-- XPutPixel(img->ximg, x, y, pixel);
-- }
-+ if (pb->depth > 8)
-+ {
-+ for(y=0; y<img->height; y++)
-+ for(x=0; x<img->width; x++)
-+ {
-+ pixel = mb_pixbuf_get_pixel_gt8_16bpp_advance(pb, &p,
-+ img->has_alpha);
-+ XPutPixel(img->ximg, x, y, pixel);
-+ }
-+ }
-+ else
-+ {
-+ for(y=0; y<img->height; y++)
-+ for(x=0; x<img->width; x++)
-+ {
-+ pixel = mb_pixbuf_get_pixel_le8_16bpp_advance(pb, &p);
-+ XPutPixel(img->ximg, x, y, pixel);
-+ }
-+ }
- }
- else
- {
-- for(y=0; y<img->height; y++)
-+ if (pb->depth > 8)
- {
-- for(x=0; x<img->width; x++)
-+ for(y=0; y<img->height; y++)
- {
-- r = ( *p++ );
-- g = ( *p++ );
-- b = ( *p++ );
-- a = ((img->has_alpha) ? *p++ : 0xff);
-+ for(x=0; x<img->width; x++)
-+ {
-+ r = ( *p++ );
-+ g = ( *p++ );
-+ b = ( *p++ );
-+ a = ((img->has_alpha) ? *p++ : 0xff);
-
-- pixel = mb_pixbuf_get_pixel(pb, r, g, b, a);
-- XPutPixel(img->ximg, x, y, pixel);
-+ pixel = mb_pixbuf_get_pixel_gt8_rgba(pb, r, g, b, a);
-+ XPutPixel(img->ximg, x, y, pixel);
-+ }
-+ }
-+ }
-+ else
-+ {
-+ for(y=0; y<img->height; y++)
-+ {
-+ for(x=0; x<img->width; x++)
-+ {
-+ r = ( *p++ );
-+ g = ( *p++ );
-+ b = ( *p++ );
-+
-+ pixel = mb_pixbuf_get_pixel_le8_rgb(pb, r, g, b);
-+ XPutPixel(img->ximg, x, y, pixel);
-+ }
- }
- }
- }