enthought / enable

Enable: low-level drawing and interaction
Other
93 stars 44 forks source link

Make sure all kiva backends implement AbstractGraphicsContext faithfully #648

Open jwiggins opened 3 years ago

jwiggins commented 3 years ago

Since AbstractGraphicsContext is the published and documented interface for kiva backends, we should make sure that all current backends actually use that interface.

corranwebster commented 2 years ago

The PDF, PS, and SVG backends have no CompiledPath

All the backends that inherit from basecore2d can use the Agg CompiledPath implementation, but they don't expose it in the module API: https://github.com/enthought/enable/blob/dae67fea0b6729cf43841c1e45bcda62ea463739/kiva/basecore2d.py#L704-L743

jwiggins commented 2 years ago

I'm pretty averse to creating new dependencies on the Agg backend. We should consider a different way.

corranwebster commented 2 years ago

This isn't new, just noting that there is a default implementation.

I agree thought: I'd really like a pure python implementation of CompiledPath, together with a proper definition of the expected interface.