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 window_weak = Rc::downgrade(&renderer.window);
|
||||
let cached_image_weak = Rc::downgrade(&cached_image);
|
||||
let event_loop_proxy_weak = Rc::downgrade(&renderer.event_loop_proxy);
|
||||
move || {
|
||||
let (canvas, window, event_loop_proxy, cached_image) = match (
|
||||
let (canvas, window, cached_image) = match (
|
||||
canvas_weak.upgrade(),
|
||||
window_weak.upgrade(),
|
||||
event_loop_proxy_weak.upgrade(),
|
||||
cached_image_weak.upgrade(),
|
||||
) {
|
||||
(
|
||||
Some(canvas),
|
||||
Some(window),
|
||||
Some(event_loop_proxy),
|
||||
Some(cached_image),
|
||||
) => (canvas, window, event_loop_proxy, cached_image),
|
||||
(Some(canvas), Some(window), Some(cached_image)) => {
|
||||
(canvas, window, cached_image)
|
||||
}
|
||||
_ => return,
|
||||
};
|
||||
canvas
|
||||
|
@ -236,7 +231,12 @@ impl CachedImage {
|
|||
// 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.
|
||||
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(),
|
||||
|
|
|
@ -215,8 +215,7 @@ struct GLRendererData {
|
|||
window: Rc<winit::window::Window>,
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
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>>>,
|
||||
|
||||
// Cache used to avoid repeatedly decoding images from disk. Entries with a count
|
||||
|
@ -309,9 +308,6 @@ impl GLRenderer {
|
|||
(windowed_context, renderer)
|
||||
};
|
||||
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
let event_loop_proxy = Rc::new(event_loop.event_loop_proxy().clone());
|
||||
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
let (window, renderer) = {
|
||||
use wasm_bindgen::JsCast;
|
||||
|
@ -344,7 +340,6 @@ impl GLRenderer {
|
|||
// on the web will always have 1024x768 as size otherwise.
|
||||
|
||||
let resize_canvas = {
|
||||
let event_loop_proxy = event_loop_proxy.clone();
|
||||
let window = window.clone();
|
||||
let canvas = canvas.clone();
|
||||
move |_: web_sys::Event| {
|
||||
|
@ -355,7 +350,12 @@ impl GLRenderer {
|
|||
|
||||
window.set_inner_size(existing_canvas_size);
|
||||
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")]
|
||||
window,
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
event_loop_proxy,
|
||||
|
||||
item_graphics_cache: Default::default(),
|
||||
image_cache: Default::default(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue