diff options
| -rw-r--r-- | src/main.rs | 20 | ||||
| -rw-r--r-- | src/xcursor.rs | 2 |
2 files changed, 9 insertions, 13 deletions
diff --git a/src/main.rs b/src/main.rs index fed8090..45d459b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ -use std::{fs, io::Result, os::unix}; +use std::{fs, io::Result, os::unix, sync::LazyLock}; use serde::{Deserialize, Serialize}; use tiny_skia::Pixmap; @@ -55,18 +55,14 @@ pub struct BibataColourScheme<'a> { pub watch_opacity: f32, } -fn vector_to_pixmap(svg_data: &[u8]) -> Pixmap { - let tree = { - let mut opt = usvg::Options::default(); - // Get file's absolute directory. - // opt.resources_dir = std::fs::canonicalize(&args[1]) - // .ok() - // .and_then(|p| p.parent().map(|p| p.to_path_buf())); - - opt.fontdb_mut().load_system_fonts(); +static USVG_OPTIONS: LazyLock<usvg::Options> = LazyLock::new(||{ + let mut opt = usvg::Options::default(); + opt.fontdb_mut().load_system_fonts(); + opt +}); - usvg::Tree::from_data(svg_data, &opt).unwrap() - }; +fn vector_to_pixmap(svg_data: &[u8]) -> Pixmap { + let tree = usvg::Tree::from_data(svg_data, &*USVG_OPTIONS).unwrap(); let pixmap_size = tree.size().to_int_size(); let mut pixmap = tiny_skia::Pixmap::new(pixmap_size.width(), pixmap_size.height()).unwrap(); diff --git a/src/xcursor.rs b/src/xcursor.rs index 7e365e4..2fb0c99 100644 --- a/src/xcursor.rs +++ b/src/xcursor.rs @@ -97,7 +97,7 @@ impl XCursorEncoder { insert_bytes(&mut data, &img.data); } } - + data } } |