]> git.cworth.org Git - grrobot/blobdiff - src/grr_icon.c
Remove generated file ltmain.sh
[grrobot] / src / grr_icon.c
index bf9a29a850f8342f3c8ce63e47c8d34680fc45c2..827d5b8b46e3388050aced2685dae2ed9d605943 100644 (file)
@@ -91,8 +91,10 @@ struct {
     { RR_WALL_ABOVE, "wall",
       GRR_ICON_SVG_WALL, sizeof (GRR_ICON_SVG_WALL) },
 
-    { RR_WALL_NONE, "cell",
-      GRR_ICON_SVG_CELL, sizeof (GRR_ICON_SVG_CELL) }
+    { 0, "cell1",
+      GRR_ICON_SVG_CELL1, sizeof (GRR_ICON_SVG_CELL1) },
+    { 0, "cell2",
+      GRR_ICON_SVG_CELL2, sizeof (GRR_ICON_SVG_CELL2) }
 };
 #define NUM_BUILTINS (sizeof (builtins) / sizeof (builtins[0]))
 
@@ -125,7 +127,7 @@ grr_icon_create (char *name)
 static rr_status_t
 _grr_icon_init (grr_icon_t *icon, char *name)
 {
-    xsvg_status_t status;
+    svg_cairo_status_t status;
     char *file, *buf;
     int buflen;
 
@@ -133,15 +135,15 @@ _grr_icon_init (grr_icon_t *icon, char *name)
     icon->surface_width = 0;
     icon->surface_height = 0;
 
-    status = xsvg_create (&icon->xsvg);
+    status = svg_cairo_create (&icon->svg_cairo);
     if (status)
        return RR_STATUS_NO_MEMORY;
 
     file = _grr_icon_find_file (name);
 
     if (file) {
-       status = xsvg_parse_file (icon->xsvg, file);
-       if (status == XSVG_STATUS_SUCCESS) {
+       status = svg_cairo_parse (icon->svg_cairo, file);
+       if (status == SVG_CAIRO_STATUS_SUCCESS) {
            free (file);
            return RR_STATUS_SUCCESS;
        }
@@ -150,7 +152,7 @@ _grr_icon_init (grr_icon_t *icon, char *name)
     }
 
     _grr_icon_find_buffer (name, &buf, &buflen);
-    status = xsvg_parse_buffer (icon->xsvg, buf, buflen);
+    status = svg_cairo_parse_buffer (icon->svg_cairo, buf, buflen);
     if (status) {
        fprintf (stderr, "Error parsing built-in SVG icon for: %s\n", name);
        return RR_STATUS_PARSE_ERROR;
@@ -223,11 +225,11 @@ grr_icon_target_name (rr_target_t target)
 void
 grr_icon_draw (grr_icon_t *icon, cairo_t *xrs)
 {
-    xsvg_status_t status;
+    svg_cairo_status_t status;
 
-    status =  xsvg_render (icon->xsvg, xrs);
+    status =  svg_cairo_render (icon->svg_cairo, xrs);
     if (status) {
-       fprintf (stderr, "xsvg_render error\n");
+       fprintf (stderr, "svg_cairo_render error\n");
        return;
     }
 }
@@ -235,25 +237,28 @@ grr_icon_draw (grr_icon_t *icon, cairo_t *xrs)
 void
 grr_icon_predraw (grr_icon_t *icon, cairo_t *xrs, int width, int height)
 {
+    cairo_t *xrs2;
+
     if (icon->surface_width != width || icon->surface_height != height) {
        if (icon->surface)
            cairo_surface_destroy (icon->surface);
        icon->surface_width = width;
        icon->surface_height = height;
-       icon->surface = cairo_surface_create_similar (cairo_get_target_surface (xrs),
+       icon->surface = cairo_surface_create_similar (cairo_get_target (xrs),
                                                      CAIRO_FORMAT_ARGB32,
                                                      width, height);
     }
 
-    cairo_save (xrs);
-    cairo_set_target_surface (xrs, icon->surface);
-    grr_icon_draw (icon, xrs);
-    cairo_restore (xrs);
+    xrs2 = cairo_create (icon->surface);
+    grr_icon_draw (icon, xrs2);
+    cairo_destroy (xrs2);
 }
 
 void
-grr_icon_draw_predrawn (grr_icon_t *icon, cairo_t *xrs)
+grr_icon_draw_predrawn (grr_icon_t *icon, cairo_t *xrs, double alpha)
 {
-    if (icon->surface)
-       cairo_show_surface (xrs, icon->surface, icon->surface_width, icon->surface_height);
+    if (icon->surface) {
+       cairo_set_source_surface (xrs, icon->surface, 0.0, 0.0);
+       cairo_paint (xrs);
+    }
 }