9
9
line segments).
10
10
"""
11
11
12
+ import inspect
12
13
import math
13
14
from numbers import Number
14
15
import numpy as np
@@ -2043,13 +2044,37 @@ def draw(self, renderer):
2043
2044
renderer .draw_gouraud_triangles (
2044
2045
gc , triangles , colors , transform .frozen ())
2045
2046
else :
2046
- renderer .draw_quad_mesh (
2047
- gc , transform .frozen (), self ._meshWidth , self ._meshHeight ,
2048
- coordinates , offsets , transOffset ,
2049
- # Backends expect flattened rgba arrays (n*m, 4) for fc and ec
2050
- self .get_facecolor ().reshape ((- 1 , 4 )),
2051
- self ._antialiased , self .get_edgecolors ().reshape ((- 1 , 4 )),
2052
- urls = self .get_urls ())
2047
+ try :
2048
+ sig = inspect .signature (renderer .draw_quad_mesh )
2049
+ except ValueError :
2050
+ # Compiled backends like Agg don't have a signature, but also
2051
+ # don't support urls anyway.
2052
+ use_urls = False
2053
+ else :
2054
+ use_urls = 'urls' in sig .parameters
2055
+ if use_urls :
2056
+ renderer .draw_quad_mesh (
2057
+ gc , transform .frozen (), self ._meshWidth , self ._meshHeight ,
2058
+ coordinates , offsets , transOffset , self .get_facecolor (),
2059
+ self ._antialiased , self .get_edgecolors (),
2060
+ urls = self .get_urls ())
2061
+ renderer .draw_quad_mesh (
2062
+ gc , transform .frozen (), self ._meshWidth , self ._meshHeight ,
2063
+ coordinates , offsets , transOffset ,
2064
+ # Backends expect flattened rgba arrays (n*m, 4) for fc
2065
+ # and ec
2066
+ self .get_facecolor ().reshape ((- 1 , 4 )),
2067
+ self ._antialiased , self .get_edgecolors ().reshape ((- 1 , 4 )),
2068
+ urls = self .get_urls ())
2069
+ else :
2070
+ # This backend does not support storing urls in the QuadMesh.
2071
+ renderer .draw_quad_mesh (
2072
+ gc , transform .frozen (), self ._meshWidth , self ._meshHeight ,
2073
+ coordinates , offsets , transOffset ,
2074
+ # Backends expect flattened rgba arrays (n*m, 4) for fc
2075
+ # and ec
2076
+ self .get_facecolor ().reshape ((- 1 , 4 )),
2077
+ self ._antialiased , self .get_edgecolors ().reshape ((- 1 , 4 )))
2053
2078
gc .restore ()
2054
2079
renderer .close_group (self .__class__ .__name__ )
2055
2080
self .stale = False
0 commit comments