diff options
Diffstat (limited to 'meta/recipes-graphics/libmatchbox/files')
6 files changed, 539 insertions, 0 deletions
diff --git a/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch b/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch new file mode 100644 index 000000000..ab9cdc74a --- /dev/null +++ b/meta/recipes-graphics/libmatchbox/files/16bppfixes-2.patch @@ -0,0 +1,258 @@ +--- 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); ++ } + } + } + } diff --git a/meta/recipes-graphics/libmatchbox/files/16bppfixes.patch b/meta/recipes-graphics/libmatchbox/files/16bppfixes.patch new file mode 100644 index 000000000..09a034780 --- /dev/null +++ b/meta/recipes-graphics/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; y<img->height; y++) + for(x=0; x<img->width; 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); + } + } diff --git a/meta/recipes-graphics/libmatchbox/files/autofoo.patch b/meta/recipes-graphics/libmatchbox/files/autofoo.patch new file mode 100644 index 000000000..ad3be578e --- /dev/null +++ b/meta/recipes-graphics/libmatchbox/files/autofoo.patch @@ -0,0 +1,19 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- libmatchbox-1.5/configure.ac~autofoo 2004-12-21 12:56:46.000000000 -0500 ++++ libmatchbox-1.5/configure.ac 2005-01-18 16:40:04.421179624 -0500 +@@ -1,10 +1,10 @@ + AC_PREREQ(2.53) + AC_INIT([libmatchbox], 1.5, [mallum@handhelds.org]) + AC_CONFIG_SRCDIR([libmb/mbtray.c]) ++AC_CONFIG_AUX_DIR(.) + + AM_INIT_AUTOMAKE() + AM_CONFIG_HEADER([config.h]) +-AC_CONFIG_AUX_DIR(.) + + # Checks for programs. + AC_GNU_SOURCE diff --git a/meta/recipes-graphics/libmatchbox/files/check.m4 b/meta/recipes-graphics/libmatchbox/files/check.m4 new file mode 100644 index 000000000..97bfd9c47 --- /dev/null +++ b/meta/recipes-graphics/libmatchbox/files/check.m4 @@ -0,0 +1,133 @@ +dnl AM_PATH_CHECK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS +dnl + +AC_DEFUN(AM_PATH_CHECK, +[ + AC_ARG_WITH(check, + [ --with-check=PATH prefix where check is installed [default=auto]]) + + min_check_version=ifelse([$1], ,0.8.2,$1) + + AC_MSG_CHECKING(for check - version >= $min_check_version) + + if test x$with_check = xno; then + AC_MSG_RESULT(disabled) + ifelse([$3], , AC_MSG_ERROR([disabling check is not supported]), [$3]) + else + if test "x$with_check" != x; then + CHECK_CFLAGS="-I$with_check/include" + CHECK_LIBS="-L$with_check/lib -lcheck" + else + CHECK_CFLAGS="" + CHECK_LIBS="-lcheck" + fi + + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + + CFLAGS="$CFLAGS $CHECK_CFLAGS" + LIBS="$CHECK_LIBS $LIBS" + + rm -f conf.check-test + AC_TRY_RUN([ +#include <stdio.h> +#include <stdlib.h> + +#include <check.h> + +int main () +{ + int major, minor, micro; + char *tmp_version; + + system ("touch conf.check-test"); + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = strdup("$min_check_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_check_version"); + return 1; + } + + if ((CHECK_MAJOR_VERSION != check_major_version) || + (CHECK_MINOR_VERSION != check_minor_version) || + (CHECK_MICRO_VERSION != check_micro_version)) + { + printf("\n*** The check header file (version %d.%d.%d) does not match\n", + CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION); + printf("*** the check library (version %d.%d.%d).\n", + check_major_version, check_minor_version, check_micro_version); + return 1; + } + + if ((check_major_version > major) || + ((check_major_version == major) && (check_minor_version > minor)) || + ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of check (%d.%d.%d) was found.\n", + check_major_version, check_minor_version, check_micro_version); + printf("*** You need a version of check being at least %d.%d.%d.\n", major, minor, micro); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the check library and header\n"); + printf("*** file is being found. Rerun configure with the --with-check=PATH option\n"); + printf("*** to specify the prefix where the correct version was installed.\n"); + } + + return 1; +} +],, no_check=yes, [echo $ac_n "cross compiling; assumed OK... $ac_c"]) + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + + if test "x$no_check" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test -f conf.check-test ; then + : + else + echo "*** Could not run check test program, checking why..." + CFLAGS="$CFLAGS $CHECK_CFLAGS" + LIBS="$CHECK_LIBS $LIBS" + AC_TRY_LINK([ +#include <stdio.h> +#include <stdlib.h> + +#include <check.h> +], , [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding check. You'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for" + echo "*** the exact error that occured." ]) + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + + CHECK_CFLAGS="" + CHECK_LIBS="" + + rm -f conf.check-test + ifelse([$3], , AC_MSG_ERROR([check not found]), [$3]) + fi + + AC_SUBST(CHECK_CFLAGS) + AC_SUBST(CHECK_LIBS) + + rm -f conf.check-test + + fi +]) diff --git a/meta/recipes-graphics/libmatchbox/files/configure_fixes.patch b/meta/recipes-graphics/libmatchbox/files/configure_fixes.patch new file mode 100644 index 000000000..083d32a04 --- /dev/null +++ b/meta/recipes-graphics/libmatchbox/files/configure_fixes.patch @@ -0,0 +1,79 @@ +--- + configure.ac | 15 +++++++-------- + libmb.pc.in | 2 +- + 2 files changed, 8 insertions(+), 9 deletions(-) + +Index: libmatchbox-1.9/configure.ac +=================================================================== +--- libmatchbox-1.9.orig/configure.ac 2007-11-11 22:26:43.000000000 +0000 ++++ libmatchbox-1.9/configure.ac 2007-11-11 22:52:09.000000000 +0000 +@@ -84,6 +84,7 @@ if test $have_libx11pc = yes; then + xft_pkg=xft + SUPPORTS_XFT=1 + AC_DEFINE(USE_XFT, [1], [Use Xft]) ++ XFT_REQUIRED="xft" + fi + # XXX : xau is missing from x11.pc - workaround is too add here + PKG_CHECK_MODULES(XLIBS, x11 xext $xft_pkg) +@@ -108,6 +109,7 @@ if test x$enable_xft != xno; then + AC_DEFINE(USE_XFT, [1], [Use Xft]) + SUPPORTS_XFT=1 + AC_MSG_RESULT(yes) ++ XFT_REQUIRED="xft" + else + + AC_PATH_PROG(XFT_CONFIG, xft-config, no) +@@ -122,21 +124,17 @@ if test x$enable_xft != xno; then + AC_DEFINE(USE_XFT, [1], [Use Xft]) + SUPPORTS_XFT=1 + AC_MSG_RESULT(yes) ++ MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XFT_CFLAGS" ++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XFT_LIBS" + fi + fi + fi + + XLIBS_CFLAGS="$XLIBS_CLAGS $XFT_CFLAGS" +-XLIBS_LIBS="$X_LIBS $XFT_LIBS -lX11 -lXext" +- +-MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS" ++XLIBS_LIBS="$XLIBS_LIBS $XFT_LIBS -lX11 -lXext" + + fi + +-# do this here for freetype include +-MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XLIBS_CFLAGS" +- +- + dnl ------ Check for Pango --------------------------------------------------- + + if test x$enable_pango != xno; then +@@ -172,7 +170,7 @@ if test x$enable_png != xno; then + AC_DEFINE(USE_PNG, [1], [Use Png]) + SUPPORTS_PNG=1 + PNG_LIBS="-lpng -lz" +- MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS $PNG_LIBS" ++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $PNG_LIBS" + else + AC_MSG_WARN([*** Cannot find PNG, disabling support]) + enable_png=no +@@ -340,6 +338,7 @@ AC_SUBST(MB_EXTRA_CFLAGS) + AC_SUBST(XLIBS_REQUIRED) + AC_SUBST(PANGO_REQUIRED) + AC_SUBST(PNG_REQUIRED) ++AC_SUBST(XFT_REQUIRED) + + dnl ------ Below used for mbconfig.h ---------------------------------------- + +Index: libmatchbox-1.9/libmb.pc.in +=================================================================== +--- libmatchbox-1.9.orig/libmb.pc.in 2007-11-11 22:30:47.000000000 +0000 ++++ libmatchbox-1.9/libmb.pc.in 2007-11-11 22:31:01.000000000 +0000 +@@ -7,6 +7,6 @@ Name: libmb + Description: Utility Library used by Matchbox utilities. + Version: @VERSION@ + +-Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@ ++Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@ @XFT_REQUIRED@ + Libs: -L${libdir} -lmb @MB_EXTRA_LIBS@ + Cflags: -I${includedir} @MB_EXTRA_CFLAGS@ diff --git a/meta/recipes-graphics/libmatchbox/files/fix-configure-for-1.9.patch b/meta/recipes-graphics/libmatchbox/files/fix-configure-for-1.9.patch new file mode 100644 index 000000000..990b738e6 --- /dev/null +++ b/meta/recipes-graphics/libmatchbox/files/fix-configure-for-1.9.patch @@ -0,0 +1,14 @@ +diff -urNd ../libmatchbox-1.6-r1/libmatchbox-1.6/configure.ac libmatchbox-1.6/configure.ac +--- ../libmatchbox-1.6-r1/libmatchbox-1.6/configure.ac 2005-01-11 21:47:39 +00:00 ++++ libmatchbox-1.6/configure.ac 2005-03-14 03:06:25 +00:00 +@@ -2,9 +2,9 @@ + AC_INIT([libmatchbox], 1.6, [mallum@handhelds.org]) + AC_CONFIG_SRCDIR([libmb/mbtray.c]) + ++AC_CONFIG_AUX_DIR(.) + AM_INIT_AUTOMAKE() + AM_CONFIG_HEADER([config.h]) +-AC_CONFIG_AUX_DIR(.) + + # Checks for programs. + AC_GNU_SOURCE |