All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] Bump DirectFB to 1.4.3
@ 2010-01-19 20:15 Paulius Zaleckas
  2010-01-20  0:05 ` [Buildroot] [PATCH 1/7] directfb: some cleanup in config file llandwerlin at gmail.com
                   ` (6 more replies)
  0 siblings, 7 replies; 12+ messages in thread
From: Paulius Zaleckas @ 2010-01-19 20:15 UTC (permalink / raw)
  To: buildroot

directfb-gfxcard-fix-build-error-with-debug.patch is already
integrated.

Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
---

 ...rectfb-gfxcard-fix-build-error-with-debug.patch |   33 --------------------
 package/directfb/directfb.mk                       |    2 +
 2 files changed, 1 insertions(+), 34 deletions(-)
 delete mode 100644 package/directfb/directfb-gfxcard-fix-build-error-with-debug.patch

diff --git a/package/directfb/directfb-gfxcard-fix-build-error-with-debug.patch b/package/directfb/directfb-gfxcard-fix-build-error-with-debug.patch
deleted file mode 100644
index 2c1d459..0000000
--- a/package/directfb/directfb-gfxcard-fix-build-error-with-debug.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From fab69ff2e063f0b6a4b13139f100ff01aa4cae84 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet@sunsite.dk>
-Date: Fri, 2 Oct 2009 12:20:31 +0200
-Subject: [PATCH] gfxcard: fix build error with --enable-debug
-
-Commit fdc611ea (Added support for colors and multiple layers in a
-glyph implementing outlines) changed dfb_gfxcard_drawglyph() to take
-a layers argument instead of index, but the D_DEBUG_AT call wasn't
-changed to match.
-
-Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
----
- src/core/gfxcard.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/core/gfxcard.c b/src/core/gfxcard.c
-index 127e30e..0020103 100644
---- a/src/core/gfxcard.c
-+++ b/src/core/gfxcard.c
-@@ -2335,8 +2335,8 @@ void dfb_gfxcard_drawglyph( CoreGlyphData **glyph, int x, int y,
-      DFBSurfaceBlendFunction  orig_srcblend;
-      DFBSurfaceBlendFunction  orig_dstblend;
- 
--     D_DEBUG_AT( Core_GraphicsOps, "%s( %u, %d,%d, %p, %p )\n",
--                 __FUNCTION__, index, x, y, font, state );
-+     D_DEBUG_AT( Core_GraphicsOps, "%s( %d,%d, %u, %p, %p )\n",
-+                 __FUNCTION__, x, y, layers, font, state );
- 
-      D_ASSERT( card != NULL );
-      D_ASSERT( card->shared != NULL );
--- 
-1.6.3.3
-
diff --git a/package/directfb/directfb.mk b/package/directfb/directfb.mk
index a4ee3bc..2f095ee 100644
--- a/package/directfb/directfb.mk
+++ b/package/directfb/directfb.mk
@@ -4,7 +4,7 @@
 #
 #############################################################
 DIRECTFB_VERSION_MAJOR:=1.4
-DIRECTFB_VERSION:=1.4.2
+DIRECTFB_VERSION:=1.4.3
 DIRECTFB_SITE:=http://www.directfb.org/downloads/Core/DirectFB-$(DIRECTFB_VERSION_MAJOR)
 DIRECTFB_SOURCE:=DirectFB-$(DIRECTFB_VERSION).tar.gz
 DIRECTFB_AUTORECONF = NO

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 1/7] directfb: some cleanup in config file
  2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
@ 2010-01-20  0:05 ` llandwerlin at gmail.com
  2010-01-28 16:11   ` Peter Korsgaard
  2010-01-20  0:05 ` [Buildroot] [PATCH 3/7] package: added lirc llandwerlin at gmail.com
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: llandwerlin at gmail.com @ 2010-01-20  0:05 UTC (permalink / raw)
  To: buildroot

From: Lionel Landwerlin <llandwerlin@gmail.com>

Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
---
 package/directfb/Config.in |   24 ++++--------------------
 1 files changed, 4 insertions(+), 20 deletions(-)

diff --git a/package/directfb/Config.in b/package/directfb/Config.in
index fd1f766..7c41cdf 100644
--- a/package/directfb/Config.in
+++ b/package/directfb/Config.in
@@ -5,113 +5,97 @@ config BR2_PACKAGE_DIRECTFB
 	help
 	  http://www.directfb.org/
 
+if BR2_PACKAGE_DIRECTFB
+
 config BR2_PACKAGE_DIRECTFB_MULTI
 	bool "directfb multi application"
-	depends on BR2_PACKAGE_DIRECTFB
 	select BR2_PACKAGE_LINUX_FUSION
 	help
 	  Enable use of multiple concurrent DirectFB applications
 
 config BR2_PACKAGE_DIRECTFB_DEBUG
 	bool "directfb debugging"
-	depends on BR2_PACKAGE_DIRECTFB
 	help
 	  Compile DirectFB with lots of debug output
 
 config BR2_PACKAGE_DIRECTFB_TRACE
 	bool "directfb call trace support"
-	depends on BR2_PACKAGE_DIRECTFB
 	help
 	  Enable call tracing for DirectFB applications
 
 config BR2_PACKAGE_DIRECTFB_XSERVER
 	bool "build with X server backend"
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_PACKAGE_XORG7
 
 config BR2_PACKAGE_DIRECTFB_UNIQUE
 	bool "enable unique window manager"
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_UNIMPLEMENTED
 
 config BR2_PACKAGE_DIRECTFB_ATI128
 	bool "compile ati128 graphics driver"
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_i386 || BR2_x86_64
 
 config BR2_PACKAGE_DIRECTFB_CLE266
 	bool "compile cle266 graphics driver"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_i386 || BR2_x86_64
 
 config BR2_PACKAGE_DIRECTFB_MATROX
 	bool "compile matrox graphics driver"
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_i386 || BR2_x86_64
 
 config BR2_PACKAGE_DIRECTFB_PXA3XX
 	bool "compile pxa3xx graphics driver"
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_arm
 
 config BR2_PACKAGE_DIRECTFB_UNICHROME
 	bool "compile unichrome graphics driver"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_i386 || BR2_x86_64
 
 config BR2_PACKAGE_DIRECTFB_I830
 	bool "compile i830 graphics driver"
-	depends on BR2_PACKAGE_DIRECTFB
 	depends on BR2_i386 || BR2_x86_64
 
 config BR2_PACKAGE_DIRECTFB_LINUXINPUT
 	bool "compile /dev/input/eventX input driver"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 
 config BR2_PACKAGE_DIRECTFB_KEYBOARD
 	bool "compile keyboard input driver"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 
 config BR2_PACKAGE_DIRECTFB_PS2MOUSE
 	bool "compile PS2 mouse input driver"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 
 config BR2_PACKAGE_DIRECTFB_SERIALMOUSE
 	bool "compile serial mouse input driver"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 
 config BR2_PACKAGE_DIRECTFB_TSLIB
 	bool "enable touchscreen support"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 	select BR2_PACKAGE_TSLIB
 
 config BR2_PACKAGE_DIRECTFB_GIF
 	bool "enable GIF support"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 
 config BR2_PACKAGE_DIRECTFB_JPEG
 	bool "enable JPEG support"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 	select BR2_PACKAGE_JPEG
 
 config BR2_PACKAGE_DIRECTFB_PNG
 	bool "enable PNG support"
 	default y
-	depends on BR2_PACKAGE_DIRECTFB
 	select BR2_PACKAGE_LIBPNG
 
 config BR2_PACKAGE_DIRECTB_DITHER_RGB16
 	bool "enable advanced dithering of RGB16 surfaces"
-	depends on BR2_PACKAGE_DIRECTFB
 	help
 	  Enable dithering when loading images to RGB16 surfaces.
 	  This increases the data section by 64 KBytes.
+
+endif # BR2_PACKAGE_DIRECTFB
-- 
1.6.5.7

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 3/7] package: added lirc
  2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
  2010-01-20  0:05 ` [Buildroot] [PATCH 1/7] directfb: some cleanup in config file llandwerlin at gmail.com
@ 2010-01-20  0:05 ` llandwerlin at gmail.com
  2010-01-20  0:05 ` [Buildroot] [PATCH 4/7] directfb: added support for lirc llandwerlin at gmail.com
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: llandwerlin at gmail.com @ 2010-01-20  0:05 UTC (permalink / raw)
  To: buildroot

From: Lionel Landwerlin <llandwerlin@gmail.com>

Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
---
 package/Config.in      |    1 +
 package/lirc/Config.in |   37 +++++++++++++++++++++++++++++++++++++
 package/lirc/S70lircd  |   24 ++++++++++++++++++++++++
 package/lirc/lirc.mk   |   39 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 101 insertions(+), 0 deletions(-)
 create mode 100644 package/lirc/Config.in
 create mode 100644 package/lirc/S70lircd
 create mode 100644 package/lirc/lirc.mk

diff --git a/package/Config.in b/package/Config.in
index 6adf913..f5d38c5 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -251,6 +251,7 @@ source "package/iostat/Config.in"
 source "package/libaio/Config.in"
 source "package/libraw1394/Config.in"
 source "package/libusb/Config.in"
+source "package/lirc/Config.in"
 source "package/lm-sensors/Config.in"
 source "package/lvm2/Config.in"
 source "package/mdadm/Config.in"
