From 30f7d39ca2ed4590b5d356b1a4c024d11156a383 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Sun, 25 Dec 2022 15:46:31 +0100 Subject: WIP before core rewrite --- cairo-renderer/Cargo.toml | 6 +++--- cairo-renderer/src/lib.rs | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'cairo-renderer') diff --git a/cairo-renderer/Cargo.toml b/cairo-renderer/Cargo.toml index 9d7d818..ebef7d5 100644 --- a/cairo-renderer/Cargo.toml +++ b/cairo-renderer/Cargo.toml @@ -9,6 +9,6 @@ edition = "2021" [dependencies] diaphragm-core = { path = "../core" } -cairo-rs = { version = "0.9", features = ["svg", "png"] } -pango = "0.9" -pangocairo = "0.10" +cairo-rs = { version = "0.16", features = ["svg", "png"] } +pango = "0.16" +pangocairo = "0.16" 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 { pub fn new() -> Self { // TODO: properly let surface = cairo::SvgSurface::for_stream(1920., 1080., std::io::stdout()).unwrap(); - let ctx = cairo::Context::new(&surface); + let ctx = cairo::Context::new(&surface).unwrap(); Self { ctx } } @@ -24,15 +24,15 @@ impl Renderer for CairoRenderer { } fn stroke(&mut self) { - self.ctx.stroke(); + self.ctx.stroke().unwrap(); } fn fill(&mut self) { - self.ctx.fill(); + self.ctx.fill().unwrap(); } fn fill_preserve(&mut self) { - self.ctx.fill_preserve(); + self.ctx.fill_preserve().unwrap(); } fn set_pattern(&mut self, pattern: &Pattern) { @@ -47,7 +47,7 @@ impl Renderer for CairoRenderer { } fn set_dash(&mut self, dash: &DefinedDashStyle) { - self.ctx.set_dash(&dash.dashes(), dash.offset()); + self.ctx.set_dash(dash.dashes(), dash.offset()); } fn clear_dash(&mut self) { @@ -67,7 +67,7 @@ impl Renderer for CairoRenderer { } fn text_extents(&self, text: &str, font: &FontDescription) -> (f64, f64) { - let layout = pangocairo::create_layout(&self.ctx).expect("Couldn't create layout"); + let layout = pangocairo::create_layout(&self.ctx); let font_desc = pango::FontDescription::from_string(&font.family); layout.set_font_description(Some(&font_desc)); layout.set_markup(text); @@ -76,26 +76,26 @@ impl Renderer for CairoRenderer { //(extents.width as f64, extents.height as f64) // TODO: get height from the baseline - let mut layout_iter = layout.get_iter().unwrap(); + let mut layout_iter = layout.iter(); let _height = loop { if layout_iter.at_last_line() { - break layout_iter.get_baseline(); + break layout_iter.baseline(); } layout_iter.next_line(); }; // TODO: Probably should use the logical extents, but it has weird width - let (_, extents) = layout.get_pixel_extents(); + let (_, extents) = layout.pixel_extents(); //let (extents, _) = layout.get_pixel_extents(); - (extents.width as f64, extents.height as f64) + (extents.width() as f64, extents.height() as f64) //let (width, height) = layout.get_pixel_size(); //(width as f64, height as f64) } fn show_text(&mut self, text: &str, font: &DefinedFontDescription) { - let layout = pangocairo::create_layout(&self.ctx).expect("Couldn't create layout"); + let layout = pangocairo::create_layout(&self.ctx); let mut font_desc = pango::FontDescription::from_string(&font.family); // TODO: I have no fucking idea why -- cgit v1.2.3