diff options
Diffstat (limited to 'src/render_helpers')
| -rw-r--r-- | src/render_helpers/renderer.rs | 4 | ||||
| -rw-r--r-- | src/render_helpers/surface.rs | 12 |
2 files changed, 7 insertions, 9 deletions
diff --git a/src/render_helpers/renderer.rs b/src/render_helpers/renderer.rs index 5c483182..f4872738 100644 --- a/src/render_helpers/renderer.rs +++ b/src/render_helpers/renderer.rs @@ -17,7 +17,7 @@ pub trait NiriRenderer: + AsGlesRenderer { // Associated types to work around the instability of associated type bounds. - type NiriTextureId: Texture + Clone + 'static; + type NiriTextureId: Texture + Clone + Send + 'static; type NiriError: std::error::Error + Send + Sync @@ -28,7 +28,7 @@ pub trait NiriRenderer: impl<R> NiriRenderer for R where R: ImportAll + ImportMem + ExportMem + Bind<Dmabuf> + Offscreen<GlesTexture> + AsGlesRenderer, - R::TextureId: Texture + Clone + 'static, + R::TextureId: Texture + Clone + Send + 'static, R::Error: std::error::Error + Send + Sync + From<<GlesRenderer as Renderer>::Error> + 'static, { type NiriTextureId = R::TextureId; diff --git a/src/render_helpers/surface.rs b/src/render_helpers/surface.rs index 93738673..96065923 100644 --- a/src/render_helpers/surface.rs +++ b/src/render_helpers/surface.rs @@ -25,7 +25,7 @@ pub fn render_snapshot_from_surface_tree( let data = states.data_map.get::<RendererSurfaceStateUserData>(); if let Some(data) = data { - let data = &*data.borrow(); + let data = &*data.lock().unwrap(); if let Some(view) = data.view() { location += view.offset.to_f64(); @@ -42,19 +42,17 @@ pub fn render_snapshot_from_surface_tree( let data = states.data_map.get::<RendererSurfaceStateUserData>(); if let Some(data) = data { - if let Some(view) = data.borrow().view() { - location += view.offset.to_f64(); - } else { + let Some(view) = data.lock().unwrap().view() else { return; - } + }; + location += view.offset.to_f64(); if let Err(err) = import_surface(renderer, states) { warn!("failed to import surface: {err:?}"); return; } - let data = data.borrow(); - let view = data.view().unwrap(); + let data = data.lock().unwrap(); let Some(texture) = data.texture::<GlesRenderer>(renderer.id()) else { return; }; |