diff --git a/package/lirc/Config.in b/package/lirc/Config.in
new file mode 100644
index 0000000..112d00d
--- /dev/null
+++ b/package/lirc/Config.in
@@ -0,0 +1,37 @@
+config BR2_PACKAGE_LIRC
+	bool "lirc"
+	help
+          LIRC is a package that supports receiving and sending IR
+          signals of the most common IR remote controls. It contains a
+          daemon that decodes and sends IR signals, a mouse daemon
+          that translates IR signals to mouse movements and a couple
+          of user programs that allow to control your computer with a
+          remote control.
+
+          A list of supported hardware is available on the main page.
+
+	  http://www.lirc.org/
+
+if BR2_PACKAGE_LIRC
+
+choice
+	prompt "lirc drivers"
+	default BR2_PACKAGE_LIRC_ALL
+
+	help
+	  Select the drivers to build in lirc. There is 3 choices, all
+	  of them, one of them, none of them. By selecting 'one of
+	  them', you will have to select which one in the next item.
+
+	config BR2_PACKAGE_LIRC_ALL
+		bool "all"
+
+	config BR2_PACKAGE_LIRC_USERSPACE
+		bool "userspace"
+
+	config BR2_PACKAGE_LIRC_NONE
+		bool "none"
+endchoice
+
+endif # BR2_PACKAGE_LIRC
+
diff --git a/package/lirc/S70lircd b/package/lirc/S70lircd
new file mode 100644
index 0000000..770bef5
--- /dev/null
+++ b/package/lirc/S70lircd
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+LIRCD=/usr/sbin/lircd
+PID_FILE=/var/run/lircd.pid
+LIRCFLAGS="-o /dev/lircd -P $PID_FILE"
+
+case "$1" in
+    start)
+	echo -n "Starting daemon lircd: "
+        start-stop-daemon --start --quiet --pidfile $PID_FILE --exec $LIRCD -- $LIRCFLAGS
+        echo "done"
+	;;
+    stop)
+	echo -n "Shutting down daemon lircd: "
+	start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $LIRCD
+        echo "done"
+	;;
+    *)
+        echo "Usage: $0 {start|stop}"
+        exit 1
+	;;
+esac
+
+exit 0
diff --git a/package/lirc/lirc.mk b/package/lirc/lirc.mk
new file mode 100644
index 0000000..d19f5cd
--- /dev/null
+++ b/package/lirc/lirc.mk
@@ -0,0 +1,39 @@
+#############################################################
+#
+# lirc
+#
+#############################################################
+
+LIRC_VERSION = 0.8.6
+LIRC_SOURCE = lirc-$(LIRC_VERSION).tar.bz2
+LIRC_SITE = http://prdownloads.sourceforge.net/lirc
+LIRC_LIBTOOL_PATCH = NO
+LIRC_INSTALL_STAGING = YES
+LIRC_INSTALL_TARGET = YES
+
+LIRC_CONF_OPT = --without-x
+
+ifeq ($(BR2_PACKAGE_LIRC_ALL),y)
+LIRC_CONF_OPT += --with-driver=all
+endif
+ifeq ($(BR2_PACKAGE_LIRC_USERSPACE),y)
+LIRC_CONF_OPT += --with-driver=userspace
+endif
+ifeq ($(BR2_PACKAGE_LIRC_NONE),y)
+LIRC_CONF_OPT += --with-driver=none
+endif
+
+define LIRC_INSTALL_TARGET_SCRIPTS
+	mkdir -p $(TARGET_DIR)/etc/init.d
+	$(INSTALL) -m 0755 package/lirc/S70lircd $(TARGET_DIR)/etc/init.d/
+endef
+
+LIRC_POST_INSTALL_TARGET_HOOKS += LIRC_INSTALL_TARGET_SCRIPTS
+
+define LIRC_UNINSTALL_TARGET_SCRIPTS
+	rm -f $(TARGET_DIR)/etc/init.d/S70lircd
+endef
+
+LIRC_POST_UNINSTALL_TARGET_HOOKS += LIRC_UNINSTALL_TARGET_SCRIPTS
+
+$(eval $(call AUTOTARGETS,package,lirc))
-- 
1.6.5.7

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 4/7] directfb: added support for lirc
  2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
  2010-01-20  0:05 ` [Buildroot] [PATCH 1/7] directfb: some cleanup in config file llandwerlin at gmail.com
  2010-01-20  0:05 ` [Buildroot] [PATCH 3/7] package: added lirc llandwerlin at gmail.com
@ 2010-01-20  0:05 ` llandwerlin at gmail.com
  2010-01-20  0:05 ` [Buildroot] [PATCH 5/7] sawman: bump to 1.4.3 llandwerlin at gmail.com
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 12+ messages in thread
From: llandwerlin at gmail.com @ 2010-01-20  0:05 UTC (permalink / raw)
  To: buildroot

From: Lionel Landwerlin <llandwerlin@gmail.com>

Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
---
 package/directfb/Config.in   |    5 +++++
 package/directfb/directfb.mk |    4 ++++
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/package/directfb/Config.in b/package/directfb/Config.in
index 7c41cdf..6c78597 100644
--- a/package/directfb/Config.in
+++ b/package/directfb/Config.in
@@ -65,6 +65,11 @@ config BR2_PACKAGE_DIRECTFB_KEYBOARD
 	bool "compile keyboard input driver"
 	default y
 
+config BR2_PACKAGE_DIRECTFB_LIRC
+	bool "compile lirc input driver"
+	select BR2_PACKAGE_LIRC
+	default n
+
 config BR2_PACKAGE_DIRECTFB_PS2MOUSE
 	bool "compile PS2 mouse input driver"
 	default y
diff --git a/package/directfb/directfb.mk b/package/directfb/directfb.mk
index 2f095ee..a065a22 100644
--- a/package/directfb/directfb.mk
+++ b/package/directfb/directfb.mk
@@ -80,6 +80,10 @@ endif
 ifeq ($(BR2_PACKAGE_DIRECTFB_KEYBOARD),y)
 DIRECTFB_INPUT+= keyboard
 endif
+ifeq ($(BR2_PACKAGE_DIRECTFB_KEYBOARD),y)
+DIRECTFB_INPUT+= lirc
+DIRECTFB_DEP+= lirc
+endif
 ifeq ($(BR2_PACKAGE_DIRECTFB_PS2MOUSE),y)
 DIRECTFB_INPUT+= ps2mouse
 endif
-- 
1.6.5.7

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 5/7] sawman: bump to 1.4.3
  2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
                   ` (2 preceding siblings ...)
  2010-01-20  0:05 ` [Buildroot] [PATCH 4/7] directfb: added support for lirc llandwerlin at gmail.com
