Use two layers for image::atlas only on Gl backend

This commit is contained in:
Héctor Ramón Jiménez 2024-02-19 08:18:51 +01:00
parent 4272090d36
commit 04df889cac
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
5 changed files with 46 additions and 24 deletions

View file

@ -87,7 +87,7 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
});
let surface = instance.create_surface(window.clone())?;
let (format, (device, queue)) =
let (format, adapter, device, queue) =
futures::futures::executor::block_on(async {
let adapter = wgpu::util::initialize_adapter_from_env_or_default(
&instance,
@ -107,6 +107,19 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
let capabilities = surface.get_capabilities(&adapter);
let (device, queue) = adapter
.request_device(
&wgpu::DeviceDescriptor {
label: None,
required_features: adapter_features
& wgpu::Features::default(),
required_limits: needed_limits,
},
None,
)
.await
.expect("Request device");
(
capabilities
.formats
@ -115,18 +128,9 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
.find(wgpu::TextureFormat::is_srgb)
.or_else(|| capabilities.formats.first().copied())
.expect("Get preferred format"),
adapter
.request_device(
&wgpu::DeviceDescriptor {
label: None,
required_features: adapter_features
& wgpu::Features::default(),
required_limits: needed_limits,
},
None,
)
.await
.expect("Request device"),
adapter,
device,
queue,
)
});
@ -153,7 +157,7 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
// Initialize iced
let mut debug = Debug::new();
let mut renderer = Renderer::new(
Backend::new(&device, &queue, Settings::default(), format),
Backend::new(&adapter, &device, &queue, Settings::default(), format),
Font::default(),
Pixels(16.0),
);