pub trait DescriptorPool<B: Backend>:
Send
+ Sync
+ Debug {
// Required methods
unsafe fn free<I>(&mut self, descriptor_sets: I)
where I: Iterator<Item = B::DescriptorSet>;
unsafe fn reset(&mut self);
// Provided methods
unsafe fn allocate_one(
&mut self,
layout: &B::DescriptorSetLayout,
) -> Result<B::DescriptorSet, AllocationError> { ... }
unsafe fn allocate<'a, I, E>(
&mut self,
layouts: I,
list: &mut E,
) -> Result<(), AllocationError>
where I: Iterator<Item = &'a B::DescriptorSetLayout>,
E: Extend<B::DescriptorSet> { ... }
}
Expand description
A descriptor pool is a collection of memory from which descriptor sets are allocated.
Required Methods§
Sourceunsafe fn free<I>(&mut self, descriptor_sets: I)where
I: Iterator<Item = B::DescriptorSet>,
unsafe fn free<I>(&mut self, descriptor_sets: I)where
I: Iterator<Item = B::DescriptorSet>,
Free the given descriptor sets provided as an iterator.
Provided Methods§
Sourceunsafe fn allocate_one(
&mut self,
layout: &B::DescriptorSetLayout,
) -> Result<B::DescriptorSet, AllocationError>
unsafe fn allocate_one( &mut self, layout: &B::DescriptorSetLayout, ) -> Result<B::DescriptorSet, AllocationError>
Allocate a descriptor set from the pool.
The descriptor set will be allocated from the pool according to the corresponding set layout. However,
specific descriptors must still be written to the set before use using a DescriptorSetWrite
or
DescriptorSetCopy
.
Descriptors will become invalid once the pool is reset. Usage of invalidated descriptor sets results in undefined behavior.
Sourceunsafe fn allocate<'a, I, E>(
&mut self,
layouts: I,
list: &mut E,
) -> Result<(), AllocationError>
unsafe fn allocate<'a, I, E>( &mut self, layouts: I, list: &mut E, ) -> Result<(), AllocationError>
Allocate multiple descriptor sets from the pool.
The descriptor set will be allocated from the pool according to the corresponding set layout. However,
specific descriptors must still be written to the set before use using a DescriptorSetWrite
or
DescriptorSetCopy
.
Each descriptor set will be allocated from the pool according to the corresponding set layout. Descriptors will become invalid once the pool is reset. Usage of invalidated descriptor sets results in undefined behavior.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.