diff options
author | Samus_ <mail2samus@gmail.com> | 2010-03-21 12:12:49 (GMT) |
---|---|---|
committer | Samus_ <mail2samus@gmail.com> | 2010-03-21 12:12:49 (GMT) |
commit | 5be7ccacf36a085e48a02f69acf4bb8e00367ffb (patch) | |
tree | 29e489f4a2de2573a278addc42c27c09bc0663dc | |
parent | 75076e764ab3c2f7748d695fbb8be27c1edc8b56 (diff) |
comments
-rwxr-xr-x | fracciones.activity/gtkcake.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fracciones.activity/gtkcake.py b/fracciones.activity/gtkcake.py index 3477bbe..c81d5ec 100755 --- a/fracciones.activity/gtkcake.py +++ b/fracciones.activity/gtkcake.py @@ -77,10 +77,14 @@ class Cake(gtk.DrawingArea): """Enmascara la imagen de la torta y dibuja solo los trozos que no fueron seleccionados """ + # al crear un cairo.Context los cambios se graban en el Surface que se le pase al constructor + # por lo tanto necesitamos usar dummy_image para no alterar image que es propio a la clase dummy_image = cairo.ImageSurface(cairo.FORMAT_ARGB32, WIDTH, HEIGHT) image_ctx = cairo.Context(dummy_image) + # ponemos la imagen como source_surface de modo que cairo no nos escriba arriba image_ctx.set_source_surface(image) image_ctx.paint() + # el metodo de enmascaramiento es dibujar en modo "borrar" ya que mask no quiso andar image_ctx.set_operator(cairo.OPERATOR_CLEAR) for index, selected in enumerate(self.selected_list): if selected: @@ -95,6 +99,7 @@ class Cake(gtk.DrawingArea): angle_end) image_ctx.close_path() image_ctx.fill() + # cargamos la imagen con las partes borradas sobre el context general context.set_source_surface(dummy_image) context.paint() |