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
|
|
@ -195,6 +195,7 @@ pub trait Application: Sized {
|
|||
} else {
|
||||
None
|
||||
},
|
||||
background_color: settings.background_color,
|
||||
..crate::renderer::Settings::default()
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
//! Configure your application.
|
||||
use crate::window;
|
||||
use crate::{window, Color};
|
||||
|
||||
/// The settings of an application.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub struct Settings<Flags> {
|
||||
/// The window settings.
|
||||
///
|
||||
|
|
@ -32,6 +32,29 @@ pub struct Settings<Flags> {
|
|||
///
|
||||
/// [`Canvas`]: ../widget/canvas/struct.Canvas.html
|
||||
pub antialiasing: bool,
|
||||
|
||||
/// The background color of the window.
|
||||
///
|
||||
/// On supported backends, this makes it possible to have
|
||||
/// (semi-)transparent windows.
|
||||
///
|
||||
/// By default, it is white.
|
||||
pub background_color: Color,
|
||||
}
|
||||
|
||||
impl<Flags> Default for Settings<Flags>
|
||||
where
|
||||
Flags: Default,
|
||||
{
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
flags: Default::default(),
|
||||
antialiasing: Default::default(),
|
||||
default_font: Default::default(),
|
||||
window: Default::default(),
|
||||
background_color: Color::WHITE,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<Flags> Settings<Flags> {
|
||||
|
|
@ -46,6 +69,7 @@ impl<Flags> Settings<Flags> {
|
|||
antialiasing: Default::default(),
|
||||
default_font: Default::default(),
|
||||
window: Default::default(),
|
||||
background_color: Color::WHITE,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue