Function build_surface_config

Source
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);