pub struct Cache<T, Tag = ()> { /* private fields */ }Expand description
A memory-efficient resource cache for any Pool type.
Use Cache::tag to create a tag-scoped view that caches resources independently from other
tags. Untagged access still behaves like the default cache wrapper.
§Examples
let mut shadow = cache.tag("shadow");
let image = shadow
.resource(ImageInfo::image_2d(
32,
32,
ash::vk::Format::R8G8B8A8_UNORM,
ash::vk::ImageUsageFlags::SAMPLED,
))
.unwrap();Implementations§
Source§impl<T, Tag> Cache<T, Tag>
impl<T, Tag> Cache<T, Tag>
Sourcepub fn tag(&mut self, tag: Tag) -> TaggedCache<'_, T, Tag>
pub fn tag(&mut self, tag: Tag) -> TaggedCache<'_, T, Tag>
Returns a tag-scoped cache view.
Source§impl<T> Cache<T, ()>where
T: Pool<AccelerationStructureInfo, AccelerationStructure> + Pool<BufferInfo, Buffer> + Pool<ImageInfo, Image>,
impl<T> Cache<T, ()>where
T: Pool<AccelerationStructureInfo, AccelerationStructure> + Pool<BufferInfo, Buffer> + Pool<ImageInfo, Image>,
Sourcepub fn accel_struct(
&mut self,
info: AccelerationStructureInfo,
) -> Result<Arc<Lease<AccelerationStructure>>, DriverError>
pub fn accel_struct( &mut self, info: AccelerationStructureInfo, ) -> Result<Arc<Lease<AccelerationStructure>>, DriverError>
Alias an acceleration structure using the default tag.
Sourcepub fn buffer(
&mut self,
info: BufferInfo,
) -> Result<Arc<Lease<Buffer>>, DriverError>
pub fn buffer( &mut self, info: BufferInfo, ) -> Result<Arc<Lease<Buffer>>, DriverError>
Alias a buffer using the default tag.
Trait Implementations§
Auto Trait Implementations§
impl<T, Tag> Freeze for Cache<T, Tag>where
T: Freeze,
impl<T, Tag = ()> !RefUnwindSafe for Cache<T, Tag>
impl<T, Tag> Send for Cache<T, Tag>
impl<T, Tag> Sync for Cache<T, Tag>
impl<T, Tag> Unpin for Cache<T, Tag>
impl<T, Tag> UnsafeUnpin for Cache<T, Tag>where
T: UnsafeUnpin,
impl<T, Tag = ()> !UnwindSafe for Cache<T, Tag>
Blanket Implementations§
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