summaryrefslogtreecommitdiffstats
path: root/cairo-renderer
diff options
context:
space:
mode:
Diffstat (limited to 'cairo-renderer')
-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 }