]> git.ipfire.org Git - thirdparty/plymouth.git/commitdiff
[script] Simplify sprite area calculation
authorCharlie Brej <cbrej@cs.man.ac.uk>
Sun, 18 Apr 2010 16:53:11 +0000 (17:53 +0100)
committerCharlie Brej <cbrej@cs.man.ac.uk>
Sun, 18 Apr 2010 16:53:11 +0000 (17:53 +0100)
The sprite area no longer needs to be calculated as the buffer holds that
information.

src/plugins/splash/script/script-lib-sprite.c

index 58381d00b3dad81cd45fe69567f1ead23dfd9820..e0ced7e4a6e1599c39d595ef6fe7b88082531f0b 100644 (file)
@@ -458,26 +458,24 @@ static void script_lib_sprite_draw_area (script_lib_display_t *display,
        node = ply_list_get_next_node (data->sprite_list, node))
     {
       sprite_t *sprite = ply_list_node_get_data (node);
-      ply_rectangle_t sprite_area;
+      int position_x, position_y;
 
       if (!sprite->image) continue;
       if (sprite->remove_me) continue;
       if (sprite->opacity < 0.011) continue;
 
-      ply_pixel_buffer_get_size (sprite->image, &sprite_area);
+      position_x = sprite->x - display->x;
+      position_y = sprite->y - display->y;
 
-      sprite_area.x = sprite->x - display->x;
-      sprite_area.y = sprite->y - display->y;
+      if (position_x >= (x + width)) continue;
+      if (position_y >= (y + height)) continue;
 
-      if (sprite_area.x >= (x + width)) continue;
-      if (sprite_area.y >= (y + height)) continue;
-
-      if ((sprite_area.x + (int) sprite_area.width) <= x) continue;
-      if ((sprite_area.y + (int) sprite_area.height) <= y) continue;
+      if ((position_x + (int) ply_pixel_buffer_get_width (sprite->image)) <= x) continue;
+      if ((position_y + (int) ply_pixel_buffer_get_height (sprite->image)) <= y) continue;
       ply_pixel_buffer_fill_with_buffer_at_opacity_with_clip (pixel_buffer,
                                                               sprite->image,
-                                                              sprite->x - display->x,
-                                                              sprite->y - display->y,
+                                                              position_x,
+                                                              position_y,
                                                               &clip_area,
                                                               sprite->opacity);
     }