mirror of
https://github.com/emilk/egui.git
synced 2026-08-30 13:20:05 -04:00
Update wgpu to 0.19 (#3824)
* Closes https://github.com/emilk/egui/issues/3675 --------- Co-authored-by: Andreas Reich <r_andreas2@web.de> Co-authored-by: Mingun <Alexander_Sergey@mail.ru>
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
use std::{cell::RefCell, rc::Rc, sync::Arc, time::Instant};
|
||||
|
||||
use parking_lot::Mutex;
|
||||
use raw_window_handle::{HasRawDisplayHandle as _, HasRawWindowHandle as _};
|
||||
use raw_window_handle::{HasDisplayHandle as _, HasWindowHandle as _};
|
||||
use winit::{
|
||||
event_loop::{EventLoop, EventLoopProxy, EventLoopWindowTarget},
|
||||
window::{Window, WindowId},
|
||||
@@ -84,7 +84,7 @@ pub struct Viewport {
|
||||
|
||||
/// Window surface state that's initialized when the app starts running via a Resumed event
|
||||
/// and on Android will also be destroyed if the application is paused.
|
||||
window: Option<Rc<Window>>,
|
||||
window: Option<Arc<Window>>,
|
||||
|
||||
/// `window` and `egui_winit` are initialized together.
|
||||
egui_winit: Option<egui_winit::State>,
|
||||
@@ -170,9 +170,11 @@ impl WgpuWinitApp {
|
||||
self.native_options.viewport.transparent.unwrap_or(false),
|
||||
);
|
||||
|
||||
let window = Arc::new(window);
|
||||
|
||||
{
|
||||
crate::profile_scope!("set_window");
|
||||
pollster::block_on(painter.set_window(ViewportId::ROOT, Some(&window)))?;
|
||||
pollster::block_on(painter.set_window(ViewportId::ROOT, Some(window.clone())))?;
|
||||
}
|
||||
|
||||
let wgpu_render_state = painter.render_state();
|
||||
@@ -235,8 +237,8 @@ impl WgpuWinitApp {
|
||||
#[cfg(feature = "glow")]
|
||||
gl: None,
|
||||
wgpu_render_state,
|
||||
raw_display_handle: window.raw_display_handle(),
|
||||
raw_window_handle: window.raw_window_handle(),
|
||||
raw_display_handle: window.display_handle().map(|h| h.as_raw()),
|
||||
raw_window_handle: window.window_handle().map(|h| h.as_raw()),
|
||||
};
|
||||
let app = {
|
||||
crate::profile_scope!("user_app_creator");
|
||||
@@ -260,7 +262,7 @@ impl WgpuWinitApp {
|
||||
},
|
||||
screenshot_requested: false,
|
||||
viewport_ui_cb: None,
|
||||
window: Some(Rc::new(window)),
|
||||
window: Some(window),
|
||||
egui_winit: Some(egui_winit),
|
||||
},
|
||||
);
|
||||
@@ -323,7 +325,7 @@ impl WinitApp for WgpuWinitApp {
|
||||
self.running.as_ref().map(|r| &r.integration)
|
||||
}
|
||||
|
||||
fn window(&self, window_id: WindowId) -> Option<Rc<Window>> {
|
||||
fn window(&self, window_id: WindowId) -> Option<Arc<Window>> {
|
||||
self.running
|
||||
.as_ref()
|
||||
.and_then(|r| {
|
||||
@@ -544,7 +546,8 @@ impl WgpuWinitRunning {
|
||||
|
||||
{
|
||||
crate::profile_scope!("set_window");
|
||||
if let Err(err) = pollster::block_on(painter.set_window(viewport_id, Some(window)))
|
||||
if let Err(err) =
|
||||
pollster::block_on(painter.set_window(viewport_id, Some(window.clone())))
|
||||
{
|
||||
log::warn!("Failed to set window: {err}");
|
||||
}
|
||||
@@ -797,7 +800,10 @@ impl Viewport {
|
||||
Ok(window) => {
|
||||
windows_id.insert(window.id(), viewport_id);
|
||||
|
||||
if let Err(err) = pollster::block_on(painter.set_window(viewport_id, Some(&window)))
|
||||
let window = Arc::new(window);
|
||||
|
||||
if let Err(err) =
|
||||
pollster::block_on(painter.set_window(viewport_id, Some(window.clone())))
|
||||
{
|
||||
log::error!("on set_window: viewport_id {viewport_id:?} {err}");
|
||||
}
|
||||
@@ -813,7 +819,7 @@ impl Viewport {
|
||||
self.info.minimized = window.is_minimized();
|
||||
self.info.maximized = Some(window.is_maximized());
|
||||
|
||||
self.window = Some(Rc::new(window));
|
||||
self.window = Some(window);
|
||||
}
|
||||
Err(err) => {
|
||||
log::error!("Failed to create window: {err}");
|
||||
@@ -930,7 +936,7 @@ fn render_immediate_viewport(
|
||||
|
||||
{
|
||||
crate::profile_scope!("set_window");
|
||||
if let Err(err) = pollster::block_on(painter.set_window(ids.this, Some(window))) {
|
||||
if let Err(err) = pollster::block_on(painter.set_window(ids.this, Some(window.clone()))) {
|
||||
log::error!(
|
||||
"when rendering viewport_id={:?}, set_window Error {err}",
|
||||
ids.this
|
||||
|
||||
Reference in New Issue
Block a user