41 void set_data(std::vector<double> data);
57 void set_data(std::span<const float> data);
63 void set_data(std::span<const double> data);
73 [[nodiscard]]
bool has_pending() const noexcept;
75 void processing_function(const
std::shared_ptr<
Buffer>& buffer) override;
76 void on_attach(const
std::shared_ptr<
Buffer>& buffer) override;
78 [[nodiscard]]
bool is_compatible_with(const
std::shared_ptr<
Buffer>& buffer) const override;
82 std::vector<
double> m_pending;
84 std::vector<
double> m_active;
86 std::atomic_flag m_dirty;
88 void commit_pending();
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.