From 664251f3f5c7b76f69a97683af1468094bba887f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 14 May 2022 01:47:55 +0200 Subject: Draft first-class `Theme` support RFC: https://github.com/iced-rs/rfcs/pull/6 --- wgpu/src/lib.rs | 4 +++- wgpu/src/window/compositor.rs | 14 +++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'wgpu/src') diff --git a/wgpu/src/lib.rs b/wgpu/src/lib.rs index ebe48510..d1ad6cd9 100644 --- a/wgpu/src/lib.rs +++ b/wgpu/src/lib.rs @@ -39,6 +39,7 @@ mod quad; mod text; pub use iced_graphics::{Antialiasing, Color, Error, Primitive, Viewport}; +pub use iced_native::Theme; pub use wgpu; pub use backend::Backend; @@ -53,4 +54,5 @@ mod image; /// /// [`wgpu`]: https://github.com/gfx-rs/wgpu-rs /// [`iced`]: https://github.com/iced-rs/iced -pub type Renderer = iced_graphics::Renderer; +pub type Renderer = + iced_graphics::Renderer; 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 { 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, } -impl Compositor { +impl Compositor { 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 iced_graphics::window::Compositor for Compositor { type Settings = Settings; - type Renderer = Renderer; + type Renderer = Renderer; type Surface = wgpu::Surface; fn new( 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, -- cgit