summaryrefslogtreecommitdiffstats
path: root/wgpu/src/window/compositor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/window/compositor.rs')
-rw-r--r--wgpu/src/window/compositor.rs16
1 files changed, 7 insertions, 9 deletions
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 0a5d2c8f..328ad781 100644
--- a/wgpu/src/window/compositor.rs
+++ b/wgpu/src/window/compositor.rs
@@ -6,6 +6,8 @@ use crate::graphics::compositor;
use crate::graphics::{Error, Viewport};
use crate::{Backend, Primitive, Renderer, Settings};
+use std::future::Future;
+
/// A window graphics backend for iced powered by `wgpu`.
#[allow(missing_debug_implementations)]
pub struct Compositor {
@@ -158,17 +160,13 @@ impl Compositor {
/// Creates a [`Compositor`] and its [`Backend`] for the given [`Settings`] and
/// window.
-pub fn new<W: compositor::Window>(
+pub async fn new<W: compositor::Window>(
settings: Settings,
compatible_window: W,
) -> Result<Compositor, Error> {
- let compositor = futures::executor::block_on(Compositor::request(
- settings,
- Some(compatible_window),
- ))
- .ok_or(Error::GraphicsAdapterNotFound)?;
-
- Ok(compositor)
+ Compositor::request(settings, Some(compatible_window))
+ .await
+ .ok_or(Error::GraphicsAdapterNotFound)
}
/// Presents the given primitives with the given [`Compositor`] and [`Backend`].
@@ -234,7 +232,7 @@ impl graphics::Compositor for Compositor {
fn new<W: compositor::Window>(
settings: Self::Settings,
compatible_window: W,
- ) -> Result<Self, Error> {
+ ) -> impl Future<Output = Result<Self, Error>> {
new(settings, compatible_window)
}