diff options
author | Pedro Rodrigues <pedro@onimail.net> | 2021-02-28 20:09:55 +0000 |
---|---|---|
committer | Pedro Rodrigues <pedro@onimail.net> | 2021-02-28 20:09:55 +0000 |
commit | 82fed7b6da9882fb2f3cea4bd247eb02f4336b15 (patch) | |
tree | 4232fc5b7a1fe3417a4ca8396dfd05ee1baafc1b /scene/3d | |
parent | 0e77dc6e924cdf68175f56cb67756bf217e6c4ea (diff) |
Fix crash in GIProbe::bake
The problem happened when the passed from_node was null and the GIProbe
node had no parent node.
Fixes #45978
Diffstat (limited to 'scene/3d')
-rw-r--r-- | scene/3d/gi_probe.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/scene/3d/gi_probe.cpp b/scene/3d/gi_probe.cpp index 8a8bfe50b9..43f820e5d4 100644 --- a/scene/3d/gi_probe.cpp +++ b/scene/3d/gi_probe.cpp @@ -415,13 +415,16 @@ Vector3i GIProbe::get_estimated_cell_size() const { void GIProbe::bake(Node *p_from_node, bool p_create_visual_debug) { static const int subdiv_value[SUBDIV_MAX] = { 6, 7, 8, 9 }; + p_from_node = p_from_node ? p_from_node : get_parent(); + ERR_FAIL_NULL(p_from_node); + Voxelizer baker; baker.begin_bake(subdiv_value[subdiv], AABB(-extents, extents * 2.0)); List<PlotMesh> mesh_list; - _find_meshes(p_from_node ? p_from_node : get_parent(), mesh_list); + _find_meshes(p_from_node, mesh_list); if (bake_begin_function) { bake_begin_function(mesh_list.size() + 1); |