pub fn build_surface_config(
caps: &SurfaceCapabilities,
size: PhysicalExtent,
desired_maximum_frame_latency: u32,
transparent: bool,
) -> Result<SurfaceConfiguration, SurfaceConfigDeferredReason>Expand description
Builds a concrete presentation configuration from advertised capabilities.
size is in physical pixels and each zero dimension is clamped to one.
desired_maximum_frame_latency is forwarded verbatim to wgpu; this helper
does not impose a minimum. The output uses no additional view formats.
§Errors
Returns SurfaceConfigDeferredReason::NoFormats when no formats are
advertised, or SurfaceConfigDeferredReason::NoPresentModes when no
concrete presentation mode is advertised.
§Examples
use ailloli_ui_render_wgpu::{
pipeline_cache::build_surface_config,
PhysicalExtent,
};
let caps = wgpu::SurfaceCapabilities {
formats: vec![wgpu::TextureFormat::Bgra8UnormSrgb],
present_modes: vec![wgpu::PresentMode::Fifo],
alpha_modes: vec![wgpu::CompositeAlphaMode::Opaque],
usages: wgpu::TextureUsages::RENDER_ATTACHMENT,
};
let config = build_surface_config(&caps, PhysicalExtent::new(0, 720), 2, false)?;
assert_eq!((config.width, config.height), (1, 720));
assert_eq!(config.desired_maximum_frame_latency, 2);