File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change 9
9
namespace py = pybind11;
10
10
11
11
#include " agg_basics.h"
12
+ #include " agg_color_rgba.h"
12
13
#include " agg_trans_affine.h"
13
14
#include " path_converters.h"
14
15
@@ -58,6 +59,36 @@ namespace PYBIND11_NAMESPACE { namespace detail {
58
59
}
59
60
};
60
61
62
+ template <> struct type_caster <agg::rgba> {
63
+ public:
64
+ PYBIND11_TYPE_CASTER (agg::rgba, const_name(" rgba" ));
65
+
66
+ bool load (handle src, bool ) {
67
+ if (src.is_none ()) {
68
+ value.r = 0.0 ;
69
+ value.g = 0.0 ;
70
+ value.b = 0.0 ;
71
+ value.a = 0.0 ;
72
+ } else {
73
+ auto rgbatuple = src.cast <py::tuple>();
74
+ value.r = rgbatuple[0 ].cast <double >();
75
+ value.g = rgbatuple[1 ].cast <double >();
76
+ value.b = rgbatuple[2 ].cast <double >();
77
+ switch (rgbatuple.size ()) {
78
+ case 4 :
79
+ value.a = rgbatuple[3 ].cast <double >();
80
+ break ;
81
+ case 3 :
82
+ value.a = 1.0 ;
83
+ break ;
84
+ default :
85
+ throw py::value_error (" RGBA value must be 3- or 4-tuple" );
86
+ }
87
+ }
88
+ return true ;
89
+ }
90
+ };
91
+
61
92
template <> struct type_caster <agg::trans_affine> {
62
93
public:
63
94
PYBIND11_TYPE_CASTER (agg::trans_affine, const_name(" trans_affine" ));
You can’t perform that action at this time.
0 commit comments