diff options
author | 2023-06-03 03:04:38 +0200 | |
---|---|---|
committer | 2023-06-03 03:04:38 +0200 | |
commit | c15f1b5f6575792cc89bb5fba2e613428397e46a (patch) | |
tree | 77526943d7aac8004e3ac7dca07154dcbbe25a0f /wgpu/src/window | |
parent | b353767d2d9703aae35f10ebf8a9ee1490c3ae37 (diff) | |
parent | b5fc0f4a3aa45d33d81d5799396f0b0770c4dff3 (diff) | |
download | iced-c15f1b5f6575792cc89bb5fba2e613428397e46a.tar.gz iced-c15f1b5f6575792cc89bb5fba2e613428397e46a.tar.bz2 iced-c15f1b5f6575792cc89bb5fba2e613428397e46a.zip |
Merge pull request #1888 from iced-rs/web-colors
Introduce `web-colors` feature flag to enable "sRGB linear" blending
Diffstat (limited to 'wgpu/src/window')
-rw-r--r-- | wgpu/src/window/compositor.rs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 500458e8..2eaafde0 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -1,6 +1,7 @@ //! Connect a window with a renderer. use crate::core::Color; use crate::graphics; +use crate::graphics::color; use crate::graphics::compositor; use crate::graphics::{Error, Primitive, Viewport}; use crate::{Backend, Renderer, Settings}; @@ -69,16 +70,19 @@ impl<Theme> Compositor<Theme> { let format = compatible_surface.as_ref().and_then(|surface| { let capabilities = surface.get_capabilities(&adapter); - capabilities - .formats - .iter() - .copied() - .find(wgpu::TextureFormat::is_srgb) - .or_else(|| { - log::warn!("No sRGB format found!"); + let mut formats = capabilities.formats.iter().copied(); - capabilities.formats.first().copied() - }) + let format = if color::GAMMA_CORRECTION { + formats.find(wgpu::TextureFormat::is_srgb) + } else { + formats.find(|format| !wgpu::TextureFormat::is_srgb(format)) + }; + + format.or_else(|| { + log::warn!("No format found!"); + + capabilities.formats.first().copied() + }) })?; log::info!("Selected format: {:?}", format); |