diff --git a/src/backend/render/mod.rs b/src/backend/render/mod.rs index cb8453f4..b1215fd6 100644 --- a/src/backend/render/mod.rs +++ b/src/backend/render/mod.rs @@ -1365,7 +1365,7 @@ where match result { Ok((res, mut elements)) => { for (session, frame) in output.take_pending_frames() { - if let Some(pending_image_copy_data) = render_session( + if let Some(pending_image_copy_data) = render_session::<_, _, GlesTexture>( renderer, session.user_data().get::().unwrap(), frame, diff --git a/src/wayland/handlers/image_copy_capture/render.rs b/src/wayland/handlers/image_copy_capture/render.rs index 49e89593..10f2d117 100644 --- a/src/wayland/handlers/image_copy_capture/render.rs +++ b/src/wayland/handlers/image_copy_capture/render.rs @@ -185,7 +185,7 @@ where })) } -pub fn render_session( +pub fn render_session( renderer: &mut R, session: &SessionData, frame: Frame, @@ -193,7 +193,7 @@ pub fn render_session( render_fn: F, ) -> Result, DTError> where - R: AsGlowRenderer, + R: Offscreen + AsGlowRenderer, R::Error: FromGlesError, F: for<'d> FnOnce( &WlBuffer, @@ -215,8 +215,7 @@ where .expect("We should be able to convert all hardcoded shm screencopy formats") }) .map_err(|_| DTError::OutputNoMode(OutputNoMode))?; - Offscreen::::create_buffer(renderer, format, size) - .map_err(DTError::Rendering) + Offscreen::::create_buffer(renderer, format, size).map_err(DTError::Rendering) }) .transpose()?; @@ -421,7 +420,7 @@ pub fn render_workspace_to_buffer( }; let result = match renderer { RendererRef::Glow(renderer) => { - match render_session( + match render_session::<_, _, GlesRenderbuffer>( renderer, session.user_data().get::().unwrap(), frame, @@ -449,7 +448,7 @@ pub fn render_workspace_to_buffer( } } RendererRef::GlMulti(mut renderer) => { - match render_session( + match render_session::<_, _, GlesRenderbuffer>( &mut renderer, session.user_data().get::().unwrap(), frame, @@ -671,7 +670,7 @@ pub fn render_window_to_buffer( } }; let result = match renderer { - RendererRef::Glow(renderer) => match render_session( + RendererRef::Glow(renderer) => match render_session::<_, _, GlesRenderbuffer>( renderer, session.user_data().get::().unwrap(), frame, @@ -697,7 +696,7 @@ pub fn render_window_to_buffer( None } }, - RendererRef::GlMulti(mut renderer) => match render_session( + RendererRef::GlMulti(mut renderer) => match render_session::<_, _, GlesRenderbuffer>( &mut renderer, session.user_data().get::().unwrap(), frame, @@ -831,7 +830,7 @@ pub fn render_cursor_to_buffer( }; let result = match renderer { RendererRef::Glow(renderer) => { - match render_session( + match render_session::<_, _, GlesRenderbuffer>( renderer, session.user_data().get::().unwrap(), frame, @@ -857,7 +856,7 @@ pub fn render_cursor_to_buffer( } } RendererRef::GlMulti(mut renderer) => { - match render_session( + match render_session::<_, _, GlesRenderbuffer>( &mut renderer, session.user_data().get::().unwrap(), frame,