@@ -2323,15 +2323,6 @@ def draw(self, renderer=None, inframe=False):
23232323 artists .remove (self ._left_title )
23242324 artists .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-
23352326 if self .figure .canvas .is_saving ():
23362327 dsu = [(a .zorder , a ) for a in artists ]
23372328 else :
@@ -2356,46 +2347,12 @@ def draw(self, renderer=None, inframe=False):
23562347 if self .axison and self ._frameon :
23572348 self .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-
23922350 if dsu_rasterized :
23932351 for zorder , a in dsu_rasterized :
23942352 a .draw (renderer )
23952353 renderer .stop_rasterizing ()
23962354
2397- for zorder , a in dsu :
2398- a .draw (renderer )
2355+ mimage ._draw_list_compositing_images (renderer , self , dsu )
23992356
24002357 renderer .close_group ('axes' )
24012358 self ._cachedRenderer = renderer
0 commit comments