summaryrefslogtreecommitdiff
path: root/recipes/gpe-bootsplash/files/cairofix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/gpe-bootsplash/files/cairofix.patch')
-rw-r--r--recipes/gpe-bootsplash/files/cairofix.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/recipes/gpe-bootsplash/files/cairofix.patch b/recipes/gpe-bootsplash/files/cairofix.patch
new file mode 100644
index 0000000000..ff6e288cbc
--- /dev/null
+++ b/recipes/gpe-bootsplash/files/cairofix.patch
@@ -0,0 +1,43 @@
+--- /tmp/splash.c 2005-10-06 14:45:21.463681488 +0200
++++ gpe-bootsplash-1.14/splash.c 2005-10-06 14:45:29.480462752 +0200
+@@ -118,7 +118,8 @@
+
+ tty = open ("/dev/tty0", O_RDWR);
+ if (tty < 0)
+- perror ("open");
++ tty = open ("/dev/vc/0", O_RDWR);
++ if (tty < 0) perror ("open");
+ else
+ {
+ write (tty, cursoff, strlen (cursoff));
+@@ -176,6 +177,7 @@
+ double scale, xscale, yscale;
+ svg_cairo_status_t status;
+ int width, height;
++ cairo_surface_t *surface;
+
+ status = svg_cairo_create (&svgc);
+ if (status)
+@@ -201,17 +203,17 @@
+ xsize = (double)width * scale + 0.5;
+ ysize = (double)height * scale + 0.5;
+
+- cr = cairo_create ();
+- cairo_scale (cr, scale, scale);
+
+ pix = malloc (xsize * ysize * 4);
+ stride = xsize * 4;
+ has_alpha = TRUE;
+
+- cairo_set_target_image (cr, pix, CAIRO_FORMAT_ARGB32, xsize, ysize, xsize * 4);
+-
++ surface = cairo_image_surface_create_for_data(pix, CAIRO_FORMAT_ARGB32, xsize, ysize, stride);
++ cr = cairo_create (surface);
++ cairo_scale (cr, scale, scale);
++
+ /* XXX: This probably doesn't need to be here (eventually) */
+- cairo_set_rgb_color (cr, 1, 1, 1);
++ cairo_set_source_rgb (cr, 1, 1, 1);
+
+ svg_cairo_render (svgc, cr);
+