@ 2010-01-20  0:05 ` llandwerlin at gmail.com
  2010-01-28 16:12   ` Peter Korsgaard
  2010-01-20  0:05 ` [Buildroot] [PATCH 6/7] pixman: bump to 0.16.4 llandwerlin at gmail.com
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 12+ messages in thread
From: llandwerlin at gmail.com @ 2010-01-20  0:05 UTC (permalink / raw)
  To: buildroot

From: Lionel Landwerlin <llandwerlin@gmail.com>

Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
---
 package/sawman/sawman.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/package/sawman/sawman.mk b/package/sawman/sawman.mk
index 01bb3da..1b53ea9 100644
--- a/package/sawman/sawman.mk
+++ b/package/sawman/sawman.mk
@@ -3,7 +3,7 @@
 # SAWMAN
 #
 #############################################################
-SAWMAN_VERSION:=1.4.2
+SAWMAN_VERSION:=1.4.3
 SAWMAN_SOURCE:=SaWMan-$(SAWMAN_VERSION).tar.gz
 SAWMAN_SITE:=http://www.directfb.org/downloads/Extras
 SAWMAN_INSTALL_STAGING = YES
-- 
1.6.5.7

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 6/7] pixman: bump to 0.16.4
  2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
                   ` (3 preceding siblings ...)
  2010-01-20  0:05 ` [Buildroot] [PATCH 5/7] sawman: bump to 1.4.3 llandwerlin at gmail.com
@ 2010-01-20  0:05 ` llandwerlin at gmail.com
  2010-01-28 16:14   ` Peter Korsgaard
  2010-01-20  0:05 ` [Buildroot] [PATCH 7/7] cairo: Bump to 1.8.8 llandwerlin at gmail.com
  2010-01-20  0:07 ` [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Lionel Landwerlin
  6 siblings, 1 reply; 12+ messages in thread
From: llandwerlin at gmail.com @ 2010-01-20  0:05 UTC (permalink / raw)
  To: buildroot

From: Lionel Landwerlin <llandwerlin@gmail.com>

Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
---
 package/pixman/pixman-0.10.0-no-tests.patch |   11 -----------
 package/pixman/pixman.mk                    |    4 +++-
 2 files changed, 3 insertions(+), 12 deletions(-)
 delete mode 100644 package/pixman/pixman-0.10.0-no-tests.patch

diff --git a/package/pixman/pixman-0.10.0-no-tests.patch b/package/pixman/pixman-0.10.0-no-tests.patch
deleted file mode 100644
index fbd0d26..0000000
--- a/package/pixman/pixman-0.10.0-no-tests.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile.in.orig	2008-05-23 14:04:37.000000000 +0000
-+++ b/Makefile.in	2008-05-23 14:04:50.000000000 +0000
-@@ -198,7 +198,7 @@ sysconfdir = @sysconfdir@
- target_alias = @target_alias@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = pixman test
-+SUBDIRS = pixman
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = pixman-1.pc
- USERNAME = $$USER
diff --git a/package/pixman/pixman.mk b/package/pixman/pixman.mk
index 9507bbf..abdd01b 100644
--- a/package/pixman/pixman.mk
+++ b/package/pixman/pixman.mk
@@ -3,11 +3,13 @@
 # pixman
 #
 ################################################################################
-PIXMAN_VERSION = 0.10.0
+PIXMAN_VERSION = 0.16.4
 PIXMAN_SOURCE = pixman-$(PIXMAN_VERSION).tar.gz
 PIXMAN_SITE = http://cairographics.org/releases/
 PIXMAN_AUTORECONF = NO
 PIXMAN_INSTALL_STAGING = YES
 
+PIXMAN_CONF_OPT = --disable-gtk
+
 $(eval $(call AUTOTARGETS,package,pixman))
 $(eval $(call AUTOTARGETS,package,pixman,host))
-- 
1.6.5.7

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 7/7] cairo: Bump to 1.8.8
  2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
                   ` (4 preceding siblings ...)
  2010-01-20  0:05 ` [Buildroot] [PATCH 6/7] pixman: bump to 0.16.4 llandwerlin at gmail.com
@ 2010-01-20  0:05 ` llandwerlin at gmail.com
  2010-01-20  0:07 ` [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Lionel Landwerlin
  6 siblings, 0 replies; 12+ messages in thread
From: llandwerlin at gmail.com @ 2010-01-20  0:05 UTC (permalink / raw)
  To: buildroot

From: Lionel Landwerlin <llandwerlin@gmail.com>

Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
---
 package/cairo/cairo-1.6.4-directfb-all.patch | 1012 --------------------------
 package/cairo/cairo-1.8.8-directfb.patch     |   39 +
 package/cairo/cairo.mk                       |    2 +-
 3 files changed, 40 insertions(+), 1013 deletions(-)
 delete mode 100644 package/cairo/cairo-1.6.4-directfb-all.patch
 create mode 100644 package/cairo/cairo-1.8.8-directfb.patch

diff --git a/package/cairo/cairo-1.6.4-directfb-all.patch b/package/cairo/cairo-1.6.4-directfb-all.patch
deleted file mode 100644
index c71031f..0000000
--- a/package/cairo/cairo-1.6.4-directfb-all.patch
+++ /dev/null
@@ -1,1012 +0,0 @@
-diff --git a/.gitignore b/.gitignore
-new file mode 100644
-index 0000000..99849ce
---- /dev/null
-+++ b/.gitignore
-@@ -0,0 +1,13 @@
-+.deps
-+.libs
-+*.o
-+*.la
-+*.lo
-+Makefile
-+boot
-+boot.log
-+config.h
-+config.log
-+config.status
-+libtool
-+stamp-h1
-diff --git a/src/.gitignore b/src/.gitignore
-new file mode 100644
-index 0000000..17146ae
---- /dev/null
-+++ b/src/.gitignore
-@@ -0,0 +1,11 @@
-+cairo-directfb.pc
-+cairo-features.h
-+cairo-ft.pc
-+cairo-no-features.h
-+cairo-pdf.pc
-+cairo-png.pc
-+cairo-ps.pc
-+cairo-svg.pc
-+cairo-xlib-xrender.pc
-+cairo-xlib.pc
-+cairo.pc
-diff --git a/src/cairo-directfb-surface.c b/src/cairo-directfb-surface.c
-index f20bf2b..57e3980 100644
---- a/src/cairo-directfb-surface.c
-+++ b/src/cairo-directfb-surface.c
-@@ -34,7 +34,8 @@
-  *    Michael Emmel <mike.emmel@gmail.com>
-  *    Claudio Ciccani <klan@users.sf.net>
-  */
-- 
-+
-+//#define DIRECT_ENABLE_DEBUG
- 
- #include "cairoint.h"
- #include "cairo-directfb.h"
-@@ -42,6 +43,8 @@
- #include <stdlib.h>
- 
- #include <directfb.h>
-+#include <directfb_util.h>
-+
- #include <direct/types.h>
- #include <direct/debug.h>
- #include <direct/memcpy.h>
-@@ -63,7 +66,7 @@
- /*
-  * CompositeTrapezoids works (without antialiasing).
-  */
--#define DFB_COMPOSITE_TRAPEZOIDS 0
-+#define DFB_COMPOSITE_TRAPEZOIDS 1
- 
- /*
-  * ShowGlyphs works fine.
-@@ -71,7 +74,13 @@
- #define DFB_SHOW_GLYPHS 1
- 
- 
--D_DEBUG_DOMAIN (Cairo_DirectFB, "Cairo/DirectFB", "Cairo DirectFB backend");
-+D_DEBUG_DOMAIN( CairoDFB_Acquire, "CairoDFB/Acquire", "Cairo DirectFB Acquire" );
-+D_DEBUG_DOMAIN( CairoDFB_Clip,    "CairoDFB/Clip",    "Cairo DirectFB Clipping" );
-+D_DEBUG_DOMAIN( CairoDFB_Font,    "CairoDFB/Font",    "Cairo DirectFB Font Rendering" );
-+D_DEBUG_DOMAIN( CairoDFB_Glyphs,  "CairoDFB/Glyphs",  "Cairo DirectFB Font Rendering - Glyphs" );
-+D_DEBUG_DOMAIN( CairoDFB_Render,  "CairoDFB/Render",  "Cairo DirectFB Rendering" );
-+D_DEBUG_DOMAIN( CairoDFB_Surface, "CairoDFB/Surface", "Cairo DirectFB Surface" );
-+D_DEBUG_DOMAIN( CairoDFB_SurfExt, "CairoDFB/SurfExt", "Cairo DirectFB Surface Extents" );
- 
- /*****************************************************************************/
- 
-@@ -89,7 +98,7 @@ typedef struct _cairo_directfb_surface {
-     cairo_surface_t     *color;
-         
-     DFBRegion           *clips;
--    int                  n_clips;
-+    int                  n_clips;       // -1 = don't draw at all
-     
-     int                  width;
-     int                  height;
-@@ -122,7 +131,7 @@ static int _directfb_argb_font = 0;
- 
- 
- #define RUN_CLIPPED( surface, clip, func ) {\
--    if ((surface)->clips) {\
-+    if ((surface)->n_clips) {\
-         int k;\
-         for (k = 0; k < (surface)->n_clips; k++) {\
-             if (clip) {\
-@@ -155,15 +164,15 @@ static int _directfb_argb_font = 0;
- }
- 
- #define TRANSFORM_POINT2X( m, x, y, ret_x, ret_y ) {\
--    double _x = (x);\
--    double _y = (y);\
-+    float _x = (x);\
-+    float _y = (y);\
-     (ret_x) = (_x * (m).xx + (m).x0);\
-     (ret_y) = (_y * (m).yy + (m).y0);\
- }
- 
- #define TRANSFORM_POINT3X( m, x, y, ret_x, ret_y ) {\
--    double _x = (x);\
--    double _y = (y);\
-+    float _x = (x);\
-+    float _y = (y);\
-     (ret_x) = (_x * (m).xx + _y * (m).xy + (m).x0);\
-     (ret_y) = (_x * (m).yx + _y * (m).yy + (m).y0);\
- }
-@@ -291,6 +300,7 @@ _directfb_get_operator (cairo_operator_t         operator,
-             dstblend = DSBF_ONE;
-             break;
-         default:
-+            D_DEBUG_AT (CairoDFB_Render, "=> UNSUPPORTED OPERATOR %d\n", operator);
-             return CAIRO_INT_STATUS_UNSUPPORTED;
-     }
- 
-@@ -312,6 +322,8 @@ _directfb_buffer_surface_create (IDirectFB             *dfb,
-     DFBSurfaceDescription  dsc;
-     DFBResult              ret;
-     
-+    D_DEBUG_AT( CairoDFB_Surface, "%s( %4dx%4d %s )\n", __FUNCTION__, width, height, dfb_pixelformat_name(format) );
-+
-     dsc.flags       = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
-     dsc.width       = width;
-     dsc.height      = height;
-@@ -339,26 +351,24 @@ _directfb_acquire_surface (cairo_directfb_surface_t  *surface,
-     cairo_format_t cairo_format;
-     void *data;
-     int   pitch; 
--        
-+
-     if (surface->format == (cairo_format_t) -1) {
--        DFBSurfaceCapabilities caps;
--        
-         if (intrest_rec) {
-             source_rect.x = intrest_rec->x;
-             source_rect.y = intrest_rec->y;
-             source_rect.w = intrest_rec->width; 
-             source_rect.h = intrest_rec->height; 
-         } else {
--            source_rect.x = 0;
--            source_rect.y = 0;
--            surface->dfbsurface->GetSize (surface->dfbsurface,
--                                          &source_rect.w, &source_rect.h);   
-+            /* Use GetVisibleRectangle() here, because GetSize() might return huge values of a sub surface */
-+            surface->dfbsurface->GetVisibleRectangle (surface->dfbsurface, &source_rect);
-         }
- 
-         if (surface->tmpsurface) {
-             int w, h;
-             surface->tmpsurface->GetSize (surface->tmpsurface, &w, &h);
--            if (w < source_rect.w || h < source_rect.h) {
-+            if (w < source_rect.w || h < source_rect.h ||
-+                ((w*4 > source_rect.w*5 || h*4 > source_rect.h*5) && (w > 32 || h > 32)))
-+            {
-                 surface->tmpsurface->Release (surface->tmpsurface);
-                 surface->tmpsurface = NULL;
-             }
-@@ -366,7 +376,7 @@ _directfb_acquire_surface (cairo_directfb_surface_t  *surface,
-         
-         cairo_format = _cairo_format_from_content (surface->content);
-         if (!surface->tmpsurface) {
--            D_DEBUG_AT (Cairo_DirectFB, "Allocating buffer for surface %p.\n", surface);
-+            D_DEBUG_AT (CairoDFB_Acquire, "  -> Allocating %dx%d buffer\n", source_rect.w, source_rect.h);
-        
-             surface->tmpsurface = 
-                 _directfb_buffer_surface_create (surface->dfb, 
-@@ -377,14 +387,12 @@ _directfb_acquire_surface (cairo_directfb_surface_t  *surface,
-         }
-         buffer = surface->tmpsurface;
-         
--        surface->dfbsurface->GetCapabilities (surface->dfbsurface, &caps);
--        if (caps & DSCAPS_FLIPPING) {
--            DFBRegion region = { .x1 = source_rect.x, .y1 = source_rect.y, 
--                                 .x2 = source_rect.x + source_rect.w - 1,
--                                 .y2 = source_rect.y + source_rect.h - 1 };
--            surface->dfbsurface->Flip (surface->dfbsurface, &region, DSFLIP_BLIT);
--        } 
-+        D_DEBUG_AT( CairoDFB_Render, "  => Blit( 0,0-%4dx%4d <- %4d,%4d )\n",
-+                    source_rect.w, source_rect.h, source_rect.x, source_rect.y );
-+
-+        buffer->SetBlittingFlags (buffer, DSBLIT_NOFX);
-         buffer->Blit (buffer, surface->dfbsurface, &source_rect, 0, 0);
-+        buffer->ReleaseSource (buffer);
-     }
-     else {
-         /*might be a subsurface get the offset*/
-@@ -396,7 +404,7 @@ _directfb_acquire_surface (cairo_directfb_surface_t  *surface,
-     *image_extra = buffer;
-     
-     if (buffer->Lock (buffer, lock_flags, &data, &pitch)) {
--        D_DEBUG_AT (Cairo_DirectFB, "Couldn't lock surface!\n");
-+        D_DEBUG_AT (CairoDFB_Acquire, "Couldn't lock surface!\n");
-         goto ERROR;
-     }
-             
-@@ -443,9 +451,9 @@ _cairo_directfb_surface_create_similar (void            *abstract_src,
-     cairo_directfb_surface_t *surface;
-     cairo_format_t            format;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( src=%p, content=0x%x, width=%d, height=%d).\n",
--                __FUNCTION__, source, content, width, height);
-+    D_DEBUG_AT (CairoDFB_Surface, "%s( src=%p, content=%s%s, width=%d, height=%d)\n", __FUNCTION__, source,
-+                (content & CAIRO_CONTENT_COLOR) ? "COLOR"  : "",
-+                (content & CAIRO_CONTENT_ALPHA) ? "+ALPHA" : "", width, height);
-     
-     width = (width <= 0) ? 1 : width;
-     height = (height<= 0) ? 1 : height;
-@@ -497,8 +505,7 @@ _cairo_directfb_surface_finish (void *data)
- {
-     cairo_directfb_surface_t *surface = (cairo_directfb_surface_t *)data;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( surface=%p ).\n", __FUNCTION__, surface);
-+    D_DEBUG_AT (CairoDFB_Surface, "%s( surface=%p ).\n", __FUNCTION__, surface);
-         
-     if (surface->clips) {
-         free (surface->clips);
-@@ -534,8 +541,8 @@ _cairo_directfb_surface_acquire_source_image (void                   *abstract_s
- {
-     cairo_directfb_surface_t *surface = abstract_surface;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( surface=%p ).\n", __FUNCTION__, surface);
-+    D_DEBUG_AT( CairoDFB_Acquire, "%s( %p - %dx%d 0x%x )\n", __FUNCTION__,
-+                surface, surface->width, surface->height, surface->format );
-     
-     return _directfb_acquire_surface (surface, NULL, image_out, 
-                                       NULL, image_extra, DSLF_READ);
-@@ -549,8 +556,7 @@ _cairo_directfb_surface_release_source_image (void                  *abstract_su
-     cairo_directfb_surface_t *surface = abstract_surface;
-     IDirectFBSurface *buffer = image_extra;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( surface=%p ).\n", __FUNCTION__, surface);
-+    D_DEBUG_AT (CairoDFB_Acquire, "%s( %p )\n", __FUNCTION__, surface);
-     
-     buffer->Unlock (buffer);
-     
-@@ -564,18 +570,58 @@ _cairo_directfb_surface_acquire_dest_image (void                     *abstract_s
-                                             cairo_rectangle_int_t    *image_rect_out,
-                                             void                    **image_extra)
- {
-+    cairo_status_t            status;
-     cairo_directfb_surface_t *surface = abstract_surface;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( surface=%p, interest_rect={ %d %d %d %d } ).\n", 
--                __FUNCTION__, surface, 
-+    D_DEBUG_AT (CairoDFB_Acquire, 
-+                "%s( %p - %dx%d 0x%x { %u %u %u %u } )\n", 
-+                __FUNCTION__, surface, surface->width, surface->height, surface->format,
-                 interest_rect ? interest_rect->x : 0,
-                 interest_rect ? interest_rect->y : 0,
--                interest_rect ? interest_rect->width : surface->width,
--                interest_rect ? interest_rect->height : surface->height);
-+                interest_rect ? interest_rect->width  : (unsigned) surface->width,
-+                interest_rect ? interest_rect->height : (unsigned) surface->height);
-     
--    return _directfb_acquire_surface (surface, interest_rect, image_out, 
--                                      image_rect_out, image_extra, DSLF_READ | DSLF_WRITE);
-+    status = _directfb_acquire_surface (surface, interest_rect, image_out, 
-+                                        image_rect_out, image_extra, DSLF_READ | DSLF_WRITE);
-+    if (status)
-+        return status;
-+
-+    /* Ensure that the new image has the same clip, if it's the same buffer */
-+    if ((IDirectFBSurface*) *image_extra == surface->dfbsurface &&
-+        surface->clips)
-+    {
-+        cairo_surface_t *s = (cairo_surface_t*) *image_out;
-+
-+        unsigned int clip_serial = _cairo_surface_allocate_clip_serial (s);
-+
-+        cairo_region_t clip_region;
-+
-+        if (surface->n_clips == 1) {
-+            cairo_rectangle_int_t rect = { surface->clips[0].x1, surface->clips[0].y1,
-+                                           surface->clips[0].x2 - surface->clips[0].x1 + 1,
-+                                           surface->clips[0].y2 - surface->clips[0].y1 + 1 };
-+            _cairo_region_init_rect (&clip_region, &rect);
-+        } else {
-+            cairo_box_int_t *boxes = _cairo_malloc_ab (surface->n_clips, sizeof(cairo_box_int_t));
-+            int k;
-+
-+            for (k = 0; k < surface->n_clips; k++) {
-+                boxes[k].p1.x = surface->clips[k].x1;
-+                boxes[k].p1.y = surface->clips[k].y1;
-+                boxes[k].p2.x = surface->clips[k].x2 + 1;
-+                boxes[k].p2.y = surface->clips[k].y2 + 1;
-+            }
-+
-+            _cairo_region_init_boxes (&clip_region, boxes, surface->n_clips);
-+            free (boxes);
-+        }
-+
-+        _cairo_surface_set_clip_region (s, &clip_region, clip_serial);
-+
-+        _cairo_region_fini (&clip_region);
-+    }
-+
-+    return CAIRO_STATUS_SUCCESS;
- }
- 
- static void
-@@ -586,21 +632,31 @@ _cairo_directfb_surface_release_dest_image (void                  *abstract_surf
-                                             void                  *image_extra)
- {
-     cairo_directfb_surface_t *surface = abstract_surface;
--    IDirectFBSurface *buffer = image_extra; 
-+    IDirectFBSurface         *buffer  = image_extra;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( surface=%p ).\n", __FUNCTION__, surface);
-+    D_DEBUG_AT (CairoDFB_Acquire, 
-+                "%s( %p - %dx%d 0x%x { %u %u %u %u } )\n", 
-+                __FUNCTION__, surface, surface->width, surface->height, surface->format,
-+                interest_rect ? interest_rect->x : 0,
-+                interest_rect ? interest_rect->y : 0,
-+                interest_rect ? interest_rect->width  : (unsigned) surface->width,
-+                interest_rect ? interest_rect->height : (unsigned) surface->height);
-     
-     buffer->Unlock (buffer);
- 
-     if (surface->dfbsurface != buffer) {
--        DFBRegion region = { .x1 = interest_rect->x, .y1 = interest_rect->y,
--                             .x2 = interest_rect->x+interest_rect->width-1,
--                             .y2 = interest_rect->y+interest_rect->height-1 };
--        surface->dfbsurface->SetClip (surface->dfbsurface, &region);
-+        DFBRectangle sr = { 0, 0, image_rect->width, image_rect->height };
-+
-+        D_DEBUG_AT( CairoDFB_Render, "  => Blit( %4d,%4d-%4dx%4d <- 0,0 )\n",
-+                    image_rect->x, image_rect->y, sr.w, sr.h );
-+
-         surface->dfbsurface->SetBlittingFlags (surface->dfbsurface, DSBLIT_NOFX);
--        surface->dfbsurface->Blit (surface->dfbsurface, buffer,
--                                   NULL, image_rect->x, image_rect->y);
-+
-+        RUN_CLIPPED( surface, NULL,
-+                     surface->dfbsurface->Blit (surface->dfbsurface,
-+                                                buffer, &sr, image_rect->x, image_rect->y));
-+
-+        surface->dfbsurface->ReleaseSource (surface->dfbsurface);
-     }
-     
-     cairo_surface_destroy (&image->base);
-@@ -618,13 +674,15 @@ _cairo_directfb_surface_clone_similar (void             *abstract_surface,
-     cairo_directfb_surface_t *surface = abstract_surface;
-     cairo_directfb_surface_t *clone;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( surface=%p, src=%p ).\n", __FUNCTION__, surface, src);
-+    D_DEBUG_AT (CairoDFB_Surface, "%s( surface=%p, src=%p [%d,%d-%dx%d] )\n",
-+                __FUNCTION__, surface, src, src_x, src_y, width, height);
- 
-     if (src->backend == surface->base.backend) {
-         cairo_surface_reference (src);
-         *clone_out = src;
-          
-+        D_DEBUG_AT (CairoDFB_Surface, "  -> lightweight - referenced :)\n");
-+
-         return CAIRO_STATUS_SUCCESS;
-     }
-     else if (_cairo_surface_is_image (src)) {
-@@ -640,7 +698,8 @@ _cairo_directfb_surface_clone_similar (void             *abstract_surface,
-                             image_src->width, image_src->height);
-         if (!clone)
-             return _cairo_error (CAIRO_STATUS_NO_MEMORY);
--            
-+
-+
-         ret = clone->dfbsurface->Lock (clone->dfbsurface, 
-                                    DSLF_WRITE, (void *)&dst, &pitch);
-         if (ret) {
-@@ -653,6 +712,8 @@ _cairo_directfb_surface_clone_similar (void             *abstract_surface,
-         src += image_src->stride * src_y;
-         
-         if (image_src->format == CAIRO_FORMAT_A1) {
-+            D_DEBUG_AT (CairoDFB_Surface, "  ==> converting A1 -> A8 data\n");
-+
-             /* A1 -> A8 */
-             for (i = 0; i < height; i++) {
-                 for (j = src_x; j < src_x + width; j++)
-@@ -665,10 +726,14 @@ _cairo_directfb_surface_clone_similar (void             *abstract_surface,
-             int len;
-             
-             if (image_src->format == CAIRO_FORMAT_A8) {
-+                D_DEBUG_AT (CairoDFB_Surface, "  ==> copying A8 data\n");
-+
-                 dst += src_x;
-                 src += src_x;
-                 len  = width;
-             } else {
-+                D_DEBUG_AT (CairoDFB_Surface, "  ==> copying ARGB data\n");
-+
-                 dst += src_x * 4;
-                 src += src_x * 4;
-                 len  = width * 4;
-@@ -722,11 +787,17 @@ _directfb_prepare_composite (cairo_directfb_surface_t    *dst,
-             cairo_pattern_t *tmp;
-             int              tmp_x, tmp_y;
-             
--            if (src_pattern->type != CAIRO_PATTERN_TYPE_SOLID ||
--                sblend == DSBF_INVDESTALPHA) /* Doesn't work correctly */
-+            if (src_pattern->type != CAIRO_PATTERN_TYPE_SOLID) { /* Doesn't work correctly */
-+                D_DEBUG_AT (CairoDFB_Render, "=> PATTERN TYPE %d WITH MASK NOT SUPPORTED\n", src_pattern->type);
-                 return CAIRO_INT_STATUS_UNSUPPORTED;
-+            }
-                 
--            D_DEBUG_AT (Cairo_DirectFB, "Replacing src pattern by mask pattern.\n");
-+            if (sblend == DSBF_INVDESTALPHA) { /* Doesn't work correctly */
-+                D_DEBUG_AT (CairoDFB_Render, "=> SOURCE BLEND %d WITH MASK NOT SUPPORTED\n", sblend);
-+                return CAIRO_INT_STATUS_UNSUPPORTED;
-+            }
-+
-+            D_DEBUG_AT (CairoDFB_Render, "-> Replacing src pattern by mask pattern.\n");
-                 
-             tmp = src_pattern;
-             tmp_x = *src_x; tmp_y = *src_y;
-@@ -748,6 +819,10 @@ _directfb_prepare_composite (cairo_directfb_surface_t    *dst,
-         color.r = pattern->color.red_short   >> 8;
-         color.g = pattern->color.green_short >> 8;
-         color.b = pattern->color.blue_short  >> 8;
-+
-+        D_DEBUG_AT (CairoDFB_Render, "-> SOLID MASK (%02x %02x %02x %02x)\n",
-+                    pattern->color.alpha_short >> 8, pattern->color.red_short >> 8,
-+                    pattern->color.green_short >> 8, pattern->color.blue_short >> 8 );
-     } 
-     else {
-         color.a = color.r = color.g = color.b = 0xff;
-@@ -756,6 +831,10 @@ _directfb_prepare_composite (cairo_directfb_surface_t    *dst,
-     if (src_pattern->type == CAIRO_PATTERN_TYPE_SOLID) {
-         cairo_solid_pattern_t *pattern = (cairo_solid_pattern_t *)src_pattern;
-          
-+        D_DEBUG_AT (CairoDFB_Render, "-> SOLID PATTERN (%02x %02x %02x %02x)\n",
-+                    pattern->color.alpha_short >> 8, pattern->color.red_short >> 8,
-+                    pattern->color.green_short >> 8, pattern->color.blue_short >> 8 );
-+
-         if (!dst->color) {
-             dst->color = _cairo_directfb_surface_create_similar (dst,
-                                                 CAIRO_CONTENT_COLOR_ALPHA, 1, 1);
-@@ -777,6 +856,8 @@ _directfb_prepare_composite (cairo_directfb_surface_t    *dst,
-         src_attr.y_offset = 0;
-     }
-     else {
-+        D_DEBUG_AT (CairoDFB_Render, "-> PATTERN TYPE %d\n", src_pattern->type );
-+
-         ret = _cairo_pattern_acquire_surface (src_pattern, &dst->base,
-                                               *src_x, *src_y, width, height,
-                                               (cairo_surface_t **)&src, &src_attr);
-@@ -838,6 +919,9 @@ _directfb_finish_composite (cairo_directfb_surface_t   *dst,
- {
-     if (src != dst->color)
-          _cairo_pattern_release_surface (src_pattern, src, src_attr);
-+
-+    if (dst->dfbsurface)
-+         dst->dfbsurface->ReleaseSource( dst->dfbsurface );
- }
- #endif /* DFB_COMPOSITE || DFB_COMPOSITE_TRAPEZOIDS */        
- 
-@@ -848,20 +932,38 @@ _directfb_categorize_operation (cairo_surface_attributes_t *src_attr)
-     cairo_matrix_t *m = &src_attr->matrix;
-     
-     if (m->xy != 0 || m->yx != 0 || m->xx < 0 || m->yy < 0) {
--        if (src_attr->extend != CAIRO_EXTEND_NONE)
--            return DFXL_NONE;
-+        D_DEBUG_AT (CairoDFB_Render, "-> NON-RECTANGULAR TRANSFORM\n" );
-+
-+        if (src_attr->extend != CAIRO_EXTEND_NONE) {
-+             D_DEBUG_AT (CairoDFB_Render, "=> EXTEND MODE %d NOT SUPPORTED\n", src_attr->extend );
-+             return DFXL_NONE;
-+        }
-+
-         return DFXL_TEXTRIANGLES;
-     }
-         
-     if (m->xx != 1 || m->yy != 1) {
--        if (src_attr->extend != CAIRO_EXTEND_NONE)
--            return DFXL_NONE;
-+        D_DEBUG_AT (CairoDFB_Render, "-> RECTANGULAR TRANSFORM\n" );
-+
-+        if (src_attr->extend != CAIRO_EXTEND_NONE) {
-+             D_DEBUG_AT (CairoDFB_Render, "=> EXTEND MODE %d NOT SUPPORTED\n", src_attr->extend );
-+
-+             /* TODO: support EXTEND_PAD in special cases */
-+
-+             return DFXL_NONE;
-+        }
-+
-         return DFXL_STRETCHBLIT;
-     }
-      
-+    D_DEBUG_AT (CairoDFB_Render, "-> NO TRANSFORM\n" );
-+
-     if (src_attr->extend != CAIRO_EXTEND_NONE &&
-         src_attr->extend != CAIRO_EXTEND_REPEAT)
-+    {
-+        D_DEBUG_AT (CairoDFB_Render, "=> EXTEND MODE %d NOT SUPPORTED\n", src_attr->extend );
-         return DFXL_NONE;
-+    }
-            
-     return DFXL_BLIT;
- }
-@@ -880,13 +982,13 @@ _cairo_directfb_surface_composite (cairo_operator_t  op,
-     cairo_directfb_surface_t   *dst = abstract_dst;
-     cairo_directfb_surface_t   *src;
-     cairo_surface_attributes_t  src_attr;
--    DFBAccelerationMask         accel, mask;
-+    DFBAccelerationMask         accel;
-     cairo_int_status_t          ret;
-     
--    D_DEBUG_AT (Cairo_DirectFB,
--                "%s( op=%d, src_pattern=%p, mask_pattern=%p, dst=%p,"
-+    D_DEBUG_AT (CairoDFB_Render,
-+                "%s( op=%d, src=%p, mask=%p, dst=%p,"
-                    " src_x=%d, src_y=%d, mask_x=%d, mask_y=%d, dst_x=%d,"
--                   " dst_y=%d, width=%u, height=%u ).\n",
-+                   " dst_y=%d, width=%u, height=%u )\n",
-                 __FUNCTION__, op, src_pattern, mask_pattern, dst, 
-                 src_x, src_y, mask_x, mask_y, dst_x, dst_y, width, height);
-     
-@@ -895,16 +997,12 @@ _cairo_directfb_surface_composite (cairo_operator_t  op,
-                                        width, height, &src, &src_attr);
-     if (ret)
-         return ret;
--        
-+
-     accel = _directfb_categorize_operation (&src_attr);
--    
--    dst->dfbsurface->GetAccelerationMask (dst->dfbsurface, src->dfbsurface, &mask);
--    if (!(mask & accel)) {
--        D_DEBUG_AT (Cairo_DirectFB, "No acceleration (%08x)!\n", accel);
--        if (accel != DFXL_BLIT) {
--            _directfb_finish_composite (dst, src_pattern, &src->base, &src_attr);
--            return CAIRO_INT_STATUS_UNSUPPORTED;
--        }
-+    if (!accel) {
-+        D_DEBUG_AT (CairoDFB_Render, "  ====>> UNSUPPORTED!!!\n");
-+        _directfb_finish_composite (dst, src_pattern, &src->base, &src_attr);
-+        return CAIRO_INT_STATUS_UNSUPPORTED;
-     }
-     
-     src_x += src_attr.x_offset;
-@@ -920,7 +1018,8 @@ _cairo_directfb_surface_composite (cairo_operator_t  op,
-             sr.h = height;
-         
-             if (src_attr.extend == CAIRO_EXTEND_NONE) {
--                D_DEBUG_AT (Cairo_DirectFB, "Running Blit().\n");
-+                D_DEBUG_AT( CairoDFB_Render, "  ==> Blit( %4d,%4d-%4dx%4d <- %4d,%4d )\n",
-+                            dst_x, dst_y, sr.w, sr.h, sr.x, sr.y );
-         
-                 RUN_CLIPPED( dst, NULL,
-                              dst->dfbsurface->Blit (dst->dfbsurface,
-@@ -934,7 +1033,8 @@ _cairo_directfb_surface_composite (cairo_operator_t  op,
-                 clip.x2 = dst_x + width  - 1;
-                 clip.y2 = dst_y + height - 1;
-             
--                D_DEBUG_AT (Cairo_DirectFB, "Running TileBlit().\n");
-+                D_DEBUG_AT( CairoDFB_Render, "  ==> TileBlit( %4d,%4d-%4dx%4d <- %4d,%4d-%4dx%4d )\n",
-+                            dst_x, dst_y, width, height, sr.x, sr.y, sr.w, sr.h );
-             
-                 RUN_CLIPPED( dst, &clip,
-                              dst->dfbsurface->TileBlit (dst->dfbsurface, 
-@@ -944,7 +1044,7 @@ _cairo_directfb_surface_composite (cairo_operator_t  op,
-         
-         case DFXL_STRETCHBLIT: {
-             DFBRectangle sr, dr;
--            double       x1, y1, x2, y2;
-+            float        x1, y1, x2, y2;
-             
-             TRANSFORM_POINT2X (src_attr.matrix, 
-                                src_x, src_y, x1, y1);
-@@ -961,7 +1061,8 @@ _cairo_directfb_surface_composite (cairo_operator_t  op,
-             dr.w = width;
-             dr.h = height;
-             
--            D_DEBUG_AT (Cairo_DirectFB, "Running StretchBlit().\n");
-+            D_DEBUG_AT( CairoDFB_Render, "  ==> StretchBlit( %4d,%4d-%4dx%4d <- %4d,%4d-%4dx%4d )\n",
-+                        dst_x, dst_y, width, height, sr.x, sr.y, sr.w, sr.h );
- 
-             RUN_CLIPPED (dst, NULL,
-                          dst->dfbsurface->StretchBlit (dst->dfbsurface, 
-@@ -1019,7 +1120,7 @@ _cairo_directfb_surface_composite (cairo_operator_t  op,
-             clip.x2 = dst_x + width  - 1;
-             clip.y2 = dst_y + height - 1;
-         
--            D_DEBUG_AT (Cairo_DirectFB, "Running TextureTriangles().\n");
-+            D_DEBUG_AT (CairoDFB_Render, "  ==> TextureTriangles( ... )\n");
-             
-             RUN_CLIPPED (dst, &clip,
-                          dst->dfbsurface->TextureTriangles (dst->dfbsurface, 
-@@ -1052,8 +1153,7 @@ _cairo_directfb_surface_fill_rectangles (void                  *abstract_surface
-     DFBRectangle              r[n_rects];
-     int                       i;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( dst=%p, op=%d, color=%p, rects=%p, n_rects=%d ).\n",
-+    D_DEBUG_AT (CairoDFB_Render, "%s( dst=%p, op=%d, color=%p, rects=%p, n_rects=%d )\n",
-                 __FUNCTION__, dst, op, color, rects, n_rects);
- 
-     if (_directfb_get_operator (op, &sblend, &dblend))
-@@ -1094,14 +1194,19 @@ _cairo_directfb_surface_fill_rectangles (void                  *abstract_surface
-                                color->green_short >> 8, 
-                                color->blue_short  >> 8, 
-                                color->alpha_short >> 8 );
-+
-+    D_DEBUG_AT( CairoDFB_Render, "  -> %02x %02x %02x %02x\n", color->alpha_short >> 8,
-+                color->red_short >> 8, color->green_short >> 8, color->blue_short >> 8 );
-        
-     for (i = 0; i < n_rects; i++) {
-         r[i].x = rects[i].x;
-         r[i].y = rects[i].y;
-         r[i].w = rects[i].width;
-         r[i].h = rects[i].height;
-+
-+        D_DEBUG_AT( CairoDFB_Render, "  ==> Fill %4d,%4d-%4dx%4d [%d]\n", DFB_RECTANGLE_VALS(&r[i]), i );
-     }
--     
-+
-     RUN_CLIPPED (dst, NULL,
-                  dst->dfbsurface->FillRectangles (dst->dfbsurface, r, n_rects));
-     
-@@ -1128,7 +1233,7 @@ _cairo_directfb_surface_composite_trapezoids (cairo_operator_t   op,
-     cairo_status_t              ret;
-     DFBAccelerationMask         accel;
-     
--    D_DEBUG_AT (Cairo_DirectFB,
-+    D_DEBUG_AT (CairoDFB_Render,
-                 "%s( op=%d, pattern=%p, dst=%p, antialias=%d,"
-                    " src_x=%d, src_y=%d, dst_x=%d, dst_y=%d,"
-                    " width=%u, height=%u, traps=%p, num_traps=%d ).\n",
-@@ -1235,7 +1340,7 @@ _cairo_directfb_surface_composite_trapezoids (cairo_operator_t   op,
-         
- #undef ADD_TRI
-               
--        D_DEBUG_AT (Cairo_DirectFB, "Running TextureTriangles().\n");
-+        D_DEBUG_AT (CairoDFB_Render, "Running TextureTriangles().\n");
-             
-         RUN_CLIPPED (dst, NULL,
-                      dst->dfbsurface->TextureTriangles (dst->dfbsurface, src->dfbsurface, 
-@@ -1256,9 +1361,7 @@ _cairo_directfb_surface_set_clip_region (void           *abstract_surface,
- {
-     cairo_directfb_surface_t *surface = abstract_surface;
-     
--    D_DEBUG_AT (Cairo_DirectFB, 
--                "%s( surface=%p, region=%p ).\n",
--                __FUNCTION__, surface, region);
-+    D_DEBUG_AT (CairoDFB_Clip, "%s( surface=%p, region=%p )\n", __FUNCTION__, surface, region);
-     
-     if (region) {
-         cairo_box_int_t *boxes;
-@@ -1267,15 +1370,33 @@ _cairo_directfb_surface_set_clip_region (void           *abstract_surface,
-         int              i;
- 
-         status = _cairo_region_get_boxes (region, &n_boxes, &boxes);
--        if (status)
--            return status;
-+        if (status) {
-+             D_DEBUG_AT( CairoDFB_Clip, "  -> status %d!\n", status );
-+             return status;
-+        }
-+
-+        if (n_boxes == 0) {
-+             D_DEBUG_AT( CairoDFB_Clip, "  -> EMPTY region (fully clipped)\n" );
-+
-+             if (surface->clips) {
-+                 free (surface->clips);
-+                 surface->clips = NULL;
-+             }
-+
-+             surface->n_clips = -1;
-+
-+             return CAIRO_STATUS_SUCCESS;
-+        }
-+
-+        D_DEBUG_AT( CairoDFB_Clip, "  -> %d box%s\n", n_boxes, (n_boxes > 1) ? "es" : "" );
-         
--        if (surface->n_clips != n_boxes) {
-+        if (surface->n_clips < n_boxes || surface->n_clips - n_boxes > 10) {
-             if (surface->clips)
-                 free (surface->clips);
-             
-             surface->clips = _cairo_malloc_ab (n_boxes, sizeof(DFBRegion));
-             if (!surface->clips) {
-+                D_OOM();
-                 surface->n_clips = 0;
-                 _cairo_region_boxes_fini (region, boxes);
-                 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-@@ -1287,18 +1408,24 @@ _cairo_directfb_surface_set_clip_region (void           *abstract_surface,
-         for (i = 0; i < n_boxes; i++) {
-             surface->clips[i].x1 = boxes[i].p1.x;
-             surface->clips[i].y1 = boxes[i].p1.y;
--            surface->clips[i].x2 = boxes[i].p2.x;
--            surface->clips[i].y2 = boxes[i].p2.y;
-+            surface->clips[i].x2 = boxes[i].p2.x - 1;
-+            surface->clips[i].y2 = boxes[i].p2.y - 1;
-+
-+            D_DEBUG_AT( CairoDFB_Clip, "  = CLIP %4d,%4d-%4dx%4d [%d]\n",
-+                        DFB_RECTANGLE_VALS_FROM_REGION(&surface->clips[i]), i );
-         }
- 
-         _cairo_region_boxes_fini (region, boxes);
-     }
-     else {
-+        D_DEBUG_AT( CairoDFB_Clip, "  -> NULL region (unclipped)\n" );
-+
-         if (surface->clips) {
-             free (surface->clips);
-             surface->clips = NULL;
--            surface->n_clips = 0;
-         }
-+
-+        surface->n_clips = 0;
-     }
- 
-     return CAIRO_STATUS_SUCCESS;
-@@ -1310,9 +1437,7 @@ _cairo_directfb_abstract_surface_get_extents (void                  *abstract_su
- {
-     cairo_directfb_surface_t *surface = abstract_surface;
-     
--    D_DEBUG_AT (Cairo_DirectFB,
--                "%s( surface=%p, rectangle=%p ).\n",
--                __FUNCTION__, surface, rectangle);
-+    D_DEBUG_AT (CairoDFB_SurfExt, "%s( surface=%p, rectangle=%p )\n", __FUNCTION__, surface, rectangle);
-     
-     if (rectangle) {
-         if (!surface->local) {
-@@ -1323,6 +1448,8 @@ _cairo_directfb_abstract_surface_get_extents (void                  *abstract_su
-         rectangle->y = 0;
-         rectangle->width  = surface->width;
-         rectangle->height = surface->height;
-+
-+        D_DEBUG_AT (CairoDFB_SurfExt, "  -> %dx%d\n", surface->width, surface->height);
-     }
-     
-     return CAIRO_STATUS_SUCCESS;
-@@ -1379,21 +1506,29 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t     *surface,
-     int                          h         = 8;
-     int                          i;
-     
-+    D_DEBUG_AT (CairoDFB_Font, "%s( %p [%d] )\n", __FUNCTION__, glyphs, num_glyphs );
-+
-     if (scaled_font->surface_private) {
-         cache = scaled_font->surface_private;
-         x = cache->x;
-         y = cache->y;
-     }
--    
-+
-+    _cairo_cache_freeze( scaled_font->glyphs );
-+
-     for (i = 0; i < num_glyphs; i++) {
-         cairo_scaled_glyph_t  *scaled_glyph;
-         cairo_image_surface_t *img;
-         
-+        D_DEBUG_AT (CairoDFB_Glyphs, "  -> [%2d] = %4lu\n", i, glyphs[i].index );
-+
-         ret = _cairo_scaled_glyph_lookup (scaled_font, glyphs[i].index,
-                                           CAIRO_SCALED_GLYPH_INFO_SURFACE,
-                                           &scaled_glyph);
--        if (ret)
-+        if (ret) {
-+            _cairo_cache_thaw( scaled_font->glyphs );
-             return ret;
-+        }
-         
-         img = scaled_glyph->surface;
-         switch (img->format) {
-@@ -1402,19 +1537,26 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t     *surface,
-             case CAIRO_FORMAT_ARGB32:
-                 break;
-             default:
--                D_DEBUG_AT (Cairo_DirectFB,
--                            "Unsupported font format %d!\n", img->format);
-+                D_DEBUG_AT (CairoDFB_Glyphs,
-+                            "  -> Unsupported font format %d!\n", img->format);
-+                _cairo_cache_thaw( scaled_font->glyphs );
-                 return CAIRO_INT_STATUS_UNSUPPORTED;
-         }
-         
-         points[n].x = _cairo_lround (glyphs[i].x - img->base.device_transform.x0);
-         points[n].y = _cairo_lround (glyphs[i].y - img->base.device_transform.y0);
-         
-+//        D_DEBUG_AT (CairoDFB_Glyphs, "            (%4d,%4d) [%2d]\n", points[n].x, points[n].y, n );
-+
-         if (points[n].x >= surface->width  ||
-             points[n].y >= surface->height ||
-             points[n].x+img->width  <= 0   ||
-             points[n].y+img->height <= 0)
--            continue;
-+        {
-+             D_DEBUG_AT (CairoDFB_Glyphs,
-+                         "  -> Unsupported font format %d!\n", img->format);
-+             continue;
-+        }
-         
-         if (!scaled_glyph->surface_private) {
-             DFBRectangle *rect;
-@@ -1436,30 +1578,31 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t     *surface,
-             
-             /* Remember glyph location */ 
-             rect = malloc (sizeof(DFBRectangle));
--            if (!rect)
-+            if (!rect) {
-+                _cairo_cache_thaw( scaled_font->glyphs );
-                 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-+            }
-             *rect = rects[n];
-             
-             scaled_glyph->surface_private = rect;
-             chars[num_chars++] = scaled_glyph;
-             
--            /*D_DEBUG_AT (Cairo_DirectFB, 
--                        "Glyph %lu will be loaded at (%d,%d).\n",
--                        glyphs[i].index, rects[n].x, rects[n].y);*/
-+            D_DEBUG_AT (CairoDFB_Glyphs, "  -> loading at %4d,%2d <- rect %p, img %p, entry %p\n",
-+                        rects[n].x, rects[n].y, rect, scaled_glyph->surface, scaled_glyph);
-         }
-         else {
-             rects[n] = *((DFBRectangle *)scaled_glyph->surface_private);
-             
--            /*D_DEBUG_AT (Cairo_DirectFB, 
--                        "Glyph %lu already loaded at (%d,%d).\n",
--                        glyphs[i].index, rects[n].x, rects[n].y);*/
-+            D_DEBUG_AT (CairoDFB_Glyphs, "  -> exists at  %4d,%2d\n", rects[n].x, rects[n].y);
-         }
-             
-         n++;
-     }
-     
--    if (!n)
-+    if (!n) {
-+        _cairo_cache_thaw( scaled_font->glyphs );
-         return CAIRO_INT_STATUS_NOTHING_TO_DO;
-+    }
-     
-     h += y;
-     w = MAX (w, 8);
-@@ -1472,27 +1615,30 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t     *surface,
-             w = MAX (w, cache->width);
-             h = MAX (h, cache->height);
-             
--            D_DEBUG_AT (Cairo_DirectFB,
--                        "Reallocating font cache (%dx%d).\n", w, h);
-+            D_DEBUG_AT (CairoDFB_Font, "  -> Reallocating font cache (%dx%d).\n", w, h);
-             
-             new_cache = _directfb_allocate_font_cache (surface->dfb, w, h);
--            if (!new_cache)
-+            if (!new_cache) {
-+                _cairo_cache_thaw( scaled_font->glyphs );
-                 return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-+            }
-             
-             new_cache->dfbsurface->Blit (new_cache->dfbsurface,
-                                          cache->dfbsurface, NULL, 0, 0);
-+            new_cache->dfbsurface->ReleaseSource (new_cache->dfbsurface);
-             
-             _directfb_destroy_font_cache (cache);
-             scaled_font->surface_private = cache = new_cache;
-         }
-     }
-     else {
--        D_DEBUG_AT (Cairo_DirectFB,
--                    "Allocating font cache (%dx%d).\n", w, h);
-+        D_DEBUG_AT (CairoDFB_Font, "  -> Allocating font cache (%dx%d).\n", w, h);
-         
-         cache = _directfb_allocate_font_cache (surface->dfb, w, h);
--        if (!cache)
-+        if (!cache) {
-+            _cairo_cache_thaw( scaled_font->glyphs );
-             return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-+        }
-             
-         scaled_font->surface_backend = &cairo_directfb_surface_backend;
-         scaled_font->surface_private = cache;
-@@ -1504,17 +1650,30 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t     *surface,
-     
-         if (cache->dfbsurface->Lock (cache->dfbsurface, 
-                                      DSLF_WRITE, (void *)&data, &pitch))
-+        {
-+            _cairo_cache_thaw( scaled_font->glyphs );
-             return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-+        }
-             
-+        D_DEBUG_AT (CairoDFB_Font, "  => %d chars to load, cache %dx%d\n", num_chars, cache->width, cache->height);
-+
-         for (i = 0; i < num_chars; i++) {
-             cairo_image_surface_t *img  = chars[i]->surface;
-             DFBRectangle          *rect = chars[i]->surface_private;
-             unsigned char         *dst  = data;
--            unsigned char         *src  = img->data;
-+            unsigned char         *src;
-             int                    j;
-             
-+            D_DEBUG_AT (CairoDFB_Glyphs, "  -> loading [%2d] <- rect %p, img %p, entry %p\n", i, rect, img, chars[i]);
-+
-+            src = img->data;
-+
-+            D_DEBUG_AT (CairoDFB_Glyphs, "     from %p\n", src);
-+
-             dst += rect->y * pitch + (_directfb_argb_font ? (rect->x<<2) : rect->x);
-                         
-+            D_DEBUG_AT (CairoDFB_Glyphs, "     to %4d,%2d (%p)\n", rect->x, rect->y, dst);
-+
-             if (img->format == CAIRO_FORMAT_A1) {
-                 for (h = rect->h; h; h--) {
-                     if (_directfb_argb_font) {
-@@ -1563,9 +1722,13 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t     *surface,
-         cache->dfbsurface->Unlock (cache->dfbsurface);
-     }
- 
-+    _cairo_cache_thaw( scaled_font->glyphs );
-+
-     cache->x = x;
-     cache->y = y;
-     
-+    D_DEBUG_AT (CairoDFB_Font, "  => cache %d,%d, %p [%d]\n", x, y, cache, n);
-+
-     *ret_cache = cache;
-     *ret_num   = n;
- 
-@@ -1577,7 +1740,7 @@ _cairo_directfb_surface_scaled_font_fini (cairo_scaled_font_t *scaled_font)
- {
-     cairo_directfb_font_cache_t *cache = scaled_font->surface_private;
-     
--    D_DEBUG_AT (Cairo_DirectFB,
-+    D_DEBUG_AT (CairoDFB_Font,
-                 "%s( scaled_font=%p ).\n", __FUNCTION__, scaled_font);
-     
-     if (cache) {
-@@ -1590,7 +1753,7 @@ static void
- _cairo_directfb_surface_scaled_glyph_fini (cairo_scaled_glyph_t *scaled_glyph,
-                                            cairo_scaled_font_t  *scaled_font)
- {
--     D_DEBUG_AT (Cairo_DirectFB,
-+     D_DEBUG_AT (CairoDFB_Font,
-                  "%s( scaled_glyph=%p, scaled_font=%p ).\n",
-                  __FUNCTION__, scaled_glyph, scaled_font);
- 
-@@ -1619,7 +1782,7 @@ _cairo_directfb_surface_show_glyphs (void                *abstract_dst,
-     DFBPoint                     points[num_glyphs];
-     int                          num;
-     
--    D_DEBUG_AT (Cairo_DirectFB,
-+    D_DEBUG_AT (CairoDFB_Font,
-                 "%s( dst=%p, op=%d, pattern=%p, glyphs=%p, num_glyphs=%d, scaled_font=%p ).\n",
-                 __FUNCTION__, dst, op, pattern, glyphs, num_glyphs, scaled_font);
-                             
-@@ -1660,12 +1823,14 @@ _cairo_directfb_surface_show_glyphs (void                *abstract_dst,
-     dst->dfbsurface->SetDstBlendFunction (dst->dfbsurface, dblend);
-     dst->dfbsurface->SetColor (dst->dfbsurface, color.r, color.g, color.b, color.a);
-     
--    D_DEBUG_AT (Cairo_DirectFB, "Running BatchBlit().\n");
-+    D_DEBUG_AT (CairoDFB_Font, "  ===> BatchBlit()\n");
-         
-     RUN_CLIPPED (dst, NULL,
-                  dst->dfbsurface->BatchBlit (dst->dfbsurface,
-                                          cache->dfbsurface, rects, points, num));
-         
-+    dst->dfbsurface->ReleaseSource (dst->dfbsurface);
-+
-     return CAIRO_STATUS_SUCCESS;
- }
- #endif /* DFB_SHOW_GLYPHS */
-@@ -1758,7 +1923,7 @@ cairo_directfb_surface_backend_init (IDirectFB *dfb)
-         cairo_directfb_surface_backend.scaled_glyph_fini = NULL;
-         cairo_directfb_surface_backend.show_glyphs = NULL;
- #endif
--        D_DEBUG_AT (Cairo_DirectFB, "Acceleration disabled.\n");
-+        D_DEBUG_AT (CairoDFB_Surface, "Acceleration disabled.\n");
-     }
-     else {
-         DFBGraphicsDeviceDescription dsc;
-@@ -1766,19 +1931,19 @@ cairo_directfb_surface_backend_init (IDirectFB *dfb)
-         dfb->GetDeviceDescription (dfb, &dsc);
-     
- #if DFB_COMPOSITE
--        if (!(dsc.acceleration_mask & DFXL_BLIT))
--            cairo_directfb_surface_backend.composite = NULL;
-+//        if (!(dsc.acceleration_mask & DFXL_BLIT))
-+//            cairo_directfb_surface_backend.composite = NULL;
- #endif
- 
- #if DFB_COMPOSITE_TRAPEZOIDS
--        if (!(dsc.acceleration_mask & DFXL_TEXTRIANGLES))
--            cairo_directfb_surface_backend.composite_trapezoids = NULL;
-+//        if (!(dsc.acceleration_mask & DFXL_TEXTRIANGLES))
-+//            cairo_directfb_surface_backend.composite_trapezoids = NULL;
- #endif
-     }
-     
-     if (getenv ("CAIRO_DIRECTFB_ARGB_FONT")) {
-         _directfb_argb_font = 1;
--        D_DEBUG_AT (Cairo_DirectFB, "Using ARGB fonts.\n");
-+        D_DEBUG_AT (CairoDFB_Surface, "Using ARGB fonts.\n");
-     }
- 
-     done = 1;
diff --git a/package/cairo/cairo-1.8.8-directfb.patch b/package/cairo/cairo-1.8.8-directfb.patch
new file mode 100644
index 0000000..12a51ec
--- /dev/null
+++ b/package/cairo/cairo-1.8.8-directfb.patch
@@ -0,0 +1,39 @@
+diff --git a/src/cairo-directfb-surface.c b/src/cairo-directfb-surface.c
+index bb02dbf..65f2d55 100644
+--- a/src/cairo-directfb-surface.c
++++ b/src/cairo-directfb-surface.c
+@@ -609,6 +609,8 @@ _cairo_directfb_surface_release_dest_image (void                  *abstract_surf
+ 		     surface->dfbsurface->Blit (surface->dfbsurface,
+ 						buffer, NULL,
+ 						image_rect->x, image_rect->y));
++
++    surface->dfbsurface->ReleaseSource (surface->dfbsurface);
+     }
+ 
+     cairo_surface_destroy (&image->base);
+@@ -848,6 +850,9 @@ _directfb_finish_composite (cairo_directfb_surface_t   *dst,
+                             cairo_surface_attributes_t *src_attr)
+ {
+     _cairo_pattern_release_surface (src_pattern, src, src_attr);
++
++    if (dst->dfbsurface)
++         dst->dfbsurface->ReleaseSource( dst->dfbsurface );
+ }
+ #endif /* DFB_COMPOSITE || DFB_COMPOSITE_TRAPEZOIDS */
+ 
+@@ -1555,6 +1560,7 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t     *surface,
+ 
+ 	    new_cache->dfbsurface->Blit (new_cache->dfbsurface,
+ 					 cache->dfbsurface, NULL, 0, 0);
++        new_cache->dfbsurface->ReleaseSource (new_cache->dfbsurface);
+ 
+ 	    _directfb_destroy_font_cache (cache);
+ 	    scaled_font->surface_private = cache = new_cache;
+@@ -1778,6 +1784,7 @@ _cairo_directfb_surface_show_glyphs (void                *abstract_dst,
+     RUN_CLIPPED (dst, NULL,
+ 		 dst->dfbsurface->BatchBlit (dst->dfbsurface,
+ 					     cache->dfbsurface, rects, points, num));
++    dst->dfbsurface->ReleaseSource (dst->dfbsurface);
+ 
+     return CAIRO_STATUS_SUCCESS;
+ }
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 0ca99aa..06d597f 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -3,7 +3,7 @@
 # cairo
 #
 #############################################################
-CAIRO_VERSION = 1.6.4
+CAIRO_VERSION = 1.8.8
 CAIRO_SOURCE = cairo-$(CAIRO_VERSION).tar.gz
 CAIRO_SITE = http://cairographics.org/releases
 CAIRO_AUTORECONF = NO
-- 
1.6.5.7

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH] Bump DirectFB to 1.4.3
  2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
                   ` (5 preceding siblings ...)
  2010-01-20  0:05 ` [Buildroot] [PATCH 7/7] cairo: Bump to 1.8.8 llandwerlin at gmail.com
@ 2010-01-20  0:07 ` Lionel Landwerlin
  6 siblings, 0 replies; 12+ messages in thread
