[][src]Trait rendy_memory::Block

pub trait Block<B: Backend> {
    fn properties(&self) -> Properties;
fn memory(&self) -> &B::Memory;
fn range(&self) -> Range<u64>;
fn map<'a>(
        &'a mut self,
        device: &B::Device,
        range: Range<u64>
    ) -> Result<MappedRange<'a, B>, MapError>;
fn unmap(&mut self, device: &B::Device); fn size(&self) -> u64 { ... } }
[]

Block that owns a Range of the Memory. Implementor must ensure that there can't be any other blocks with overlapping range (either through type system or safety notes for unsafe functions). Provides access to safe memory range mapping.

Required methods

fn properties(&self) -> Properties[]

Get memory properties of the block.

fn memory(&self) -> &B::Memory[]

Get raw memory object.

fn range(&self) -> Range<u64>[]

Get memory range owned by this block.

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

Get mapping for the buffer range. Memory writes to the region performed by device become available for the host.

fn unmap(&mut self, device: &B::Device)[]

Release memory mapping. Must be called after successful map call. No-op if block is not mapped.

Provided methods

fn size(&self) -> u64[]

Get size of the block.

Implementors

impl<B> Block<B> for DedicatedBlock<B> where
    B: Backend
[src][+]

impl<B> Block<B> for DynamicBlock<B> where
    B: Backend
[src][+]

impl<B> Block<B> for LinearBlock<B> where
    B: Backend
[src][+]

impl<B> Block<B> for MemoryBlock<B> where
    B: Backend
[src][+]