summaryrefslogtreecommitdiffstats
path: root/cairo-renderer/src
diff options
context:
space:
mode:
authorMinijackson <minijackson@riseup.net>2023-01-20 16:03:25 +0100
committerMinijackson <minijackson@riseup.net>2023-01-20 16:03:25 +0100
commit7b0e215008c94c4a7ddb5f47b12c341d807ea062 (patch)
tree52aef22ad227e0ad1b39e76574f8f55f70e31875 /cairo-renderer/src
parente8f8e5aa2f4a2372452e77ffe1cf8a035ce8cf8a (diff)
downloaddiaphragm-7b0e215008c94c4a7ddb5f47b12c341d807ea062.tar.gz
diaphragm-7b0e215008c94c4a7ddb5f47b12c341d807ea062.zip
tree-wide: properly set figure size
Diffstat (limited to 'cairo-renderer/src')
-rw-r--r--cairo-renderer/src/lib.rs16
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
11impl CairoRenderer { 11impl 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
22impl Default for CairoRenderer {
23 fn default() -> Self {
24 Self::new()
25 }
26}
27
21impl Renderer for CairoRenderer { 28impl 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 }