Struct gbm::MappedBufferObject

source ·
pub struct MappedBufferObject<'a, T: 'static> { /* private fields */ }
Expand description

A mapped buffer object

Implementations§

source§

impl<'a, T: 'static> MappedBufferObject<'a, T>

source

pub fn stride(&self) -> u32

Get the stride of the buffer object

This is calculated by the backend when it does the allocation of the buffer.

source

pub fn height(&self) -> u32

The height of the mapped region for the buffer

source

pub fn width(&self) -> u32

The width of the mapped region for the buffer

source

pub fn x(&self) -> u32

The X (top left origin) starting position of the mapped region for the buffer

source

pub fn y(&self) -> u32

The Y (top left origin) starting position of the mapped region for the buffer

source

pub fn buffer(&self) -> &[u8]

Access to the underlying image buffer

source

pub fn buffer_mut(&mut self) -> &mut [u8]

Mutable access to the underlying image buffer

Methods from Deref<Target = BufferObject<T>>§

source

pub fn width(&self) -> Result<u32, DeviceDestroyedError>

Get the width of the buffer object

source

pub fn height(&self) -> Result<u32, DeviceDestroyedError>

Get the height of the buffer object

source

pub fn stride(&self) -> Result<u32, DeviceDestroyedError>

Get the stride of the buffer object

source

pub fn stride_for_plane(&self, plane: i32) -> Result<u32, DeviceDestroyedError>

Get the stride of the buffer object

source

pub fn format(&self) -> Result<Format, DeviceDestroyedError>

Get the format of the buffer object

source

pub fn bpp(&self) -> Result<u32, DeviceDestroyedError>

Get the bits per pixel of the buffer object

source

pub fn offset(&self, plane: i32) -> Result<u32, DeviceDestroyedError>

Get the offset for a plane of the buffer object

source

pub fn plane_count(&self) -> Result<u32, DeviceDestroyedError>

Get the plane count of the buffer object

source

pub fn modifier(&self) -> Result<Modifier, DeviceDestroyedError>

Get the modifier of the buffer object

source

pub fn fd(&self) -> Result<OwnedFd, FdError>

Get a DMA-BUF file descriptor for the buffer object

This function creates a DMA-BUF (also known as PRIME) file descriptor handle for the buffer object. Each call to Self::fd() returns a new file descriptor and the caller is responsible for closing the file descriptor.

source

pub fn device_fd(&self) -> Result<BorrowedFd<'_>, DeviceDestroyedError>

Get the file descriptor of the gbm device of this buffer object

source

pub fn handle(&self) -> Result<BufferObjectHandle, DeviceDestroyedError>

Get the handle of the buffer object

This is stored in the platform generic union BufferObjectHandle type. However the format of this handle is platform specific.

source

pub fn fd_for_plane(&self, plane: i32) -> Result<OwnedFd, FdError>

Get a DMA-BUF file descriptor for a plane of the buffer object

This function creates a DMA-BUF (also known as PRIME) file descriptor handle for a plane of the buffer object. Each call to Self::fd_for_plane() returns a new file descriptor and the caller is responsible for closing the file descriptor.

source

pub fn handle_for_plane( &self, plane: i32 ) -> Result<BufferObjectHandle, DeviceDestroyedError>

Get the handle of a plane of the buffer object

This is stored in the platform generic union BufferObjectHandle type. However the format of this handle is platform specific.

source

pub fn map<'a, D, F, S>( &'a self, device: &Device<D>, x: u32, y: u32, width: u32, height: u32, f: F ) -> Result<IoResult<S>, WrongDeviceError>
where D: AsFd + 'static, F: FnOnce(&MappedBufferObject<'a, T>) -> S,

Map a region of a GBM buffer object for cpu access

This function maps a region of a GBM bo for cpu read access.

source

pub fn map_mut<'a, D, F, S>( &'a mut self, device: &Device<D>, x: u32, y: u32, width: u32, height: u32, f: F ) -> Result<IoResult<S>, WrongDeviceError>
where D: AsFd + 'static, F: FnOnce(&mut MappedBufferObject<'a, T>) -> S,

Map a region of a GBM buffer object for cpu access

This function maps a region of a GBM bo for cpu read/write access.

source

pub fn write( &mut self, buffer: &[u8] ) -> Result<IoResult<()>, DeviceDestroyedError>

Write data into the buffer object

If the buffer object was created with the BufferObjectFlags::WRITE flag, this function can be used to write data into the buffer object. The data is copied directly into the object and it’s the responsibility of the caller to make sure the data represents valid pixel data, according to the width, height, stride and format of the buffer object.

source

pub fn set_userdata( &mut self, userdata: T ) -> Result<Option<T>, DeviceDestroyedError>

Sets the userdata of the buffer object.

If previously userdata was set, it is returned.

source

pub fn clear_userdata(&mut self) -> Result<(), DeviceDestroyedError>

Clears the set userdata of the buffer object.

source

pub fn userdata(&self) -> Result<Option<&T>, DeviceDestroyedError>

Returns a reference to set userdata, if any.

source

pub fn userdata_mut(&mut self) -> Result<Option<&mut T>, DeviceDestroyedError>

Returns a mutable reference to set userdata, if any.

source

pub fn take_userdata(&mut self) -> Result<Option<T>, DeviceDestroyedError>

Takes ownership of previously set userdata, if any.

This removes the userdata from the buffer object.

Trait Implementations§

source§

impl<'a, T> Debug for MappedBufferObject<'a, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'a, T: 'static> Deref for MappedBufferObject<'a, T>

§

type Target = BufferObject<T>

The resulting type after dereferencing.
source§

fn deref(&self) -> &BufferObject<T>

Dereferences the value.
source§

impl<'a, T: 'static> DerefMut for MappedBufferObject<'a, T>

source§

fn deref_mut(&mut self) -> &mut BufferObject<T>

Mutably dereferences the value.
source§

impl<'a, T: 'static> Drop for MappedBufferObject<'a, T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a, T> Freeze for MappedBufferObject<'a, T>

§

impl<'a, T> !RefUnwindSafe for MappedBufferObject<'a, T>

§

impl<'a, T> !Send for MappedBufferObject<'a, T>

§

impl<'a, T> !Sync for MappedBufferObject<'a, T>

§

impl<'a, T> Unpin for MappedBufferObject<'a, T>

§

impl<'a, T> !UnwindSafe for MappedBufferObject<'a, T>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.