From 7051918f8d4edfb5b46969667cc7134ce2db65c6 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sat, 13 Oct 2012 12:02:19 +0000 Subject: handle cairo surfaces directly --- diff --git a/TurtleArt/sprites.py b/TurtleArt/sprites.py index 33a5cd2..8cad6a6 100644 --- a/TurtleArt/sprites.py +++ b/TurtleArt/sprites.py @@ -79,6 +79,7 @@ def svg_str_to_pixbuf(svg_string): import gi from gi.repository import Gtk, GdkPixbuf, Gdk from gi.repository import Pango, PangoCairo +import cairo class Sprites: @@ -188,7 +189,7 @@ class Sprite: self.images[i] = image self._dx[i] = dx self._dy[i] = dy - if isinstance(self.images[i], GdkPixbuf.Pixbuf): + if hasattr(self.images[i], 'get_width'): w = self.images[i].get_width() h = self.images[i].get_height() else: @@ -339,6 +340,14 @@ class Sprite: self.rect[2], self.rect[3]) cr.fill() + elif type(img) == cairo.ImageSurface: + cr.set_source_surface(img, self.rect[0] + self._dx[i], + self.rect[1] + self._dy[i]) + cr.rectangle(self.rect[0] + self._dx[i], + self.rect[1] + self._dy[i], + self.rect[2], + self.rect[3]) + cr.fill() else: print 'sprite.draw: source not a pixbuf (%s)' % (type(img)) if len(self.labels) > 0: -- cgit v0.9.1