diff options
author | 2023-06-22 00:38:36 +0200 | |
---|---|---|
committer | 2023-06-29 07:18:20 +0200 | |
commit | 0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2 (patch) | |
tree | 7f3d09dca8ea9fae96457d3f9266e014d1d25d80 /wgpu | |
parent | 8d65e40a1174ecb8225ce9973575bced36e7aeb5 (diff) | |
download | iced-0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2.tar.gz iced-0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2.tar.bz2 iced-0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2.zip |
Introduce custom backend-specific primitives
Diffstat (limited to '')
-rw-r--r-- | wgpu/src/backend.rs | 7 | ||||
-rw-r--r-- | wgpu/src/geometry.rs | 6 | ||||
-rw-r--r-- | wgpu/src/layer.rs | 11 | ||||
-rw-r--r-- | wgpu/src/lib.rs | 6 | ||||
-rw-r--r-- | wgpu/src/primitive.rs | 3 | ||||
-rw-r--r-- | wgpu/src/window/compositor.rs | 4 |
6 files changed, 21 insertions, 16 deletions
diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index f8829e47..596d43c5 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -2,7 +2,8 @@ use crate::core; use crate::core::{Color, Font, Point, Size}; use crate::graphics::backend; use crate::graphics::color; -use crate::graphics::{Primitive, Transformation, Viewport}; +use crate::graphics::{Transformation, Viewport}; +use crate::primitive::{self, Primitive}; use crate::quad; use crate::text; use crate::triangle; @@ -334,6 +335,10 @@ impl Backend { } } +impl crate::graphics::Backend for Backend { + type Primitive = primitive::Custom; +} + impl backend::Text for Backend { const ICON_FONT: Font = Font::with_name("Iced-Icons"); const CHECKMARK_ICON: char = '\u{f00c}'; diff --git a/wgpu/src/geometry.rs b/wgpu/src/geometry.rs index f81b5b2f..d43f1065 100644 --- a/wgpu/src/geometry.rs +++ b/wgpu/src/geometry.rs @@ -5,10 +5,10 @@ use crate::graphics::geometry::fill::{self, Fill}; use crate::graphics::geometry::{ LineCap, LineDash, LineJoin, Path, Stroke, Style, Text, }; -use crate::graphics::primitive::{self, Primitive}; -use crate::graphics::Gradient; +use crate::graphics::gradient::{self, Gradient}; +use crate::graphics::primitive; +use crate::Primitive; -use iced_graphics::gradient; use lyon::geom::euclid; use lyon::tessellation; use std::borrow::Cow; diff --git a/wgpu/src/layer.rs b/wgpu/src/layer.rs index 71570e3d..ef850cd9 100644 --- a/wgpu/src/layer.rs +++ b/wgpu/src/layer.rs @@ -12,8 +12,9 @@ use crate::core; use crate::core::alignment; use crate::core::{Color, Font, Point, Rectangle, Size, Vector}; use crate::graphics::color; -use crate::graphics::{Primitive, Viewport}; +use crate::graphics::Viewport; use crate::quad::{self, Quad}; +use crate::Primitive; /// A group of primitives that should be clipped together. #[derive(Debug)] @@ -262,13 +263,7 @@ impl<'a> Layer<'a> { current_layer, ); } - _ => { - // Not supported! - log::warn!( - "Unsupported primitive in `iced_wgpu`: {:?}", - primitive - ); - } + Primitive::Custom(()) => {} } } } diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs index 86a962a5..79dfdd24 100644 --- a/wgpu/src/lib.rs +++ b/wgpu/src/lib.rs @@ -24,8 +24,8 @@ html_logo_url = "https://raw.githubusercontent.com/iced-rs/iced/9ab6923e943f784985e9ef9ca28b10278297225d/docs/logo.svg" )] #![deny( - missing_debug_implementations, - missing_docs, + //missing_debug_implementations, + //missing_docs, unsafe_code, unused_results, clippy::extra_unused_lifetimes, @@ -47,6 +47,7 @@ pub mod geometry; mod backend; mod buffer; mod color; +mod primitive; mod quad; mod text; mod triangle; @@ -60,6 +61,7 @@ pub use wgpu; pub use backend::Backend; pub use layer::Layer; +pub use primitive::Primitive; pub use settings::Settings; #[cfg(any(feature = "image", feature = "svg"))] diff --git a/wgpu/src/primitive.rs b/wgpu/src/primitive.rs new file mode 100644 index 00000000..2e31cd53 --- /dev/null +++ b/wgpu/src/primitive.rs @@ -0,0 +1,3 @@ +pub type Primitive = crate::graphics::Primitive<Custom>; + +pub type Custom = (); diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 1cfd7b67..cd5b20cc 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -3,8 +3,8 @@ use crate::core::{Color, Size}; use crate::graphics; use crate::graphics::color; use crate::graphics::compositor; -use crate::graphics::{Error, Primitive, Viewport}; -use crate::{Backend, Renderer, Settings}; +use crate::graphics::{Error, Viewport}; +use crate::{Backend, Primitive, Renderer, Settings}; use futures::stream::{self, StreamExt}; |