1
0
mirror of https://github.com/emilk/egui.git synced 2026-08-30 05:10:03 -04:00

Upgrade to wgpu 24 (#5610)

This commit is contained in:
TÖRÖK Attila
2025-01-16 17:00:29 +01:00
committed by GitHub
parent 366900c550
commit a5d7cf5bd7
42 changed files with 226 additions and 190 deletions

View File

@@ -56,7 +56,7 @@ struct PanicHandlerInner {
/// Contains a summary about a panics.
///
/// This is basically a human-readable version of [`std::panic::PanicInfo`]
/// This is basically a human-readable version of [`std::panic::PanicHookInfo`]
/// with an added callstack.
#[derive(Clone, Debug)]
pub struct PanicSummary {
@@ -66,7 +66,7 @@ pub struct PanicSummary {
impl PanicSummary {
/// Construct a summary from a panic.
pub fn new(info: &std::panic::PanicInfo<'_>) -> Self {
pub fn new(info: &std::panic::PanicHookInfo<'_>) -> Self {
let message = info.to_string();
let callstack = Error::new().stack();
Self { message, callstack }

View File

@@ -20,9 +20,10 @@ impl TextAgent {
// create an `<input>` element
let input = document
.create_element("input")?
.dyn_into::<web_sys::HtmlInputElement>()?;
.dyn_into::<web_sys::HtmlElement>()?;
input.set_autofocus(true)?;
let input = input.dyn_into::<web_sys::HtmlInputElement>()?;
input.set_type("text");
input.set_autofocus(true);
input.set_attribute("autocapitalize", "off")?;
// append it to `<body>` and hide it outside of the viewport

View File

@@ -139,9 +139,9 @@ impl CaptureState {
encoder.copy_texture_to_buffer(
tex.as_image_copy(),
wgpu::ImageCopyBuffer {
wgpu::TexelCopyBufferInfo {
buffer: &buffer,
layout: wgpu::ImageDataLayout {
layout: wgpu::TexelCopyBufferLayout {
offset: 0,
bytes_per_row: Some(padding.padded_bytes_per_row),
rows_per_image: None,

View File

@@ -579,14 +579,14 @@ impl Renderer {
let queue_write_data_to_texture = |texture, origin| {
profiling::scope!("write_texture");
queue.write_texture(
wgpu::ImageCopyTexture {
wgpu::TexelCopyTextureInfo {
texture,
mip_level: 0,
origin,
aspect: wgpu::TextureAspect::All,
},
data_bytes,
wgpu::ImageDataLayout {
wgpu::TexelCopyBufferLayout {
offset: 0,
bytes_per_row: Some(4 * width),
rows_per_image: Some(height),

View File

@@ -68,16 +68,8 @@ impl WgpuSetup {
#[allow(clippy::arc_with_non_send_sync)]
Arc::new(
wgpu::util::new_instance_with_webgpu_detection(wgpu::InstanceDescriptor {
backends: create_new.instance_descriptor.backends,
flags: create_new.instance_descriptor.flags,
dx12_shader_compiler: create_new
.instance_descriptor
.dx12_shader_compiler
.clone(),
gles_minor_version: create_new.instance_descriptor.gles_minor_version,
})
.await,
wgpu::util::new_instance_with_webgpu_detection(&create_new.instance_descriptor)
.await,
)
}
Self::Existing(existing) => existing.instance.clone(),
@@ -151,13 +143,7 @@ pub struct WgpuSetupCreateNew {
impl Clone for WgpuSetupCreateNew {
fn clone(&self) -> Self {
Self {
// TODO(gfx-rs/wgpu/#6849): use .clone()
instance_descriptor: wgpu::InstanceDescriptor {
backends: self.instance_descriptor.backends,
flags: self.instance_descriptor.flags,
dx12_shader_compiler: self.instance_descriptor.dx12_shader_compiler.clone(),
gles_minor_version: self.instance_descriptor.gles_minor_version,
},
instance_descriptor: self.instance_descriptor.clone(),
power_preference: self.power_preference,
native_adapter_selector: self.native_adapter_selector.clone(),
device_descriptor: self.device_descriptor.clone(),
@@ -186,14 +172,13 @@ impl Default for WgpuSetupCreateNew {
instance_descriptor: wgpu::InstanceDescriptor {
// Add GL backend, primarily because WebGPU is not stable enough yet.
// (note however, that the GL backend needs to be opted-in via the wgpu feature flag "webgl")
backends: wgpu::util::backend_bits_from_env()
backends: wgpu::Backends::from_env()
.unwrap_or(wgpu::Backends::PRIMARY | wgpu::Backends::GL),
flags: wgpu::InstanceFlags::from_build_config().with_env(),
dx12_shader_compiler: wgpu::Dx12Compiler::default(),
gles_minor_version: wgpu::Gles3MinorVersion::Automatic,
backend_options: wgpu::BackendOptions::from_env_or_default(),
},
power_preference: wgpu::util::power_preference_from_env()
power_preference: wgpu::PowerPreference::from_env()
.unwrap_or(wgpu::PowerPreference::HighPerformance),
native_adapter_selector: None,

View File

@@ -3,7 +3,7 @@
//! Try the live web demo: <https://www.egui.rs/#demo>. Read more about egui at <https://github.com/emilk/egui>.
//!
//! `egui` is in heavy development, with each new version having breaking changes.
//! You need to have rust 1.80.0 or later to use `egui`.
//! You need to have rust 1.81.0 or later to use `egui`.
//!
//! To quickly get started with egui, you can take a look at [`eframe_template`](https://github.com/emilk/eframe_template)
//! which uses [`eframe`](https://docs.rs/eframe).

View File

@@ -90,7 +90,7 @@ rfd = { version = "0.15", optional = true }
# web:
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = "=0.2.95"
wasm-bindgen = "=0.2.97"
wasm-bindgen-futures.workspace = true
web-sys.workspace = true

View File

@@ -23,9 +23,9 @@ pub(crate) fn texture_to_image(device: &Device, queue: &Queue, texture: &Texture
// Copy the data from the texture to the buffer
encoder.copy_texture_to_buffer(
texture.as_image_copy(),
wgpu::ImageCopyBuffer {
wgpu::TexelCopyBufferInfo {
buffer: &output_buffer,
layout: wgpu::ImageDataLayout {
layout: wgpu::TexelCopyBufferLayout {
offset: 0,
bytes_per_row: Some(buffer_dimensions.padded_bytes_per_row as u32),
rows_per_image: None,