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.
This commit is contained in:
parent
05750bf186
commit
a65d6a11cb
6 changed files with 49 additions and 9 deletions
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue