summaryrefslogtreecommitdiffstats
path: root/tiny_skia
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-09-10 00:34:21 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-09-10 00:34:21 +0200
commitb8e5693a3089d728b4f8d4b3b0b7197202ebd732 (patch)
tree79a9f84f9920525657fbe03d53ce33bab09053d7 /tiny_skia
parent956512338905bac0b156fdaf16fe3c3e07e97a84 (diff)
parenta3489e4af960388e9f73988b88df361022a654a4 (diff)
downloadiced-b8e5693a3089d728b4f8d4b3b0b7197202ebd732.tar.gz
iced-b8e5693a3089d728b4f8d4b3b0b7197202ebd732.tar.bz2
iced-b8e5693a3089d728b4f8d4b3b0b7197202ebd732.zip
Merge branch 'master' into explicit-text-caching
Diffstat (limited to 'tiny_skia')
-rw-r--r--tiny_skia/Cargo.toml54
-rw-r--r--tiny_skia/src/geometry.rs14
-rw-r--r--tiny_skia/src/lib.rs13
-rw-r--r--tiny_skia/src/raster.rs4
-rw-r--r--tiny_skia/src/text.rs4
-rw-r--r--tiny_skia/src/vector.rs8
-rw-r--r--tiny_skia/src/window/compositor.rs1
7 files changed, 57 insertions, 41 deletions
diff --git a/tiny_skia/Cargo.toml b/tiny_skia/Cargo.toml
index 9aa63a4f..15a6928a 100644
--- a/tiny_skia/Cargo.toml
+++ b/tiny_skia/Cargo.toml
@@ -1,14 +1,14 @@
[package]
name = "iced_tiny_skia"
-version = "0.1.0"
-authors = ["Héctor Ramón Jiménez <hector0193@gmail.com>"]
-edition = "2021"
-description = "A software renderer for Iced"
-license = "MIT"
-repository = "https://github.com/iced-rs/iced"
-documentation = "https://docs.rs/iced_tiny_skia"
-keywords = ["gui", "ui", "graphics", "interface", "widgets"]
-categories = ["gui"]
+description = "A software renderer for iced on top of tiny-skia"
+version.workspace = true
+edition.workspace = true
+authors.workspace = true
+license.workspace = true
+repository.workspace = true
+homepage.workspace = true
+categories.workspace = true
+keywords.workspace = true
[features]
image = ["iced_graphics/image"]
@@ -16,27 +16,21 @@ svg = ["resvg"]
geometry = ["iced_graphics/geometry"]
[dependencies]
-raw-window-handle = "0.5"
-softbuffer = "0.2"
-tiny-skia = "0.10"
-cosmic-text = "0.9"
-bytemuck = "1"
-rustc-hash = "1.1"
-kurbo = "0.9"
-log = "0.4"
+iced_graphics.workspace = true
-[dependencies.iced_graphics]
-version = "0.9"
-path = "../graphics"
+bytemuck.workspace = true
+cosmic-text.workspace = true
+kurbo.workspace = true
+log.workspace = true
+raw-window-handle.workspace = true
+rustc-hash.workspace = true
+softbuffer.workspace = true
+tiny-skia.workspace = true
+twox-hash.workspace = true
-[dependencies.twox-hash]
-version = "1.6"
-default-features = false
+resvg.workspace = true
+resvg.optional = true
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies.twox-hash]
-version = "1.6.1"
-features = ["std"]
-
-[dependencies.resvg]
-version = "0.35"
-optional = true
+[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
+twox-hash.workspace = true
+twox-hash.features = ["std"]
diff --git a/tiny_skia/src/geometry.rs b/tiny_skia/src/geometry.rs
index 0fae7364..047bc0ff 100644
--- a/tiny_skia/src/geometry.rs
+++ b/tiny_skia/src/geometry.rs
@@ -154,8 +154,16 @@ impl Frame {
.pre_concat(tiny_skia::Transform::from_rotate(angle.to_degrees()));
}
- pub fn scale(&mut self, scale: f32) {
- self.transform = self.transform.pre_scale(scale, scale);
+ pub fn scale(&mut self, scale: impl Into<f32>) {
+ let scale = scale.into();
+
+ self.scale_nonuniform(Vector { x: scale, y: scale });
+ }
+
+ pub fn scale_nonuniform(&mut self, scale: impl Into<Vector>) {
+ let scale = scale.into();
+
+ self.transform = self.transform.pre_scale(scale.x, scale.y);
}
pub fn into_primitive(self) -> Primitive {
@@ -295,7 +303,7 @@ pub fn into_fill_rule(rule: fill::Rule) -> tiny_skia::FillRule {
}
}
-pub fn into_stroke(stroke: &Stroke) -> tiny_skia::Stroke {
+pub fn into_stroke(stroke: &Stroke<'_>) -> tiny_skia::Stroke {
tiny_skia::Stroke {
width: stroke.width,
line_cap: match stroke.line_cap {
diff --git a/tiny_skia/src/lib.rs b/tiny_skia/src/lib.rs
index 15de6ce2..e48468e9 100644
--- a/tiny_skia/src/lib.rs
+++ b/tiny_skia/src/lib.rs
@@ -1,3 +1,16 @@
+#![forbid(rust_2018_idioms)]
+#![deny(
+ unsafe_code,
+ unused_results,
+ clippy::extra_unused_lifetimes,
+ clippy::from_over_into,
+ clippy::needless_borrow,
+ clippy::new_without_default,
+ clippy::useless_conversion,
+ rustdoc::broken_intra_doc_links
+)]
+#![allow(clippy::inherent_to_string, clippy::type_complexity)]
+#![cfg_attr(docsrs, feature(doc_auto_cfg))]
pub mod window;
mod backend;
diff --git a/tiny_skia/src/raster.rs b/tiny_skia/src/raster.rs
index dedb127c..d13b1167 100644
--- a/tiny_skia/src/raster.rs
+++ b/tiny_skia/src/raster.rs
@@ -85,14 +85,14 @@ impl Cache {
);
}
- entry.insert(Some(Entry {
+ let _ = entry.insert(Some(Entry {
width: image.width(),
height: image.height(),
pixels: buffer,
}));
}
- self.hits.insert(id);
+ let _ = self.hits.insert(id);
self.entries.get(&id).unwrap().as_ref().map(|entry| {
tiny_skia::PixmapRef::from_bytes(
bytemuck::cast_slice(&entry.pixels),
diff --git a/tiny_skia/src/text.rs b/tiny_skia/src/text.rs
index 820e7bd8..cb3ef54c 100644
--- a/tiny_skia/src/text.rs
+++ b/tiny_skia/src/text.rs
@@ -267,10 +267,10 @@ impl GlyphCache {
}
}
- entry.insert((buffer, image.placement));
+ let _ = entry.insert((buffer, image.placement));
}
- self.recently_used.insert(key);
+ let _ = self.recently_used.insert(key);
self.entries.get(&key).map(|(buffer, placement)| {
(bytemuck::cast_slice(buffer.as_slice()), *placement)
diff --git a/tiny_skia/src/vector.rs b/tiny_skia/src/vector.rs
index 433ca0f5..490b9f69 100644
--- a/tiny_skia/src/vector.rs
+++ b/tiny_skia/src/vector.rs
@@ -92,10 +92,10 @@ impl Cache {
}
};
- entry.insert(svg);
+ let _ = entry.insert(svg);
}
- self.tree_hits.insert(id);
+ let _ = self.tree_hits.insert(id);
self.trees.get(&id).unwrap().as_ref()
}
@@ -178,10 +178,10 @@ impl Cache {
}
}
- self.rasters.insert(key, image);
+ let _ = self.rasters.insert(key, image);
}
- self.raster_hits.insert(key);
+ let _ = self.raster_hits.insert(key);
self.rasters.get(&key).map(tiny_skia::Pixmap::as_ref)
}
diff --git a/tiny_skia/src/window/compositor.rs b/tiny_skia/src/window/compositor.rs
index a996fffc..828e522f 100644
--- a/tiny_skia/src/window/compositor.rs
+++ b/tiny_skia/src/window/compositor.rs
@@ -46,6 +46,7 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> {
width: u32,
height: u32,
) -> Surface {
+ #[allow(unsafe_code)]
let window =
unsafe { softbuffer::GraphicsContext::new(window, window) }
.expect("Create softbuffer for window");