|
From: <lee...@us...> - 2009-12-11 16:57:53
|
Revision: 8022
http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8022&view=rev
Author: leejjoon
Date: 2009-12-11 16:57:46 +0000 (Fri, 11 Dec 2009)
Log Message:
-----------
Axes.draw rearranged to support rasterization
Modified Paths:
--------------
trunk/matplotlib/lib/matplotlib/axes.py
Modified: trunk/matplotlib/lib/matplotlib/axes.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/axes.py 2009-12-11 00:59:34 UTC (rev 8021)
+++ trunk/matplotlib/lib/matplotlib/axes.py 2009-12-11 16:57:46 UTC (rev 8022)
@@ -30,6 +30,8 @@
import matplotlib.ticker as mticker
import matplotlib.transforms as mtransforms
+from operator import itemgetter
+
iterable = cbook.iterable
is_string_like = cbook.is_string_like
is_sequence_of_strings = cbook.is_sequence_of_strings
@@ -1698,11 +1700,22 @@
artists.extend(self.spines.itervalues())
+
dsu = [ (a.zorder, a) for a in artists
if not a.get_animated() ]
- dsu.sort(key=lambda x: x[0])
+ # add images to dsu if the backend support compositing.
+ # otherwise, does the manaul compositing without adding images to dsu.
+ if len(self.images)<=1 or renderer.option_image_nocomposite():
+ dsu.extend([(im.zorder, im) for im in self.images])
+ _do_composite = False
+ else:
+ _do_composite = True
+
+
+ dsu.sort(key=itemgetter(0))
+
# rasterize artists with negative zorder
# if the minimum zorder is negative, start rasterization
rasterization_zorder = self._rasterization_zorder
@@ -1719,11 +1732,7 @@
if self.axison and self._frameon:
self.patch.draw(renderer)
- if len(self.images)<=1 or renderer.option_image_nocomposite():
- for im in self.images:
- dsu.append( (im.zorder, im) )
- dsu.sort(key=lambda x: x[0]) # re-sort with images now
- else:
+ if _do_composite:
# make a composite image blending alpha
# list of (mimage.Image, ox, oy)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|