@@ -2323,15 +2323,6 @@ def draw(self, renderer=None, inframe=False):
23232323artists .remove (self ._left_title )
23242324artists .remove (self ._right_title )
23252325
2326- # add images to dsu if the backend supports compositing.
2327- # otherwise, does the manual compositing without adding images to dsu.
2328- if len (self .images )<= 1 or renderer .option_image_nocomposite ():
2329- _do_composite = False
2330- else :
2331- _do_composite = True
2332- for im in self .images :
2333- artists .remove (im )
2334-
23352326if self .figure .canvas .is_saving ():
23362327dsu = [(a .zorder ,a )for a in artists ]
23372328else :
@@ -2356,46 +2347,12 @@ def draw(self, renderer=None, inframe=False):
23562347if self .axison and self ._frameon :
23572348self .patch .draw (renderer )
23582349
2359- if _do_composite :
2360- # make a composite image, blending alpha
2361- # list of (mimage.Image, ox, oy)
2362-
2363- zorder_images = [(im .zorder ,im )for im in self .images
2364- if im .get_visible ()]
2365- zorder_images .sort (key = lambda x :x [0 ])
2366-
2367- mag = renderer .get_image_magnification ()
2368- ims = [(im .make_image (mag ),0 ,0 ,im .get_alpha ())
2369- for z ,im in zorder_images ]
2370-
2371- l ,b ,r ,t = self .bbox .extents
2372- width = int (mag * ((np .round (r )+ 0.5 )- (np .round (l )- 0.5 )))
2373- height = int (mag * ((np .round (t )+ 0.5 )- (np .round (b )- 0.5 )))
2374- im = mimage .from_images (height ,
2375- width ,
2376- ims )
2377-
2378- im .is_grayscale = False
2379- l ,b ,w ,h = self .bbox .bounds
2380- # composite images need special args so they will not
2381- # respect z-order for now
2382-
2383- gc = renderer .new_gc ()
2384- gc .set_clip_rectangle (self .bbox )
2385- gc .set_clip_path (mtransforms .TransformedPath (
2386- self .patch .get_path (),
2387- self .patch .get_transform ()))
2388-
2389- renderer .draw_image (gc ,round (l ),round (b ),im )
2390- gc .restore ()
2391-
23922350if dsu_rasterized :
23932351for zorder ,a in dsu_rasterized :
23942352a .draw (renderer )
23952353renderer .stop_rasterizing ()
23962354
2397- for zorder ,a in dsu :
2398- a .draw (renderer )
2355+ mimage ._draw_list_compositing_images (renderer ,self ,dsu )
23992356
24002357renderer .close_group ('axes' )
24012358self ._cachedRenderer = renderer