删除realtime 的一个组件
This commit is contained in:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user