Improve texture caching by allowing weak refs and more formats (#4447)

This commit is contained in:
Timon
2026-09-16 00:10:53 +02:00
committed by Dennis Kobert
parent 9b9ea5741d
commit f9bdac7fd2
11 changed files with 208 additions and 164 deletions

View File

@@ -0,0 +1,34 @@
use std::ops::Deref;
use std::sync::Arc;
#[derive(Clone, Debug)]
pub struct Buffer(Arc<BufferInner>);
#[derive(Debug)]
struct BufferInner(wgpu::Buffer);
impl Drop for BufferInner {
fn drop(&mut self) {
self.0.destroy();
}
}
impl Deref for Buffer {
type Target = wgpu::Buffer;
fn deref(&self) -> &Self::Target {
&self.0.0
}
}
impl AsRef<wgpu::Buffer> for Buffer {
fn as_ref(&self) -> &wgpu::Buffer {
&self.0.0
}
}
impl From<wgpu::Buffer> for Buffer {
fn from(buffer: wgpu::Buffer) -> Self {
Self(Arc::new(BufferInner(buffer)))
}
}