enthought / enthought/enable

Make sure all kiva backends implement AbstractGraphicsContext faithfully

Open
#648 3 comments 0 reactions 0 assignees View on GitHub
ETS Backlog type: refactor
Dominant language
C
Stars
97
Forks
45
PR merge metrics
No merged PRs in 30d

Description

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

- [x] `select_font` is not consistently implemented [closed by #691]
- [ ] Gradients work very differently in the Quartz backend (they are applied immediately as a fill of the current path)
- [ ] A number of backends that could implement gradients, don't (PDF, SVG).
- [ ] The PDF, PS, and SVG backends have no `CompiledPath`. PDF could have one (not sure about the others)
- [ ] `draw_marker_at_points` [details in #708]
- [ ] `arc` takes a keyword argument `cw`, not `clockwise` as it's called in several backends (celiagg, qpainter)
- [ ] `set_flatness` is mostly not implemented. (only Cairo has it)
- [ ] `set_image_interpolation` is mostly not implemented (only `kiva.agg` has it)
- [ ] `set_text_drawing_mode` is mostly not implemented
- [ ] The text position and text matrix is not uniformly implemented
- [ ] `*_character_spacing` is not widely implemented
- [ ] All backends should implement all the curve commands consistently: `arc`, `arc_to`, `quad_curve_to`, `curve_to`. (partial fixes in #970 and #988, see also #960, #961, #962, #985)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.