[][src]Struct rendy_resource::Buffer

pub struct Buffer<B: Backend> { /* fields omitted */ }

Generic buffer resource wrapper.

Parameters

B - raw image type.

Methods

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

pub fn device_id(&self) -> DeviceId

Get owned id.

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

Assert specified device is owner.

pub fn instance_id(&self) -> InstanceId

Get owned id.

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

Assert specified instance is owner.

impl<B> Buffer<B> where
    B: Backend, 
[src]

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

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.

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

Dispose of buffer resource. Deallocate memory block.

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

Get reference to raw buffer resource

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

Get mutable reference to raw buffer resource

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

Get reference to memory block occupied by buffer.

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

Get mutable reference to memory block occupied by buffer.

pub fn info(&self) -> &BufferInfo[src]

Get buffer info.

pub fn visible(&self) -> bool[src]

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

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

Map range of the buffer to the CPU accessible memory.

pub fn size(&self) -> u64[src]

Get buffer info.

Trait Implementations

impl<B: Debug + Backend> Debug for Buffer<B> where
    B::Buffer: Debug
[src]

Auto Trait Implementations

impl<B> Send for Buffer<B> where
    <B as Backend>::Buffer: Send

impl<B> Sync for Buffer<B> where
    <B as Backend>::Buffer: Sync

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

impl<B> UnwindSafe for Buffer<B> where
    <B as Backend>::Buffer: UnwindSafe,
    <B as Backend>::Memory: RefUnwindSafe + UnwindSafe

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

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]