diff options
Diffstat (limited to 'wgpu/src/window/compositor.rs')
-rw-r--r-- | wgpu/src/window/compositor.rs | 16 |
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) } |