pub trait DescriptorDevice<L, P, S> {
    // Required methods
    unsafe fn create_descriptor_pool(
        &self,
        descriptor_count: &DescriptorTotalCount,
        max_sets: u32,
        flags: DescriptorPoolCreateFlags
    ) -> Result<P, CreatePoolError>;
    unsafe fn destroy_descriptor_pool(&self, pool: P);
    unsafe fn alloc_descriptor_sets<'a>(
        &self,
        pool: &mut P,
        layouts: impl ExactSizeIterator<Item = &'a L>,
        sets: &mut impl Extend<S>
    ) -> Result<(), DeviceAllocationError>
       where L: 'a;
    unsafe fn dealloc_descriptor_sets(
        &self,
        pool: &mut P,
        sets: impl Iterator<Item = S>
    );
}
Expand description

Abstract device that can create pools of type P and allocate sets S with layout L.

Required Methods§

source

unsafe fn create_descriptor_pool( &self, descriptor_count: &DescriptorTotalCount, max_sets: u32, flags: DescriptorPoolCreateFlags ) -> Result<P, CreatePoolError>

Creates a new descriptor pool.

§Safety

Actually safe. TODO: Remove unsafe with next breaking change.

source

unsafe fn destroy_descriptor_pool(&self, pool: P)

Destroys descriptor pool.

§Safety

Pool must be created from this device. All descriptor sets allocated from this pool become invalid.

source

unsafe fn alloc_descriptor_sets<'a>( &self, pool: &mut P, layouts: impl ExactSizeIterator<Item = &'a L>, sets: &mut impl Extend<S> ) -> Result<(), DeviceAllocationError>
where L: 'a,

Allocates descriptor sets.

§Safety

Pool must be created from this device.

source

unsafe fn dealloc_descriptor_sets( &self, pool: &mut P, sets: impl Iterator<Item = S> )

Deallocates descriptor sets.

§Safety

Sets must be allocated from specified pool and not deallocated before.

Object Safety§

This trait is not object safe.

Implementors§