删除realtime 的一个组件

This commit is contained in:
2026-08-14 12:27:12 +08:00
parent 38231dbc1c
commit dfb2de6bf7
24 changed files with 3972 additions and 421 deletions
+22 -11
View File
@@ -72,21 +72,23 @@ struct Point_Scene::Impl {
if (!accepting.load(std::memory_order_acquire))
return false;
return render_domain.invoke([&] {
return scheduler.render([&](const detail::Point_Frame_Data& frame) {
auto rendered = backend->render(frame);
if (!rendered)
return false;
std::lock_guard lock(frame_mutex);
latest = std::move(rendered);
return true;
});
auto lease = scheduler.acquire_renderer();
if (!lease)
return false;
auto rendered = backend->render(
static_cast<const detail::Point_Frame_Data&>(*lease));
if (!rendered)
return false;
std::lock_guard lock(frame_mutex);
latest = std::move(rendered);
return true;
});
}
std::shared_ptr<Point_Visual> visual;
detail::Scene_State_Buffer states;
detail::Input_Collector input;
detail::Frame_Scheduler scheduler;
detail::Point_Frame_Strategy scheduler;
detail::Render_Domain render_domain;
std::unique_ptr<detail::Datoviz_Point_Backend> backend;
mutable std::mutex frame_mutex;
@@ -172,8 +174,17 @@ void Point_Scene::dispatch(const ::renderive::Key_Event& event) {
}
bool Point_Scene::prepare_frame() {
return impl_->accepting.load(std::memory_order_acquire) &&
impl_->scheduler.prepare(impl_->states, *impl_->visual, impl_->input);
if (!impl_->accepting.load(std::memory_order_acquire))
return false;
auto lease = impl_->scheduler.acquire_painter();
if (!lease)
return false;
auto scene = impl_->states.publish_state();
lease->scene = std::move(scene.state);
lease->scene_revision = scene.revision;
lease->point = detail::Point_State_Access::publish(*impl_->visual);
lease->input = impl_->input.drain();
return true;
}
bool Point_Scene::refresh_manual_frame() {