diff --git a/api/src/info.rs b/api/src/info.rs index 248362ab..38a58fff 100644 --- a/api/src/info.rs +++ b/api/src/info.rs @@ -186,6 +186,14 @@ impl FrameBuffer { unsafe { self.create_buffer_mut() } } + /// Converts the frame buffer to a raw byte slice. + /// + /// The same as `buffer_mut()` but takes the ownership and returns the + /// mutable buffer with a `'static` lifetime. + pub fn into_buffer(self) -> &'static mut [u8] { + unsafe { self.create_buffer_mut() } + } + unsafe fn create_buffer<'a>(&self) -> &'a [u8] { unsafe { slice::from_raw_parts(self.buffer_start as *const u8, self.info.byte_len) } }