summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-06-22 00:38:36 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-06-29 07:18:20 +0200
commit0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2 (patch)
tree7f3d09dca8ea9fae96457d3f9266e014d1d25d80 /wgpu
parent8d65e40a1174ecb8225ce9973575bced36e7aeb5 (diff)
downloadiced-0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2.tar.gz
iced-0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2.tar.bz2
iced-0ae1baa37bd7b6607f79b33b8a6d8c5daafde0b2.zip
Introduce custom backend-specific primitives
Diffstat (limited to 'wgpu')
-rw-r--r--wgpu/src/backend.rs7
-rw-r--r--wgpu/src/geometry.rs6
-rw-r--r--wgpu/src/layer.rs11
-rw-r--r--wgpu/src/lib.rs6
-rw-r--r--wgpu/src/primitive.rs3
-rw-r--r--wgpu/src/window/compositor.rs4
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};