summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRod Whitby <rod@whitby.id.au>2007-02-01 02:17:28 +0000
committerRod Whitby <rod@whitby.id.au>2007-02-01 02:17:28 +0000
commit4535a2191ae70715bf899c704e16bea65dd224cb (patch)
tree904b4761adf2ec42c1dadfa65c9810658c598500
parentd01b8136f2e8d3daf120cea1962b9af487bd2335 (diff)
parente0be045be38a9e4eaa9cc877b86b577deedcf367 (diff)
merge of '3113cfe3acb79d8bce9b167f4840c404f744c7a4'
and 'da7c8d017a4154208fc087bae975d8058f6c2e6f'
-rw-r--r--MAINTAINERS2
-rw-r--r--classes/package.bbclass3
-rw-r--r--conf/distro/generic.conf5
-rw-r--r--conf/distro/include/sane-srcdates.inc2
-rw-r--r--conf/machine/logicpd-pxa270.conf2
-rw-r--r--packages/cairo/cairo_1.3.12.bb4
-rw-r--r--packages/cairo/files/cairo-surface-cache-3.patch371
-rw-r--r--packages/cairo/files/cairo-surface-cache.patch91
-rw-r--r--packages/directfb/directfb_0.9.99+1.0.0rc3.bb (renamed from packages/directfb/directfb_0.9.99+1.0.0rc2.bb)20
-rw-r--r--packages/directfb/files/tslib_support.patch818
-rw-r--r--packages/gcc/gcc-4.1.1/sh3-installfix-fixheaders.patch11
-rw-r--r--packages/gcc/gcc_4.1.1.bb1
-rw-r--r--packages/gnokii/gnokii_0.6.14.bb26
-rw-r--r--packages/gnokii/gnokii_0.6.4.bb4
-rw-r--r--packages/gpe-mini-browser/gpe-mini-browser_0.20.bb52
-rw-r--r--packages/js/js_1.5.bb14
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/.mtn2git_empty0
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/asoc-v0.12.4.patch31712
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/config-nr-tty-devices.patch1068
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/defconfig-logicpd-pxa2701444
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/input_power-r6.patch222
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/kexec-arm-r3.patch275
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/logicpd-pxa270-cf-hack.patch727
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/logicpd-pxa270-flash.patch244
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/logicpd-pxa270-hardware-id-hack.patch31
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/logicpd-pxa270-lcd-osd024ttea2.patch81
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/logicpd-pxa270-smc91x.patch35
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/pm_changes-r1.patch44
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/pxa25x_cpufreq-r1.patch398
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/pxa27x_overlay-r4.patch2469
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/pxa_irda_susres_fix-r0.patch93
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/pxa_keys-r5.patch211
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/pxa_timerfix-r0.patch77
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/pxafb_fix_params-r2.patch90
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/ucb1400-touchscreen.patch747
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/usb_add_epalloc-r3.patch282
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/usb_pxa27x_udc-r3.patch2878
-rw-r--r--packages/linux/logicpd-pxa270-2.6.19.2/xscale_cache_workaround-r1.patch93
-rw-r--r--packages/linux/logicpd-pxa270_2.6.19.2.bb60
-rw-r--r--packages/python/python-pylirc_0.0.5.bb11
-rw-r--r--packages/vorbis-tools/vorbis-tools-1.0.1/remove-deprecated-curl-option.patch13
-rw-r--r--packages/vorbis-tools/vorbis-tools_1.0.1.bb11
42 files changed, 43810 insertions, 932 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index ace5d1a5de..a9d2d4b47d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -160,7 +160,7 @@ Recipes: qpf-unismall, poboxserver, imkit*
Person: Shane Volpe
Mail: shanevolpe@gmail.com
Machines: logicpd-pxa270
-Recipes: directfb
+Recipes: directfb, php
Person: Øyvind Repvik
Mail: nail@nslu2-linux.org
diff --git a/classes/package.bbclass b/classes/package.bbclass
index 59b78878ba..648b7467fb 100644
--- a/classes/package.bbclass
+++ b/classes/package.bbclass
@@ -396,7 +396,8 @@ python populate_packages () {
newfiles = [ os.path.join(file,x) for x in os.listdir(file) ]
if newfiles:
files += newfiles
- cleandirs = [file] + cleandirs
+ if file != "./":
+ cleandirs = [file] + cleandirs
continue
globbed = glob.glob(file)
if globbed:
diff --git a/conf/distro/generic.conf b/conf/distro/generic.conf
index 27c0437cf5..dbe68f24a4 100644
--- a/conf/distro/generic.conf
+++ b/conf/distro/generic.conf
@@ -53,10 +53,13 @@ PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
TARGET_OS = "linux"
TARGET_FPU_arm = "soft"
TARGET_FPU_armeb = "soft"
+
PREFERRED_PROVIDER_virtual/libiconv = "glibc"
PREFERRED_PROVIDER_virtual/libintl = "glibc"
-PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/libc = "glibc"
PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/${TARGET_ARCH}-${TARGET_OS}-libc-for-gcc = "glibc-intermediate"
PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
PREFERRED_VERSION_glibc ?= "2.5"
PREFERRED_VERSION_glibc-intermediate ?= "2.5"
diff --git a/conf/distro/include/sane-srcdates.inc b/conf/distro/include/sane-srcdates.inc
index 27e34856fd..53e187abf0 100644
--- a/conf/distro/include/sane-srcdates.inc
+++ b/conf/distro/include/sane-srcdates.inc
@@ -34,6 +34,8 @@ SRCDATE_matchbox-panel-manager ?= "20060612"
SRCDATE_matchbox-stroke ?= "20060612"
SRCDATE_matchbox-themes-extra ?= "20060612"
SRCDATE_matchbox-wm ?= "20060612"
+SRCDATE_libmatchbox ?= "20060612"
+SRCDATE_libfakekey ?= "20051101"
SRCDATE_psplash ?= "20061207"
SRCDATE_web ?= "20060613"
SRCDATE_zaurusd ?= "20060628"
diff --git a/conf/machine/logicpd-pxa270.conf b/conf/machine/logicpd-pxa270.conf
index dacee830b7..435014ac5c 100644
--- a/conf/machine/logicpd-pxa270.conf
+++ b/conf/machine/logicpd-pxa270.conf
@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for LogicPD PXA270 Zoom Development Platform
#OLDEST_KERNEL = "2.6.17-rc5"
TARGET_ARCH = "arm"
-PREFERRED_VERSION_logicpd-pxa270 = "2.6.17-rc5"
+PREFERRED_VERSION_logicpd-pxa270 = "2.6.19.2"
GUI_MACHINE_CLASS = "smallscreen"
PREFERRED_PROVIDER_virtual/kernel = "${MACHINE}"
diff --git a/packages/cairo/cairo_1.3.12.bb b/packages/cairo/cairo_1.3.12.bb
index b6a6a482bf..cb83b8e4a2 100644
--- a/packages/cairo/cairo_1.3.12.bb
+++ b/packages/cairo/cairo_1.3.12.bb
@@ -4,7 +4,7 @@ DEFAULT_PREFERENCE = "-1"
require cairo.inc
SRC_URI = "http://cairographics.org/snapshots/cairo-${PV}.tar.gz \
- file://cairo-surface-cache.patch;patch=1"
+ file://cairo-surface-cache-3.patch;patch=1"
-PR = "r1"
+PR = "r2"
diff --git a/packages/cairo/files/cairo-surface-cache-3.patch b/packages/cairo/files/cairo-surface-cache-3.patch
new file mode 100644
index 0000000000..ba714359a6
--- /dev/null
+++ b/packages/cairo/files/cairo-surface-cache-3.patch
@@ -0,0 +1,371 @@
+diff --git a/src/cairo-clip.c b/src/cairo-clip.c
+diff --git a/src/cairo-color.c b/src/cairo-color.c
+index a348839..0688167 100644
+--- a/src/cairo-color.c
++++ b/src/cairo-color.c
+@@ -159,3 +159,10 @@ _cairo_color_get_rgba_premultiplied (cai
+ *blue = color->blue * color->alpha;
+ *alpha = color->alpha;
+ }
++
++cairo_bool_t
++_cairo_color_equal (cairo_color_t *color_a,
++ cairo_color_t *color_b)
++{
++ return (memcmp (color_a, color_b, sizeof (cairo_color_t)) == 0);
++}
+diff --git a/src/cairo-directfb-surface.c b/src/cairo-directfb-surface.c
+index 686510d..96ee212 100644
+--- a/src/cairo-directfb-surface.c
++++ b/src/cairo-directfb-surface.c
+@@ -1514,6 +1514,15 @@ _cairo_directfb_surface_show_glyphs ( vo
+ }
+ #endif /* DFB_SHOW_GLYPHS */
+
++static cairo_bool_t
++_cairo_directfb_surface_is_compatible (void *surface_a,
++ void *surface_b)
++{
++ cairo_directfb_surface_t *a = (cairo_directfb_surface_t*) surface_a;
++ cairo_directfb_surface_t *b = (cairo_directfb_surface_t*) surface_b;
++
++ return (a->dfb == b->dfb);
++}
+
+ static cairo_surface_backend_t cairo_directfb_surface_backend = {
+ CAIRO_SURFACE_TYPE_DIRECTFB, /*type*/
+@@ -1564,7 +1573,8 @@ #if DFB_SHOW_GLYPHS
+ #else
+ NULL, /* show_glyphs */
+ #endif
+- NULL /* snapshot */
++ NULL, /* snapshot */
++ _cairo_directfb_is_compatible
+ };
+
+
+diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
+diff --git a/src/cairo-glitz-surface.c b/src/cairo-glitz-surface.c
+index f492739..79e0162 100644
+--- a/src/cairo-glitz-surface.c
++++ b/src/cairo-glitz-surface.c
+@@ -1799,6 +1799,19 @@ _cairo_glitz_surface_scaled_glyph_fini (
+ }
+ }
+
++static cairo_bool_t
++_cairo_glitz_surface_is_compatible (void *surface_a,
++ void *surface_b)
++{
++ cairo_glitz_surface_t *a = (cairo_glitz_surface_t*) surface_a;
++ cairo_glitz_surface_t *b = (cairo_glitz_surface_t*) surface_b;
++
++ glitz_drawable *drawable_a = glitz_surface_get_drawable (a->surface);
++ glitz_drawable *drawable_b = glitz_surface_get_drawable (b->surface);
++
++ return (drawable_a == drawable_b);
++}
++
+ #define FIXED_TO_FLOAT(f) (((glitz_float_t) (f)) / 65536)
+
+ static cairo_status_t
+@@ -2194,7 +2207,16 @@ static const cairo_surface_backend_t cai
+ _cairo_glitz_surface_flush,
+ NULL, /* mark_dirty_rectangle */
+ _cairo_glitz_surface_scaled_font_fini,
+- _cairo_glitz_surface_scaled_glyph_fini
++ _cairo_glitz_surface_scaled_glyph_fini,
++
++ NULL, /* paint */
++ NULL, /* mask */
++ NULL, /* stroke */
++ NULL, /* fill */
++ NULL, /* show_glyphs */
++
++ NULL, /* snapshot */
++ _cairo_glitz_surface_is_compatible
+ };
+
+ static const cairo_surface_backend_t *
+diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
+diff --git a/src/cairo-meta-surface.c b/src/cairo-meta-surface.c
+diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
+index b488d1f..28f8561 100644
+--- a/src/cairo-pattern.c
++++ b/src/cairo-pattern.c
+@@ -1020,6 +1020,8 @@ _cairo_pattern_acquire_surface_for_gradi
+ return status;
+ }
+
++#define MAX_CACHE_SIZE 16
++
+ static cairo_int_status_t
+ _cairo_pattern_acquire_surface_for_solid (cairo_solid_pattern_t *pattern,
+ cairo_surface_t *dst,
+@@ -1030,12 +1032,59 @@ _cairo_pattern_acquire_surface_for_solid
+ cairo_surface_t **out,
+ cairo_surface_attributes_t *attribs)
+ {
+- *out = _cairo_surface_create_similar_solid (dst,
+- CAIRO_CONTENT_COLOR_ALPHA,
+- 1, 1,
+- &pattern->color);
+- if ((*out)->status)
+- return CAIRO_STATUS_NO_MEMORY;
++ /* We have a small cache here, because we don't want to constantly
++ * recreate surfaces for simple solid colors */
++ static struct {
++ cairo_color_t color;
++ cairo_surface_t *surface;
++ } cache[MAX_CACHE_SIZE];
++ static int cache_size = 0;
++ static int i = 0;
++ CAIRO_MUTEX_DECLARE (cache_lock);
++
++ cairo_surface_t *surface;
++ cairo_status_t status;
++
++ CAIRO_MUTEX_LOCK (cache_lock);
++
++ /* Check cache first */
++ if (i < cache_size)
++ if (_cairo_color_equal (&cache[i].color, &pattern->color) &&
++ _cairo_surface_is_compatible (cache[i].surface, dst))
++ goto DONE;
++
++ for (i = 0; i < cache_size; i++)
++ if (_cairo_color_equal (&cache[i].color, &pattern->color) &&
++ _cairo_surface_is_compatible (cache[i].surface, dst))
++ goto DONE;
++
++ /* Not cached, need to create new */
++ surface = _cairo_surface_create_similar_solid (dst,
++ CAIRO_CONTENT_COLOR_ALPHA,
++ 1, 1,
++ &pattern->color);
++ if (surface->status) {
++ status = CAIRO_STATUS_NO_MEMORY;
++
++ goto UNLOCK;
++ }
++
++ /* Cache new */
++ if (cache_size < MAX_CACHE_SIZE)
++ cache_size++;
++ else {
++ i = rand () % MAX_CACHE_SIZE;
++
++ /* Evict old */
++ cairo_surface_destroy (cache[i].surface);
++ }
++
++ cache[i].color = pattern->color;
++ cache[i].surface = surface;
++
++DONE:
++
++ *out = cairo_surface_reference (cache[i].surface);
+
+ attribs->x_offset = attribs->y_offset = 0;
+ cairo_matrix_init_identity (&attribs->matrix);
+@@ -1043,7 +1092,13 @@ _cairo_pattern_acquire_surface_for_solid
+ attribs->filter = CAIRO_FILTER_NEAREST;
+ attribs->acquired = FALSE;
+
+- return CAIRO_STATUS_SUCCESS;
++ status = CAIRO_STATUS_SUCCESS;
++
++UNLOCK:
++
++ CAIRO_MUTEX_UNLOCK (cache_lock);
++
++ return status;
+ }
+
+ /**
+diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c
+diff --git a/src/cairo-surface-fallback.c b/src/cairo-surface-fallback.c
+diff --git a/src/cairo-surface.c b/src/cairo-surface.c
+index 2bff0da..78cad9b 100644
+--- a/src/cairo-surface.c
++++ b/src/cairo-surface.c
+@@ -1078,6 +1078,32 @@ _cairo_surface_snapshot (cairo_surface_t
+ return _cairo_surface_fallback_snapshot (surface);
+ }
+
++/**
++ * _cairo_surface_is_compatible
++ * @surface_a: a #cairo_surface_t
++ * @surface_b: a #cairo_surface_t
++ *
++ * Find out whether the given surfaces share the same backend,
++ * and if so, whether they can be considered compatible.
++ *
++ * The definition of "compatible" depends on the backend. In the
++ * xlib case, it means the surfaces share the same display.
++ *
++ * Return value: TRUE if the surfaces are compatible.
++ **/
++cairo_bool_t
++_cairo_surface_is_compatible (cairo_surface_t *surface_a,
++ cairo_surface_t *surface_b)
++{
++ if (surface_a->backend != surface_b->backend)
++ return FALSE;
++
++ if (surface_a->backend->is_compatible)
++ return surface_a->backend->is_compatible (surface_a, surface_b);
++
++ return TRUE;
++}
++
+ cairo_status_t
+ _cairo_surface_composite (cairo_operator_t op,
+ cairo_pattern_t *src,
+diff --git a/src/cairo-win32-surface.c b/src/cairo-win32-surface.c
+index be7e706..81eb916 100644
+--- a/src/cairo-win32-surface.c
++++ b/src/cairo-win32-surface.c
+@@ -1609,6 +1609,16 @@ _cairo_win32_surface_show_glyphs (void
+ return (win_result) ? CAIRO_STATUS_SUCCESS : CAIRO_INT_STATUS_UNSUPPORTED;
+ }
+
++static cairo_bool_t
++_cairo_win32_surface_is_compatible (void *surface_a,
++ void *surface_b)
++{
++ cairo_win32_surface_t *a = (cairo_win32_surface_t*) surface_a;
++ cairo_win32_surface_t *b = (cairo_win32_surface_t*) surface_b;
++
++ return (a->dc == b->dc);
++}
++
+ #undef STACK_GLYPH_SIZE
+
+ /**
+@@ -1879,7 +1889,8 @@ static const cairo_surface_backend_t cai
+ NULL, /* fill */
+ _cairo_win32_surface_show_glyphs,
+
+- NULL /* snapshot */
++ NULL, /* snapshot */
++ _cairo_win32_surface_is_compatible
+ };
+
+ /*
+diff --git a/src/cairo-xcb-surface.c b/src/cairo-xcb-surface.c
+index 2fdf8a1..8df859d 100644
+--- a/src/cairo-xcb-surface.c
++++ b/src/cairo-xcb-surface.c
+@@ -1578,6 +1578,10 @@ _cairo_xcb_surface_show_glyphs (void
+ int num_glyphs,
+ cairo_scaled_font_t *scaled_font);
+
++static cairo_bool_t
++_cairo_xcb_surface_is_compatible (void *surface_a,
++ void *surface_b);
++
+ /* XXX: move this to the bottom of the file, XCB and Xlib */
+
+ static const cairo_surface_backend_t cairo_xcb_surface_backend = {
+@@ -1609,7 +1613,8 @@ static const cairo_surface_backend_t cai
+ NULL, /* stroke */
+ NULL, /* fill */
+ _cairo_xcb_surface_show_glyphs,
+- NULL /* snapshot */
++ NULL, /* snapshot */
++ _cairo_xcb_surface_is_compatible
+ };
+
+ /**
+@@ -2451,3 +2456,13 @@ _cairo_xcb_surface_show_glyphs (void
+
+ return status;
+ }
++
++static cairo_bool_t
++_cairo_xcb_surface_is_compatible (void *surface_a,
++ void *surface_b)
++{
++ cairo_xcb_surface_t *a = (cairo_xcb_surface_t*) surface_a;
++ cairo_xcb_surface_t *b = (cairo_xcb_surface_t*) surface_b;
++
++ return (a->dpy == b->dpy);
++}
+diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
+index 6a0d3e4..9228c95 100644
+--- a/src/cairo-xlib-surface.c
++++ b/src/cairo-xlib-surface.c
+@@ -74,6 +74,10 @@ _cairo_xlib_surface_show_glyphs (void
+ int num_glyphs,
+ cairo_scaled_font_t *scaled_font);
+
++static cairo_bool_t
++_cairo_xlib_surface_is_compatible (void *surface_a,
++ void *surface_b);
++
+ /*
+ * Instead of taking two round trips for each blending request,
+ * assume that if a particular drawable fails GetImage that it will
+@@ -1783,7 +1787,8 @@ static const cairo_surface_backend_t cai
+ NULL, /* stroke */
+ NULL, /* fill */
+ _cairo_xlib_surface_show_glyphs,
+- NULL /* snapshot */
++ NULL, /* snapshot */
++ _cairo_xlib_surface_is_compatible
+ };
+
+ /**
+@@ -2913,3 +2918,13 @@ _cairo_xlib_surface_show_glyphs (void
+
+ return status;
+ }
++
++static cairo_bool_t
++_cairo_xlib_surface_is_compatible (void *surface_a,
++ void *surface_b)
++{
++ cairo_xlib_surface_t *a = (cairo_xlib_surface_t*) surface_a;
++ cairo_xlib_surface_t *b = (cairo_xlib_surface_t*) surface_b;
++
++ return (a->dpy == b->dpy);
++}
+diff --git a/src/cairo.c b/src/cairo.c
+diff --git a/src/cairoint.h b/src/cairoint.h
+index 060b988..01c0e2a 100755
+--- a/src/cairoint.h
++++ b/src/cairoint.h
+@@ -933,6 +933,10 @@ struct _cairo_surface_backend {
+
+ cairo_surface_t *
+ (*snapshot) (void *surface);
++
++ cairo_bool_t
++ (*is_compatible) (void *surface_a,
++ void *surface_b);
+ };
+
+ typedef struct _cairo_format_masks {
+@@ -1497,6 +1501,10 @@ _cairo_color_get_rgba_premultiplied (cai
+ double *blue,
+ double *alpha);
+
++cairo_private cairo_bool_t
++_cairo_color_equal (cairo_color_t *color_a,
++ cairo_color_t *color_b);
++
+ /* cairo-font.c */
+
+ cairo_private void
+@@ -1922,6 +1930,10 @@ _cairo_surface_clone_similar (cairo_surf
+ cairo_private cairo_surface_t *
+ _cairo_surface_snapshot (cairo_surface_t *surface);
+
++cairo_private cairo_bool_t
++_cairo_surface_is_compatible (cairo_surface_t *surface_a,
++ cairo_surface_t *surface_b);
++
+ cairo_private unsigned int
+ _cairo_surface_get_current_clip_serial (cairo_surface_t *surface);
+
diff --git a/packages/cairo/files/cairo-surface-cache.patch b/packages/cairo/files/cairo-surface-cache.patch
deleted file mode 100644
index ee9fc3a46e..0000000000
--- a/packages/cairo/files/cairo-surface-cache.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-Hi,
-
-Last month, Xan xtraced[1] cairo text drawing (using xlib), and noticed
-that cairo creates (and afterward destroys) a 1x1 pixmap (a cairo
-surface) every time it draws some text. Xft doesn't do this.
-
-Carl and Behdad suggested ways to, like Xft, cache surfaces so as not to
-have to recreate them all the time.
-
-As suggested by Carl in the same thread, I first investigated
-per-pattern caching of acquired surfaces. This didn't work as patterns
-mostly get copied before their surfaces are requested.
-
-Attached patch adds a simple 16-entry static cache to
-_cairo_pattern_acquire_surface_for_solid(). It still needs work, however
-this already yields a speedup[2] of 12% when drawing text using GTK+
-2.10, exceeding the performance of GTK+ 2.6. Yay!
-
-Comments appreciated,
-
-Jorn
-
-diff --git a/src/cairo-pattern.c b/src/cairo-pattern.c
-index b488d1f..be63faf 100644
---- a/src/cairo-pattern.c
-+++ b/src/cairo-pattern.c
-@@ -1020,6 +1020,8 @@ _cairo_pattern_acquire_surface_for_gradi
- return status;
- }
-
-+#define MAX_CACHE_SIZE 16
-+
- static cairo_int_status_t
- _cairo_pattern_acquire_surface_for_solid (cairo_solid_pattern_t *pattern,
- cairo_surface_t *dst,
-@@ -1030,13 +1032,50 @@ _cairo_pattern_acquire_surface_for_solid
- cairo_surface_t **out,
- cairo_surface_attributes_t *attribs)
- {
-- *out = _cairo_surface_create_similar_solid (dst,
-- CAIRO_CONTENT_COLOR_ALPHA,
-- 1, 1,
-- &pattern->color);
-- if ((*out)->status)
-+ /* We have a small cache here, because we don't want to constantly
-+ * recreate surfaces for simple solid colors */
-+ static struct {
-+ cairo_color_t color;
-+ cairo_surface_t *surface;
-+ } cache[MAX_CACHE_SIZE];
-+ static int cache_size = 0;
-+
-+ cairo_surface_t *surface;
-+ int i;
-+
-+ /* Check cache first */
-+ for (i = 0; i < cache_size; i++)
-+ if (cache[i].surface->backend == dst->backend &&
-+ memcmp (&cache[i].color,
-+ &pattern->color,
-+ sizeof (cairo_color_t)) == 0)
-+ goto DONE;
-+
-+ /* Not cached, need to create new */
-+ surface = _cairo_surface_create_similar_solid (dst,
-+ CAIRO_CONTENT_COLOR_ALPHA,
-+ 1, 1,
-+ &pattern->color);
-+ if (surface->status)
- return CAIRO_STATUS_NO_MEMORY;
-
-+ /* Cache new */
-+ if (cache_size < MAX_CACHE_SIZE)
-+ cache_size++;
-+ else {
-+ i = random () % MAX_CACHE_SIZE;
-+
-+ /* Evict old */
-+ cairo_surface_destroy (cache[i].surface);
-+ }
-+
-+ cache[i].color = pattern->color;
-+ cache[i].surface = surface;
-+
-+DONE:
-+
-+ *out = cairo_surface_reference (cache[i].surface);
-+
- attribs->x_offset = attribs->y_offset = 0;
- cairo_matrix_init_identity (&attribs->matrix);
- attribs->extend = CAIRO_EXTEND_REPEAT;
diff --git a/packages/directfb/directfb_0.9.99+1.0.0rc2.bb b/packages/directfb/directfb_0.9.99+1.0.0rc3.bb
index 0298f2a247..5bb6aa362e 100644
--- a/packages/directfb/directfb_0.9.99+1.0.0rc2.bb
+++ b/packages/directfb/directfb_0.9.99+1.0.0rc3.bb
@@ -10,12 +10,11 @@ DEPENDS = "jpeg libpng freetype zlib tslib"
PR = "r1"
RV = "1.0-0"
-SRC_URI = "http://directfb.org/downloads/Core/DirectFB-1.0.0-rc2.tar.gz \
+SRC_URI = "http://www.directfb.org/download/DirectFB/DirectFB-1.0.0-rc3.tar.gz \
file://fix-pkgconfig-specs.patch;patch=1 \
- file://mkdfiff.patch;patch=1 \
- file://tslib_support.patch;patch=1"
+ file://mkdfiff.patch;patch=1"
-S = "${WORKDIR}/DirectFB-1.0.0-rc2"
+S = "${WORKDIR}/DirectFB-1.0.0-rc3"
LDFLAGS_append =" -lts -lm"
@@ -32,8 +31,19 @@ do_install() {
oe_runmake 'DESTDIR=${D}' install
}
+FILES_directfb-dbg_append = " ${libdir}/directfb-${RV}/*/*/.debug/*.so \
+ ${libdir}/directfb-${RV}/*/.debug/*.so \
+ "
+
+FILES_directfb-dev_append = " ${libdir}/directfb-${RV}/systems/*.la \
+ ${libdir}/directfb-${RV}/inputdrivers/*.la \
+ ${libdir}/directfb-${RV}/interfaces/*/*.la \
+ ${libdir}/directfb-${RV}/wm/*.la"
+
+
FILES_directfb_append = " ${libdir}/directfb-${RV}/systems/*.so \
${libdir}/directfb-${RV}/inputdrivers/*.so \
${libdir}/directfb-${RV}/interfaces/*/*.so \
${libdir}/directfb-${RV}/wm/*.so \
- ${datadir}/directfb-${RV}"
+ ${datadir}/directfb-1.0.0-rc3 \
+ "
diff --git a/packages/directfb/files/tslib_support.patch b/packages/directfb/files/tslib_support.patch
deleted file mode 100644
index f444cb9574..0000000000
--- a/packages/directfb/files/tslib_support.patch
+++ /dev/null
@@ -1,818 +0,0 @@
-diff -u'rNF^function' DirectFB-1.0.0-rc1~org/configure.in DirectFB-1.0.0-rc1/configure.in
---- DirectFB-1.0.0-rc1~org/configure.in 2006-09-30 17:08:56.000000000 -0400
-+++ DirectFB-1.0.0-rc1/configure.in 2006-10-16 08:15:32.000000000 -0400
-@@ -998,6 +998,7 @@
- checkfor_serialmouse=no
- checkfor_sonypijogdial=no
- checkfor_ucb1x00=no
-+checkfor_tslib=no
- checkfor_wm97xx=no
-
- AC_MSG_CHECKING(which inputdrivers should be built)
-@@ -1027,6 +1028,7 @@
- checkfor_serialmouse=yes
- checkfor_sonypijogdial=yes
- checkfor_ucb1x00="$have_arm"
-+ checkfor_tslib=yes
- checkfor_wm97xx=yes
- AC_MSG_RESULT(all)
- else
-@@ -1083,6 +1085,9 @@
- ucb1x00)
- checkfor_ucb1x00=yes
- ;;
-+ tslib)
-+ checkfor_tslib=yes
-+ ;;
- wm97xx)
- checkfor_wm97xx=yes
- ;;
-@@ -1196,6 +1201,12 @@
- enable_ucb1x00_ts=yes
- fi
-
-+enable_tslib=no
-+if test "$checkfor_tslib" = "yes"; then
-+ dnl Test for TSLIB Touchscreen support
-+ enable_tslib=yes
-+fi
-+
- enable_wm97xx_ts=no
- if test "$checkfor_wm97xx" = "yes"; then
- dnl Test for WM97xx Touchscreen support
-@@ -1266,6 +1277,7 @@