diff options
author | Minijackson <minijackson@riseup.net> | 2023-01-20 16:03:25 +0100 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2023-01-20 16:03:25 +0100 |
commit | 7b0e215008c94c4a7ddb5f47b12c341d807ea062 (patch) | |
tree | 52aef22ad227e0ad1b39e76574f8f55f70e31875 /cairo-renderer | |
parent | e8f8e5aa2f4a2372452e77ffe1cf8a035ce8cf8a (diff) | |
download | diaphragm-7b0e215008c94c4a7ddb5f47b12c341d807ea062.tar.gz diaphragm-7b0e215008c94c4a7ddb5f47b12c341d807ea062.zip |
tree-wide: properly set figure size
Diffstat (limited to 'cairo-renderer')
-rw-r--r-- | cairo-renderer/src/lib.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/cairo-renderer/src/lib.rs b/cairo-renderer/src/lib.rs index 830e6bc..2a88379 100644 --- a/cairo-renderer/src/lib.rs +++ b/cairo-renderer/src/lib.rs | |||
@@ -10,15 +10,27 @@ pub struct CairoRenderer { | |||
10 | 10 | ||
11 | impl CairoRenderer { | 11 | impl CairoRenderer { |
12 | pub fn new() -> Self { | 12 | pub fn new() -> Self { |
13 | // TODO: properly | 13 | // HACK: a bit ugly, but text_extents requires a context, so we have to create a "dummy" |
14 | let surface = cairo::SvgSurface::for_stream(1920., 1080., std::io::stdout()).unwrap(); | 14 | // surface |
15 | let surface = cairo::SvgSurface::for_stream(1920., 1080., std::io::sink()).unwrap(); | ||
15 | let ctx = cairo::Context::new(&surface).unwrap(); | 16 | let ctx = cairo::Context::new(&surface).unwrap(); |
16 | 17 | ||
17 | Self { ctx } | 18 | Self { ctx } |
18 | } | 19 | } |
19 | } | 20 | } |
20 | 21 | ||
22 | impl Default for CairoRenderer { | ||
23 | fn default() -> Self { | ||
24 | Self::new() | ||
25 | } | ||
26 | } | ||
27 | |||
21 | impl Renderer for CairoRenderer { | 28 | impl Renderer for CairoRenderer { |
29 | fn set_size(&mut self, width: f64, height: f64) { | ||
30 | let surface = cairo::SvgSurface::for_stream(width, height, std::io::stdout()).unwrap(); | ||
31 | self.ctx = cairo::Context::new(&surface).unwrap(); | ||
32 | } | ||
33 | |||
22 | fn move_to(&mut self, x: f64, y: f64) { | 34 | fn move_to(&mut self, x: f64, y: f64) { |
23 | self.ctx.move_to(x, y) | 35 | self.ctx.move_to(x, y) |
24 | } | 36 | } |