Struct smithay_client_toolkit::utils::MemPool [−][src]
pub struct MemPool { /* fields omitted */ }
A wrapper handling an SHM memory pool backed by a temporary file
On Linux, temporary files like this are never mapped on the disk, and as such stay in RAM, allowing for an efficient memory sharing.
This wrapper handles for you the creation of the tempfile and its synchronisation with the protocol.
Methods
impl MemPool
[src]
impl MemPool
pub fn new(shm: &Proxy<WlShm>) -> Result<MemPool>
[src]
pub fn new(shm: &Proxy<WlShm>) -> Result<MemPool>
Create a new memory pool associated with given shm
pub fn resize(&mut self, newsize: usize) -> Result<()>
[src]
pub fn resize(&mut self, newsize: usize) -> Result<()>
Resize the memory pool
This affect the size as it is seen by the wayland server. Even if you extend the temporary file size by writing to it, you need to call this method otherwise the server won't see the new size.
Memory pools can only be extented, as such this method wll do nothing if the requested new size is smaller than the current size.
This method allows you to ensure the underlying pool is large enough to hold what you want to write to it.
pub fn buffer(
&self,
offset: i32,
width: i32,
height: i32,
stride: i32,
format: Format
) -> NewProxy<WlBuffer>
[src]
pub fn buffer(
&self,
offset: i32,
width: i32,
height: i32,
stride: i32,
format: Format
) -> NewProxy<WlBuffer>
Create a new buffer to this pool
The parameters are:
offset
: the offset (in bytes) from the beggining of the pool at which this buffer startswidth
: the width of this buffer (in pixels)height
: the height of this buffer (in pixels)stride
: distance (in bytes) between the beggining of a row and the next oneformat
: the encoding format of the pixels. Using a format that was not advertized to thewl_shm
global by the server is a protocol error and will terminate your connexion
Trait Implementations
impl Drop for MemPool
[src]
impl Drop for MemPool
impl Write for MemPool
[src]
impl Write for MemPool
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this object, returning how many bytes were written. Read more
fn flush(&mut self) -> Result<()>
[src]
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this write. Read more
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
1.0.0[src]
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
Writes a formatted string into this writer, returning any error encountered. Read more
ⓘImportant traits for &'a mut Rfn by_ref(&mut self) -> &mut Self
1.0.0[src]
fn by_ref(&mut self) -> &mut Self
Creates a "by reference" adaptor for this instance of Write
. Read more
impl Seek for MemPool
[src]
impl Seek for MemPool