summaryrefslogtreecommitdiffstats
path: root/graphics
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 /graphics
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 'graphics')
-rw-r--r--graphics/Cargo.toml86
-rw-r--r--graphics/src/compositor.rs2
-rw-r--r--graphics/src/geometry.rs4
-rw-r--r--graphics/src/geometry/fill.rs4
-rw-r--r--graphics/src/geometry/stroke.rs4
-rw-r--r--graphics/src/gradient.rs11
-rw-r--r--graphics/src/lib.rs5
-rw-r--r--graphics/src/mesh.rs2
-rw-r--r--graphics/src/text/cache.rs5
9 files changed, 58 insertions, 65 deletions
diff --git a/graphics/Cargo.toml b/graphics/Cargo.toml
index 6fc6ab00..ff698649 100644
--- a/graphics/Cargo.toml
+++ b/graphics/Cargo.toml
@@ -1,14 +1,18 @@
[package]
name = "iced_graphics"
-version = "0.9.0"
-authors = ["Héctor Ramón Jiménez <hector0193@gmail.com>"]
-edition = "2021"
-description = "A bunch of backend-agnostic types that can be leveraged to build a renderer for Iced"
-license = "MIT"
-repository = "https://github.com/iced-rs/iced"
-documentation = "https://docs.rs/iced_graphics"
-keywords = ["gui", "ui", "graphics", "interface", "widgets"]
-categories = ["gui"]
+description = "A bunch of backend-agnostic types that can be leveraged to build a renderer for iced"
+version.workspace = true
+edition.workspace = true
+authors.workspace = true
+license.workspace = true
+repository.workspace = true
+homepage.workspace = true
+categories.workspace = true
+keywords.workspace = true
+
+[package.metadata.docs.rs]
+rustdoc-args = ["--cfg", "docsrs"]
+all-features = true
[features]
geometry = ["lyon_path"]
@@ -17,43 +21,29 @@ image = ["dep:image", "kamadak-exif"]
web-colors = []
[dependencies]
-glam = "0.24"
-half = "2.2.1"
-log = "0.4"
-raw-window-handle = "0.5"
-thiserror = "1.0"
-bitflags = "1.2"
-cosmic-text = "0.9"
-rustc-hash = "1.1"
-
-[dependencies.bytemuck]
-version = "1.4"
-features = ["derive"]
-
-[dependencies.iced_core]
-version = "0.10"
-path = "../core"
-
-[dependencies.twox-hash]
-version = "1.6"
-default-features = false
-
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies.twox-hash]
-version = "1.6.1"
-features = ["std"]
-
-[dependencies.image]
-version = "0.24"
-optional = true
-
-[dependencies.kamadak-exif]
-version = "0.5"
-optional = true
-
-[dependencies.lyon_path]
-version = "1"
-optional = true
+iced_core.workspace = true
-[package.metadata.docs.rs]
-rustdoc-args = ["--cfg", "docsrs"]
-all-features = true
+bitflags.workspace = true
+bytemuck.workspace = true
+glam.workspace = true
+half.workspace = true
+log.workspace = true
+raw-window-handle.workspace = true
+thiserror.workspace = true
+cosmic-text.workspace = true
+rustc-hash.workspace = true
+
+lyon_path.workspace = true
+lyon_path.optional = true
+
+image.workspace = true
+image.optional = true
+
+kamadak-exif.workspace = true
+kamadak-exif.optional = true
+
+twox-hash.workspace = true
+
+[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
+twox-hash.workspace = true
+twox-hash.features = ["std"]
diff --git a/graphics/src/compositor.rs b/graphics/src/compositor.rs
index f7b86045..7173ffa7 100644
--- a/graphics/src/compositor.rs
+++ b/graphics/src/compositor.rs
@@ -63,7 +63,7 @@ pub trait Compositor: Sized {
/// Screenshots the current [`Renderer`] primitives to an offscreen texture, and returns the bytes of
/// the texture ordered as `RGBA` in the sRGB color space.
///
- /// [`Renderer`]: Self::Renderer;
+ /// [`Renderer`]: Self::Renderer
fn screenshot<T: AsRef<str>>(
&mut self,
renderer: &mut Self::Renderer,
diff --git a/graphics/src/geometry.rs b/graphics/src/geometry.rs
index 7cd3dd3a..d7d6a0aa 100644
--- a/graphics/src/geometry.rs
+++ b/graphics/src/geometry.rs
@@ -14,11 +14,11 @@ pub use text::Text;
pub use crate::gradient::{self, Gradient};
-/// A renderer capable of drawing some [`Geometry`].
+/// A renderer capable of drawing some [`Self::Geometry`].
pub trait Renderer: crate::core::Renderer {
/// The kind of geometry this renderer can draw.
type Geometry;
- /// Draws the given layers of [`Geometry`].
+ /// Draws the given layers of [`Self::Geometry`].
fn draw(&mut self, layers: Vec<Self::Geometry>);
}
diff --git a/graphics/src/geometry/fill.rs b/graphics/src/geometry/fill.rs
index b773c99b..670fbc12 100644
--- a/graphics/src/geometry/fill.rs
+++ b/graphics/src/geometry/fill.rs
@@ -1,4 +1,6 @@
-//! Fill [crate::widget::canvas::Geometry] with a certain style.
+//! Fill [`Geometry`] with a certain style.
+//!
+//! [`Geometry`]: super::Renderer::Geometry
pub use crate::geometry::Style;
use crate::core::Color;
diff --git a/graphics/src/geometry/stroke.rs b/graphics/src/geometry/stroke.rs
index 69a76e1c..aff49ab3 100644
--- a/graphics/src/geometry/stroke.rs
+++ b/graphics/src/geometry/stroke.rs
@@ -1,4 +1,6 @@
-//! Create lines from a [crate::widget::canvas::Path] and assigns them various attributes/styles.
+//! Create lines from a [`Path`] and assigns them various attributes/styles.
+//!
+//! [`Path`]: super::Path
pub use crate::geometry::Style;
use iced_core::Color;
diff --git a/graphics/src/gradient.rs b/graphics/src/gradient.rs
index 4db565d8..b274ec86 100644
--- a/graphics/src/gradient.rs
+++ b/graphics/src/gradient.rs
@@ -1,8 +1,6 @@
-//! A gradient that can be used as a [`Fill`] for some geometry.
+//! A gradient that can be used as a fill for some geometry.
//!
//! For a gradient that you can use as a background variant for a widget, see [`Gradient`].
-//!
-//! [`Gradient`]: crate::core::Gradient;
use crate::color;
use crate::core::gradient::ColorStop;
use crate::core::{self, Color, Point, Rectangle};
@@ -36,10 +34,7 @@ impl Gradient {
}
}
-/// A linear gradient that can be used in the style of [`Fill`] or [`Stroke`].
-///
-/// [`Fill`]: crate::geometry::Fill;
-/// [`Stroke`]: crate::geometry::Stroke;
+/// A linear gradient.
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Linear {
/// The absolute starting position of the gradient.
@@ -53,7 +48,7 @@ pub struct Linear {
}
impl Linear {
- /// Creates a new [`Builder`].
+ /// Creates a new [`Linear`] builder.
pub fn new(start: Point, end: Point) -> Self {
Self {
start,
diff --git a/graphics/src/lib.rs b/graphics/src/lib.rs
index 902eb5b0..01a358ca 100644
--- a/graphics/src/lib.rs
+++ b/graphics/src/lib.rs
@@ -7,6 +7,7 @@
#![doc(
html_logo_url = "https://raw.githubusercontent.com/iced-rs/iced/9ab6923e943f784985e9ef9ca28b10278297225d/docs/logo.svg"
)]
+#![forbid(rust_2018_idioms)]
#![deny(
missing_debug_implementations,
//missing_docs,
@@ -16,9 +17,9 @@
clippy::from_over_into,
clippy::needless_borrow,
clippy::new_without_default,
- clippy::useless_conversion
+ clippy::useless_conversion,
+ rustdoc::broken_intra_doc_links
)]
-#![forbid(rust_2018_idioms)]
#![allow(clippy::inherent_to_string, clippy::type_complexity)]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
mod antialiasing;
diff --git a/graphics/src/mesh.rs b/graphics/src/mesh.rs
index cfb5a60f..041986cf 100644
--- a/graphics/src/mesh.rs
+++ b/graphics/src/mesh.rs
@@ -41,7 +41,7 @@ impl Damage for Mesh {
}
}
-/// A set of [`Vertex2D`] and indices representing a list of triangles.
+/// A set of vertices and indices representing a list of triangles.
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Indexed<T> {
/// The vertices of the mesh
diff --git a/graphics/src/text/cache.rs b/graphics/src/text/cache.rs
index 9e4fbf65..577c4687 100644
--- a/graphics/src/text/cache.rs
+++ b/graphics/src/text/cache.rs
@@ -43,7 +43,10 @@ impl Cache {
}
if let hash_map::Entry::Vacant(entry) = self.entries.entry(hash) {
- let metrics = cosmic_text::Metrics::new(key.size, key.line_height);
+ let metrics = cosmic_text::Metrics::new(
+ key.size,
+ key.line_height.max(f32::MIN_POSITIVE),
+ );
let mut buffer = cosmic_text::Buffer::new(font_system, metrics);
buffer.set_size(