Struct smithay_client_toolkit::utils::MemPool[][src]

pub struct MemPool { /* fields omitted */ }

A wrapper handling an SHM memory pool backed by a shared memory file

This wrapper handles for you the creation of the shared memory file and its synchronisation with the protocol.

Mempool internally tracks the lifetime of all buffers created from it and to ensure that this buffer count is correct all buffers must be attached to a surface. Once a buffer is attached to a surface it must be immediately commited to that surface before another buffer is attached.

Mempool will also handle the destruction of buffers and as such the destroy() method should not be used on buffers created from Mempool.

Overwriting the contents of the memory pool before it is completely freed may cause graphical glitches due to the possible corruption of data while the compositor is reading it.

Mempool requires an implementation that will be called when the pool becomes free, this happens when all the pools buffers are released by the server.

Methods

impl MemPool
[src]

Create a new memory pool associated with given shm

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.

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 starts
  • width: 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 one
  • format: the encoding format of the pixels. Using a format that was not advertized to the wl_shm global by the server is a protocol error and will terminate your connexion

Retuns true if the pool contains buffers that are currently in use by the server otherwise it returns false

Trait Implementations

impl Drop for MemPool
[src]

Executes the destructor for this type. Read more

impl Write for MemPool
[src]

Write a buffer into this object, returning how many bytes were written. Read more

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

Attempts to write an entire buffer into this write. Read more

Writes a formatted string into this writer, returning any error encountered. Read more

Important traits for &'a mut W

Creates a "by reference" adaptor for this instance of Write. Read more

impl Seek for MemPool
[src]

Seek to an offset, in bytes, in a stream. Read more

Auto Trait Implementations

impl Send for MemPool

impl Sync for MemPool