From: Lionel Landwerlin @ 2010-01-20  0:07 UTC (permalink / raw)
  To: buildroot

Le mardi 19 janvier 2010 ? 22:15 +0200, Paulius Zaleckas a ?crit :
> directfb-gfxcard-fix-build-error-with-debug.patch is already

You started the hostilities ;)
1.4.3 was in my patch list for too long...

-- 
Lionel Landwerlin

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 1/7] directfb: some cleanup in config file
  2010-01-20  0:05 ` [Buildroot] [PATCH 1/7] directfb: some cleanup in config file llandwerlin at gmail.com
@ 2010-01-28 16:11   ` Peter Korsgaard
  0 siblings, 0 replies; 12+ messages in thread
From: Peter Korsgaard @ 2010-01-28 16:11 UTC (permalink / raw)
  To: buildroot

>>>>> "llandwerlin" == llandwerlin  <llandwerlin@gmail.com> writes:

 llandwerlin> From: Lionel Landwerlin <llandwerlin@gmail.com>
 llandwerlin> Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 5/7] sawman: bump to 1.4.3
  2010-01-20  0:05 ` [Buildroot] [PATCH 5/7] sawman: bump to 1.4.3 llandwerlin at gmail.com
@ 2010-01-28 16:12   ` Peter Korsgaard
  0 siblings, 0 replies; 12+ messages in thread
