Metadata-only LRU for backend-owned waveform resources. More...
#include <waveform_gpu_primitives.hpp>
Public Member Functions | |
| WaveformGpuResourceCache (std::size_t capacity=8) | |
| bool | prepare (std::size_t capacity, std::vector< WaveformGpuResourceRecord > *evicted_records=nullptr) |
| std::vector< WaveformGpuResourceRecord > | clear_and_return_records () |
| WaveformGpuResourcePutResult | put (const WaveformGpuUploadKey &key, std::uint64_t resource_id, std::size_t bytes, std::uint64_t backend_generation=1) |
| const WaveformGpuResourceRecord * | find (const WaveformGpuUploadKey &key) noexcept |
| const WaveformGpuResourceRecord * | find (const WaveformGpuUploadKey &key, std::uint64_t backend_generation) noexcept |
| bool | erase (const WaveformGpuUploadKey &key, WaveformGpuResourceRecord &removed_record) noexcept |
| WaveformGpuResourceCacheStats | stats () const noexcept |
| std::size_t | capacity () const noexcept |
| std::size_t | size () const noexcept |
Metadata-only LRU for backend-owned waveform resources.
The cache stores stable keys and opaque resource IDs; platform renderers own the real GPU buffers/textures and may use resource_id however they choose. Any operation that removes a record can report it so the backend can release resources. Not thread-safe; async backend completions should marshal cache updates back to the owning render/control thread or use external synchronization.
|
explicit |
|
inlinenodiscardnoexcept |
|
nodiscard |
|
noexcept |
|
noexcept |
|
noexcept |
| bool pulp::view::WaveformGpuResourceCache::prepare | ( | std::size_t | capacity, |
| std::vector< WaveformGpuResourceRecord > * | evicted_records = nullptr ) |
|
nodiscard |
|
inlinenodiscardnoexcept |
|
nodiscardnoexcept |