Copybara import of the project:
-- c9acc0a6f677951db34f2b607bd60fc18a43f72b by Levi Burner <leviburner@gmail.com>: Fix race condition in Python viewers set_X methods -- b89ab8f7a0f628ee7a02ebfbac2a97f113112076 by Levi Burner <leviburner@gmail.com>: use std::swap to replace some copying -- 02625bed0cffbfc9ea4537f74689f0bbcb8bf44c by Levi Burner <leviburner@gmail.com>: fix whitespace COPYBARA_INTEGRATE_REVIEW=https://github.com/google-deepmind/mujoco/pull/2613 from aftersomemath:simulate-set-race 02625bed0cffbfc9ea4537f74689f0bbcb8bf44c PiperOrigin-RevId: 766646168 Change-Id: I1e1dc16afbfb1e69fb958d54bd1075cc9aed3569
This commit is contained in:
committed by
Copybara-Service
parent
fe81373ffe
commit
3eb31f56cd
+19
-1
@@ -2632,18 +2632,36 @@ void Simulate::Render() {
|
||||
}
|
||||
|
||||
// user figures
|
||||
if (this->newfigurerequest.load() == 1) {
|
||||
this->user_figures_.clear();
|
||||
std::swap(this->user_figures_, this->user_figures_new_);
|
||||
int value = 1;
|
||||
this->newfigurerequest.compare_exchange_strong(value, 0);
|
||||
}
|
||||
for (auto& [viewport, figure] : this->user_figures_) {
|
||||
ShowFigure(this, viewport, &figure);
|
||||
}
|
||||
|
||||
// overlay text
|
||||
if (this->newtextrequest.load() == 1) {
|
||||
this->user_texts_.clear();
|
||||
std::swap(this->user_texts_, this->user_texts_new_);
|
||||
int value = 1;
|
||||
this->newtextrequest.compare_exchange_strong(value, 0);
|
||||
}
|
||||
for (auto& [font, gridpos, text1, text2] : this->user_texts_) {
|
||||
ShowOverlayText(this, rect, font, gridpos, text1, text2);
|
||||
}
|
||||
|
||||
// user images
|
||||
if (this->newimagerequest.load() == 1) {
|
||||
this->user_images_.clear();
|
||||
std::swap(this->user_images_, this->user_images_new_);
|
||||
int value = 1;
|
||||
this->newimagerequest.compare_exchange_strong(value, 0);
|
||||
}
|
||||
for (auto& [viewport, image] : this->user_images_) {
|
||||
ShowImage(this, viewport, image);
|
||||
ShowImage(this, viewport, image.get());
|
||||
}
|
||||
|
||||
// finalize
|
||||
|
||||
Reference in New Issue
Block a user