mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-02 22:54:36 +00:00
Remove internal event loop proxy clone in the GL renderer
We don't need it since we can send events through the TLS
This commit is contained in:
parent
e4b679227f
commit
8d2554ff3b
2 changed files with 17 additions and 19 deletions
|
@ -201,20 +201,15 @@ impl CachedImage {
|
||||||
let image_id = image_id.clone();
|
let image_id = image_id.clone();
|
||||||
let window_weak = Rc::downgrade(&renderer.window);
|
let window_weak = Rc::downgrade(&renderer.window);
|
||||||
let cached_image_weak = Rc::downgrade(&cached_image);
|
let cached_image_weak = Rc::downgrade(&cached_image);
|
||||||
let event_loop_proxy_weak = Rc::downgrade(&renderer.event_loop_proxy);
|
|
||||||
move || {
|
move || {
|
||||||
let (canvas, window, event_loop_proxy, cached_image) = match (
|
let (canvas, window, cached_image) = match (
|
||||||
canvas_weak.upgrade(),
|
canvas_weak.upgrade(),
|
||||||
window_weak.upgrade(),
|
window_weak.upgrade(),
|
||||||
event_loop_proxy_weak.upgrade(),
|
|
||||||
cached_image_weak.upgrade(),
|
cached_image_weak.upgrade(),
|
||||||
) {
|
) {
|
||||||
(
|
(Some(canvas), Some(window), Some(cached_image)) => {
|
||||||
Some(canvas),
|
(canvas, window, cached_image)
|
||||||
Some(window),
|
}
|
||||||
Some(event_loop_proxy),
|
|
||||||
Some(cached_image),
|
|
||||||
) => (canvas, window, event_loop_proxy, cached_image),
|
|
||||||
_ => return,
|
_ => return,
|
||||||
};
|
};
|
||||||
canvas
|
canvas
|
||||||
|
@ -236,7 +231,12 @@ impl CachedImage {
|
||||||
// be dispatched as the next event. We are however not in an event loop
|
// be dispatched as the next event. We are however not in an event loop
|
||||||
// call, so we also need to wake up the event loop.
|
// call, so we also need to wake up the event loop.
|
||||||
window.request_redraw();
|
window.request_redraw();
|
||||||
event_loop_proxy.send_event(crate::eventloop::CustomEvent::WakeUpAndPoll).ok();
|
crate::eventloop::with_window_target(|event_loop| {
|
||||||
|
event_loop
|
||||||
|
.event_loop_proxy()
|
||||||
|
.send_event(crate::eventloop::CustomEvent::WakeUpAndPoll)
|
||||||
|
.ok();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.into(),
|
.into(),
|
||||||
|
|
|
@ -215,8 +215,7 @@ struct GLRendererData {
|
||||||
window: Rc<winit::window::Window>,
|
window: Rc<winit::window::Window>,
|
||||||
#[cfg(not(target_arch = "wasm32"))]
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
windowed_context: RefCell<Option<WindowedContextWrapper>>,
|
windowed_context: RefCell<Option<WindowedContextWrapper>>,
|
||||||
#[cfg(target_arch = "wasm32")]
|
|
||||||
event_loop_proxy: Rc<winit::event_loop::EventLoopProxy<eventloop::CustomEvent>>,
|
|
||||||
item_graphics_cache: RefCell<RenderingCache<Option<ItemGraphicsCacheEntry>>>,
|
item_graphics_cache: RefCell<RenderingCache<Option<ItemGraphicsCacheEntry>>>,
|
||||||
|
|
||||||
// Cache used to avoid repeatedly decoding images from disk. Entries with a count
|
// Cache used to avoid repeatedly decoding images from disk. Entries with a count
|
||||||
|
@ -309,9 +308,6 @@ impl GLRenderer {
|
||||||
(windowed_context, renderer)
|
(windowed_context, renderer)
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(target_arch = "wasm32")]
|
|
||||||
let event_loop_proxy = Rc::new(event_loop.event_loop_proxy().clone());
|
|
||||||
|
|
||||||
#[cfg(target_arch = "wasm32")]
|
#[cfg(target_arch = "wasm32")]
|
||||||
let (window, renderer) = {
|
let (window, renderer) = {
|
||||||
use wasm_bindgen::JsCast;
|
use wasm_bindgen::JsCast;
|
||||||
|
@ -344,7 +340,6 @@ impl GLRenderer {
|
||||||
// on the web will always have 1024x768 as size otherwise.
|
// on the web will always have 1024x768 as size otherwise.
|
||||||
|
|
||||||
let resize_canvas = {
|
let resize_canvas = {
|
||||||
let event_loop_proxy = event_loop_proxy.clone();
|
|
||||||
let window = window.clone();
|
let window = window.clone();
|
||||||
let canvas = canvas.clone();
|
let canvas = canvas.clone();
|
||||||
move |_: web_sys::Event| {
|
move |_: web_sys::Event| {
|
||||||
|
@ -355,7 +350,12 @@ impl GLRenderer {
|
||||||
|
|
||||||
window.set_inner_size(existing_canvas_size);
|
window.set_inner_size(existing_canvas_size);
|
||||||
window.request_redraw();
|
window.request_redraw();
|
||||||
event_loop_proxy.send_event(eventloop::CustomEvent::WakeUpAndPoll).ok();
|
crate::eventloop::with_window_target(|event_loop| {
|
||||||
|
event_loop
|
||||||
|
.event_loop_proxy()
|
||||||
|
.send_event(crate::eventloop::CustomEvent::WakeUpAndPoll)
|
||||||
|
.ok();
|
||||||
|
})
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -402,8 +402,6 @@ impl GLRenderer {
|
||||||
}))),
|
}))),
|
||||||
#[cfg(target_arch = "wasm32")]
|
#[cfg(target_arch = "wasm32")]
|
||||||
window,
|
window,
|
||||||
#[cfg(target_arch = "wasm32")]
|
|
||||||
event_loop_proxy,
|
|
||||||
|
|
||||||
item_graphics_cache: Default::default(),
|
item_graphics_cache: Default::default(),
|
||||||
image_cache: Default::default(),
|
image_cache: Default::default(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue