Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::view::WaveformGpuRenderController Class Reference

Stateful policy helper for backend-owned waveform resources. More...

#include <waveform_gpu_render_controller.hpp>

Public Member Functions

 WaveformGpuRenderController (std::size_t cache_capacity=8)
bool prepare (std::size_t cache_capacity, std::vector< WaveformGpuResourceRecord > *evicted_records=nullptr)
WaveformGpuRenderDecision plan_render (const pulp::audio::WaveformOverview &thumbnail, const WaveformGpuLayerPlan &plan, const WaveformGpuRenderContext &context, std::span< WaveformPeakVertex > staging_vertices) noexcept
WaveformGpuResourcePutResult commit_uploaded_resource (const WaveformGpuUploadKey &key, std::uint64_t resource_id, std::size_t bytes, std::uint64_t backend_generation=1)
WaveformGpuResourcePutResult commit_uploaded_resource (const WaveformGpuRenderDecision &decision, std::uint64_t resource_id, std::uint64_t current_backend_generation)
bool erase (const WaveformGpuUploadKey &key, WaveformGpuResourceRecord &removed_record) noexcept
std::vector< WaveformGpuResourceRecord > clear_and_return_records ()
WaveformGpuResourceCacheStats stats () const noexcept
std::size_t capacity () const noexcept
std::size_t size () const noexcept

Detailed Description

Stateful policy helper for backend-owned waveform resources.

plan_render() never inserts placeholder cache records. Backends should call commit_uploaded_resource() only after a real resource has been created. Replaced or evicted records are then returned so the backend can release its own GPU resources. GPU-assisted offline analysis should publish CPU-readable generation-keyed summaries and must never require live audio threads to wait on GPU completion.

Constructor & Destructor Documentation

◆ WaveformGpuRenderController()

pulp::view::WaveformGpuRenderController::WaveformGpuRenderController ( std::size_t cache_capacity = 8)
explicit

Member Function Documentation

◆ capacity()

std::size_t pulp::view::WaveformGpuRenderController::capacity ( ) const
inlinenodiscardnoexcept

◆ clear_and_return_records()

std::vector< WaveformGpuResourceRecord > pulp::view::WaveformGpuRenderController::clear_and_return_records ( )
nodiscard

◆ commit_uploaded_resource() [1/2]

WaveformGpuResourcePutResult pulp::view::WaveformGpuRenderController::commit_uploaded_resource ( const WaveformGpuRenderDecision & decision,
std::uint64_t resource_id,
std::uint64_t current_backend_generation )
nodiscard

◆ commit_uploaded_resource() [2/2]

WaveformGpuResourcePutResult pulp::view::WaveformGpuRenderController::commit_uploaded_resource ( const WaveformGpuUploadKey & key,
std::uint64_t resource_id,
std::size_t bytes,
std::uint64_t backend_generation = 1 )
nodiscard

◆ erase()

bool pulp::view::WaveformGpuRenderController::erase ( const WaveformGpuUploadKey & key,
WaveformGpuResourceRecord & removed_record )
noexcept

◆ plan_render()

WaveformGpuRenderDecision pulp::view::WaveformGpuRenderController::plan_render ( const pulp::audio::WaveformOverview & thumbnail,
const WaveformGpuLayerPlan & plan,
const WaveformGpuRenderContext & context,
std::span< WaveformPeakVertex > staging_vertices )
nodiscardnoexcept

◆ prepare()

bool pulp::view::WaveformGpuRenderController::prepare ( std::size_t cache_capacity,
std::vector< WaveformGpuResourceRecord > * evicted_records = nullptr )

◆ size()

std::size_t pulp::view::WaveformGpuRenderController::size ( ) const
inlinenodiscardnoexcept

◆ stats()

WaveformGpuResourceCacheStats pulp::view::WaveformGpuRenderController::stats ( ) const
nodiscardnoexcept

The documentation for this class was generated from the following file: