Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt/sprites.py
diff options
context:
space:
mode:
Diffstat (limited to 'TurtleArt/sprites.py')
-rw-r--r--TurtleArt/sprites.py11
1 files changed, 10 insertions, 1 deletions
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: