summaryrefslogtreecommitdiffstats
path: root/cairo-renderer/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cairo-renderer/src/lib.rs')
-rw-r--r--cairo-renderer/src/lib.rs22
1 files changed, 11 insertions, 11 deletions
diff --git a/cairo-renderer/src/lib.rs b/cairo-renderer/src/lib.rs
index 26ca089..d912afc 100644
--- a/cairo-renderer/src/lib.rs
+++ b/cairo-renderer/src/lib.rs
@@ -12,7 +12,7 @@ impl CairoRenderer {
12 pub fn new() -> Self { 12 pub fn new() -> Self {
13 // TODO: properly 13 // TODO: properly
14 let surface = cairo::SvgSurface::for_stream(1920., 1080., std::io::stdout()).unwrap(); 14 let surface = cairo::SvgSurface::for_stream(1920., 1080., std::io::stdout()).unwrap();
15 let ctx = cairo::Context::new(&surface); 15 let ctx = cairo::Context::new(&surface).unwrap();
16 16
17 Self { ctx } 17 Self { ctx }
18 } 18 }
@@ -24,15 +24,15 @@ impl Renderer for CairoRenderer {
24 } 24 }
25 25
26 fn stroke(&mut self) { 26 fn stroke(&mut self) {
27 self.ctx.stroke(); 27 self.ctx.stroke().unwrap();
28 } 28 }
29 29
30 fn fill(&mut self) { 30 fn fill(&mut self) {
31 self.ctx.fill(); 31 self.ctx.fill().unwrap();
32 } 32 }
33 33
34 fn fill_preserve(&mut self) { 34 fn fill_preserve(&mut self) {
35 self.ctx.fill_preserve(); 35 self.ctx.fill_preserve().unwrap();
36 } 36 }
37 37
38 fn set_pattern(&mut self, pattern: &Pattern) { 38 fn set_pattern(&mut self, pattern: &Pattern) {
@@ -47,7 +47,7 @@ impl Renderer for CairoRenderer {
47 } 47 }
48 48
49 fn set_dash(&mut self, dash: &DefinedDashStyle) { 49 fn set_dash(&mut self, dash: &DefinedDashStyle) {
50 self.ctx.set_dash(&dash.dashes(), dash.offset()); 50 self.ctx.set_dash(dash.dashes(), dash.offset());
51 } 51 }
52 52
53 fn clear_dash(&mut self) { 53 fn clear_dash(&mut self) {
@@ -67,7 +67,7 @@ impl Renderer for CairoRenderer {
67 } 67 }
68 68
69 fn text_extents(&self, text: &str, font: &FontDescription) -> (f64, f64) { 69 fn text_extents(&self, text: &str, font: &FontDescription) -> (f64, f64) {
70 let layout = pangocairo::create_layout(&self.ctx).expect("Couldn't create layout"); 70 let layout = pangocairo::create_layout(&self.ctx);
71 let font_desc = pango::FontDescription::from_string(&font.family); 71 let font_desc = pango::FontDescription::from_string(&font.family);
72 layout.set_font_description(Some(&font_desc)); 72 layout.set_font_description(Some(&font_desc));
73 layout.set_markup(text); 73 layout.set_markup(text);
@@ -76,26 +76,26 @@ impl Renderer for CairoRenderer {
76 //(extents.width as f64, extents.height as f64) 76 //(extents.width as f64, extents.height as f64)
77 77
78 // TODO: get height from the baseline 78 // TODO: get height from the baseline
79 let mut layout_iter = layout.get_iter().unwrap(); 79 let mut layout_iter = layout.iter();
80 let _height = loop { 80 let _height = loop {
81 if layout_iter.at_last_line() { 81 if layout_iter.at_last_line() {
82 break layout_iter.get_baseline(); 82 break layout_iter.baseline();
83 } 83 }
84 84
85 layout_iter.next_line(); 85 layout_iter.next_line();
86 }; 86 };
87 87
88 // TODO: Probably should use the logical extents, but it has weird width 88 // TODO: Probably should use the logical extents, but it has weird width
89 let (_, extents) = layout.get_pixel_extents(); 89 let (_, extents) = layout.pixel_extents();
90 //let (extents, _) = layout.get_pixel_extents(); 90 //let (extents, _) = layout.get_pixel_extents();
91 (extents.width as f64, extents.height as f64) 91 (extents.width() as f64, extents.height() as f64)
92 92
93 //let (width, height) = layout.get_pixel_size(); 93 //let (width, height) = layout.get_pixel_size();
94 //(width as f64, height as f64) 94 //(width as f64, height as f64)
95 } 95 }
96 96
97 fn show_text(&mut self, text: &str, font: &DefinedFontDescription) { 97 fn show_text(&mut self, text: &str, font: &DefinedFontDescription) {
98 let layout = pangocairo::create_layout(&self.ctx).expect("Couldn't create layout"); 98 let layout = pangocairo::create_layout(&self.ctx);
99 let mut font_desc = pango::FontDescription::from_string(&font.family); 99 let mut font_desc = pango::FontDescription::from_string(&font.family);
100 100
101 // TODO: I have no fucking idea why 101 // TODO: I have no fucking idea why