diff options
Diffstat (limited to 'wgpu/src/window')
| -rw-r--r-- | wgpu/src/window/compositor.rs | 14 | 
1 files changed, 9 insertions, 5 deletions
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 54ea8247..bfb18bfa 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -5,9 +5,11 @@ use iced_graphics::compositor;  use iced_native::futures;  use raw_window_handle::HasRawWindowHandle; +use std::marker::PhantomData; +  /// A window graphics backend for iced powered by `wgpu`.  #[allow(missing_debug_implementations)] -pub struct Compositor { +pub struct Compositor<Theme> {      settings: Settings,      instance: wgpu::Instance,      adapter: wgpu::Adapter, @@ -16,9 +18,10 @@ pub struct Compositor {      staging_belt: wgpu::util::StagingBelt,      local_pool: futures::executor::LocalPool,      format: wgpu::TextureFormat, +    theme: PhantomData<Theme>,  } -impl Compositor { +impl<Theme> Compositor<Theme> {      const CHUNK_SIZE: u64 = 10 * 1024;      /// Requests a new [`Compositor`] with the given [`Settings`]. @@ -101,6 +104,7 @@ impl Compositor {              staging_belt,              local_pool,              format, +            theme: PhantomData,          })      } @@ -110,15 +114,15 @@ impl Compositor {      }  } -impl iced_graphics::window::Compositor for Compositor { +impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {      type Settings = Settings; -    type Renderer = Renderer; +    type Renderer = Renderer<Theme>;      type Surface = wgpu::Surface;      fn new<W: HasRawWindowHandle>(          settings: Self::Settings,          compatible_window: Option<&W>, -    ) -> Result<(Self, Renderer), Error> { +    ) -> Result<(Self, Self::Renderer), Error> {          let compositor = futures::executor::block_on(Self::request(              settings,              compatible_window,  | 
