--- /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);