pub struct AliasPool<T> { /* private fields */ }
Expand description
A memory-efficient resource wrapper for any Pool
type.
The information for each alias request is compared against the actively aliased resources for compatibility. If no acceptable resources are aliased for the information provided a new resource is leased and returned.
All regular leasing and other functionality of the wrapped pool is available through Deref
and
DerefMut
.
NOTE: You must call alias(..)
to use resource aliasing as regular lease(..)
calls will
not inspect or return aliased resources.
§Details
- Acceleration structures may be larger than requested
- Buffers may be larger than requested or have additional usage flags
- Images may have additional usage flags
§Examples
See aliasing.rs
Implementations§
Trait Implementations§
source§impl<T> Alias<AccelerationStructureInfo, AccelerationStructure> for AliasPool<T>
impl<T> Alias<AccelerationStructureInfo, AccelerationStructure> for AliasPool<T>
source§fn alias(
&mut self,
info: AccelerationStructureInfo
) -> Result<Arc<Lease<AccelerationStructure>>, DriverError>
fn alias( &mut self, info: AccelerationStructureInfo ) -> Result<Arc<Lease<AccelerationStructure>>, DriverError>
Aliases a resource.
source§impl<T> Alias<BufferInfo, Buffer> for AliasPool<T>
impl<T> Alias<BufferInfo, Buffer> for AliasPool<T>
source§fn alias(&mut self, info: BufferInfo) -> Result<Arc<Lease<Buffer>>, DriverError>
fn alias(&mut self, info: BufferInfo) -> Result<Arc<Lease<Buffer>>, DriverError>
Aliases a resource.
source§impl<T> Pool<AccelerationStructureInfo, AccelerationStructure> for AliasPool<T>
impl<T> Pool<AccelerationStructureInfo, AccelerationStructure> for AliasPool<T>
source§fn lease(
&mut self,
info: AccelerationStructureInfo
) -> Result<Lease<AccelerationStructure>, DriverError>
fn lease( &mut self, info: AccelerationStructureInfo ) -> Result<Lease<AccelerationStructure>, DriverError>
Lease a resource.
source§impl<T> Pool<BufferInfo, Buffer> for AliasPool<T>
impl<T> Pool<BufferInfo, Buffer> for AliasPool<T>
source§fn lease(&mut self, info: BufferInfo) -> Result<Lease<Buffer>, DriverError>
fn lease(&mut self, info: BufferInfo) -> Result<Lease<Buffer>, DriverError>
Lease a resource.
Auto Trait Implementations§
impl<T> RefUnwindSafe for AliasPool<T>where
T: RefUnwindSafe,
impl<T> Send for AliasPool<T>where
T: Send,
impl<T> Sync for AliasPool<T>where
T: Sync,
impl<T> Unpin for AliasPool<T>where
T: Unpin,
impl<T> UnwindSafe for AliasPool<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> Alias<AccelerationStructureInfoBuilder, AccelerationStructure> for T
impl<T> Alias<AccelerationStructureInfoBuilder, AccelerationStructure> for T
source§fn alias(
&mut self,
builder: AccelerationStructureInfoBuilder
) -> Result<Arc<Lease<AccelerationStructure>>, DriverError>
fn alias( &mut self, builder: AccelerationStructureInfoBuilder ) -> Result<Arc<Lease<AccelerationStructure>>, DriverError>
Aliases a resource.
source§impl<T> Alias<BufferInfoBuilder, Buffer> for T
impl<T> Alias<BufferInfoBuilder, Buffer> for T
source§fn alias(
&mut self,
builder: BufferInfoBuilder
) -> Result<Arc<Lease<Buffer>>, DriverError>
fn alias( &mut self, builder: BufferInfoBuilder ) -> Result<Arc<Lease<Buffer>>, DriverError>
Aliases a resource.
source§impl<T> Alias<ImageInfoBuilder, Image> for T
impl<T> Alias<ImageInfoBuilder, Image> for T
source§fn alias(
&mut self,
builder: ImageInfoBuilder
) -> Result<Arc<Lease<Image>>, DriverError>
fn alias( &mut self, builder: ImageInfoBuilder ) -> Result<Arc<Lease<Image>>, DriverError>
Aliases a resource.
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> Pool<AccelerationStructureInfoBuilder, AccelerationStructure> for T
impl<T> Pool<AccelerationStructureInfoBuilder, AccelerationStructure> for T
source§fn lease(
&mut self,
builder: AccelerationStructureInfoBuilder
) -> Result<Lease<AccelerationStructure>, DriverError>
fn lease( &mut self, builder: AccelerationStructureInfoBuilder ) -> Result<Lease<AccelerationStructure>, DriverError>
Lease a resource.
source§impl<T> Pool<BufferInfoBuilder, Buffer> for T
impl<T> Pool<BufferInfoBuilder, Buffer> for T
source§fn lease(
&mut self,
builder: BufferInfoBuilder
) -> Result<Lease<Buffer>, DriverError>
fn lease( &mut self, builder: BufferInfoBuilder ) -> Result<Lease<Buffer>, DriverError>
Lease a resource.
source§impl<T> Pool<ImageInfoBuilder, Image> for T
impl<T> Pool<ImageInfoBuilder, Image> for T
source§fn lease(
&mut self,
builder: ImageInfoBuilder
) -> Result<Lease<Image>, DriverError>
fn lease( &mut self, builder: ImageInfoBuilder ) -> Result<Lease<Image>, DriverError>
Lease a resource.