Struct demo_vk::graphics::vulkan::OwnedBlock

source ·
pub struct OwnedBlock { /* private fields */ }
Expand description

A block allocation that frees itself when dropped.

Implementations§

source§

impl OwnedBlock

source

pub fn allocate_image( allocator: Arc<Allocator>, image_create_info: &ImageCreateInfo<'_>, flags: MemoryPropertyFlags, ) -> Result<(Self, Image)>

Creates an image and allocates memory to back it.

The image is bound to the memory prior to return, so the caller can use it right away.

source

pub fn allocate_buffer( allocator: Arc<Allocator>, buffer_create_info: &BufferCreateInfo<'_>, flags: MemoryPropertyFlags, ) -> Result<(OwnedBlock, Buffer)>

Creates a buffer and allocates memory to back it.

The buffer is bound to the memory prior to return, so the caller can use it right away.

Methods from Deref<Target = Block>§

source

pub fn is_subregion_of(&self, other: &Block) -> bool

Returns true when self is entirely contained by other, false otherwise.

Note: partial overlaps are not considered ‘subregions’. A.is_subregion_of(B) will return true iff A is fully contained by B.

source

pub fn subregion(&self, offset: u64, size: u64) -> Result<Self>

Returns a subregion of the current Block.

Fails if the requested subregion is out of bounds or cannot fit within the current block.

§Params
  • offset: the offset in bytes from the beginning of the current block
  • size: the size of the subregion to return
source

pub fn offset(&self) -> u64

Returns the start of the block as a byte offset into device memory.

source

pub fn size(&self) -> u64

Returns the size of the block in bytes.

source

pub fn memory(&self) -> DeviceMemory

Gets a non-owning copy of the underlying DeviceMemory handle.

Multiple blocks can reference the underlying memory. Blocks returned by the allocator are guaranteed to not overlap.

source

pub fn mapped_ptr(&self) -> *mut c_void

Returns the memory-mapped pointer for the DeviceMemory.

The pointer is null() if the memory is not mapped.

The pointer always points to the start of the Block and does not need to be manually adjusted to account for the offset.

source

pub fn memory_type_index(&self) -> u32

Returns the memory type index for the Block’s device memory.

Trait Implementations§

source§

impl Debug for OwnedBlock

source§

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

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

impl Deref for OwnedBlock

source§

type Target = Block

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl Drop for OwnedBlock

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.