aboutsummaryrefslogtreecommitdiff
path: root/src/render_helpers
diff options
context:
space:
mode:
Diffstat (limited to 'src/render_helpers')
-rw-r--r--src/render_helpers/renderer.rs4
-rw-r--r--src/render_helpers/surface.rs12
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;
};