Fix crash if Renderer is destroyed without having been Init'ed.
PiperOrigin-RevId: 831375559 Change-Id: Ia1d0334e32dbbd0582d4f75723867d6ea47bf9da
This commit is contained in:
committed by
Copybara-Service
parent
28c536bd93
commit
7b52d3034e
@@ -29,24 +29,21 @@ Renderer::Renderer(MakeContextFn make_context_fn)
|
||||
Renderer::~Renderer() { Deinit(); }
|
||||
|
||||
void Renderer::Init(const mjModel* model) {
|
||||
if (initialized_) {
|
||||
Deinit();
|
||||
Deinit();
|
||||
if (model) {
|
||||
make_context_fn_(model, &render_context_);
|
||||
mjv_defaultScene(&scene_);
|
||||
mjv_makeScene(model, &scene_, 2000);
|
||||
initialized_ = true;
|
||||
}
|
||||
|
||||
if (model == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
make_context_fn_(model, &render_context_);
|
||||
mjv_defaultScene(&scene_);
|
||||
mjv_makeScene(model, &scene_, 2000);
|
||||
initialized_ = true;
|
||||
}
|
||||
|
||||
void Renderer::Deinit() {
|
||||
mjv_freeScene(&scene_);
|
||||
mjr_freeContext(&render_context_);
|
||||
initialized_ = false;
|
||||
if (initialized_) {
|
||||
mjv_freeScene(&scene_);
|
||||
mjr_freeContext(&render_context_);
|
||||
initialized_ = false;
|
||||
}
|
||||
}
|
||||
|
||||
void Renderer::Render(const mjModel* model, mjData* data,
|
||||
|
||||
Reference in New Issue
Block a user