Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
waveform_gpu_render_controller.hpp File Reference

Backend-neutral render orchestration for waveform GPU plans. More...

#include <pulp/audio/waveform_overview.hpp>
#include <pulp/view/waveform_gpu_primitives.hpp>
#include <cstddef>
#include <cstdint>
#include <span>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::view::WaveformGpuRenderContext
struct  pulp::view::WaveformGpuRenderDecision
class  pulp::view::WaveformGpuRenderController
 Stateful policy helper for backend-owned waveform resources. More...

Namespaces

namespace  pulp
namespace  pulp::view
 Hover-cursor tracking for platform window hosts.

Enumerations

enum class  pulp::view::WaveformGpuRenderActionKind : std::uint8_t {
  pulp::view::NoOpInvalidPlan , pulp::view::NoOpBackendUnavailable , pulp::view::NoOpCpuFallbackUnavailable , pulp::view::NoOpStagingTooSmall ,
  pulp::view::NoOpVertexFillFailed , pulp::view::CpuFallbackReady , pulp::view::UploadStaticLayerReady , pulp::view::DrawCachedStaticLayer ,
  pulp::view::PlayheadOnlyRedraw
}

Detailed Description

Backend-neutral render orchestration for waveform GPU plans.

The controller consumes WaveformGpuLayerPlan values and turns them into deterministic upload/draw/fallback decisions for a concrete renderer. It owns only metadata cache state; Dawn, Skia, Metal, WebGPU, fences, and release queues remain backend responsibilities. Use it from render/control code, not from live audio callbacks. It is not thread-safe; async GPU upload completions should marshal commits back to the owning render/control thread.