pub mod device_memory;
pub mod host_memory;
pub mod unified_memory;
pub mod memory_pool;
pub mod texture_memory;
pub use device_memory::DeviceBuffer;
pub use host_memory::HostBuffer;
pub use unified_memory::UnifiedMemory;
pub use memory_pool::{MemoryPool, PoolConfig, PoolStats, KernelMemoryManager, global_pool, allocate, deallocate};
pub use texture_memory::{TextureMemory, TextureDescriptor, AddressMode, FilterMode};
use std::cell::RefCell;
pub struct SharedMemory<T> {
phantom: std::marker::PhantomData<T>,
}
thread_local! {
static SHARED_BUF: RefCell<Vec<u8>> = RefCell::new(Vec::new());
}
impl<T: Default + Clone + 'static> SharedMemory<T> {
pub fn get_sized(len: usize) -> Vec<T> {
vec![T::default(); len]
}
}
impl<T> SharedMemory<T> {
pub fn get() -> &'static mut [T] {
&mut []
}
}