Fix crash if Renderer is destroyed without having been Init'ed.

PiperOrigin-RevId: 831375559
Change-Id: Ia1d0334e32dbbd0582d4f75723867d6ea47bf9da
This commit is contained in:
Haroon Qureshi
2025-11-12 07:14:37 -08:00
committed by Copybara-Service
parent 28c536bd93
commit 7b52d3034e
+11 -14
View File
@@ -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,