From: Peter Korsgaard @ 2010-01-28 16:12 UTC (permalink / raw)
  To: buildroot

>>>>> "llandwerlin" == llandwerlin  <llandwerlin@gmail.com> writes:

 llandwerlin> From: Lionel Landwerlin <llandwerlin@gmail.com>
 llandwerlin> Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>

Committed, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 6/7] pixman: bump to 0.16.4
  2010-01-20  0:05 ` [Buildroot] [PATCH 6/7] pixman: bump to 0.16.4 llandwerlin at gmail.com
@ 2010-01-28 16:14   ` Peter Korsgaard
  2010-01-28 16:54     ` Lionel Landwerlin
  0 siblings, 1 reply; 12+ messages in thread
From: Peter Korsgaard @ 2010-01-28 16:14 UTC (permalink / raw)
  To: buildroot

>>>>> "llandwerlin" == llandwerlin  <llandwerlin@gmail.com> writes:

 llandwerlin> From: Lionel Landwerlin <llandwerlin@gmail.com>
 llandwerlin> Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>

I get:

>>>   Patching libtool

Applying buildroot-libtool.patch using plaintext: 
patching file ltmain.sh
Hunk #1 FAILED at 273.
Hunk #2 succeeded at 5412 (offset 3005 lines).
Hunk #3 FAILED at 2551.
Hunk #4 FAILED at 2895.
Hunk #5 succeeded at 8058 with fuzz 1 (offset 2446 lines).
Hunk #6 FAILED at 5937.
4 out of 6 hunks FAILED -- saving rejects to file ltmain.sh.rej
Patch failed!  Please fix buildroot-libtool.patch!
make: *** [/tmp/br/build/pixman-0.16.4/.stamp_patched] Error 1

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH 6/7] pixman: bump to 0.16.4
  2010-01-28 16:14   ` Peter Korsgaard
