rendy_resource

Struct Buffer

Source
pub struct Buffer<B: Backend> { /* private fields */ }
Expand description

Generic buffer resource wrapper.

§Parameters

B - raw image type.

Implementations§

Source§

impl<B> Buffer<B>
where B: Backend,

Source

pub fn device_id(&self) -> DeviceId

Get owned id.

Source

pub fn assert_device_owner(&self, device: &Device<B>)

Assert specified device is owner.

Source

pub fn instance_id(&self) -> InstanceId

Get owned id.

Source

pub fn assert_instance_owner(&self, instance: &Instance<B>)

Assert specified instance is owner.

Source§

impl<B> Buffer<B>
where B: Backend,

Source

pub unsafe fn create( device: &Device<B>, heaps: &mut Heaps<B>, info: BufferInfo, memory_usage: impl MemoryUsage, ) -> Result<Self, BufferCreationError>

Create buffer, allocate memory block for it and bind.

§Safety

In order to guarantee that Heap::allocate will return memory range owned by this Device, this Heaps instance must always be used with this Device instance.

Otherwise usage of hal methods must be always valid.

Source

pub unsafe fn dispose(self, device: &Device<B>, heaps: &mut Heaps<B>)

Dispose of buffer resource. Deallocate memory block.

Source

pub fn raw(&self) -> &B::Buffer

Get reference to raw buffer resource

Source

pub unsafe fn raw_mut(&mut self) -> &mut B::Buffer

Get mutable reference to raw buffer resource

Source

pub fn block(&self) -> &MemoryBlock<B>

Get reference to memory block occupied by buffer.

Source

pub unsafe fn block_mut(&mut self) -> &mut MemoryBlock<B>

Get mutable reference to memory block occupied by buffer.

Source

pub fn info(&self) -> &BufferInfo

Get buffer info.

Source

pub fn visible(&self) -> bool

Check if this buffer could is bound to CPU visible memory and therefore mappable. If this function returns false map will always return InvalidAccess.

Source

pub fn map<'a>( &'a mut self, device: &Device<B>, range: Range<u64>, ) -> Result<MappedRange<'a, B>, MapError>

Map range of the buffer to the CPU accessible memory.

Source

pub fn size(&self) -> u64

Get buffer info.

Trait Implementations§

Source§

impl<B: Debug + Backend> Debug for Buffer<B>
where B::Buffer: Debug,

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<B> Freeze for Buffer<B>
where <B as Backend>::Buffer: Freeze, <B as Backend>::Memory: Freeze,

§

impl<B> RefUnwindSafe for Buffer<B>

§

impl<B> Send for Buffer<B>

§

impl<B> Sync for Buffer<B>

§

impl<B> Unpin for Buffer<B>
where <B as Backend>::Buffer: Unpin, <B as Backend>::Memory: Unpin,

§

impl<B> UnwindSafe for Buffer<B>

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> 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>,

Source§

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>,

Source§

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.