修改成异步的接口

This commit is contained in:
2026-08-13 08:45:18 +08:00
parent 6d2cf825ae
commit b964dcdcd9
23 changed files with 553 additions and 227 deletions
@@ -16,6 +16,7 @@ void advance_revision(std::atomic<std::uint64_t>& revision) noexcept {
Renderable_Base::Renderable_Base(Scene_Base& scene, Renderable_Configuration configuration)
: memory_domain_(scene.memory_domain_), real_time_data_state_(std::allocate_shared<Real_Time_Data_State>(Scene_Memory_Allocator<Real_Time_Data_State>{memory_domain_}, scene.scene_lifetime_)), discard_stale_frame_on_latest_data_update(real_time_data_state_->discard_stale_frame_on_latest_data_update), renderable_id_(scene.allocate_renderable_id()), composite_node_id_(scene.allocate_node_id()), configuration_(configuration) {}
Renderable_Base::~Renderable_Base() {
real_time_data_state_->attached.store(false, std::memory_order_release);
real_time_data_state_->renderable_alive.store(false, std::memory_order_release);
}
void Renderable_Base::invalidate_prepare() noexcept {
@@ -48,7 +49,10 @@ bool Renderable_Base::paint_cache_valid() const noexcept {
painted_revision() == revision &&
painted_prepare_revision_.load(std::memory_order_acquire) == prepared_revision();
}
void Renderable_Base::rebuild_render_graph() noexcept {
void Renderable_Base::rebuild_render_graph() {
scene().request_render_graph_rebuild(*this);
}
void Renderable_Base::reset_render_graph() noexcept {
{
std::lock_guard lock(render_graph_mutex_);
render_graph_.reset();