@ 2010-01-28 16:54     ` Lionel Landwerlin
  0 siblings, 0 replies; 12+ messages in thread
From: Lionel Landwerlin @ 2010-01-28 16:54 UTC (permalink / raw)
  To: buildroot

Yes, inded I recently got a lot of error like that since
http://git.buildroot.org/buildroot/commit/?id=073af428efc21d7717c003e93a098d0767de3b0c

I updated the patch list since then :

http://git.potipota.net/cgi-bin/cgit.cgi/buildroot/log/?h=various-bumps

In this case (pixman) we need to deactivate libtool patching :

http://git.potipota.net/cgi-bin/cgit.cgi/buildroot/commit/?h=various-bumps&id=e04a2709b133ba0360392ead8519bc48eaea5895

Regards,

--
Lionel

On Thu, Jan 28, 2010 at 5:14 PM, Peter Korsgaard <jacmet@uclibc.org> wrote:

> >>>>> "llandwerlin" == llandwerlin  <llandwerlin@gmail.com> writes:
>
>  llandwerlin> From: Lionel Landwerlin <llandwerlin@gmail.com>
>  llandwerlin> Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
>
> I get:
>
> >>>   Patching libtool
>
> Applying buildroot-libtool.patch using plaintext:
> patching file ltmain.sh
> Hunk #1 FAILED at 273.
> Hunk #2 succeeded at 5412 (offset 3005 lines).
> Hunk #3 FAILED at 2551.
> Hunk #4 FAILED at 2895.
> Hunk #5 succeeded at 8058 with fuzz 1 (offset 2446 lines).
> Hunk #6 FAILED at 5937.
> 4 out of 6 hunks FAILED -- saving rejects to file ltmain.sh.rej
> Patch failed!  Please fix buildroot-libtool.patch!
> make: *** [/tmp/br/build/pixman-0.16.4/.stamp_patched] Error 1
>
> --
> Bye, Peter Korsgaard
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20100128/4e27e33b/attachment.htm>

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2010-01-28 16:54 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-19 20:15 [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Paulius Zaleckas
2010-01-20  0:05 ` [Buildroot] [PATCH 1/7] directfb: some cleanup in config file llandwerlin at gmail.com
2010-01-28 16:11   ` Peter Korsgaard
2010-01-20  0:05 ` [Buildroot] [PATCH 3/7] package: added lirc llandwerlin at gmail.com
2010-01-20  0:05 ` [Buildroot] [PATCH 4/7] directfb: added support for lirc llandwerlin at gmail.com
2010-01-20  0:05 ` [Buildroot] [PATCH 5/7] sawman: bump to 1.4.3 llandwerlin at gmail.com
2010-01-28 16:12   ` Peter Korsgaard
2010-01-20  0:05 ` [Buildroot] [PATCH 6/7] pixman: bump to 0.16.4 llandwerlin at gmail.com
2010-01-28 16:14   ` Peter Korsgaard
2010-01-28 16:54     ` Lionel Landwerlin
2010-01-20  0:05 ` [Buildroot] [PATCH 7/7] cairo: Bump to 1.8.8 llandwerlin at gmail.com
2010-01-20  0:07 ` [Buildroot] [PATCH] Bump DirectFB to 1.4.3 Lionel Landwerlin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.