summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Vladyslav Nikonov <mail@pacmancoder.xyz>2021-10-21 22:42:14 +0300
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-01-28 21:37:14 +0700
commitbdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a (patch)
tree8ea0d2ff0a0d780ff763d7491fc67878f549a615 /native
parentc75ed37148b019358b0297171cf31b2577eeb9ae (diff)
downloadiced-bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a.tar.gz
iced-bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a.tar.bz2
iced-bdca20fc4a3e8f6bd8ffb59de75e6ca0f8a94b6a.zip
Experimental wgpu WebGL backend support
- Added missing `draw_cache_align_4x4` call for `brush_glyph` on wasm32 target - Added WebGL support to `integratio_wgpu` example - Fixed test.yml CI workflow - Removed spir-v shader in `integration_wgpu`; Fixed formatting - Removed redundant `BoxStream` typedef
Diffstat (limited to 'native')
-rw-r--r--native/src/subscription.rs42
1 files changed, 40 insertions, 2 deletions
diff --git a/native/src/subscription.rs b/native/src/subscription.rs
index 63834654..4fb7e760 100644
--- a/native/src/subscription.rs
+++ b/native/src/subscription.rs
@@ -7,6 +7,37 @@ use iced_futures::BoxStream;
use std::hash::Hash;
+#[cfg(not(target_arch = "wasm32"))]
+mod trait_aliases {
+ use super::*;
+
+ /// Wrapper type
+ pub trait RunnerStream<Message>:
+ Stream<Item = Message> + Send + 'static
+ {
+ }
+
+ impl<T, Message> RunnerStream<Message> for T where
+ T: Stream<Item = Message> + Send + 'static
+ {
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+mod trait_aliases {
+ use super::*;
+
+ /// Wrapper type
+ pub trait RunnerStream<Message>: Stream<Item = Message> + 'static {}
+
+ impl<T, Message> RunnerStream<Message> for T where
+ T: Stream<Item = Message> + 'static
+ {
+ }
+}
+
+pub use trait_aliases::RunnerStream;
+
/// A request to listen to external events.
///
/// Besides performing async actions on demand with [`Command`], most
@@ -191,7 +222,7 @@ impl<I, S, F, Message> Recipe<Hasher, (Event, event::Status)>
where
I: Hash + 'static,
F: FnOnce(EventStream) -> S,
- S: Stream<Item = Message> + Send + 'static,
+ S: RunnerStream<Message>,
{
type Output = Message;
@@ -203,6 +234,13 @@ where
fn stream(self: Box<Self>, input: EventStream) -> BoxStream<Self::Output> {
use futures::stream::StreamExt;
- (self.spawn)(input).boxed()
+ #[cfg(target_arch = "wasm32")]
+ {
+ (self.spawn)(input).boxed_local()
+ }
+ #[cfg(not(target_arch = "wasm32"))]
+ {
+ (self.spawn)(input).boxed()
+ }
}
}