1 | /*! # The built-in rasterizers. |
2 | |
3 | Plotters make a minimal backend ability assumption - which is drawing a pixel on |
4 | backend. And this is the rasterizer that utilize this minimal ability to build a |
5 | fully functioning backend. |
6 | |
7 | */ |
8 | |
9 | // TODO: We need to revisit this. It has been a long time since last time we figured out |
10 | // the question mark operator has a huge performance impact due to LLVM unable to handle it. |
11 | // So the question is if this trick is still useful, or LLVM is smart enough to handle it since |
12 | // then. |
13 | // |
14 | // -- |
15 | // Original comment: |
16 | // |
17 | // ? operator is very slow. See issue #58 for details |
18 | macro_rules! check_result { |
19 | ($e:expr) => { |
20 | let result = $e; |
21 | #[allow(clippy::question_mark)] |
22 | if result.is_err() { |
23 | return result; |
24 | } |
25 | }; |
26 | } |
27 | |
28 | mod line; |
29 | pub use line::draw_line; |
30 | |
31 | mod rect; |
32 | pub use rect::draw_rect; |
33 | |
34 | mod circle; |
35 | pub use circle::draw_circle; |
36 | |
37 | mod polygon; |
38 | pub use polygon::fill_polygon; |
39 | |
40 | mod path; |
41 | pub use path::polygonize; |
42 | |