修改成异步的接口
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user