diff options
| author | 2019-12-29 12:29:47 +0100 | |
|---|---|---|
| committer | 2019-12-29 12:29:47 +0100 | |
| commit | f74ab463d44dd0bb025b0cea466d2861576253dd (patch) | |
| tree | aa500cbe6577a6084e08f3409e406c4a7e7385e4 | |
| parent | c7b170da6d180f80e539910cccb543720fa3713c (diff) | |
| download | iced-f74ab463d44dd0bb025b0cea466d2861576253dd.tar.gz iced-f74ab463d44dd0bb025b0cea466d2861576253dd.tar.bz2 iced-f74ab463d44dd0bb025b0cea466d2861576253dd.zip  | |
Add `background_color` to `Settings`
| -rw-r--r-- | native/src/renderer.rs | 7 | ||||
| -rw-r--r-- | native/src/renderer/windowed.rs | 3 | ||||
| -rw-r--r-- | src/settings.rs | 18 | ||||
| -rw-r--r-- | wgpu/src/renderer.rs | 18 | ||||
| -rw-r--r-- | winit/src/application.rs | 8 | ||||
| -rw-r--r-- | winit/src/settings/mod.rs | 15 | 
6 files changed, 55 insertions, 14 deletions
diff --git a/native/src/renderer.rs b/native/src/renderer.rs index 7a68ada4..023dd42b 100644 --- a/native/src/renderer.rs +++ b/native/src/renderer.rs @@ -21,14 +21,15 @@  //! [`checkbox::Renderer`]: ../widget/checkbox/trait.Renderer.html  mod debugger; -#[cfg(debug_assertions)] -mod null;  mod windowed;  pub use debugger::Debugger; +pub use windowed::{Target, Windowed}; + +#[cfg(debug_assertions)] +mod null;  #[cfg(debug_assertions)]  pub use null::Null; -pub use windowed::{Target, Windowed};  use crate::{layout, Element}; diff --git a/native/src/renderer/windowed.rs b/native/src/renderer/windowed.rs index 813a03f2..89f80bbe 100644 --- a/native/src/renderer/windowed.rs +++ b/native/src/renderer/windowed.rs @@ -1,4 +1,4 @@ -use crate::MouseCursor; +use crate::{Color, MouseCursor};  use raw_window_handle::HasRawWindowHandle; @@ -19,6 +19,7 @@ pub trait Windowed: super::Renderer + Sized {      /// top of the GUI on most scenarios.      fn draw<T: AsRef<str>>(          &mut self, +        clear_color: Color,          output: &Self::Output,          overlay: &[T],          target: &mut Self::Target, diff --git a/src/settings.rs b/src/settings.rs index 62a1a614..8da8948c 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -1,7 +1,8 @@  //! Configure your application. +use crate::Color;  /// The settings of an application. -#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +#[derive(Debug, Clone, Copy, PartialEq)]  pub struct Settings {      /// The [`Window`] settings.      /// @@ -9,6 +10,20 @@ pub struct Settings {      ///      /// [`Window`]: struct.Window.html      pub window: Window, + +    /// The default background [`Color`] of the application +    /// +    /// [`Color`]: ../struct.Color.html +    pub background_color: Color, +} + +impl Default for Settings { +    fn default() -> Settings { +        Settings { +            window: Window::default(), +            background_color: Color::WHITE, +        } +    }  }  /// The window settings of an application. @@ -44,6 +59,7 @@ impl From<Settings> for iced_winit::Settings {                  decorations: settings.window.decorations,                  platform_specific: Default::default(),              }, +            background_color: settings.background_color,          }      }  } diff --git a/wgpu/src/renderer.rs b/wgpu/src/renderer.rs index 4984d4fe..47b258ed 100644 --- a/wgpu/src/renderer.rs +++ b/wgpu/src/renderer.rs @@ -76,6 +76,7 @@ impl Renderer {      fn draw<T: AsRef<str>>(          &mut self, +        clear_color: Color,          (primitive, mouse_cursor): &(Primitive, MouseCursor),          overlay: &[T],          target: &mut Target, @@ -97,11 +98,15 @@ impl Renderer {                  resolve_target: None,                  load_op: wgpu::LoadOp::Clear,                  store_op: wgpu::StoreOp::Store, -                clear_color: wgpu::Color { -                    r: 1.0, -                    g: 1.0, -                    b: 1.0, -                    a: 1.0, +                clear_color: { +                    let [r, g, b, a] = clear_color.into_linear(); + +                    wgpu::Color { +                        r: f64::from(r), +                        g: f64::from(g), +                        b: f64::from(b), +                        a: f64::from(a), +                    }                  },              }],              depth_stencil_attachment: None, @@ -428,11 +433,12 @@ impl Windowed for Renderer {      fn draw<T: AsRef<str>>(          &mut self, +        clear_color: Color,          output: &Self::Output,          overlay: &[T],          target: &mut Target,      ) -> MouseCursor { -        self.draw(output, overlay, target) +        self.draw(clear_color, output, overlay, target)      }  } diff --git a/winit/src/application.rs b/winit/src/application.rs index a8612b1a..50060b11 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -279,8 +279,12 @@ pub trait Application: Sized {                      resized = false;                  } -                let new_mouse_cursor = -                    renderer.draw(&primitive, &debug.overlay(), &mut target); +                let new_mouse_cursor = renderer.draw( +                    settings.background_color, +                    &primitive, +                    &debug.overlay(), +                    &mut target, +                );                  debug.render_finished(); diff --git a/winit/src/settings/mod.rs b/winit/src/settings/mod.rs index 58e3d879..1f9f1502 100644 --- a/winit/src/settings/mod.rs +++ b/winit/src/settings/mod.rs @@ -1,4 +1,5 @@  //! Configure your application. +use crate::Color;  #[cfg(target_os = "windows")]  #[path = "windows.rs"] @@ -10,12 +11,24 @@ mod platform;  pub use platform::PlatformSpecific;  /// The settings of an application. -#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +#[derive(Debug, Clone, Copy, PartialEq)]  pub struct Settings {      /// The [`Window`] settings      ///      /// [`Window`]: struct.Window.html      pub window: Window, + +    /// The default background color of the application +    pub background_color: Color, +} + +impl Default for Settings { +    fn default() -> Settings { +        Settings { +            window: Window::default(), +            background_color: Color::WHITE, +        } +    }  }  /// The window settings of an application.  | 
