summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Greg V <greg@unrelenting.technology>2020-05-31 16:53:57 +0300
committerLibravatar Greg V <greg@unrelenting.technology>2020-06-01 21:31:19 +0300
commita65d6a11cb82719a649110a8deaeb8f87e1c374b (patch)
treea18074ab0934028755038e6755ab37153718a5bf /wgpu
parent05750bf1863f8a6d2b797c4c482cd38dc45d7aeb (diff)
downloadiced-a65d6a11cb82719a649110a8deaeb8f87e1c374b.tar.gz
iced-a65d6a11cb82719a649110a8deaeb8f87e1c374b.tar.bz2
iced-a65d6a11cb82719a649110a8deaeb8f87e1c374b.zip
Add custom window background/clear color (incl. transparency) support, fixes #272
wgpu would currently ignore the alpha: https://github.com/gfx-rs/wgpu/issues/687 glow (and naively patched wgpu) requires premultiplied alpha, so if you don't multiply the RGB by the A right now, the semi-transparent color would be wrong (too bright). winit with_transparent doesn't seem necessary.
Diffstat (limited to 'wgpu')
-rw-r--r--wgpu/src/settings.rs7
-rw-r--r--wgpu/src/window/compositor.rs8
2 files changed, 10 insertions, 5 deletions
diff --git a/wgpu/src/settings.rs b/wgpu/src/settings.rs
index 4655e64f..16294ba3 100644
--- a/wgpu/src/settings.rs
+++ b/wgpu/src/settings.rs
@@ -1,10 +1,11 @@
//! Configure a renderer.
pub use crate::Antialiasing;
+pub use iced_native::Color;
/// The settings of a [`Renderer`].
///
/// [`Renderer`]: ../struct.Renderer.html
-#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Settings {
/// The output format of the [`Renderer`].
///
@@ -18,6 +19,9 @@ pub struct Settings {
/// The antialiasing strategy that will be used for triangle primitives.
pub antialiasing: Option<Antialiasing>,
+
+ /// The color that will be used to clear the window surface.
+ pub background_color: Color,
}
impl Default for Settings {
@@ -26,6 +30,7 @@ impl Default for Settings {
format: wgpu::TextureFormat::Bgra8UnormSrgb,
default_font: None,
antialiasing: None,
+ background_color: Color::WHITE,
}
}
}
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 8345679a..f85986f0 100644
--- a/wgpu/src/window/compositor.rs
+++ b/wgpu/src/window/compositor.rs
@@ -119,10 +119,10 @@ impl iced_graphics::window::Compositor for Compositor {
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,
+ r: self.settings.background_color.r.into(),
+ g: self.settings.background_color.g.into(),
+ b: self.settings.background_color.b.into(),
+ a: self.settings.background_color.a.into(),
},
}],
depth_stencil_attachment: None,