Get surface capabilities only once in iced_wgpu

This commit is contained in:
Héctor Ramón Jiménez 2023-04-13 05:42:56 +02:00
parent d5453c62e9
commit b677345ac1
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
2 changed files with 8 additions and 8 deletions

View file

@ -92,17 +92,16 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
#[cfg(not(target_arch = "wasm32"))]
let needed_limits = wgpu::Limits::default();
let capabilities = surface.get_capabilities(&adapter);
(
surface
.get_capabilities(&adapter)
capabilities
.formats
.iter()
.filter(|format| format.describe().srgb)
.copied()
.next()
.or_else(|| {
surface.get_capabilities(&adapter).formats.first().copied()
})
.or_else(|| capabilities.formats.first().copied())
.expect("Get preferred format"),
adapter
.request_device(

View file

@ -66,8 +66,9 @@ impl<Theme> Compositor<Theme> {
log::info!("Selected: {:#?}", adapter.get_info());
let format = compatible_surface.as_ref().and_then(|surface| {
surface
.get_capabilities(&adapter)
let capabilities = surface.get_capabilities(&adapter);
capabilities
.formats
.iter()
.filter(|format| format.describe().srgb)
@ -76,7 +77,7 @@ impl<Theme> Compositor<Theme> {
.or_else(|| {
log::warn!("No sRGB format found!");
surface.get_capabilities(&adapter).formats.first().copied()
capabilities.formats.first().copied()
})
})?;