diff --git a/src/backend/egl/display.rs b/src/backend/egl/display.rs index 79233d8..d5c733a 100644 --- a/src/backend/egl/display.rs +++ b/src/backend/egl/display.rs @@ -475,7 +475,7 @@ impl EGLBufferReader { /// to render it another way. pub fn egl_buffer_contents( &self, - buffer: WlBuffer, + buffer: &WlBuffer, ) -> ::std::result::Result { let mut format: i32 = 0; let query = wrap_egl_call(|| unsafe { @@ -486,9 +486,9 @@ impl EGLBufferReader { &mut format, ) }) - .map_err(|source| BufferAccessError::NotManaged(buffer.clone(), source))?; + .map_err(BufferAccessError::NotManaged)?; if query == ffi::egl::FALSE { - return Err(BufferAccessError::NotManaged(buffer, EGLError::BadParameter)); + return Err(BufferAccessError::NotManaged(EGLError::BadParameter)); } let format = match format { @@ -510,7 +510,7 @@ impl EGLBufferReader { &mut width, ) }) - .map_err(|source| BufferAccessError::NotManaged(buffer.clone(), source))?; + .map_err(BufferAccessError::NotManaged)?; let mut height: i32 = 0; wrap_egl_call(|| unsafe { @@ -521,7 +521,7 @@ impl EGLBufferReader { &mut height, ) }) - .map_err(|source| BufferAccessError::NotManaged(buffer.clone(), source))?; + .map_err(BufferAccessError::NotManaged)?; let mut inverted: i32 = 0; wrap_egl_call(|| unsafe { @@ -532,7 +532,7 @@ impl EGLBufferReader { &mut inverted, ) }) - .map_err(|source| BufferAccessError::NotManaged(buffer.clone(), source))?; + .map_err(BufferAccessError::NotManaged)?; let mut images = Vec::with_capacity(format.num_planes()); for i in 0..format.num_planes() { @@ -562,7 +562,6 @@ impl EGLBufferReader { y_inverted: inverted != 0, format, images, - buffer, #[cfg(feature = "renderer_gl")] gl: self.gl.clone(), }) diff --git a/src/backend/egl/mod.rs b/src/backend/egl/mod.rs index 7942e98..047bd64 100644 --- a/src/backend/egl/mod.rs +++ b/src/backend/egl/mod.rs @@ -26,7 +26,7 @@ use crate::backend::graphics::{ use nix::libc::c_uint; use std::fmt; #[cfg(feature = "wayland_frontend")] -use wayland_server::{protocol::wl_buffer::WlBuffer, Display}; +use wayland_server::Display; pub mod context; pub use self::context::EGLContext; @@ -87,8 +87,8 @@ pub enum BufferAccessError { #[error("The corresponding context was lost")] ContextLost, /// This buffer is not managed by the EGL buffer - #[error("This buffer is not managed by EGL. Err: {1:}")] - NotManaged(WlBuffer, #[source] EGLError), + #[error("This buffer is not managed by EGL. Err: {0:}")] + NotManaged(#[source] EGLError), /// Failed to create `EGLImages` from the buffer #[error("Failed to create EGLImages from the buffer. Err: {0:}")] EGLImageCreationFailed(#[source] EGLError), @@ -102,7 +102,7 @@ impl fmt::Debug for BufferAccessError { fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> ::std::result::Result<(), fmt::Error> { match *self { BufferAccessError::ContextLost => write!(formatter, "BufferAccessError::ContextLost"), - BufferAccessError::NotManaged(_, _) => write!(formatter, "BufferAccessError::NotManaged"), + BufferAccessError::NotManaged(_) => write!(formatter, "BufferAccessError::NotManaged"), BufferAccessError::EGLImageCreationFailed(_) => { write!(formatter, "BufferAccessError::EGLImageCreationFailed") } @@ -265,7 +265,6 @@ pub struct EGLImages { /// Format of these images pub format: Format, images: Vec, - buffer: WlBuffer, #[cfg(feature = "renderer_gl")] gl: gl_ffi::Gles2, } @@ -339,7 +338,6 @@ impl Drop for EGLImages { ffi::egl::DestroyImageKHR(**self.display, image); } } - self.buffer.release(); } }