taskflow 接入异步 datoviz性能监测

This commit is contained in:
2026-08-15 02:12:03 +08:00
parent 2c7c8abd4f
commit 282768e0ea
36 changed files with 1890 additions and 234 deletions
@@ -1,36 +1,14 @@
#pragma once
#include "../renderable/Renderable.h"
#include <renderive/base/observer/Observer.hpp>
#include <renderive/real_time_data/Double_Buffer_Frame_Observer.hpp>
#include <renderive/real_time_data/Frame_Strategy_Observer.hpp>
#include <renderive/real_time_data/History_Real_Time_Data.hpp>
#include <mutex>
namespace renderive::detail {
using Plottable_Real_Time_Data_Observer = Observer_State<Frame_Strategy_Real_Time_Data_Observer>;
struct Double_Buffer_Real_Time_Data_Observer {
static constexpr bool enabled = true;
template <class Target>
decltype(auto) bind(Target& target) {
return observer_.bind(target);
}
template <class Observation>
void observe(const Observation& observation) noexcept {
if (observation.event != Observation::Event::cache_updated)
return;
observer_.observe({
Real_Time_Data_Observation_Event::updated,
{this, Real_Time_Data_Retention::latest,
observation.cache_update_count, observation.time_ns,
observation.cache_update_count, 1}
});
}
private:
Frame_Strategy_Real_Time_Data_Observer observer_;
};
using Plottable_Double_Buffer_Observer =
Observer_State<Double_Buffer_Real_Time_Data_Observer>;
Observer_State<::Double_Buffer_Frame_Observer>;
inline Plottable_Real_Time_Data_Observer observe_real_time_data(
::renderive::Renderable& renderable) {
return Plottable_Real_Time_Data_Observer(Frame_Strategy_Real_Time_Data_Observer(renderable));
@@ -44,14 +44,6 @@ void Renderable::Impl::prepare_frame(const Prepare_Render_Context&) {}
void Renderable::Impl::paint(detail::Painter&,
const Paint_Render_Context&) {}
void Renderable::Impl::build_prepare_graph(
Renderable_Graph_Builder& builder) {
add_prepare_task(builder, "prepare", "Prepare",
[this](const Prepare_Render_Context& context) {
execute_prepare(context);
});
}
void Renderable::Impl::build_paint_graph(
Renderable_Graph_Builder& builder) {
const auto paint_task = add_paint_task(
@@ -78,7 +78,6 @@ protected:
virtual void prepare_frame(const Prepare_Render_Context& context);
virtual void paint(detail::Painter& painter,
const Paint_Render_Context& context);
void build_prepare_graph(Renderable_Graph_Builder& builder) override;
void build_paint_graph(Renderable_Graph_Builder& builder) override;
void prepare(const Prepare_Render_Context& context) override;
Renderable_Graph_Builder::Task add_prepare_task(